Страница 2 из 12

Добавлено: 01 ноя 2007, 22:05
Старик Крупский
Ух ты-ы-ы... сколько вы всего уже перетерли. Вы там чё, не работаете что ли? :-)
Я тоже хочу поотвечать. Только я попроще. Значится, чтобы выпадающий список заполнить запросом надо использовать f_ModifyForm. Модифаим свойство values. В документации написано, как должны разделяться отображаемые и реальные значения. С этим проблем, наверное, нет. А вот для того, чтобы в форме обращаться к отображаемому значению, а не к реальному можно использовать функцию LookUpDisplay из группы формы.

Добавлено: 02 ноя 2007, 07:26
Александр
>Disillusioned
При переформировании списка опять сбрасываем значение до "Не определен".
в какой момент времени ( по какому событию) происходит сброс значения на 'не определен'?

может можно в событии, в одном окне редактирования, через запятую или через GO использовать сразу несколько операторов?
допустим

Код: Выделить всё

ret=f_ExecSQLSelect_3('go','','','cols=decimal(18)',0)
ret=f_ModifyForm...Список.значения
ret=f_ExecSQLSelect_3('go','','','cols=decimal(18)',0)
Список.значения='не определен'
ведь по идее надо просто правильно сформировать набор SQL инструкций чтобы интерпретатор Лоции его проглотил :wink:

по другому я не понимаю как ты сбрасываешь значение сразу после формирования

Добавлено: 02 ноя 2007, 09:11
Disillusioned
Да просто установи значение переменной в действии над переменными. В том же действии, где ты формируешь заново список значений.

Добавлено: 02 ноя 2007, 09:33
Александр
ну я тормоз :wink: это же WorkFlow - все кверх ногами :wink: в событии же можно последовательно работать с одной переменной хоть сто раз - а я почему то подумал что событие одно, переменная одна значит и действие только одно... заклинило меня короче :wink:
все этот вопрос снят
Ok :?

Вопрос следующий
а как на время инициализации начальных переменных повесить окно - 'Подождите идет загрузка данных...' и потом снять его
нужно внешнее действие запустить? а по какому признаку его завершить? или в WorkFlow можно свой MsgBox повесить штатными средствами?

Добавлено: 02 ноя 2007, 10:02
Disillusioned
Вариант 1.
Данные получаем при помощи клиентского действия над объектами, тогда во время загрузки будет висеть модальное окно "Обработка действия..."
Вариант 2.
На форме создай вычисляемое поле или текст, в котором написано "Обработка данных и т.д. и т.п.", поставь зависимость видимости данного элемента от значения переменной, после загрузки данных измени значение переменной на значение невидимости. Можно этот текст/вычисляемое поле на всю форму растянуть, чтобы он другие элементы на время загрузки закрывал собой.

Добавлено: 07 ноя 2007, 09:58
Александр
Следующий вопрос :wink:
а скажите -есть форма работы - на ней есть массив
так вот при инициализации формы, когда в строке состояния бегают всякие сообщения а сама форма пока еще не загрузилась
на 'пустом диалоге' я вижу две 'пустых' области которые сразу бросаются в глаза т.е. наезжая на элементы пустого диалога или выделяющиеся своей вогнутостью
-это область где будет лежать массив (свои координаты)
-и это из свойств массива - форма объекта (верхний левый угол)

как избавиться от этого эффекта на этапе загрузки формы
ps
и так все медленно... а тут еще и это... :?

Добавлено: 07 ноя 2007, 22:32
Старик Крупский
А может ты там что-то долгоиграющее повесил? Или просто много всего? Оно там, насколько я понимаю, отрисовывается все сразу после выполнения всех начальных действий. Поэтому если до отрисовки проходит много времени, значит, что-то тяжелое повесил.
Можно, кстати, попробовать в свойствах массива поставить скрытость, а потом, после всех запросов, модифаить форму и отрывать массив.

Добавлено: 15 ноя 2007, 08:49
gali
Проблема шире. Мало того, что на форме отрисовывается всякая чушь, все исполняемые действия (после открытия, после закрытия, вместо...) считают нужным заявить о себе. Это хорошо на этапе отладки, но бедному юзеру зачем знать, что там формируется, отбирается, заполняется?
Из техподдержки мне ответили, что возможно, когда-нибудь, поставят в какие-нибудь планы. А надо-то задействовать один параметр управления "видимостью". Надо отлаживать - включил.

Добавлено: 15 ноя 2007, 08:50
Александр
gali - полностью с тобой согласен :wink: :wink: :wink:

Добавлено: 04 дек 2007, 12:30
Александр
очередной вопрос по массивам
а как с ними работать? почитал хелп и ничего не понял вообще :? - посмотрел примеры и тоже ничего не понял :?
1. какой функцией набрать (через SQL) и отобразить массив на форме
и еще
2. какой функцией набрать (через SQL) массив из нескольких колонок (многомерный)
т.е. делаем переменную первая колонка типа массив + еще переменные (по числу колонок) типа массив - и как то одним запросом забиваем все переменные сразу или как?

или нужно запросом набрать строку и разрезая ее в цикле добавлять массив-нет так не может быть...
или сначала нужно набрать список и уже его запихивать в массив???
вобщем уже целый день сижу ничего не понимаю :?
щас взорвусь от напряжения :wink: :wink: :wink:

Добавлено: 05 дек 2007, 08:26
Александр
где вы все? с массивами то помогите разобраться.... :wink: :wink: :wink:

Добавлено: 05 дек 2007, 09:23
Disillusioned
Кидаем на форму переменную-массив, начинаем редактировать ее форму, выбираем пункт меню "Внедрить SQL SELECT", пишем в нем запрос (возвращать он может сколько угодно полей, каждое поле будет помещено в отдельный массив, а отображаться они будут в виде таблицы на одной форме), параметры передаваемые в запрос должны начинаться с ':', нажимаем кнопку Аргументы и задаем и те же аргументы, что указали в тексте SQL, только без ':'. Собственно, заполнение осуществляется при помощи последовательного вызова функций f_RetriveForm и f_FormDataToArray в действии над переменными.

P.S. Твой вопрос вполне освещен в документации.

Добавлено: 05 дек 2007, 12:36
Александр
Disillusioned - если есть время давай еще раз посмотрим - не получается ничего - не понимаю.... точнее
смотри
1. есть локальный строковый массив mArray[..]
2. кидаю его на форму и в его свойствах внедряю SQL
допустим

Код: Выделить всё

select LSDBO.object_reference_view.Description as Name
From LSDBO.object_reference_view 
Where LSDBO.object_reference_view.Type_ID = 123456789
3. в результате этого получаю еще один массив - Name[..] не понятно зачем (если рассматривать только одну колонку)
а дальше что?
внедренный запрос вызывается сам при открытии и каждый раз при перерисовке?
но он (массив на форме) у меня пока все время пустой и в профайлере тоже не нашел этого вызова.. :(
а процедуры f_RetriveForm и f_FormDataToArray когда вызывать и в каком порядке? - вобщем полная каша в голове - ничего не понимаю
напиши если не сложно - что делать дальше? самого смысла пока уловить не могу никак :(
вроде задача проста есть одномерный строковый массив mArray[..] есть запрос возвращающий список строк - а как их подружить?....

Добавлено: 05 дек 2007, 13:41
Disillusioned
Имена столбцов должны быть идентичны именам переменных-массивов, если нет создаются новые переменные.

Добавлено: 05 дек 2007, 14:02
Александр
понял - а дальше что делать? каков общий алгоритм
как я понимаю сейчас - есть внедренный запрос - он что то- где то создает если его кто то активирует, после чего нужно функциями о которых ты писал - это что то вставить в форму? или как - ну не понимаю я :? :( мне бы реальный простой примерчик алгоритма с одномерным массивом на форме - а?