powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / PowerBuilder [игнор отключен] [закрыт для гостей] / индивидуальный DropDown
18 сообщений из 18, страница 1 из 1
индивидуальный DropDown
    #32912906
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.
...
Рейтинг: 0 / 0
индивидуальный DropDown
    #32912944
Gosha
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
на событие выпадения списка: если имя поля = поле2, то ретрайв дддв2 по значению в поле1
...
Рейтинг: 0 / 0
индивидуальный DropDown
    #32913139
zuzu
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
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 имеются оприделенные списки текстовых значений
...
Рейтинг: 0 / 0
индивидуальный DropDown
    #32913177
Фотография Филипп
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Это такой FAQ, что FAQее не бывает, почитай вот это:
...
Рейтинг: 0 / 0
индивидуальный DropDown
    #32913275
zuzu
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ФилиппЭто такой 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 ? (ведь на самом деле у меня дисплай колумн и дата колумн не одно и тоже, мама имеет сфой внутренний код и так со всеми значениями, не зря же это списки)
...
Рейтинг: 0 / 0
индивидуальный DropDown
    #32913568
Фотография Филипп
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Н-да. Может вам профессию поменять? :-)
ДДДВ заполни списком {мама,папа,ана,маша,дуся,федя, ...все другие вохможные значения}, остальное в статье...
...
Рейтинг: 0 / 0
индивидуальный DropDown
    #32915074
zuzu
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ФилиппН-да. Может вам профессию поменять? :-)
ДДДВ заполни списком {мама,папа,ана,маша,дуся,федя, ...все другие вохможные значения}, остальное в статье...
попробую еще раз

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

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

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

2 Филипп, никогда не ставь себя выше других.
...
Рейтинг: 0 / 0
индивидуальный DropDown
    #32916567
Фотография savosin_sergey
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
1. не хочу навязывать своё мнение, но "продукт" и "работа" -- свойства, чтобы их держать в одном стобце таблицы.. может проще изменить структуру базы?
2. у меня схожая проблема: надо было на экран отображать неопределённое заранее количество строк вида "название, значение" и ко "значению" привязать разные dropDownDataWindow (в зависимости от "названия"). я решил этот вопрос двумя способами:
 а) динамически создавал запрос (число столбцов = число "названий", на основе запроса делал
Код: plaintext
syntaxFromSql(..),
т.е. dw вида "бланк", а потом в цикле каждому столбцу присваивал соответствующее dropDownDataWindow.. c виду получалось то, что у тебя описано (в разных строках разные выпадающий dataWindow)
 б) создавал datawindow с несколькими столбцами (напр., одним) вида "grid", затем брал его
Код: plaintext
describe("datawindow.syntax"),
там добавлял нужное мне число table.columns (с помощью строковых манипуляций), всё это присваивал
Код: plaintext
modify("table(column..))"),
затем изменял запрос datawindow, затем работал с оформлением datawindow: столбцы добавлял (форматировал на основе того, кот. было в исходном datawindow) и надписи над ними:
Код: plaintext
modify("create column(..)")
и
Код: plaintext
modify("create text(..)").
Получался grid с нужным количеством столбцов.. правда, выпадающие datawindow я ещё не привязывал.. но собираюсь! ничего особо сложно быть не должно, кроме shareData для одинаковых справочников..
...
Рейтинг: 0 / 0
индивидуальный DropDown
    #32916988
zuzu
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
savosin_sergey1. не хочу навязывать своё мнение, но "продукт" и "работа" -- свойства, чтобы их держать в одном стобце таблицы.. может проще изменить структуру базы?

понятно что таблицы спроектированны не так, но к сожелению не я проектировал БД, ко мне пришел таск который надо было реализовать.
...
Рейтинг: 0 / 0
индивидуальный DropDown
    #32917036
Фотография savosin_sergey
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
по-идее, можно на событие dropdown (pbm_dwndropdown) устанавливать содержимое выпадаюших списков.. я бы туда полез, но такое ещё не пробовал!
...
Рейтинг: 0 / 0
индивидуальный DropDown
    #32917205
Фотография ЗоринАндрей
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Вот это правильно. что может быть проще - по pbm_dwndropdown поставил фильтр, по pbm_erasebkgnd снял. ну может еще парочку моментов надо будет учесть...
Мы это как-то уже обсуждали...
Как определить закрытие DDDW?
Филиппу мой метод не нравится. А мне не нравится метод Филиппа (или у кого там он это извр... кхгм.. решение позаимствовал)
...
Рейтинг: 0 / 0
индивидуальный DropDown
    #32917331
zuzu
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
savosin_sergeyпо-идее, можно на событие dropdown (pbm_dwndropdown) устанавливать содержимое выпадаюших списков.. я бы туда полез, но такое ещё не пробовал!
во во, меняешь выпадающий список, с тем что выпадет будет все ок, а заодно поменяется на короткое время (пока юзер не выберет значение из списка) visible value для для тех элементов которые имеют значения из другово списка :)
...
Рейтинг: 0 / 0
индивидуальный DropDown
    #32917379
Фотография Филипп
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
zuzu savosin_sergeyпо-идее, можно на событие dropdown (pbm_dwndropdown) устанавливать содержимое выпадаюших списков.. я бы туда полез, но такое ещё не пробовал!
во во, меняешь выпадающий список, с тем что выпадет будет все ок, а заодно поменяется на короткое время (пока юзер не выберет значение из списка) visible value для для тех элементов которые имеют значения из другово списка :)

Именно про это я и толковал в дискуссии, на которую ссылается г-н Зорин, когда говорил о проблемах с многорядностью...
...
Рейтинг: 0 / 0
индивидуальный DropDown
    #32923937
Фотография savosin_sergey
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
pbm_erasebkgnd можно заменить на pbm_paint (у нас так на фирме сделано).. для тех, кто боится, что фильтрация справочника может повлиять на значения в других строках datawindow, могу привести второй способ (кот. применяется в бибилиотеках нашей фирмы):
автор Способ 2.
Подключение справочника типа название-название: тогда код совпадает с названием, потому ничего не пропадает. Тогда: справочную таблицу пристегивать LEFT OUTER JOIN-ом в SQL основной, иметь кодовый столбец основной таблицы невидимым, а справочник пристегивать на Join-утый столбец справочной таблицы. Тогда можно вообще не фильтровать, а заменить фильтрацию SQL-м, но тоже при выпадении списка. При выборе значения из справочника присваивать соответствующий код невидимому столбц
...
Рейтинг: 0 / 0
индивидуальный DropDown
    #32924214
Фотография Филипп
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
savosin_sergeypbm_erasebkgnd можно заменить на pbm_paint (у нас так на фирме сделано).. для тех, кто боится, что фильтрация справочника может повлиять на значения в других строках datawindow, могу привести второй способ (кот. применяется в бибилиотеках нашей фирмы):
автор Способ 2.
Подключение справочника типа название-название: тогда код совпадает с названием, потому ничего не пропадает. Тогда: справочную таблицу пристегивать LEFT OUTER JOIN-ом в SQL основной, иметь кодовый столбец основной таблицы невидимым, а справочник пристегивать на Join-утый столбец справочной таблицы. Тогда можно вообще не фильтровать, а заменить фильтрацию SQL-м, но тоже при выпадении списка. При выборе значения из справочника присваивать соответствующий код невидимому столбц

К сожалению у нас тоже так сделано...
...
Рейтинг: 0 / 0
индивидуальный DropDown
    #32925216
Oleg1
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
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. Там же ставить текущую строку в списке. После выбора значения запоминать код в колонке.
...
Рейтинг: 0 / 0
индивидуальный DropDown
    #32926787
rcryo
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
автордля тех, кто боится, что фильтрация справочника может повлиять на значения в других строках datawindow еще один способ: фильтровать строки в DDDW не с помощью SetFilter, а SetDetailHeight. Правда придеться делать обработку нажатий стрелок на клаве вверх и вниз. У меня дежа вю или всё это уже было?
...
Рейтинг: 0 / 0
индивидуальный DropDown
    #32927399
Фотография Филипп
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
rcryo У меня дежа вю или всё это уже было?
Было. И в той статье, которую я прикладывал, про которую г-н ЗуЗу сказал - "так это не то, попробую есче раз объеснить...", тоже было...
...
Рейтинг: 0 / 0
18 сообщений из 18, страница 1 из 1
Форумы / PowerBuilder [игнор отключен] [закрыт для гостей] / индивидуальный DropDown
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]