我正在使用PowerBuilder7.0版本。
我正在处理库存项目。 我坚持要检索价值问题。
在主窗口中设计了搜索按钮 - 代码为 -
//*********************************************************//
//Clicked Event of Search Button on a Window
//*********************************************************//
gs_srcharg.srchok = false
open(w_srchemp)
if gs_srcharg.srchok = false then // User has pressed Cancel Button
return
end if
dw_1.settaborder("item_code", 0)
dw_1.settaborder("grp_cd",0)
dw_1.settaborder("cat_cd",0)
dw_1.settaborder("sgrp_cd",0)
i_newrec = false
cb_new.enabled=false
//messagebox("er",gs_srcharg.id)
dw_1.retrieve(gs_srcharg.id)
dw_1.SetItem(dw_1.getrow(),"item_code", gs_srcharg.id)
dw_1.enabled = true
set_winbutton(4)
cb_search.enabled=false
//dw_1.settaborder("bank_ac123",0)
/***************************************************************************
end of script
***************************************************************************/
and w_srchemp's code --
string t_sqlst
string t_srchempcd
t_srchempcd = sle_empcd.text
t_sqlst = "select item_code from item_mast where item_code = '" + trim(t_srchempcd) + "'"
declare cur_srch dynamic cursor for SQLSA;
prepare SQLSA from :t_sqlst;
open dynamic cur_srch;
fetch cur_srch into :t_srchempcd;
// If document does not exists then
if sqlca.sqlcode <> 0 then
messagebox("Search Error", "This Item code does not exist")
close cur_srch;
open(w_emphlp)
sle_empcd.text = message.stringparm
return
end if
close cur_srch;
close(parent) //Close seach window
return
/***************************************************************************
End of script
***************************************************************************/
在此之后,无论我们搜索代码,我们在主窗口中获取值,但值每次都是表的第一行。 当我们搜索时,我想要准确的价值。请帮忙..
答案 0 :(得分:0)
为什么你在这里使用光标进行搜索。您可以直接调用sql查询。
Long ll_item_code
选择item_code INTO:ll_item_code 来自item_mast 其中item_code = long(trim(t_srchempcd))
您在此处匹配item_code,并且您正在从SQL Query中检索相同的项目代码。 检查SQL查询。 如果你的sql语句提供更多输出,那么你应该使用循环语句来获得适当的结果。因此,请检查Internet上的SQL Cursor。
此致
拉吉
答案 1 :(得分:0)
为什么不使用动态数据存储区?您可以使用以下命令创建它:
new_syntax = "select item_code from item_mast where...."
dw_new.Create(new_syntax, error_create)
好了,现在您可以轻松地使用for循环,过滤器,顺序迭代新数据存储...