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

Добавлено: 22 апр 2008, 08:43
Александр
техподдержка посоветовала сделать два массива - один в фоне для отбора значений а второй на форме - отформатированный -с выпадающим списком в одной из колонок - и собственно нужно сначала отобрать значения в первый массив а потом перебросить их во второй, красивый

конечно интересный подход - но это же бред (на мой взгляд) у меня массив содержит 20 колонок - т.е. для реализации такого подхода нужно делать еще 20 переменных для фонового массива - УЖАС :? :? :?

подскажите какое нибудь БОЛЕЕ красивое решение :wink: :wink:

Добавлено: 22 апр 2008, 22:20
Старик Крупский
А вроде не должен список пропадать... Завтра на работе проверю. Кстати, а что значит пропадает? Он выпадает, но пустой? И еще более кстати, - запрос=-то должен возвращать не 'Доллар' as sListCurrency, а 'USD' as sListCurrency. Значение он должен возвращать, а не его имя.
Так... Начинаем думать... Если не поможет замена Доллара на USD, то можно попробовать делать modify для свойства values.

Добавлено: 23 апр 2008, 06:04
Александр
да - выпадает но пустой (без значений)
modify - да но где и как
т.е. сначала, одним запросом, набрать массив допустим 100 строк на 20 колонок, а потом пробежаться modify по колонке sListCurrency??? - но в этом случае юзер увидит все это на экране..... :? :? а не хотелось бы, и массив гасить на время преобразования тоже не хотелось бы

хотя- наверно так и поступим :wink: :wink: :wink:

Добавлено: 23 апр 2008, 09:26
Старик Крупский
Modify делается не для каждой строки, а для переменной. Так что цикл не нужен.

Добавлено: 23 апр 2008, 09:32
Александр
что ты имеешь в виду?
ведь надо сделать следующее
1. Запросом заполнить массив (Допустим запрос вернул 20 строк)
2. В колонке валюта - стоят пустые списки и значения из запроса
3. Нужно
- пройти циклом по колонке валюта
- брать текущее значение
- модифицировать колонку выпадающим списком 'USD~tДоллар/EUR~tЕвро/RUB~t/Рубль'
- выбрать в списке значение по умолчанию равное значению возвращаемому запросом

или ты имеешь в виду чтото другое?

Добавлено: 23 апр 2008, 10:55
Старик Крупский
У меня получилось так:
1. Заполнил массив запросом (f_EmbeddedSQLSelect)
2. Сделал f_ModifyForm для колонки, а не для каждой строки.

Добавлено: 23 апр 2008, 12:00
Александр
не получается - точнее получается не то :wink:
давай по пунктам посмотрим
1. Внедряем запрос (запрос чего то там возвращает - валюту ставим намертво (для отладки типа) - Рубль)

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

f_EmbeddedSQLSelect ( this , 'Select 0 as sType, rw.description as sName, ~'т~' as sBtName, 0 as sCount, cast(0 as double precision) as sPriceBase, 0 as sPriceBaseNDS, ~'Рубль~' as sListCurrency, ~'т~' as sBtPriceBase, 0 as sPriceDiscount00, 0 as sPriceDiscount01, cast(0 as double precision) as sPriceAll, ~'~' as sStatus, ~'т~' as sBtStatus, rw.id as sObjID,  0 as sProductID From lsdbo.object_reference_view rw, lsdbo.object_type_view tw, lsdbo.tree_link_view tl Where (tl.parent_id=100004672200000) and (rw.type_id = tw.id) and (tw.mnemo = ~'Psft~') AND (tl.link_type_id = 1) and (rw.id = tl.link_id)
' , '' , 'sFormPartList' )
2. Запускаем запрос

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

f_RetrieveForm ( this , '' , 'sFormPartList' )
4. Модифицируем список

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

f_ModifyForm ( this , 'sFormPartList' , 'sListCurrency.values  = ~'' + 'USD~tДоллар/EUR~tЕвро/RUB~t/Рубль' 
+ '~'')
5. Помещаем на форму

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

f_FormDataToArray ( this , 'sFormPartList' )
и знаешь что получается? :wink:
получается выпадающий список типа
USD - Доллар
EUR - Евро
RUB - Рубль
Рубль - Рубль
т.е. не три позиции а четыре
вот как избавиться от этого последнего рубля (который пришел к нам из запроса) не знаю - может все эти пять действий нужно в другом порядке выполнить?

Добавлено: 23 апр 2008, 14:09
Александр
упс :wink: :wink: :wink:
'USD~tДоллар/EUR~tЕвро/RUB~t/Рубль'
вот она зараза - ошибочка - четвертая строчка
надо было
'USD~tДоллар/EUR~tЕвро/RUB~tРубль'

но проблема осталась еще, мы уже обсуждали как-то
если запрос возвращает рубль то если в этом списке выбрать доллар - будет ошибка т.к. доллар длинее на одну букву чем рубль (а чтоб небыло ошибки - значение возвращаемое запросом для вставки в выпадающий список должно быть самым длинным из всех значений выпадающего списка)

но что делать если запрос возвращает рубль - не писать же как посоветовала тех поддержка Рубль РФ

Крупский- СПАСИБО и выручай еще раз :wink: :wink: нужна какаянить гениальная идея :wink:

Добавлено: 23 апр 2008, 14:20
Александр
и это решили, криво правда - да и...
короче к значению валюты возвращаемому запросом добавляем строку из 20 пробелов - т.е. в любом случае возвращаемая строка будет длинее всех строк в списке
а потом делаем цикл по этому массиву и триммируем эту строчку - во как

работает

ps
я с этой Лоцией скоро выйду в виртуальную реальность и не вернусь больше :wink: :wink: пора в отпуск

Добавлено: 23 апр 2008, 17:05
Старик Крупский
:-)

Добавлено: 24 апр 2008, 07:28
Александр
Вопрос - как определить ID объекта по которому запущена работа

Мне нужен запрос по дочерним объектам от объекта по которому запущена работа, для этого желательно иметь ID родителя...

как его достать?

ps
только не говорите что для этого нужно запускать внешнее действие по объектам :wink:

Добавлено: 24 апр 2008, 12:22
gali
может я не въехала, но ид объекта, по которому запущена работа (если своим действием, точно, другое не проверяла) достается просто. В работе описывается документ, например "текущий", на открытие формы вешаешь действие "над переменными" и переменной ид присваиваешь выбором из АТРИБУТЫ, ДОКУМЕНТЫ ШАБЛОНА, ТЕКУЩИЙ справа выбираешь id

Добавлено: 24 апр 2008, 12:26
Александр
:wink: :wink: :wink: где ты была 4 часа назад :wink:
действительно так и есть - я просто подумал что это атрибут какойто и не стал заморачиваться - внешнее действие написал

все вопрос снят, спасибо :wink:

Добавлено: 24 апр 2008, 12:43
gali
щаз подробно по минутам распишу :)

Добавлено: 30 апр 2008, 10:17
Александр
Вопрос по завершению одного из внешних действий (из цепочки действий) события по кнопке отмена

исходные данные
есть событие
на нем висят последовательно
-действие по изменению внешних объектов (Party) это действие добавляет дочерний объект в базу
-действие по изменению внутренних переменных это действие перезаписывает массив WorkFlow существующими дочерними объектами

вопрос вот в чем
- если первое действие завершается кнопкой отмена или X второе действие не выполняется - почему?
- если в первом действии встречается переход на последнюю ПУСТУЮ строку действия - второе действие также не выполняется - опять же почему?

никто не сталкивался с подобным - может можно както хитро обойти? избежать разрыва цепочки??