pb accepttext()函数,求解释!

tayurro 2012-01-10 01:19:38
pb数据窗口在itemchanged,itemerror,itemfocuschanged这些事件触发时会自动调用accepttext()这个函数???

另外在自定义事件ue_keydown中又是怎么样的情况???

说是itemchanged事件中不能用accepttext(),又是为何呢???

求解释!!!
...全文
2506 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
tayurro 2012-01-10
  • 打赏
  • 举报
回复
三楼和四楼很详细,明白了!!!谢啦
wixinyoyo 2012-01-10
  • 打赏
  • 举报
回复
1、itemchanged事件发生时不会自动调用accepttext()函数
2、数据窗口其他事件也不会自动调用accepttext()函数

以上两点的前提是你对数据窗口中数据修改后直接把焦点移到了数据窗口以外的控件上(比如窗口的按钮上)

所以对数据修改后如果你想保存或读取数据 最好先调用下 accepttext()函数

mmbest 2012-01-10
  • 打赏
  • 举报
回复
TO TAYurro:
具体事件你要看数据窗事件的介绍,很详细的。
itemchanged 会,但焦点离开了DW控件就不会了;这就解释了,为什么最后一行最后一列的值是空的。。。
tayurro 2012-01-10
  • 打赏
  • 举报
回复
itemchanged事件发生时会自动调用accepttext()函数吗???

另外数据窗口哪些事件发生时也会自动调用accepttext()函数呢???

jlwei888 2012-01-10
  • 打赏
  • 举报
回复
AcceptText()
功能
将“漂浮”在数据窗口控件上编辑框的内容放入到数据窗口控件的当前项中(主缓区中)。在将数据放入到当前项之前,编辑框中的数据必须通过有效性规则检查
语法
dwcontrol.AcceptText ( )
参数
dwcontrol:数据窗口控件名返回值
Integer。函数执行成功时返回1,出现错误(比如数据不满足有效性规则)时返回-1。
如果dwcontrol为NULL,则AcceptText()函数返回NULL。用法当用户在数据窗口中从一个项移动到另一个项时,数据窗口检查用户输入或修改数据项数据值的有效性并把这些数据放入到数据窗口控件的主缓冲区中。如果用户修改了数据窗口的某个数据项后立刻把输入焦点移动到同一个窗口的其它控件,那么数据窗口控件并没有把用户新修改的数据放入到数据窗口控件的主缓冲区,这些数据依然保存在“漂浮”在数据窗口控件当前项上面的编辑框中。这种情况下,使用AcceptText()函数把用户新修改的数据放入到数据窗口控件的主缓冲区中。调用AcceptText()函数的典型地方是在用户自定义事件中,该事件可通过在数据窗口控件的LoseFocus事件处理程序中调用PostEvent()函数来触发。
需要注意的是,不要在数据窗口控件的ItemChanged事件处理程序中调用AcceptText()函数。AcceptText()函数还可能触发数据窗口控件的ItemChanged或ItemError事件。
示例1. 下面的代码是命令按钮Clicked事件处理程序的一部分,它读入用
户对数据窗口控件dw_Emp中当前数据的修改,并计算balance列值大于0的行数:
integer i,
Countdw_employee.AcceptText() //接收编辑控件中用户修改的数据
FOR i = 1 to dw_employee.RowCount()
IF dw_employee.GetItemNumber(i,'balance') > 0 THEN
Count = Count + 1
END IF
NEXT

609

社区成员

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

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