没有合适的资源?快使用搜索试试~ 我知道了~
温馨提示
试读
16页
海典H1自定义事件框架浅说 1、窗口概述 2 2、窗口相关事件 3 1、打开窗口 3 key事件 4 timer事件 4 2、保存数据 4 1、 pfc_begintran 4 3、 pfc_endtran 4 4、 Pfc_save 4 3、关闭窗口 4 3、数据窗口事件 5 添加主表明细单据 5 取消之前的新建的单据 6 修改单据 6 Clicked事件 6 DoubleClicked事件 6 Constructor事件 7 Dropdown事件 7 EditChanged标准事件 7 Itemchanged标准事件 7 ItemFocusChanged标准事件 8 Rowfocuschanging 8 Rowfocuschanged事件 8 pfc_preupdate非标准事件 8 pfc_predeleterow事件 8 4、据查询的控制 9 yfc_retrieve事件 9 yfc_preretrieve自定义事件 9 retrievestart事件 9 retrieveend事件 9 5、自定义控件 10 uo_usercbs按钮组 10 ue_duo_events 10 6、打印 11 ue_打印 11 7、构建窗口与数据交换 11 1、 itemchanged事件弹出选择窗口 12 2、ue_transdata 自定义事件 12 3、 用w_trans窗口 12
资源详情
资源评论
资源推荐
自定义事件框架浅说
1、窗口概述................................................................................................................................................................ ... 1
2、窗口相关事件.................................................................................................................................................... ....... 2
1、打开窗口............................................................................................................................................................... 2
2、保存数据............................................................................................................................................................... 3
3、关闭窗口............................................................................................................................................................... 4
3、数据窗口事件.................................................................................................................................................... ....... 4
4、数据查询的控制....................................................................................................................................................... 8
5、自定义控件............................................................................................................................................................. 10
6、打印......................................................................................................................................................................... 11
7、构建窗口与数据交换..................................................................................................................................... ........ 12
1、窗口概述
海典软件为了实现给每个客户功能的定制,推出了功能定义、扩展权限、审核附加事件、扩展触发器、存储
过程定制以及自定义事件等功能。在这里,只说下自定义事件。
海典程序窗口,有如下几种:
1、由 主 表 明 细 表 、 单 据 浏 览 、 明 细 浏 览 组 成 的 一 体 式 窗 口 , 比 如 入 库 单 , 包 含 了
dw_hdr、dw_dtl、dw_browse、dw_list
2、只有明细的 w_ 窗口,比如会员兑奖,只包含 dw_info 的窗口。
3、动态报表,比如零售明细,只有 dw_info 窗口,由 w_dyreport 窗口调用一个 sql 语句生成的窗口。
4、决策报表,由决策报表设计器设置,由 w_report_bas 窗口拼接设置动态生成 sql 语句和窗口。
5、调用存储过程的动态报表,由 dw_info 和 dw_proc_query 窗口组成,也是由 w_dyreport 窗口得到过程的返
回语句,并显示数据。
6、万能报表,比如零售报表,这是公司准备由决策报表替代的,不再讲述。
在讲述各种窗口前,先讲下窗口上的按钮。
每种窗口上的按钮,大都是一样的。如下图,这是所有按钮对应菜单项的名称,这些菜单项,对应的事件,
就是 yfc_菜单项名称(比如 m_addrow 对应的事件是 yfc_addrow,m_save 对应的事件是 yfc_save),当要根据工具
栏按钮状态来处理某个问题时,只要判断按钮对应的菜单项的属性 Enabled 的值。
取得菜单状态的完整语句为:iw_source.im_main.m_edit.m_addrow.enabled
在海典里,当菜单的任意荐或工具栏某个按钮被触发,都会触发 yfc_switchmenu(string as_cond) 事件。于是我
们时常在这个事件里,来修改自己添加的按钮的可用性,也可以在 datawindow 的 rowfocuschanged 事件里,判断菜
单项的状态来设置行单据字段的属性如 protect。
下面开始来讲述下,各种窗口的主要自定义事件执行顺序及常用来处理的问题。
2、窗口相关事件
1、打开窗口
任何窗口,都要先创建,才能打开,我们看下窗口打开时的事件触发顺序
事件名 触发的时机
Activate 在窗口激活之前触发
Resize 当用户或程序打开或重设窗口大小时触发
Open 当程序调用以此窗口为参数的 Open 函数时,此事件在该窗口打开之后,显示之前触发
Show 当程序运行此窗口的 show 函数时,此事件在窗口显示之前触发
在这些事件里,我们最常用的是 open 和 resize 事件,而 pfc_postopen 事件,同 open 事件里的一个 post event 事
件,专用用来在 open 事件执行完后,再马上触发以便执行对窗口添加控件的自定义语句。而 resize 事件,则用于
窗口大小发生变化后,对窗口内控件位置大小进行重新设置。
看上图,经测试,window 并不支持 constructor 事件,而 resize 的正确写法是:
resize(unsignedlong sizetype,integer newwidth,integer newheight)
而这几个事件的执行顺序是 resize、open、pfc_postopen 事件。
在 open 事件里将设置变量 is_hdr_protectcol 来指定哪些列,在添加明细后不允许再修改的单头列。如果要自己
加字段,可以在 pfc_postopen 事件里设置。
窗口打开后,我们可能要查询数据,也有可能要新建单据,这样就会有不同的操作,而 PB 为我们提供了大量
的公共事件,常用的有:
事件名 触发的时机
Clicked 当单击窗口或控件时触发
GetFocus 在此控件得到焦点上时触发
LoseFocus 在此控件失去焦点时触发
Key 当用户击了一个键且插入点不在 RichTextEdit 编辑控件或数据窗口控件时触发
Timer 在调用 Timer 函数后,经过了 Timer 函数指定的时间后触发
这几个事件对于窗口来说,主要有:
key 事件,用来处理快捷方式或用户输入时的判断,timer 事件循环触发某个事件,比如定期刷新报表,
提示之类。
timer 事件,要使用 timer 事件,只需要在某个事件里设置下 time(时间)函数的值,让系统间隔多久就执
行下 timer 事件。比如我添加一个按钮叫“开始刷新”,再在按钮的点击事件里开启时钟事件。也可以直接在 window
的 pfc_postopen 事件里开启时钟事件
Key 事件键值请看有道:pb 判断触发键盘按键 附:pb 键盘键值枚举值
2、保存数据
数据输入完成,就要保存,这里会有如下图三个事件:
三个事件执行顺序是:
1、pfc_begintran:在数据保存前执行,时常用来对保存前的数据进行处理,比如如果没有单据号,
设置下单据号,数据有不合规则的,也进行处理下。只是经测试 return -1 则不会触发 pfc_endtran,而是直接调用
pfc_save,但数据保存失败。
2、保存数据,之后会提示是否审核数据。
3、pfc_endtran(integer ai_update_results):保存数据提交到数据之后触发,由于这里数据已经保存到数
据库了,所以可以再去处理转单,自动打印出来等工作。
4、Pfc_save:在窗口数据操作中,修改了窗口,设置了变量,在这里还原回去
3、关闭窗口
window 关闭时发生的事件:
Deactivate 当窗口变为非活动状态时触发。就是说,在窗口打开后,再打开其他窗口或切换到其他软件时触发。
CloseQuery 当清除或关闭窗口时触发。然后检查 Message.ReturnValue 的值,若为 1,则窗口不能关闭
Close 当关闭窗口时触发
在关闭窗口时,这三个事件的自定义事件执行顺序是 CloseQuery,Close,Deactivate。
而 pfc_close 不支持自定义事件,所以也不用关心,有上面三个事件足够了。
这里要注意自定义事件名后面要加(),不然设置 return 时会报错。
3、数据窗口事件
窗口事件,用得最多的,也就是打开窗口的 pfc_postopen 事件,保存数据时的 pfc_begintran 事件。
对 PB 来说,重中之重,就在数据窗口 datawindow,学好了这个,PB 的 90%就完成了。
先说下窗口的布局,看下图,主窗口和明细窗口,并不是主窗口包含明细窗口,只是明细窗口放在主窗
口上面。
剩余15页未读,继续阅读
my4899
- 粉丝: 5
- 资源: 10
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功
评论0