Показать сообщение отдельно
Старый 14.07.2011, 08:35   #13  
sukhanchik is offline
sukhanchik
Administrator
Аватар для sukhanchik
MCBMSS
Злыдни
Лучший по профессии 2015
Лучший по профессии AXAWARD 2013
Лучший по профессии 2011
Лучший по профессии 2009
 
3,342 / 3563 (125) ++++++++++
Регистрация: 13.06.2004
Адрес: Москва
Цитата:
Сообщение от gefr Посмотреть сообщение
У меня есть расширение этой задачи - добавление на форму "отвязанных" контролов по фин. аналитикам.
...
Не подскажете, в чем дело?
В свое время для 4.0 пытался также решать похожую задачу и не тоже смог победить. Причем - такой вариант, как задание строкового типа Dimension[i] не катит - это точно - нет такого типа в системе.

Нашел для себя 2 "обходных" пути.
1. Для диалогов - наследников RunBase есть класс DialogAddDimensionType_CheckButton_RU. Он добавляет в диалог флажки, по количеству элементов в массиве в типе Dimension. По сути здесь простой цикл и все. Но это решает задачу добавления именно "отвязанных" контролов. Важно! Здесь список контролов подготавливается ДО init формы. Т.к. после - уже не получается (ну у меня тогда не получилось). При этом лукапы для каждого элемента массива тут работать не будут (если пытаться заменить галки на строковые поля). Т.е. если хочется добавить контрол с лукапом в случае массива - он должен быть "связанным"

2. Если нужно сделать лукап со списком полей (а может и лукап со списком значений) аналогично форме расширенного запроса (SysQueryForm) - то нужно использовать класс SysQueryForm (его можно использовать, предварительно подготовив всякие таблички и Query). При этом, обращаю внимание - там используется табличка TmpSysQuery и у контрола типа Dimension проставлен не EDT, а FieldId, причем свойство ArraySize не используется (оно не работает), а в FieldId подставлено значение fieldId2Ext(fieldnum(Dimension), i), где i - индекс массива. Здесь видно, что лукап у поля "Значения" строится в зависимости от выбранного элемента массива.
__________________
Возможно сделать все. Вопрос времени

Последний раз редактировалось sukhanchik; 14.07.2011 в 08:46.
За это сообщение автора поблагодарили: Sergey Petrov (1).