|
回到宿舍调试了一下,
发现到第三个数据时,password_edit_set()就出现illegal number!很奇怪
想不通!
调出程序出来调试一下,很复杂,看不明白,
你自己看一下吧!
table = "e1.xls";
rc = ddt_open(table, DDT_MODE_READ);
if (rc!= E_OK && rc != E_FILE_OPEN)
pause("Cannot open table.");
ddt_get_row_count(table,table_RowCount);
for(table_Row = 1; table_Row <= table_RowCount; table_Row ++)
{
ddt_set_row(table,table_Row);
# Login
set_window ("Login", 3);
obj_type ("Agent Name:","<kCtrl_L>");
edit_set ("Agent Name:", ddt_val(table,"Name_1"));
edit_set ("Agent Name:", ddt_val(table,"Name_1"));
password_edit_set("Password_1:", ddt_val(table,"pwd"));
button_press ("OK");
# 字符输入错误,弹出错误窗口
if (win_exists("Flight Reservations")==E_OK)
{
win_mouse_click ("Flight Reservations", 120, 13);
set_window ("Flight Reservations", 3);
button_press ("确定");
}
#如果用户名和密码都为用空
if(ddt_val(table,"Name_1")== ""||ddt_val(table,"pwd") == "")
{
tl_step("用户名和密码",0,"用户名和密码都为空!");
}
else
{
#sprintf("%." & Agent Name: & "f","Name_1");
tl_step("用户名和密码",1,"用户名和密码都可能为空!");
#pause(ddt_val(table,"Name_1"));#如果不为空就输出
# pause(ddt_val(table,"pwd"));
}
}
ddt_close(table);
public function password_edit_set(edit, text)
{
auto text_buf, i, timeout,old_report_name;
auto status;
web_get_timeout(timeout);
if (nargs() != 2)
return(report_param_msg());
get_report_info(old_report_name);
save_report_info("edit_set");
if (Y2K && getvar("sysmode") != "replay")
Y2K_edit_translate(edit, text, text_buf);
else
text_buf = text;
if (window_is_a_browser_or_frame())
{
ns_dont_pop_wizard = TRUE;
for (i=0;i<timeout;i++)
{
status = activate_function(TOBJ, edit, "web_password_edit_set", text_buf);
if (status == E_AREA_OUT)
set_window(GUI_get_window(),1);
else
break;
}
ns_dont_pop_wizard = FALSE;
status = activate_function(TOBJ, edit, "web_password_edit_set", text_buf);
}
else
status = activate_function(TOBJ, edit, "_password_edit_set", text_buf);
save_report_info(old_report_name);
return(status);
}
public function edit_set(in edit, in str, in date_source, in date_target)
{
auto desc, file;
if(getvar("sysmode") == "replay") {
GUI_map_get_desc (GUI_get_window(), edit, desc, file);
return (_edit_set(desc, str));
}
else {
if(nargs() == 4)
return(Y2K_edit_set(edit, str, date_source, date_target));
else if(nargs() == 3)
return(Y2K_edit_set(edit, str, date_source));
else
return(Y2K_edit_set(edit, str));
}
}
public function Y2K_edit_set(in edit, in new_text, in date_source, in date_target)
{
auto trans_text;
if(nargs() == 4)
Y2K_edit_translate(edit, new_text, trans_text, date_source, date_target);
else if(nargs() == 3)
Y2K_edit_translate(edit, new_text, trans_text, date_source);
else
Y2K_edit_translate(edit, new_text, trans_text);
return (activate_function(TEDIT, edit, "_edit_set", trans_text));
}
public function Y2K_edit_translate(in edit, in new_text, out trans_text, in date_source, in date_target)
{
auto source, target, file, rcs, rct, win_name, class, desc;
auto age_type, age_d, age_m, age_y, rca, rcd, rcm, rcy;
rca = rcd = rcm = rcy = 1;
age_type = DEFAULT_AGING;
age_d = age_m = age_y = 0;
win_name = GUI_get_window();
source = "";
if (nargs() == 5) {
source = date_source;
target = date_target;
rcs = rct = 0;
}
else {
if(nargs() == 4) {
source = date_source;
rcs = 0;
}
if (get_Y2K_type_mode() == DISABLE_OVERRIDE ||
(TE && Y2K_get_capture_mode() != FIELD_METHOD)) {
rcs = rct = 1;
if(nargs() == 4) rcs = 0;
}
else {
win_get_info(win_name,"class",class);
if (class == "mic_if_win")
rcs=rct=1;
else {
GUI_map_get_desc (win_name, edit, desc, file);
if(source == "")
rcs=GUI_buf_get_data_attr(file,win_name,edit,"date_source",source);
rct=GUI_buf_get_data_attr(file,win_name,edit,"date_target",target);
rca = GUI_buf_get_data_attr(file,win_name,edit,"age_type",age_type);
if (!rca) {
rcd = GUI_buf_get_data_attr(file, win_name, edit, "age_days", age_d);
rcm = GUI_buf_get_data_attr(file, win_name, edit, "age_months", age_m);
rcy = GUI_buf_get_data_attr(file, win_name, edit, "age_years", age_y);
}
if (rca || rcd || rcm || rcy)
age_type = DEFAULT_AGING;
}
}
}
type_translate(source, target, new_text, trans_text, rcs, rct, age_type, age_d, age_m, age_y, FALSE);
}
#
# Popup an error message about illegal number of parameters.
#
public function report_param_msg(in func_name)
{
auto doagain;
process_return_value(E_ILLEGAL_NUM_OF_PARAMS, func_name, TWINDOW, 0, doagain);
return(E_ILLEGAL_NUM_OF_PARAMS);
}
#--------------------------------------------------------------------------------------------------#
public function window_is_a_browser_or_frame(win, timeout)
{
auto hWnd, rc;
if (nargs() == 0 )
rc = current_window_is_a_browser_or_frame(0);
else if (nargs() < 3 ) {
ns_dont_pop_wizard = TRUE;
rc = win_get_info(win,"handle",hWnd);
ns_dont_pop_wizard = FALSE;
if (rc != E_OK) {
return FALSE;
}
rc = current_window_is_a_browser_or_frame(hWnd);
}
else
{
report_param_msg();
return FALSE;
}
return rc;
}
[ Last edited by QA_BAY on 2005-1-1 at 20:37 ] |
|