Независимый форум, посвященный системе БОСС-Кадровик и всему, что с ней связано
|
|
Предыдущая тема :: Следующая тема |
Автор |
Сообщение |
Аленка
Зарегистрирован: 08.04.2011 Сообщения: 64 Откуда: Оттуда
|
Добавлено: Чт Май 26, 2011 16:46 Заголовок сообщения: Определить поле с фокусом в диалоговой форме |
|
|
Задача следующая: Имеется одна таблица, в которой содержаться данные с разными типами,таблица имеет иерархическую структуру. При выборе в диалоге полей со списком с источником из этой таблицы, была задумка показывать древовидный список, построенный по определенному типу. Если на форме одно такое поле, тогда нет проблем, задаю переменную с типом и рисую дерево, у которого root=заданный тип. Но если полей несколько, хотелось бы задавать тип исходя из фокуса поля.
Пытаюсь определить фокус вот так, но не получается:
Код: | ProcLocal D:tls_character_obsl={
(nCmd,sField,nField,sParam);
switch :nCmd
{
42{
switch :nField
{
0,23,26 {@@{msg '!!!!!'};
}--0,23,26
}--nField
}--42
};--nCmd
};--tls_character_obsl |
Подскажите, что не так? |
|
Вернуться к началу |
|
 |
zhenya17
Зарегистрирован: 04.02.2009 Сообщения: 190 Откуда: Кемерово
|
Добавлено: Пт Май 27, 2011 06:01 Заголовок сообщения: |
|
|
Честно говоря, трижды прочитала, но ничего не поняла. Например, как таблица может иметь иерархическую структуру? По определению "Таблица (из лат. tabula «доска») — способ передачи содержания, заключающийся в организации структуры данных, в которой отдельные элементы помещены в ячейки, каждой из которых сопоставлена пара значений — номер строки и номер колонки. Таким образом, устанавливается смысловая связь между элементами, принадлежащими одному столбцу или одной строке."
Сделайте пример более конкретным. Что за данные содержатся в таблице, может скриншоты приложить и т.п. |
|
Вернуться к началу |
|
 |
Аленка
Зарегистрирован: 08.04.2011 Сообщения: 64 Откуда: Оттуда
|
Добавлено: Пт Май 27, 2011 10:06 Заголовок сообщения: |
|
|
zhenya17,
под иерархической структурой я имела ввиду структуру
id,id_parent,name, обычной для построения иерархического дерева |
|
Вернуться к началу |
|
 |
zhenya17
Зарегистрирован: 04.02.2009 Сообщения: 190 Откуда: Кемерово
|
Добавлено: Пт Май 27, 2011 17:59 Заголовок сообщения: Re: Определить поле с фокусом в диалоговой форме |
|
|
С иерархической структурой разобрались
А с задачей в целом всё равно непонятно. Есть ощущение, что у задачки должно быть какое-то решение кроме фокусов. Только всё равно я никак представить не могу, что конкретно и с какой целью хотите сделать. Аленка писал(а): | ... При выборе в диалоге полей со списком с источником из этой таблицы, была задумка показывать древовидный список, построенный по определенному типу... | Коллеги, я туплю или всё-таки фраза тяжела для восприятия?
Хочется верить, что Вас, Алёнка, не только я не понимаю. Т.к. странно что ещё никто не отписался в теме, учитывая 25 просмотров. Народ тут вполне активный  |
|
Вернуться к началу |
|
 |
Аленка
Зарегистрирован: 08.04.2011 Сообщения: 64 Откуда: Оттуда
|
Добавлено: Пн Май 30, 2011 10:38 Заголовок сообщения: |
|
|
zhenya17
Простите за косноязычие, попробую объяснить задачу подробнее.
В базе имелось множество спровочников, с почти одинаковой структурой, и всего несколькими записями. Структура в общем случае
id, name, id_parent + 2-3 поля. Свела их все в две таблицы, в одной - задается тип справочника, во второй сам справочник с указанным типом. И тут столкнулась с проблемой, в диалоге, где несколько полей заполняются данными из справочников, нужно определять тип вызываемого справочника, хотя бы для ввода новой записи в справочник, или для построения иерархического списка. Была надежда задавать тип справочника при вызове списка из конкретного поля диалога. Пыталась сделать в коде инициализации на проверке nCmd =42 и nField. Если можете, подскажите другое решение, Boss для меня инструмент новый.
Приведенный выше код у меня не срабатывает. |
|
Вернуться к началу |
|
 |
RVV Большой шоколадный орден

Зарегистрирован: 14.01.2010 Сообщения: 449
|
Добавлено: Пн Май 30, 2011 11:45 Заголовок сообщения: |
|
|
Сделайте на форме диалога отдельное поле, которое будет задавать тип справочника, а в другом поле ссылку-ограничение на первое ... |
|
Вернуться к началу |
|
 |
Аленка
Зарегистрирован: 08.04.2011 Сообщения: 64 Откуда: Оттуда
|
Добавлено: Пн Май 30, 2011 14:10 Заголовок сообщения: |
|
|
RVV
Не поняла, как это меня спасет. Допустим у меня на форме 3 поля со списком (источник их один и тот же),
одно должно открываться с ограничением тип=1, второе тип=2, третье тип=3.
Мне нужно чтобы открывался один и тот же список с разными ограничениями(тип=...). По вашей технологии как мне определить данный тип, не зная какое в данный момент поле активно? |
|
Вернуться к началу |
|
 |
RVV Большой шоколадный орден

Зарегистрирован: 14.01.2010 Сообщения: 449
|
Добавлено: Пн Май 30, 2011 14:26 Заголовок сообщения: |
|
|
"одно должно открываться с ограничением тип=1, второе тип=2, третье тип=3. "
Ну так и написали бы сразу, а то мы тут гадать должны, что и как Вы себе представляете.
1 Можно сделать три разных списка джля каждого поля (со своим ограничением)
2 Можно сделать один список и передавать в него доп. ограничение, прописав его непосредственно в поле, после имени списка.
что-то типа
имя_списка WHERE ttt = 1 |
|
Вернуться к началу |
|
 |
Аленка
Зарегистрирован: 08.04.2011 Сообщения: 64 Откуда: Оттуда
|
Добавлено: Пн Май 30, 2011 16:49 Заголовок сообщения: |
|
|
RVV,
Ограничение where меня спасет только если выпадающий список не редактируемый (об этом и толкую!), если же нужно ввести новую запись, как мне определить тип списка? Что мне подставить как тип, ведь список-то будет фильтроваться по этому типу и новая запись в нем без типа не появится, или я не правильно понимаю?
Разные списки – бред! Что, в Boss-e нельзя определить поле с фокусом? |
|
Вернуться к началу |
|
 |
Mike Большой шоколадный орден

Зарегистрирован: 07.04.2011 Сообщения: 255
|
Добавлено: Пн Май 30, 2011 17:59 Заголовок сообщения: |
|
|
Как определить поле с фокусом не знаю.
А почему нельзя просто задавать тип записи при ее введении, а обязательно нужно в зависимости от фокусировки?
Я так понимаю, что ваше творение похоже на что-то типа списка подразделений в Штатном расписании, только и там не фокусируется ничего
pr_lst_structs_tree
pr_lst_structs |
|
Вернуться к началу |
|
 |
RVV Большой шоколадный орден

Зарегистрирован: 14.01.2010 Сообщения: 449
|
Добавлено: Пн Май 30, 2011 18:20 Заголовок сообщения: |
|
|
Определить в каком поле фокус не получится.
В Вашем случае самый простой способ - сделать три Lookup с отдельными browser. И это не бред. тк кнопки ОК/Отказ и перерисовка выбранного значения и посыл команд основному диалогу будут произведены системой автоматически.
Да можно и в Вашем случае сделать один список, вызвав через процедуру или написать вызов Browser c параметром ...
но кнопки, перерисовка и т.д см. выше - уже на Вашей совести.
Оно Вам надо? |
|
Вернуться к началу |
|
 |
Аленка
Зарегистрирован: 08.04.2011 Сообщения: 64 Откуда: Оттуда
|
Добавлено: Вт Май 31, 2011 10:21 Заголовок сообщения: |
|
|
RVV писал(а): |
Да можно и в Вашем случае сделать один список, вызвав через процедуру или написать вызов Browser c параметром ... |
Как и на какое событие ее(процедуру) повесить? Подскажите, если не трудно.
Кстати, в документации по Боссу документирована проверка активности поля в диалоге, код nCmd=42, огорчает что декларированная возможность не реализована.
RVV писал(а): |
...но кнопки, перерисовка и т.д см. выше - уже на Вашей совести.
Оно Вам надо? |
Надо, у меня диалоговое окно, где 15 полей со списками подобным вышеописанным.
Mike,
к сожалению, у нас закуплен "голый" Босс, без модулей, так что стандартную реализацию чего-либо посмотреть не могу. |
|
Вернуться к началу |
|
 |
RVV Большой шоколадный орден

Зарегистрирован: 14.01.2010 Сообщения: 449
|
Добавлено: Вт Май 31, 2011 10:39 Заголовок сообщения: |
|
|
"15 полей" - нашли чем удивить ....
Программирование в дизайнере имеет свою специфику, к ней нужно привыкнуть, перенастроить свой стиль программирования ...
Читайте документацию, смотрите примеры (лучше в Кадровике)
http://www.rp-server.com/download_files/rp-quick-start.pdf
Если не получается, пишите проще. |
|
Вернуться к началу |
|
 |
Аленка
Зарегистрирован: 08.04.2011 Сообщения: 64 Откуда: Оттуда
|
Добавлено: Вт Май 31, 2011 11:00 Заголовок сообщения: |
|
|
RVV
Еще раз, нет у меня кадровика, нет!
У нас только средство Босс Дизайнер, без модулей!
А начсет 15 полей, так этож только один диалог, а переделывать мне 750 диалогов
Вобщем прихожу к выводу, что под каждый тип справочника нужно иметь свой список, грустно как-то...  |
|
Вернуться к началу |
|
 |
RVV Большой шоколадный орден

Зарегистрирован: 14.01.2010 Сообщения: 449
|
Добавлено: Вт Май 31, 2011 11:44 Заголовок сообщения: |
|
|
Каждый справочник - отдельная таблица
Каждый справочник - отдельный список, диалог, Lookup
Это НОРМАЛЬНО !!!
Это ПРАВИЛЬНО !!! |
|
Вернуться к началу |
|
 |
|
|
Вы не можете начинать темы Вы не можете отвечать на сообщения Вы не можете редактировать свои сообщения Вы не можете удалять свои сообщения Вы не можете голосовать в опросах
|
|