Включить кнопки в окне данных для новой строки PowerBuilder - PullRequest
0 голосов
/ 26 октября 2018

У меня есть окно данных со строкой, содержащей выпадающий список, 2 кнопки и несколько флажков.Я хочу включить кнопки после выбора чего-либо из выпадающего списка.Но мне также нужно вставить новую строку и включить кнопки для этой строки.Как я могу это сделать?Я пробовал dw_scope.Modify ("b_yes.Enabled = Yes"), но это включает кнопки для всех строк, когда я просто хочу включить только для новой строки.

Спасибо!

Ответы [ 2 ]

0 голосов
/ 26 октября 2018

Попробуйте функцию выражения IsRowNew() DataWindow:

dw_scope.Modify("b_yes.Enabled='0~tif(IsRowNew(), 1, 0)'")

По умолчанию свойство Enabled будет отключено (0), и будет активировано (1) только в том случае, если строка новая. Добавьте любые другие выражения в if() для существующих строк, т. Е.

dw_scope.Modify("b_yes.Enabled='0~tif( (IsRowNew() ) or ( some_other_column = ~~'some value~~' ), 1, 0 )'")

Примечание: это последнее выражение не будет «вставлять», когда выбрано значение DDLB, пока фокус колонки не изменится после выбора. Если вы хотите захватить само выделение, не выходя из DDLB, вам нужно подключиться к событию selectionchanged.

0 голосов
/ 26 октября 2018

Добавьте «скрытый» строковый столбец в окно данных, назовем его «включить». В 'enabled' свойства кнопки вы можете поместить выражение, похожее на это:

if (enable [0] = 'Y', 'Yes', 'No')

Это активирует / деактивирует кнопку в зависимости от значения столбца «enable» в той же строке.

В вашем коде вам нужно будет установить значение столбца 'enable' в зависимости от того, какие критерии включают / отключают кнопку. Обычно вы делаете это с помощью метода SetItem или с точечной нотацией.

...