События, используемые для окна входа в 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");