PowerBuilder东北大学工商管理学院管理科学与信息系统研究所1第9章程序的调试与发布——PowerBuilder数据库应用系统开发PowerBuilder东北大学工商管理学院管理科学与信息系统研究所2第9章程序的调试与发布9.1调试应用程序9.2编译与发行应用程序PowerBuilder东北大学工商管理学院管理科学与信息系统研究所39.1调试应用程序1.Debug画板2.在程序中设置断点3.在调试模式下执行程序4.观察变量的值5.设置条件断点目录PowerBuilder东北大学工商管理学院管理科学与信息系统研究所41.Debug画板打开Debug画板的方法:单击PowerBar上的Debug按钮。Debug画板分四个区:–左上方是独立的程序代码窗口;窗口初始显示的是应用对象Open事件的程序代码,也就是整个应用程序的入口和最早执行的程序代码。–右上方是含有两个标签的集成窗口,主要用来浏览和定位要调试的对象;–左下方是含有六个标签的集成窗口,主要用来观察各种变量;–右下方是含有三个标签的集成窗口,主要用来观察断点和指定变量的值等。PowerBuilder东北大学工商管理学院管理科学与信息系统研究所51.Debug画板Debug画板的PainterBar所包含的功能:–Start:开始在调试模式下执行应用程序。–StartRemote:执行远程调试。–StopDebugging:停止当前调试的程序。–Continue:从断点开始继续执行应用程序。–StepIn:单步进入,即单步跟踪,单击一次,执行一条语句,如果当前语句是用户函数或调用的事件名,则进入相应的函数或事件处理程序进行单步跟踪。–StepOver:单步执行,也是单步跟踪,但如果当前语句是用户函数或调用的事件名,则把整个函当选或事件处理程序作为一条语句执行,执行之后,系统暂停在当前代码的下一条语句–StepOut:单步跳出,也是单步跟踪,如果当前在用户函数或调用的事件内,则系统把剩下的函数或事件程序代码一并执行,然后暂停在调用该函数或事件的下一条语句上.PowerBuilder东北大学工商管理学院管理科学与信息系统研究所61.Debug画板–RunToCursor:执行到光标,即从断点处开始执行,一直执行到光标当前所在的行。–SetNextStatement:设置下一条要执行的语句,这样程序的执行过程就不再是原来流程规定的次序了,主要用于调试某些不容易出现的条件。–SelectScript:选择程序代码窗口中显示的程序代码。–EditStop:编辑断点。–AddWatch:向Watch窗口中增加要查看的变量。–RemoveWatch:从Watch窗口中删除不再需要的变量。–Close:关闭Debug画板。PowerBuilder东北大学工商管理学院管理科学与信息系统研究所72.在程序中设置断点在Debug画板中设置断点的方法是:首先使要设置断点的程序代码或语句出现在左上方的程序代码窗口,然后在该窗口中双击要设置断点的可执行语句,这时会在该语句的前面出现一个红色的符号,从而说明该语句设置了断点。对已经设置了断点的可执行语句,如果要取消这个断点,则再次双击该语句,这时该语句前面的红色符号将消失,这说明在该语句处将不再有断点。设置完断点后,单击右下方窗口中的Breakpoints(断点)标签,可以在Breakpoints窗口中看到所有已经设置的断点。PowerBuilder东北大学工商管理学院管理科学与信息系统研究所83.在调试模式下执行程序在调试模式下执行程序的方法是:单击PainterBar上的Start按钮,开始在调试模式下执行程序,这时应用程序开始运行,当执行到第一个断点处将暂停下来,并且有一个黄色的箭头符号说明当前执行语句的位置。这时单击Debug画板左下方窗口内的Global标签,这里将成为显示Global(全局)变量的窗口。双击transactionsqlca,可以看到系统预定义的全局事务对象变量sqlca的各个属性值,目前这些属性均尚未赋值。单击PainterBar上的StepIn按钮执行下一条语句,也即执行打开w_pbtutor_frame窗口的语句。如果不进行单步跟踪,任何时候都可以单击PainterBar上的Continue按钮直接执行到下一个断点。PowerBuilder东北大学工商管理学院管理科学与信息系统研究所94.观察变量的值观察变量值的方法:单击左下方窗口的Local标签,然后再单击右下方窗口的Watch标签,准备将要观察的变量添加到watch窗口中。用鼠标将Local窗口的某个变量(如ll_itemnum)拖动到Watch窗口中(用同样的方法也可以将其他变量或其他类型的变量拖动到Watch窗口中)。然后继续以各种跟踪方法执行应用程序,这时可以在Watch窗口中观察变量的变化和赋值情况。PowerBuilder东北大学工商管理学院管理科学与信息系统研究所105.设置条件断点设置条件断点的步骤:单击右下方窗口的Breakpoints标签,切换到Breakpoints窗口。在Breakpoints窗口中双击要添加条件的断点,如断点w_pbtutor_basesheet,dw_master.rowfocuschanged.3,这时将打开EditBreakpoints(编辑断点)对话框。这时编辑的断点是RowFocusChanged事件中的第三条语句,在Condition(条件)编辑框中输入一个条件,如:ll_itemnum=107即在全局变量的值为107时在断点处暂停,然后单击OK按钮,这样原来设置的第三个断点就变成了一个条件断点。PowerBuilder东北大学工商管理学院管理科学与信息系统研究所119.2编译与发行应用程序1.生成可执行程序2.发布应用程序PowerBuilder东北大学工商管理学院管理科学与信息系统研究所121.生成可执行程序建立可执行程序,首先要建立Project(工程)对象,在Project对象中包含了建立可执行程序的一些要求和特定的说明。单击PowerBar上的New按钮打开New对话框。单击Project标签,选择ApplicationWizard或Application图标建立应用程序类的Project对象。建立应用程序的Project对象后,就可以利用Project对象为应用程序生成可执行文件了(Deploy按钮)。PowerBuilder东北大学工商管理学院管理科学与信息系统研究所132.发布应用程序在PB中编译生成的EXE文件不是一个完全可独立执行的程序,它必须与PB提供的一组动态链接库同时提供给用户。在安装PB时这些动态链接库被安装在…\Shared\PowerBuilder目录下。各个动态链接库提供了不同的功能,不同的应用程序需要不同的动态链接库。例如,所有的应用程序都必须包括动态链接库PBVM80.DLL和LIBJCC.DLL;如果有数据窗口应用,则必须包括动态链接库PBDWE80.DLL;如果有RichText应用,则必须包括动态链接库PBRTC80.DLL等。PowerBuilder东北大学工商管理学院管理科学与信息系统研究所142.发布应用程序在发布应用程序之前为了确定都需要包括哪些动态链接库,一种可靠的方法是进行测试,具体做法是:–为编译生成的EXE文件建立一个独立的目录,并将应用程序拷贝或移动到该目录下(最好在另外一台没有安装过PB的计算机上)。–在独立的目录下执行应用程序,这时应用程序会提示找不到哪个动态链接库而不能运行。–从…\Shared\PowerBuilder目录将要求的动态链接库拷贝过来(不要移动)。–重复上面的步骤,直到将所有动态链接库包含进来。PowerBuilder东北大学工商管理学院管理科学与信息系统研究所15练习编程(1)编写窗口(w_main_1)的脚本。在窗口的Open事件中,编写将数据窗口控件与事物处理对象(SQLCA)相关联以及将数据检索到数据窗口dw_1,dw_2和dw_3。(2)编写控件的脚本。①“插入”按钮(cb_1)的脚本;②“删除”按钮(cb_2)的脚本;③“更新”按钮(cb_3)的脚本;④“重新检索”按钮(cb_5)的脚本;⑤“退出程序”按钮(cb_6)的脚本.⑥“打开检索窗口”按钮(cb_4)的脚本.PowerBuilder东北大学工商管理学院管理科学与信息系统研究所16(3)为检索窗口及控件编写脚本①在窗口的Open事件中写脚本;②“检索”按钮(cb_1)的脚本;