一个关于带参数打开窗口的问题.

dragon0615 2003-11-05 11:08:37
在窗口中添加一个查询按钮:cb_find.script如下:
String ls_select
Long ll_rowcount
OpenWithParm(w_find_personnel,dw_personnel)
ls_select = message.stringParm
if ls_select = '' THEN Return
dw_personnel.Modify("datawindow.table.select =~""+ls_select+"~"")
ll_rowcount = dw_personnel.Retrieve()
if ll_rowcount>0 then
cb_delete.Enabled=true
else
cb_delete.Enabled=false
end if
dw_personnel.Modify("datawindow.tabel.select=~""+is_select+"~"")
用OpenWithParm(w_find_personnel,dw_personnel)打开一个查询窗口并dw_personnl传入.编译能通过,但在运行时就不行了.debug跟踪发现有错误:
long ancestorreurnvalue = null
请问是怎么会事?
...全文
55 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
zhoufenghubei 2003-11-05
  • 打赏
  • 举报
回复
String ls_select
Long ll_rowcount
OpenWithParm(w_find_personnel,dw_personnel)
ls_select = message.stringParm
if ls_select = '' or not isnull(ls_select) THEN Return
dw_personnel.Modify("datawindow.table.select =~""+ls_select+"~"")
ll_rowcount = dw_personnel.Retrieve()
if ll_rowcount>0 then
cb_delete.Enabled=true
else
cb_delete.Enabled=false
end if
dw_personnel.Modify("datawindow.tabel.select=~""+is_select+"~"")
dragon0615 2003-11-05
  • 打赏
  • 举报
回复
qqjj7758(算了,重新来过吧。。。)
w_find_personnel窗口的cb_ok的代码是这样的:
idw_action是一个datawindow的实例变量

String ls_input,ls_select
ls_select = Lower(idw_action.Describe("datawindow.table.select"))
IF rb_id.Checked = True THEN
IF sle_id.Text<>''THEN
ls_input=sle_id.Text
ls_select = ls_select+"where p_id='"+ls_input+"'"
CloseWithReturn(Parent,ls_select)
else
MessageBox('提示','请输入查询条件!')
end if
elseif rb_name.Checked = True THEN
IF sle_name.Text<>'' THEN
ls_input = sle_name.Text
ls_select = ls_select+"where name like '%"+ls_input+"%'"
CloseWithReturn(Parent,ls_select)
else
MessageBox('提示','请输入查询条件!')
end if
else
ls_input = dw_dept.getItemString(dw_dept.GetRow(),'deptid')
if not isnull(ls_input) then
ls_select = ls_select+"where dept_id='"+ls_input+"'"
CloseWithReturn(Parent,ls_select)
else
MessageBox('提示','请输入正确的查询条件!')
end if
end if
qqjj7758 2003-11-05
  • 打赏
  • 举报
回复
OpenWithParm(w_find_personnel,dw_personnel)
ls_select = message.stringParm
???
你的代码和组件是什么样的阿
紫焰月读 2003-11-05
  • 打赏
  • 举报
回复
如果不是模式窗口可会有这种问题, 因为 这个 message 对象的值一直在变化,你并没有及时的获取这个对象的值
liliang800207 2003-11-05
  • 打赏
  • 举报
回复
if isnull(ls_select) THEN Return
thomashoo 2003-11-05
  • 打赏
  • 举报
回复
这些代码我也有看:
"w_find_personnel窗口的cb_ok的代码是这样的:
idw_action是一个datawindow的实例变量"
在OpenWithParm(w_find_personnel,dw_personnel)其中的dw_personnel传递到w_find-personnel ,idw_action 就是接收这个参数,所以是idw_action=message.powerobjectparm,
而ls_select = message.stringParm是从w_find_personnel中的closewithreturn()
中返回的字符串参数,所以是 ls_select = message.stringParm

1,108

社区成员

发帖
与我相关
我的任务
社区描述
PowerBuilder 相关问题讨论
社区管理员
  • 基础类社区
  • WorldMobile
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧