数据窗口控件大全.docVIP

  • 0
  • 0
  • 约1.77万字
  • 约 15页
  • 2019-10-21 发布于山西
  • 举报
数据窗口控件-datawindow PB9.0提供了28个属性、35个默认事件、162个函数。注意与数据窗口对象的区分。 【其他】 ■脚本的执行效率 *尽量不要在RetrieveRow事件下编写脚本(包括注释)。 *如果数据窗口的DoubleClicked事件中编写了脚本,那么在数据窗口的C1icked事件中的脚本应该尽量短,否则双击事件中的脚本永远不可能得到执行。一般来说,Cliked中脚本的执行时间和两次击鼠标之间的间隔时间之和,不应该大于操作系统中所设定的鼠标双击时间间隔,否则双击事件永远不可能触发,双击时仅仅是接连两次触发c1icked事件。 *在数据窗口中录入数据时,事件EditChanged是触发频率最高的,每一个按钮都触发该事件;触发频率仅次于该事件的是ItemChanged事件和ItemFocusChanged,只要修改了单元中的内容,每次触发ItemFocusChanged事件都会触发ItemChanged事件。在这些事件下编写过长的脚本会非常影响录入工作的效率。同样,事件RowFocusChanged的触发频率也是相当高的。一般来说是可以避免在这四个事件中编写脚本的。 ■dwo参数使用 数据窗口的某些事件中可以使用一个称为dwo的变量,该变量保存数据窗口中的部分信息,用数据窗口的属性可以读取这些信息dwo.type:读取在dwo中保存的对象类型。对象类型可能有bitmap、button、column、compute、graph、groupbox、line、ole、ellipse、rectangle、roundrectangle、report、tableblob、text、datawindow(当用户没有单击特定对象时) dwo.Name:column的列名 dwo.Primary[row]:column的数据 dwo.Selected:选中column的数据 ■数据缓冲区 数据窗口在运行时要创建四个缓冲区,分别是主缓冲区、删除缓冲区、过滤缓冲区和原始缓冲区,这四个缓冲区各司其职、共同配合,来保证数据窗口对数据的正确处理。下面分别加以介绍。 1、主缓冲区-Primary 这是最重要的一个缓冲区,保存的是当前显示在数据窗口中的所有数据以及它们的修改状态。在保存数据时使用这些状态生成SQL语句。平常的大多数操作都是针对该缓冲区,函数中的缓冲区参数缺省也是该缓冲区。 2、删除缓冲区-Delete 该缓冲区保存所有删除了的数据。保存数据时,该缓冲区中的数据用来产生delete语句。在数据没有提交到数据库之前,可以从该缓冲区中将数据恢复出来。数据提交后,该缓冲区中的数据清空。 3、过滤缓冲区-Filter 该缓冲区中保存的是没有通过过滤规则的所有数据,这些数据在存储时同主缓存区的数据一起生成相应的insert或update语句。 4、原始缓冲区-original 用来保存从数据库中检索到的初始值,在保存数据时用来生成where语句。 ??? 上面这四个缓冲区中,original缓冲区在脚本中很少使用,其他三个经常涉及到,很多数据窗口函数都需要指定对这三个缓冲区中的哪个进行操作,大多数情况下都使用缺省的缓冲区Primary!。这三个缓冲区,除了保存相应的数据外,都自动维护这些数据的修改标志,它们之间的协作也是自动维护的。例如,当使用过滤函数时,没有通过过滤规则的数据自动从Primary缓存区移送到Filter缓存区;执行删除操作时,数据自动从Primary缓存区移送到Delete缓存区。所有这些数据的移送无需脚本的干预,只管使用相应的函数即可。 ■DWBuffer Primary! 0 Delete!?? 1 Filter!?? 2 ■DWItemStatus NotModified! 0 DataModified! 1 New!?? 2 NewModified! 3 ■编辑控件 和数据窗口控件打交道都是通过编辑控件进行的。在数据窗口中录入数据、修改数据,实际上是在修改单元上的编辑控件中的内容。当编辑控件移动到另外单元上之前,要对编辑控件中的数据进行校验,如果能通过字段的校验规则,就保存到字段中。编辑控件是可以移动的,需要编辑哪个单元,编辑控件就移动到哪个单元上,接受输入或者修改。 编辑控件在没有离开当前字段时,用户录入或者修改的数据就不会被保存到字段中,如何确保在数据窗口失去焦点时,最后位置上编辑框中的内容不被遗漏呢?前面介绍了在数据窗口的LoseFocus事件中编写如下脚本: this.AcceptText() 这个方法在很多情况下能解决该问题。美中不足的是,如果编辑框中的内容不能通过字段的校验规则,有时会显示两次错误信息窗口。造成两个错误信息窗口,往往是在选择其他单元时发生,在数据窗口失去焦点之前(如单击“保存”按

文档评论(0)

1亿VIP精品文档

相关文档