Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / PowerBuilder Новый топик    Ответить
 индивидуальный DropDown  [new]
zuzu
Member

Откуда: Madrid, España
Сообщений: 343
попробую на примере:
есть ДВ:

поле1 поле2
знач1 dropdown (v=1..7)
знач2 dropdown (v=1..31)
знач2 dropdown (v=1..31)
знач1 dropdown (v=1..7)

как сделать чтобы dropdown 2 поля зависело от значения поля 1 ?
без ПФЦ для PB8.
12 фев 05, 14:35    [1317571]     Ответить | Цитировать Сообщить модератору
 Re: индивидуальный DropDown  [new]
Gosha
Member

Откуда: Odessa
Сообщений: 217
на событие выпадения списка: если имя поля = поле2, то ретрайв дддв2 по значению в поле1
12 фев 05, 15:46    [1317619]     Ответить | Цитировать Сообщить модератору
 Re: индивидуальный DropDown  [new]
zuzu
Member

Откуда: Madrid, España
Сообщений: 343
Gosha
на событие выпадения списка: если имя поля = поле2, то ретрайв дддв2 по значению в поле1

это не поможет, ДДДВ идет для всей колонки
что будет если:
допустим имеем грид с данными:
знач1 6
знач2 20
знач2 25
знач1 7
знач1 5

допстим юзер кликает мышкой на 5 - я должен иметь ДДДВ 1-7
тоесть я делаю ретриев ДДДВ с параметрами, но что будет с видом для комбинаций:
знач2 20
знач2 25
ведь в етот момент я поменяю ДДДВ для всей колонки !!!

ЗЫ вместо 1-7, 1-31 имеются оприделенные списки текстовых значений
13 фев 05, 00:53    [1317902]     Ответить | Цитировать Сообщить модератору
 Re: индивидуальный DropDown  [new]
Филипп
Member

Откуда: Boston, MA, USA (c 1989 ) б. Москва
Сообщений: 1880
Это такой FAQ, что FAQее не бывает, почитай вот это:

К сообщению приложен файл (dddw_tech.zip - 62Kb) cкачать
13 фев 05, 08:07    [1317995]     Ответить | Цитировать Сообщить модератору
 Re: индивидуальный DropDown  [new]
zuzu
Member

Откуда: Madrid, España
Сообщений: 343
Филипп
Это такой FAQ, что FAQее не бывает, почитай вот это:

так это не то, попробую есче раз объеснить:

есть ДВ(поле1, поле2) типа грид, редактируемый.
поле1 может иметь значения: {КОД1, КОД2}
поле2 может иметь значения в зависемости от поле1,
если поле1=КОД1 то значение для поле2 будет одно из: {мама,папа}
если поле1=КОД2 то значение для поле2 будет одно из: {ана,маша,дуся,федя}

далее, допустим ДВ заполнен со следующими значениями:
поле1 поле2
------------------
КОД1 мама
КОД2 ана
КОД1 папа
КОД2 маша
КОД1 мама

теперь если я ДДДВ заполню списком {ана,маша,дуся,федя} когда попробю поменять значение для поле2 которое имеет КОД2, то что отобразится на экране для поле2 которое имеет КОД1 ? (ведь на самом деле у меня дисплай колумн и дата колумн не одно и тоже, мама имеет сфой внутренний код и так со всеми значениями, не зря же это списки)
13 фев 05, 13:50    [1318123]     Ответить | Цитировать Сообщить модератору
 Re: индивидуальный DropDown  [new]
Филипп
Member

Откуда: Boston, MA, USA (c 1989 ) б. Москва
Сообщений: 1880
Н-да. Может вам профессию поменять? :-)
ДДДВ заполни списком {мама,папа,ана,маша,дуся,федя, ...все другие вохможные значения}, остальное в статье...
14 фев 05, 02:41    [1318568]     Ответить | Цитировать Сообщить модератору
 Re: индивидуальный DropDown  [new]
zuzu
Member

Откуда: Madrid, España
Сообщений: 343
Филипп
Н-да. Может вам профессию поменять? :-)
ДДДВ заполни списком {мама,папа,ана,маша,дуся,федя, ...все другие вохможные значения}, остальное в статье...

попробую еще раз

--------------------------------------------------------------------------
поле1 | поле2
--------------------------------------------------------------------------
продукт | яблоко // значение из списка {яболоко, слива, персик}
--------------------------------------------------------------------------
работа | собрать // значение из списка {собрать, положить, принять}
--------------------------------------------------------------------------
продукт | слива // значение из списка {яболоко, слива, персик}
--------------------------------------------------------------------------
работа | положить // значение из списка {собрать, положить, принять}
--------------------------------------------------------------------------

список {яболоко, слива, персик} в БД имеют соответсвенно коды {1, 2, 3}
список {собрать, положить, принять} в БД имеют соответсвенно коды {1, 2, 3}

теперь если я меняю ДДДВ в рунтайме то у меня соответственно меняется и дисплай валю, тоесть такое в ПБ не предвиденно.
я свою проблему решил по другому, сделал ДВ типа табулар, поставил 2 калонки одну сверх второй, и в зависимости от знасения в поле1 меняю свойство visible этих двух колонок

2 Филипп, никогда не ставь себя выше других.
14 фев 05, 18:42    [1320499]     Ответить | Цитировать Сообщить модератору
 Re: индивидуальный DropDown  [new]
savosin_sergey
Member

Откуда: Москва
Сообщений: 451
1. не хочу навязывать своё мнение, но "продукт" и "работа" -- свойства, чтобы их держать в одном стобце таблицы.. может проще изменить структуру базы?
2. у меня схожая проблема: надо было на экран отображать неопределённое заранее количество строк вида "название, значение" и ко "значению" привязать разные dropDownDataWindow (в зависимости от "названия"). я решил этот вопрос двумя способами:
 а) динамически создавал запрос (число столбцов = число "названий", на основе запроса делал
syntaxFromSql(..),
т.е. dw вида "бланк", а потом в цикле каждому столбцу присваивал соответствующее dropDownDataWindow.. c виду получалось то, что у тебя описано (в разных строках разные выпадающий dataWindow)
 б) создавал datawindow с несколькими столбцами (напр., одним) вида "grid", затем брал его
describe("datawindow.syntax"),
там добавлял нужное мне число table.columns (с помощью строковых манипуляций), всё это присваивал
modify("table(column..))"),
затем изменял запрос datawindow, затем работал с оформлением datawindow: столбцы добавлял (форматировал на основе того, кот. было в исходном datawindow) и надписи над ними:
modify("create column(..)")
и
modify("create text(..)").
Получался grid с нужным количеством столбцов.. правда, выпадающие datawindow я ещё не привязывал.. но собираюсь! ничего особо сложно быть не должно, кроме shareData для одинаковых справочников..
15 фев 05, 14:27    [1322378]     Ответить | Цитировать Сообщить модератору
 Re: индивидуальный DropDown  [new]
zuzu
Member

Откуда: Madrid, España
Сообщений: 343
savosin_sergey
1. не хочу навязывать своё мнение, но "продукт" и "работа" -- свойства, чтобы их держать в одном стобце таблицы.. может проще изменить структуру базы?

понятно что таблицы спроектированны не так, но к сожелению не я проектировал БД, ко мне пришел таск который надо было реализовать.
15 фев 05, 16:41    [1322947]     Ответить | Цитировать Сообщить модератору
 Re: индивидуальный DropDown  [new]
savosin_sergey
Member

Откуда: Москва
Сообщений: 451
по-идее, можно на событие dropdown (pbm_dwndropdown) устанавливать содержимое выпадаюших списков.. я бы туда полез, но такое ещё не пробовал!
15 фев 05, 17:59    [1322998]     Ответить | Цитировать Сообщить модератору
 Re: индивидуальный DropDown  [new]
ЗоринАндрей
Member

Откуда: Санкт-Петербург
Сообщений: 3004
Вот это правильно. что может быть проще - по pbm_dwndropdown поставил фильтр, по pbm_erasebkgnd снял. ну может еще парочку моментов надо будет учесть...
Мы это как-то уже обсуждали...
Как определить закрытие DDDW?
Филиппу мой метод не нравится. А мне не нравится метод Филиппа (или у кого там он это извр... кхгм.. решение позаимствовал)
15 фев 05, 19:19    [1323225]     Ответить | Цитировать Сообщить модератору
 Re: индивидуальный DropDown  [new]
zuzu
Member

Откуда: Madrid, España
Сообщений: 343
savosin_sergey
по-идее, можно на событие dropdown (pbm_dwndropdown) устанавливать содержимое выпадаюших списков.. я бы туда полез, но такое ещё не пробовал!

во во, меняешь выпадающий список, с тем что выпадет будет все ок, а заодно поменяется на короткое время (пока юзер не выберет значение из списка) visible value для для тех элементов которые имеют значения из другово списка :)
15 фев 05, 21:26    [1323377]     Ответить | Цитировать Сообщить модератору
 Re: индивидуальный DropDown  [new]
Филипп
Member

Откуда: Boston, MA, USA (c 1989 ) б. Москва
Сообщений: 1880
zuzu
savosin_sergey
по-идее, можно на событие dropdown (pbm_dwndropdown) устанавливать содержимое выпадаюших списков.. я бы туда полез, но такое ещё не пробовал!

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


Именно про это я и толковал в дискуссии, на которую ссылается г-н Зорин, когда говорил о проблемах с многорядностью...
15 фев 05, 22:44    [1323435]     Ответить | Цитировать Сообщить модератору
 Re: индивидуальный DropDown  [new]
savosin_sergey
Member

Откуда: Москва
Сообщений: 451
pbm_erasebkgnd можно заменить на pbm_paint (у нас так на фирме сделано).. для тех, кто боится, что фильтрация справочника может повлиять на значения в других строках datawindow, могу привести второй способ (кот. применяется в бибилиотеках нашей фирмы):
автор
Способ 2.
Подключение справочника типа название-название: тогда код совпадает с названием, потому ничего не пропадает. Тогда: справочную таблицу пристегивать LEFT OUTER JOIN-ом в SQL основной, иметь кодовый столбец основной таблицы невидимым, а справочник пристегивать на Join-утый столбец справочной таблицы. Тогда можно вообще не фильтровать, а заменить фильтрацию SQL-м, но тоже при выпадении списка. При выборе значения из справочника присваивать соответствующий код невидимому столбц
18 фев 05, 17:16    [1332123]     Ответить | Цитировать Сообщить модератору
 Re: индивидуальный DropDown  [new]
Филипп
Member

Откуда: Boston, MA, USA (c 1989 ) б. Москва
Сообщений: 1880
savosin_sergey
pbm_erasebkgnd можно заменить на pbm_paint (у нас так на фирме сделано).. для тех, кто боится, что фильтрация справочника может повлиять на значения в других строках datawindow, могу привести второй способ (кот. применяется в бибилиотеках нашей фирмы):
автор
Способ 2.
Подключение справочника типа название-название: тогда код совпадает с названием, потому ничего не пропадает. Тогда: справочную таблицу пристегивать LEFT OUTER JOIN-ом в SQL основной, иметь кодовый столбец основной таблицы невидимым, а справочник пристегивать на Join-утый столбец справочной таблицы. Тогда можно вообще не фильтровать, а заменить фильтрацию SQL-м, но тоже при выпадении списка. При выборе значения из справочника присваивать соответствующий код невидимому столбц


К сожалению у нас тоже так сделано...
18 фев 05, 18:57    [1332465]     Ответить | Цитировать Сообщить модератору
 Re: Как изменить ширину Border в PB 7.0.3  [new]
Oleg1
Member

Откуда:
Сообщений: 121
zuzu
попробую на примере:
есть ДВ:

поле1 поле2
знач1 dropdown (v=1..7)
знач2 dropdown (v=1..31)
знач2 dropdown (v=1..31)
знач1 dropdown (v=1..7)

как сделать чтобы dropdown 2 поля зависело от значения поля 1 ?
без ПФЦ для PB8.

ПФЦ тут не помошник. Если это форма, то все просто. Если строк несколько, то сложнее. Самый простой способ -- это событие dropdown, но при отрисовке в других строках будут появляться коды, да и значение поля м.б. выбрано из списка без его открытия.
Если в списке две колонки -- код и значение, то для хранения кода надо сделать скрытую колонку, а в редактируемом поле хранить видимые значения и к нему привязать список по значениям. Фильтрация списка -- в RowFocusChange. Там же ставить текущую строку в списке. После выбора значения запоминать код в колонке.
21 фев 05, 01:25    [1333974]     Ответить | Цитировать Сообщить модератору
 Re: индивидуальный DropDown  [new]
rcryo
Member

Откуда: Москва
Сообщений: 323
автор
для тех, кто боится, что фильтрация справочника может повлиять на значения в других строках datawindow
еще один способ: фильтровать строки в DDDW не с помощью SetFilter, а SetDetailHeight. Правда придеться делать обработку нажатий стрелок на клаве вверх и вниз. У меня дежа вю или всё это уже было?

К сообщению приложен файл (n_cst_dwsrv_dropdownfilter.rar - 4Kb) cкачать
21 фев 05, 16:59    [1336211]     Ответить | Цитировать Сообщить модератору
 Re: индивидуальный DropDown  [new]
Филипп
Member

Откуда: Boston, MA, USA (c 1989 ) б. Москва
Сообщений: 1880
rcryo
У меня дежа вю или всё это уже было?

Было. И в той статье, которую я прикладывал, про которую г-н ЗуЗу сказал - "так это не то, попробую есче раз объеснить...", тоже было...
22 фев 05, 07:37    [1337029]     Ответить | Цитировать Сообщить модератору
Все форумы / PowerBuilder Ответить