Включить кнопки в окне данных для новой строки powerbuilder

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

Я пробовал dw_scope.Modify("b_yes.Enabled=Yes"), но это включает кнопки для всех строк, когда я просто хочу включить только для новой строки.

Спасибо!

0
0
1 027
2

Ответы 2

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

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

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

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

Привет! Спасибо, но у меня есть только флажок для включения, который называется «включен» для кнопок. Я не могу выразить это. Я могу выразить только «видимый».

XLD_a 26.10.2018 14:01

Используйте тот же метод, что я описал, за исключением того, что установите / снимите флажок, чтобы установить значение включенного столбца.

Matt Balent 26.10.2018 14:11

Попробуйте функцию выражения 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.

Спасибо, но когда я вставляю новую строку, кнопка неактивна. И кнопки для предыдущих строк тоже отключены. Я хочу, чтобы кнопки для предыдущих строк были отключены, и была включена только кнопка для новой строки.

XLD_a 26.10.2018 14:46

: -? Я думаю, что мой синтаксис для Enabled был неправильным - значения 'Yes' или 'No', а не 1 или 0 ... Вы уловили ту ошибку, которую я сделал (извинения)? ... обновил свой исходный ответ

Frank Alvaro 26.10.2018 15:29

не надо извиняться. все еще не работает ... неверный синтаксис.

XLD_a 26.10.2018 15:43

@XLD_a - DOH! Я забыл заключить все выражение в одинарные кавычки: \ Отредактировал свой ответ (на этот раз провел полный тест 8 |).

Frank Alvaro 27.10.2018 16:55

Другие вопросы по теме