祝愿大家身体健康!

 站点注册  找回密码
 站点注册

QQ登录

只需一步,快速开始

查看: 6133|回复: 4

在PowerBuilder的DataWindows.ItemChanged事件中修改当前单元格值的方法

[复制链接]

在PowerBuilder的DataWindows.ItemChanged事件中修改当前单元格值的方法

[复制链接]
ehxz

主题

0

回帖

57万

积分

管理员

积分
572324
贡献
在线时间
小时
2010-3-30 13:03:22 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有账号?站点注册

×
  在PB中,ItemChanged事件具有数据效验功能。通过其返回值,可以告之PB数据是否通过用户效验,然后PB将根据此效验结果决定是接受新值还是拒绝修改。此描述的隐含的表达了:PB在ItemChanged执行完后设置单元格值。另外,程序员无法在ItemChanged修改data参数(即新值)。也就是说,在ItemChanged事件中,我们只能决定是否接受这次修改,若是,则单元格值为输入值(即Data参数值),否则,单元格将保持原值。我们无法为单元格指定两者外的一个值。
  这样就无法在ItemChanged中实现这样一种效果:根据用户输入,对其进行一些转换或格式化操作,再赋给单元格。因为在ItemChanged中设置的单元格值会在ItemChanged事件执行完后被冲掉,最终单元格值仍将根据ItemChanged返回值被置为Data值或原值。
  但借助Post关键字可以非常简洁的获得此效果,PB文档中对Post的描述大意是:Post将目标调用放入窗口的消息队列中,所调用代码何时执行取决于消息在消息队列中的位置。
此用Post的原理如下:
  Windows应用程序是事件驱动或消息驱动的,用户通过界面交互生成消息,程序捕获各种消息并针对各种消息调用不同的处理程序,这些处理程序中包装有用户逻辑。
  消息的处理是串行的,在一个消息处理完之前,下一个消息不会被开始处理。一个消息的生命周期从其被生成并加入消息队列开始,到其处理完毕时止。
  从ItemChanged事件被触发,到PB根据ItemChanged事件返回值设置单元值格,属于同一个消息处理过程。因此在此期间通过Post调用的操作,将在PB设置单元格之后执行。

此方法的使用描述如下:在ItemChanged事件中,在设置单元格值的语句前加上关键字Post即可。eg:

String NewValue = "17951" + data;
Post SetValue(Col,Row,NewValue);

注:
1、PB中的事件与Windows中的事件含义并不相同。
2、PB如何将函数调用包装为一个消息,这是一个很值得探讨的东西。
共享共进共赢Sharing And Win-win Results
SYBASEBBS - 免责申明1、欢迎访问“SYBASEBBS.COM”,本文内容及相关资源来源于网络,版权归版权方所有!本站原创内容版权归本站所有,请勿转载!
2、本文内容仅代表作者观点,不代表本站立场,作者自负,本站资源仅供学习研究,请勿非法使用,否则后果自负!请下载后24小时内删除!
3、本文内容,包括但不限于源码、文字、图片等,仅供参考。本站不对其安全性,正确性等作出保证。但本站会尽量审核会员发表的内容。
4、如本帖侵犯到任何版权问题,请立即告知本站 ,本站将及时删除并致以最深的歉意!客服邮箱:admin@sybasebbs.com
nbhandey

主题

0

回帖

952

积分

高级会员

积分
952
贡献
在线时间
小时
2010-4-16 10:41:46 | 显示全部楼层
很好,非常感谢
共享共进共赢Sharing And Win-win Results
bombshell

主题

0

回帖

1248

积分

金牌会员

积分
1248
贡献
在线时间
小时
2010-4-17 15:27:32 | 显示全部楼层
学习了,谢谢
共享共进共赢Sharing And Win-win Results
bombshell

主题

0

回帖

1248

积分

金牌会员

积分
1248
贡献
在线时间
小时
2010-4-17 15:28:50 | 显示全部楼层
学习了,谢谢
共享共进共赢Sharing And Win-win Results
lzwrp

主题

0

回帖

43

积分

注册会员

积分
43
贡献
在线时间
小时
2010-5-11 17:39:20 | 显示全部楼层
学习了,谢谢,前些日子正为此发愁呢
共享共进共赢Sharing And Win-win Results
您需要登录后才可以回帖 登录 | 站点注册

本版积分规则

免责声明:
本站所发布的一切破解补丁、注册机和注册信息及软件的解密分析文章仅限用于学习和研究目的;不得将上述内容用于商业或者非法用途,否则,一切后果请用户自负。本站信息来自网络,版权争议与本站无关。您必须在下载后的24个小时之内,从您的电脑中彻底删除上述内容。如果您喜欢该程序,请支持正版软件,购买注册,得到更好的正版服务。如有侵权请邮件与我们联系处理。

Mail To:Admin@SybaseBbs.com

QQ|Archiver|PowerBuilder(PB)BBS社区 ( 鲁ICP备2021027222号-1 )

GMT+8, 2024-5-11 22:33 , Processed in 0.045237 second(s), 7 queries , MemCached On.

Powered by Discuz! X3.5

© 2001-2024 Discuz! Team.

快速回复 返回顶部 返回列表