События, используемые для окна входа в Power Builder 10.0

У меня есть окно входа для входа в мое приложение, здесь я вставил таблицу с именем login1 и имеет два столбца как "username" а также "password", Я включил события для "входа" в два случая: 1) командная кнопка 2) клавиша ввода. Поэтому я использовал для записи следующего кода в событие нажатия кнопки и пользовательское событие, которое вызывает нажатие клавиши "Enter!" ключ.

if KeyDown(KeyEnter!) THEN   //In User Event case only
string ls_unm;
string ls_pass,ls_field;
ls_unm=dw_log.GetItemString(1,"user_name1");
ls_pass=dw_log.GetItemString(1,"password1");
select password1 into :ls_field  from login1 where login1.user_name1=:ls_unm;
if(ls_field=ls_pass) then  
commit; 
close (w_login);
open(w_main);
else
 rollback;
 messagebox( "","login faild");
 dw_log.Reset();
 dw_log.InsertRow(0);
 end if
    END if

но я всегда получаю ответ "сбой входа в систему", даже если я проверил его в режиме отладки, как я могу сделать правильный вход с этим

2 ответа

Я второй Эдурадо о AcceptText(),

использование if dw_log.accepttext() <> 1 then return, для обработки любых ошибок проверки данных.

Во-вторых, кнопки управления имеют Default свойство, которое будет вызывать событие нажатия, когда пользователь нажимает enter ключ. Вам не нужно использовать отдельные события для обоих. Просто скромное мнение.

Возможно, вам не хватает строки "AcceptText"?

if KeyDown(KeyEnter!) THEN   //In User Event case only
    string ls_unm;
    string ls_pass,ls_field;
    dw_log.AcceptText()
    ls_unm=dw_log.GetItemString(1,"user_name1");
    ls_pass=dw_log.GetItemString(1,"password1");
Другие вопросы по тегам