Query Powerbuilder для некоторых флажков и ввода текста / singelineedit для showig сообщения - PullRequest
0 голосов
/ 24 января 2019

У меня есть 3 флажка и 1 вводимый текст.

Если я установлю флажок и введу некоторый текст во входной текст, я не хочу, чтобы окно сообщения отображалось.

ЕслиЯ не нажимаю флажок, но я ввожу текст, тогда должно появиться окно сообщения.

Мой вопрос: «Как мне это сделать в Powerbuilder?»

Вот мой код:

if Not IsNull(f_na) or Not IsNull(f_dep) or Not IsNull(f_krd) and IsNull (c_ao) then
    messagebox ('Perhatian','Kode AO baru harus diisi')
    return
end if

1 Ответ

0 голосов
/ 13 февраля 2019

Если какой-либо установленный флажок помешает отображению сообщения после ввода текста, то: Если это элемент управления SingleLineEdit или MultiLineEdit, то в обработчике события modified текстового элемента управления (т. Е. Элемента управления SingleLineEdit):

String ls_EditControlText

ls_EditControlText = this.Text

// If the text is not empty, and none of the checkboxes are checked, then 
// show a message and clear the input
IF NOT IsNull(ls_EditControlText) AND (ls_EditControlText <> "") THEN
    // f_na, f_dep, and f_krd are the Checkbox controls
    IF NOT (f_na.Checked OR f_dep.Checked OR f_krd.Checked) THEN
        MessageBox("Attention", "A new AO code must be filled in")

        this.Text = ""  // clear the input
    END IF
END IF

RETURN

Для элемента управления Edit или EditMask в DataWindow вы бы обработали событие itemchanged для элемента управления DataWindow:

String ls_EditControlText

ls_EditControlText = data

// If the text is not empty, and none of the checkboxes are checked, then 
// show a message and clear the input
IF NOT IsNull(ls_EditControlText) AND (ls_EditControlText <> "") THEN
    // f_na, f_dep, and f_krd are the Checkbox controls
    IF NOT (f_na.Checked OR f_dep.Checked OR f_krd.Checked) THEN
        MessageBox("Attention", "A new AO code must be filled in")

        RETURN 2 // Reject the text input data but allow focus to change
    END IF
END IF

RETURN 0
...