我已经建立的一个数据窗口dw_1,里面有两个检索参数s和e,是string类型的.但是我在代码中想引用这两个检索参数,请问改怎么引用? 好象直接写变量=s 和变量=e 是不行的,请大家指教!
------解决方案--------------------
parm1 = yourStr1
parm2 = yourStr2
dw_1.retrieve(parm1,parm2)
------解决方案--------------------
------解决方案--------------------
string a,b
a=dw_1.getitemstring(dw_1.getrow(),"s")
b=dw_1.getitemstring(dw_1.getrow(),"e")
dw_1.settransobject(sqlca)
dw_1.retrieve(a,b)
如果是和我类似的情况的话,试试这样吧···
------解决方案--------------------
1.你的数据源中的参数要预先设定好.
2.定义两变量,来保存你的输入控件的Text
3.你的SQL语句的条件使用你在数据源中定义的参数
4.在SQL语句中如果需要使用参数,需在你定义的参数前加上":"表示是个参数
5.执行了retrieve() 时,用变量把所有的参数都带入
下面是我的一动态改SQL语句的例子,你可以参考:
string modify_sql,rc, li_empno1,li_empno2,cname //定义变量用于存放SQL语句,查询参数,MODIFY函数的返回值
li_empno1=string(trim(sle_1.text)) //将SLE_1中的字符串去掉前后的空格转换为文本型,放入到变量LI_EMPNO1中
li_empno2=string(trim(sle_2.text)) //将SLE_2中的字符串去掉前后的空格转换为文本型,放入到变量LI_EMPNO2中
if isnull(sle_1.text) or trim(sle_1.text)="" then //如果SLE_1中的文体为空或是NULL值,则执行
li_empno1="000001" //将变量LI_EMPNO1赋值为最小(起始)值
end if
if isnull(sle_2.text) or trim(sle_2.text)="" then //如果SLE_2中的文体为空或是NULL值,则执行
li_empno2="999999" //将变量LI_EMPNO1赋值为最大(结束)值
end if
int li_lang //定义计数器
//以下为定义一个SQL语句放到MODIFY_SQL变量中
modify_sql = "SELECT * FROM emp1000c_view_listgrid where (emp1000c_view_listgrid.empno >= :empno1) and (emp1000c_view_listgrid.empno <= :empno2)"
//将DW_1的SQL语句修改为MODIFY_SQL变量中所存放的SQL语句,并将返回值放入到变量RC中
rc=dw_1.Modify("DataWindow.Table.Select='"+modify_sql+"'")
if rc="" then //如果返回值为空,表示修改成功!
MessageBox("提示","修改成功!")
li_lang=dw_1.retrieve(li_empno1,li_empno2,cname) //执行取数,带入三个参数,并将返回数值放入计数器中 (必须与数据源设定的参数保持一致)
else
MessageBox("提示",rc) //如果修改失败,则提示一个错误信息
return
end if
sle_3.text=string(li_lang) //将计数器中的内容以文本形式在SLE_3中显示