怎样在另一个窗口中用另一个窗口编辑框的数据?在线等。。。

weixiaoshashou 2010-06-14 10:20:25
我有两个窗口。
一个登录窗口:登录
一个借阅者信息查询窗口:借阅者信息查询
在借阅者信息查询窗口中加一个数据窗口设置过滤条件
条件用了登录窗口的编辑框数据。
如下

dw_1.dataobject="w_借阅者信息自由风格"
dw_1.settransobject(sqlca)
dw_1.setfilter("借书证号='"+登录.sle_1.text+"'")
dw_1.retrieve()

为何在我用到的时候出问题呢?
Error:Null Object reference at line 3 in open event of object 借阅者信息查询
当我用下面语句时

dw_1.dataobject="w_借阅者信息自由风格"
dw_1.settransobject(sqlca)
dw_1.setfilter("借书证号=登录.sle_1.text")
dw_1.retrieve()

不出错,可是显示的借书证号却不是我编辑框输入的值。
...全文
106 9 打赏 收藏 转发到动态 举报
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
lauhuaxun 2010-06-14
  • 打赏
  • 举报
回复
顶贴,学习下!
Awang_126 2010-06-14
  • 打赏
  • 举报
回复
dw_1.dataobject="w_借阅者信息自由风格"
dw_1.settransobject(sqlca)
dw_1.setfilter("借书证号='"+登录.sle_1.text+"'")
dw_1.filter()//增加条这个语句看看
dw_1.retrieve()

另外你的借书证号是什么类型的?
如果是整型的话,换成这样:
dw_1.setfilter("借书证号="+登录.sle_1.text+"")
new4everlau 2010-06-14
  • 打赏
  • 举报
回复
顶贴!应该是你个登陆框已经关闭了
wag_enu 2010-06-14
  • 打赏
  • 举报
回复
[Quote=引用楼主 weixiaoshashou 的回复:]
我有两个窗口。
一个登录窗口:登录
一个借阅者信息查询窗口:借阅者信息查询
在借阅者信息查询窗口中加一个数据窗口设置过滤条件
条件用了登录窗口的编辑框数据。
如下

C/C++ code

dw_1.dataobject="w_借阅者信息自由风格"
dw_1.settransobject(sqlca)
dw_1.setfilter("借书证号='"+登录.sle_1.text……
[/Quote]

第一种代码:
A 窗口要直接引用B 窗口的数据必须得保B 窗口此时是实例化了(打开了)的。
当打 借阅者信息查询 时, 登录窗口已经关闭了。所以提示 null object .....

第二种代码:
dw_1.setfilter("借书证号=登录.sle_1.text")

在setfilter(string) 中的string 是用拼接字符串的方法向电脑表达你的过滤意图。
你想表达给电脑的过滤的意思是在dw_1 中过滤 借书证号列 的值 = 你输入的值,
而你实际表达的是 借书证号列="登录.sle_1.text" 也就是你把 "登录.sle_1.text" 当作一个不明确的字符串值传给了DW 。

解决方法就是1 楼的。
TheLittlePrince 2010-06-14
  • 打赏
  • 举报
回复
你定义个全局变量不就行了。呵呵,登陆成功了就把从登录窗口获得的借书证号保存到全局变量,
dw_1.setfilter("借书证号='"+全局变量+"'")
weixiaoshashou 2010-06-14
  • 打赏
  • 举报
回复
[Quote=引用 8 楼 new4everlau 的回复:]
建议先看看PB中嵌入式SQL的语法吧
[/Quote]
呵呵,在朋友的帮助下那些问题都解决了
但现在碰到个问题他们都没辙
我插入数据居然插不进,错误是cannot convert to a timestamp
我的数据库是ASA数据库,数据类型是date 用 today()函数获取系统时间,然后插入,就出现这个问题了。
new4everlau 2010-06-14
  • 打赏
  • 举报
回复
建议先看看PB中嵌入式SQL的语法吧
wlj768 2010-06-14
  • 打赏
  • 举报
回复
string a = string(dw_1.getitemstring(row,1))
update readers
set 锁定= "是"
where 借书证号 =:a;
试试
weixiaoshashou 2010-06-14
  • 打赏
  • 举报
回复
呵呵,现在才知道有人回帖了。这个问题解决了。
现在新的问题又来了。

row是全局变量
row=dw_1.getrow()

if messagebox("提示","是否锁定"+&
string(dw_1.getitemstring(row,1)),exclamation!,yesno!,2)=1 then
update readers
set 锁定= "是"
where 借书证号 = string(dw_1.getitemstring(row,1))
commit;
end if
我这个怎么就不能更新呢。

609

社区成员

发帖
与我相关
我的任务
社区描述
PowerBuilder DataWindow
社区管理员
  • DataWindow社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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