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

Добавлено: 01 апр 2008, 13:54
Александр
Вопрос по событию перед закрытием окна массива

вопрос такой - в этом событии мне нужно добавить строку из одного массива в другой

если мы жмем ок на форме массива и закрываем его - событие срабатывает и все ок

а что делать если мы на форме нажали отмена - ведь событие опять сработает и добавит строку в другой массив - но в данном случае этого делать не нужно

как обойти таку ситуацию - как понять что нажата кнопка отмена?

Добавлено: 01 апр 2008, 15:08
Старик Крупский
Функция f_OpenFreeForm возвращает число, соответствующее нажатой кнопке (см. подсказку к функции). Правда возвращает уже ПОСЛЕ закрытия формы массива. Поэтому действие выполнится в любом случае :-(
Но можно извратиться и после закрытия формы проанализировать возвращенное число и что-то там в массиве поменять. Хотя, подозреваю, что это может непросто. Это ж надо запомнить, что было до ТОГО, и потом его восстановить.
Так что требуй, чтобы по отмене действия не выполнялись. Это было бы вполне логично.

Добавлено: 01 апр 2008, 15:10
Александр
да мне уже ответили - сейчас если массив открыт кнопкой то по ок событие есть а по отмене нет, а если функцией (как у меня) то срабатывает всегда - в 4.30 сделают нормально (как по кнопке)

Добавлено: 04 апр 2008, 09:05
Александр
Вопрос Как поставить первое значение выпадающего списка

раньше уже было, и мы добавляли значение '...Все' и сами же ставили его по умолчанию

а теперь без этого значения
я через

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

f_ModifyForm ( this , 'dFormProduct' , 'dFrom.values  = ~''  + f_ExecSQLSelect ('Select...
получаю выпадающий список, и я не знаю что в этом списке
но в любом случае что-то есть
как теперь поставить в строку списка любое значение которое в нем присутствует

единственное что приходит на ум - запустить запрос второй раз
и ограничить его вывод одним результатом типа

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

Select Top1
а может есть еще какое решение?

Добавлено: 04 апр 2008, 12:35
Disillusioned
Можно первое значение извлечь из строки, возвращаемой запросом.

Добавлено: 04 апр 2008, 12:42
Александр
каким образом? если можно - подробнее

вот запрос

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

 f_ExecSQLSelect ('SELECT ........', '~t' , '/' )
т.е. он возвращает допустим какую-то отформатированную строку значений

я просто не совсем понимаю т.е.
- сначала получить строку запросом
- потом в какую-то переменную вырезать кусок до первого разделителя
- потом модифицировать список формы всей строкой запроса
- потом присвоить списку первое вырезанное значение?

так? или как то проще?

Добавлено: 04 апр 2008, 12:46
Disillusioned
Именно это я и имел в виду.

Добавлено: 04 апр 2008, 12:48
Александр
:wink: все таки два идущие подряд запроса - выглядят более привлекательно :wink: да и операций в два раза меньше
все равно спасибо :wink:

Добавлено: 04 апр 2008, 13:26
Старик Крупский
А вот по скорости два запроса могут работать дольше , чем запрос + нарезка строки

Добавлено: 04 апр 2008, 13:33
Александр
Вопрос по отдельному анализу имени и значения выпадающего списка

Не напомните в WorkFlow мне нужно использовать имена выпадающего списка (я в них хочу закодировать информацию по управлению интерфейсом)
т.е. есть список формата

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

             имя                              значение
 'наименование строки списка .....10'             15
мне нужно взять имя вырезать последние 2 знака и в соответствии с ними управлять видимостью 2х элементов формы

как это можно сделать? какой функцией? какой синтаксис? в смысле как вытащить именно имя а не значение?

ps
в значении я не могу ничего кодировать :? если конечно не разбивать число на два байта и отдельно анализировать каждый из них в двоичном виде :wink: :wink:

Добавлено: 04 апр 2008, 19:44
Старик Крупский
Я сейчас из дома пишу и на память не очень помню, но смысл в том, что в форме доступна функция из группы "Формы" и называется она что-то типа DisplayValue. Она возвращает видимое пользователем значение. Берешь

Right (DisplayValue (<имя_колонки>), 2)

Вот тебе и 2 знака.

Добавлено: 07 апр 2008, 09:30
Александр
да есть такая функция LookupDisplay но к сожалению она работает в вычисляемом поле нормально, а при попытке вставить ее в действие выдает ошибку синтаксиса - хотя синтаксис и там и там одинаков

ps
ну во всяком случае у меня не получилось, может конечно проблема в том что выпадающий список расположен на форме внедренного массива, а синтаксис этой функции для такого случая я не знаю :? :?

Добавлено: 08 апр 2008, 13:00
Александр
Как одним движением убить (очистить) массив/выпадающий список?

собственно это и есть вопрос :wink:

Добавлено: 08 апр 2008, 20:40
Старик Крупский
f_ExcludeArrEl

Добавлено: 21 апр 2008, 08:39
Александр
Вопрос по выпадающему списку внутри внедренного массива

Скажите как решить следующую проблему
есть внедренный массив проинициализированный непосредственно на форме массива следующим образом (через контекстное меню)

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

         Select 
                              0 as sType,
                              '' 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,  
                              0 as sObjID, 
                              0 as sProductID 
далее на самой форме массива в поле sListCurrency вручную добавляем список Доллар-USD Рубль - RUB Евро - EUR

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

теперь проблема
я заполняю данный массив своим запросом - который возвращает все колонки и в список валют ставит допустим Доллар - НО при этом сам выпадающий список валют ПРОПАДАЕТ

подскажите как решить эту проблему может в колонке возвращающей валюту сразу ставить список типа 'Доллар~tUSD/Евро~tEUR/Рубль~tRUB' - но у меня не получилось так - да и значение по умолчанию в данном случае поставить проблематично

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