PB教程
- 格式:docx
- 大小:2.09 MB
- 文档页数:56
pb报表制作power build er报表制作教程pb报表编制教程步骤在通常的管理信息系统开发过程中,总是有没完没了的报表需要制作,调试报表花费的时间也是最多而且乏味,还常常不能满足客户的要求。
如果能够让用户自己调整报表的格式和内容,然后将它保存下来,程序下次启动时若能自动调用保存了的报表格式那就方便多了。
实现原理PowerB uilde r中有一种以PSR为后缀的特殊的保存报表的文件格式(本文简称PS R 文件),数据窗口可以直接读取P SR文件生成报表,而程序通过生成PSR文件,就可以实现动态报表格式的保存。
首先,通过设置数据窗口对象(dataob ject)中的文本、列等的Res izeab le和mo veabl e属性为1来实现对象位置的拖动控制,通过数据窗口的Modi fy函数实现对象值的更改(包括增加和删除)。
其次要保存报表格式。
在一个应用中,数据窗口对象的名称总是惟一的,将每一个数据窗口对象转化成PSR文件存于数据库表中。
在窗口打开时,程序先校验报表格式是否存在。
如果存在,将报表格式读出来放在一个临时文件当中,然后设置数据窗口(datawi ndow)的数据对象(dataob ject)为这个报表文件,并提取数据;如果不存在,直接提取数据即可。
实现过程1. 建立一个数据库表用以保存报表格式文件,各个字段定义如下:2. 建立一个窗口w_tem p。
定义实例变量如下:string is_dwt ype,is_dwo bject//保存报表中对象的类型及名称3. 在窗口的Op en事件中加入如下代码, 校验报表格式是否存在,如果存在,读取定义好的报表格式到数据窗口。
blob emp_pi clong ll_han dlestring ls_dwo bject,ls_rep ortfi le,ls_pat hls_dwo bject = dw_pri nt.dataob ject//判断是否存在该数据窗口的报表格式select count(*) into:ll_cou nt from dyn_re portwheredwobje ct=:ls_dwo bject;if ll_cou nt>0 then//读取报表格式文件到大文本变量select blobmemo into:emp_pi c from dyn_re portwheredwobje ct=:ls_dwo bject;//创建PSR临时文件并保存到硬盘ls_rep ortfi le =‘\temp7089.psr’ll_han dle = FileOp en(is_rep ortfi le,Stream Mode!,write!,LockWr ite!,Replac e!) FileWr ite(ll_han dle,emp_pi c)FileCl ose(ll_han dle)dw_pri nt.dataob ject= ls_rep ortfi ledw_pri nt.settra nsobj ect(sqlca)elseDw_pri nt.settra nsobj ect(sqlca)End ifDw_pri nt.retrie ve()4. 保存报表格式,这可以通过C b_sav erepo rt按钮的click ed事件实现。
第五章数据窗口数据窗口是PowerBuilder的一大特色,PowerBuilder作为一种数据库前端开发工具,操作的核心是数据库中的数据。
而数据窗口是一个对象,它包含了对数据库中的数据进行特定操作的信息。
只要定义好一个数据窗口对象,以后就可以在多个应用程序中使用这个数据窗口对象,总之,可以把数据窗口看作封装了对数据库中的数据操作的对象,它极大地方便了应用程序对数据库的使用。
5.1 建立数据窗口对象5.2 对数据窗口的操作第五章数据窗口5.1 建立数据窗口对象要建立数据窗口对象,系统首先必须与要访问的数据库相连,这里不妨连接PowerBuilder 自带的范例数据库POWERSOFT DEMO DB V6(这里版本不同,数据库的名字也不同,可能会是V5,笔者用的是v6.0,所以自带的是V6),接下来就可以创建数据窗口对象。
单击POWERBAR工具条上的DATA WINDOW按钮,系统弹出SELECT DATAWINDOW对话框,对话框中列出了当前数据库中可用的数据窗口对象。
单击NEW按钮,开始创建一个新的数据窗口对象。
弹出的NEW DATAWINDOW用来选择要创建的数据窗口对象的数据源和显示风格。
从对话框中可以看出数据窗口对象可以有五种数据源和十一种数据显示风格。
这里并不想一一介绍,只介绍其中最常用的几种。
5.1.1 数据显示风格首先看数据显示风格,为了看出各种显示风格的区别,首先选定数据源统一为QUICK SELEC T,然后观察不同显示风格所显示出的数据样式的差别。
选中FREEFORM显示风格,然后单击OK按钮,弹出的QUICK SELECT对话框中选中DEPARTME NT表,单击ADD ALL按钮选中表的所有列,然后单击OK按钮关闭对话框。
单击PAINTERBA R工具条上的PREVIEW按钮,DATAWINDOW画板上显示的数据就是FREEFORM风格的,可以看出FREEFORM风格的数据的特点是一个字段占一行,字段的值就显示在字段的标题后面。
第六章窗口与控件窗口是应用程序与用户交流的主要界面。
用它可以显示系统的有关信息,响应用户的鼠标和键盘输入等等。
在这一节中我们将利用PowerBuilder的应用模板功能来创建一个应用程序,利用这个程序来介绍窗口的有关概念和操作。
首先我们利用系统的应用模板功能创建一个应用程序:单击FILE菜单的NEW菜单项,系统弹出SELECT NEW APPLICATION LIBRARY对话框,用来选择一个对象库,这里在D:\DATABASE目录下创建一个新的名为SAMPLE 的对象库,然后单击“保存”按钮,在接下来的SAVE APPLICATION对话框中给新的应用对象同样起名为SAMPLE,然后单击OK按钮确定,系统弹出对话框询问是否需要创建应用模板,这里选择“是”,接着系统就开始为我们生成一个多文档接口的应用程序,APPLICATION画板中显示的就是系统自动帮我们创建好的一些对象(图6-1)。
从对象的图标可以看出这些对象都是窗口和菜单,接下来就以这里的窗口对象为例介绍窗口的有关概念和操作。
图6-16.1 窗口的类型6.2 窗口的常用操作6.3 控件6.1 窗口的类型PowerBuilder提供了六种不同类型的窗口,它们的用途各不相同,下面分别说明:第一种要介绍的是MAIN类型的窗口,它的特点是可以不依赖于任何其它的窗口,可以独立地存在,一个应用程序中可以有多个MAIN窗口,你可以在需要的时候在程序中用OPEN函数打开其中的任意一个。
此外在MAIN窗口中可以放置需要的各种控件。
单击POWERBAR工具条上的WINDOW按钮,选中W-GENAPP-SHEET窗口后单击OK按钮确定所做的操作,然后在WINDOW画板中的窗口对象上单击鼠标右键,选中弹出的菜单的PROPERTIES菜单项,在弹出的WINDOW对话框中注意WINDOW TYPE一栏,可以发现W-GENAPP-SHEET窗口就是MAIN类型的,在其中就可以放入各种控件。
PB数据窗口教程数据窗口是PowerBuilder中最常用的控件之一、它用于显示数据库查询结果,并提供了对此结果进行浏览、修改和删除等操作的功能。
本教程将为您介绍如何在PowerBuilder中使用数据窗口控件。
第一步是创建一个数据窗口。
在PowerBuilder的“对象”菜单下,选择“新建”>“数据窗口”。
在弹出的对话框中,选择所需的数据源和表格,并点击“确定”按钮。
此时,将会出现一个空白的数据窗口设计器。
接下来,将需要显示在数据窗口中的列添加到数据窗口中。
您可以通过拖拽数据库字段或手动添加列的方式进行操作。
在设计器的左侧,您将看到一个“对象树”面板,在这里选择数据窗口对象,并右键单击以添加列。
完成列的设置后,您可以在设计器的页面中放置其他控件,以增强用户界面。
一些常用的控件包括文本框、复选框、下拉列表框等。
您可以通过拖拽控件到数据窗口设计器的页面中进行操作,并根据需要设置其属性。
下一步是设置数据窗口的数据源。
在数据窗口设计器的菜单栏中,选择“数据”>“设置数据源”选项。
在弹出的对话框中,选择所需的数据源和表格,并点击“确定”按钮。
此时,数据窗口将会显示数据源中的数据。
现在,您可以运行应用程序,并查看输出窗口中的结果。
您可以通过点击数据窗口中的列标题对数据进行排序,通过点击数据行进行选择,并通过单击“查阅”按钮在查询结果中进行导航。
如果需要,您还可以在数据窗口中进行增加、修改和删除操作。
通过本教程,您应该已经了解了如何在PowerBuilder中创建和使用数据窗口控件。
数据窗口是PowerBuilder开发中非常重要的一部分,掌握了数据窗口的使用方法,可以提升开发效率,并为用户提供更好的用户界面和交互体验。
希望本教程能对您有所帮助!。
9.1 简介在前面的内容当中,我们介绍了有关数据窗口的基本概念、功能和方法,下面我们将把使用数据窗口的一些高级技术介绍给大家。
这一章不需读者自己动手,因为需要用到很多的数据表格,这里没法都提供给读者,所以这一章只需要读者看明白就可以了,对于SCRIPT 中的语句,要是看不懂可以跳过,会在后面的章节中进行进一步的解答。
9.2 数据窗口与数据库9.2.1 事务对象我们知道事务对象在POWER BUILDER 当中占有非常重要的地位,POWER BUILDER的应用程序必须通过事务对象来实现与各种数据库的连接,所以在讨论数据窗口和数据库的关系之前,我们首先来介绍有关事物对象的基本内容。
在POWER BUILDER当中,要想对一个数据库进行操作,首先必须建立与这个数据库的连接。
在一个POWER BUILDER数据库连接中,事务对象是一个特殊的不可视的对象,其功能就是为POWER BUILDER程序与数据库之间的通信提供一个通信区。
事务对象当中定义了POWER BUI LDER用来与数据库进行连接的参数。
在访问数据库之前,必须先建立一个事务对象,然后给这个事务对象的属性赋以合适的值,才能通过这个事务对象与数据库连接,完成所需的数据库操作。
当一个应用程序开始运行时,POWER BUILDER 会自动创建一个名为SQLCA的默认全局事务对象。
SQLCA是“SQL COMMUNICATIONS AREA”SQL通信区的缩写。
可以在应用程序中使用这个默认的事务对象,也可以定义自己的事务对象。
POWER BUILDER提供了四条用来进行事务管理的语句CONNECT:成功的CONNECT语句标志着一个事务的开始。
在执行CONNECT语句之前,必须对一个已经存在的事务对象的用以连接DBMS的属性赋以合适的值。
DISCONNECT:这个语句标志着中止一个事务。
COMMIT:执行COMMIT将提交自该事务开始之后当前事务对数据库已做的所有尚未提交的更新操作。
第一章什么是PowerBuilder添加时间: 2006-2-21 23:24:04 作者: 未知阅读次数:11680 来源: 在开始学习PowerBuilder之前,首先要弄清楚的问题是什么是PowerBuilder,它是用来干什么的,它的特点又是什么。
只有知道了PowerBuilder的功能和特点所在,我们才能知道什么时候应该选用PowerBuilder作为我们的应用程序开发工具。
1.1 什么是PowerBuilder我们知道,数据库应用是当前计算机应用的一个非常重要的方面,而在目前的数据库应用技术中普遍采用的就是客户机/服务器体系结构,在这种体系结构中,所有的数据和数据库管理系统都在服务器上,客户机通过采用标准的SQL语句等方式来访问服务器上数据库中的数据。
由于这种体系结构把数据和对数据的管理都统一放在了服务器上。
就保证了数据的安全性和完整性,同时也可以充分利用服务器高性能的特点。
正因为客户机/服务器体系结构的这些优点,因而得到了非常广泛的应用。
PowerBuilder是著名的数据库应用开发工具生产厂商PowerSoft公司推出的产品(PowerSoft现已被数据库厂商Sybase所收购),它完全按照客户机/服务器体系结构研制设计,在客户机/服务器结构中,它使用在客户机中,作为数据库应用程序的开发工具而存在。
由于PowerBuilder采用了面向对象和可视化技术,提供可视化的应用开发环境,使得我们利用PowerBuilder,可以方便快捷地开发出利用后台服务器中的数据和数据库管理系统的数据库应用程序。
在当前,网络技术迅速发展,随之发展的还有OLE,OCX,跨平台等技术,而在PowerBuilder的最新版PowerBuilder 6.0中提供了对这些技术的全面支持。
总之在数据库开发工具领域,PowerBuilder 是其中非常优秀的一个,利用它我们可以开发出功能强大的数据库应用程序。
1.2 PowerBuilder的特点PowerBuilder提供了对目前流行的大多数关系数据库管理系统的支持,由于在PowerBuilder的应用程序中对数据库访问的部分一般采用国际化标准数据库查询语言SQL,使得用PowerBuilder开发的应用程序可以不做修改或者只做少量的修改就可以在不同的后台数据库管理系统上使用。
pb 连接cache数据库方法-回复如何连接Cache数据库方法引言:Cache是一种面向对象的多模式数据库,其主要特点是速度快、吞吐量高、可用性强,并提供了一套强大的SQL查询引擎。
在本文中,我们将逐步介绍如何连接Cache数据库的方法。
第一步:安装Cache数据库1. 首先,您需要从InterSystems官方网站上下载Cache数据库的安装包,并按照安装向导的指示进行安装。
可以选择按照默认设置安装,也可以自定义设置。
2. 安装完成后,您需要启动Cache数据库。
在启动界面上,您可以选择创建一个新的数据库或者连接到一个已有的数据库。
第二步:设置数据库连接参数1. 打开Cache数据库管理工具,找到数据库连接配置界面。
具体操作方式因版本而异,可通过阅读相关文档或搜索相关教程来获得指导。
2. 在数据库连接配置界面中,您需要填写以下参数:- 主机名:数据库所在的主机IP地址或主机名。
- 端口号:Cache数据库的监听端口号,默认为1972。
- 用户名和密码:您的Cache数据库登录凭证。
3. 完成参数填写后,保存并测试连接,确保连接设置正确。
第三步:选择数据库连接方式Cache数据库支持多种连接方式,包括本地连接和远程连接。
根据您的需求,选择适合的连接方式。
1. 本地连接:如果您的应用程序与Cache数据库运行在同一台机器上,可以选择本地连接。
在本地连接模式下,您只需要填写正确的数据库连接参数,即可直接连接到数据库。
2. 远程连接:如果您的应用程序与Cache数据库运行在不同的机器上,需要进行远程连接设置。
远程连接需要在数据库服务器和客户端之间建立网络连接,确保网络连通性。
具体的远程连接设置可以参考官方文档或相关教程。
第四步:选择合适的编程语言和数据库驱动Cache数据库支持多种编程语言和数据库驱动,您可以根据自己的需求选择适合的工具。
1. 对于Java开发者,可以选择使用官方提供的Cache Java连接器。
目录第一章PowerBASIC集成开发环境 (4)1启动 (4)1.1定位/G: (4)1.2主源文件/P: (4)2.PowerBASIC用户界面 (5)2.1菜单栏介绍 (6)2.1.1文件菜单(File) (6)2.1.2编辑菜单(Edit) (8)2.1.3运行菜单(Run) (10)2.1.4工具菜单(Tools) (10)2.1.5窗口菜单(Window) (11)2.1.6调试菜单(Debug) (12)2.1.7 帮助菜单(Help) (13)2.2 IDE 选项对话框 (14)2.2.1文件选项卡(File) (15)2.2.2 编辑器选项卡(Editor) (17)2.2.3编辑器文本选项卡(Editor Text) (19)2.2.4颜色选项卡(Color) (20)2.2.5打印机选项卡(Printer) (22)2.2.6编译器选项卡(Compiler) (23)2.2.7通用选项卡(General) (24)第二章编程基础 (26)1数据类型 (26)类型定义 (27)1.1整数型数据 (28)1.1.1字节(Byte ?) (28)1.1.2 字型(WORD ??) (28)1.1.3整型(Integers %) (28)1.1.4双字型(Double-word ) (29)1.1.5长整型(Long integers &) (29)1.1.6四字整型(Quad integers &&) (29)1.1.7小结 (29)变量类型与其它语言的对应关系 ...................................................................... 错误!未定义书签。
C/C++ .................................................................................................................... 错误!未定义书签。
PB培训教程(提高篇)一、教学内容本节课的教学内容选自人教版《小学数学》第四册,第98页至100页,主要包括小数乘法和除法的运算方法。
通过本节课的学习,让学生掌握小数乘法和除法的运算规律,能够熟练地进行小数四则混合运算。
二、教学目标1. 理解小数乘法和除法的运算规律,能够正确地进行小数四则混合运算。
2. 培养学生的逻辑思维能力和解决问题的能力。
3. 激发学生学习数学的兴趣,提高学生的数学素养。
三、教学难点与重点重点:小数乘法和除法的运算规律,小数四则混合运算的顺序。
难点:小数乘法和除法运算中的注意事项,以及如何正确地进行小数四则混合运算。
四、教具与学具准备教具:黑板、粉笔、多媒体教学设备。
学具:练习本、铅笔、橡皮、小数计算器。
五、教学过程1. 实践情景引入:教师通过展示购物场景,让学生观察商品价格,引出小数乘法和除法的运算。
例如,一瓶饮料的价格为2.5元,买3瓶需要多少钱?2. 例题讲解:教师通过讲解例题,让学生掌握小数乘法和除法的运算规律。
例如,2.5乘以3等于多少?如何计算2.5乘以0.3?3. 随堂练习:教师给出一些小数乘法和除法的练习题,让学生独立完成。
例如,计算1.2乘以0.5,2.4除以0.8等。
4. 小数四则混合运算:教师引导学生进行小数四则混合运算,让学生掌握运算顺序。
例如,计算3.2加上1.5乘以0.2的结果。
六、板书设计板书内容主要包括小数乘法和除法的运算规律,以及小数四则混合运算的顺序。
例如:小数乘法:2.5 × 3 = 7.52.5 × 0.3 = 0.75小数除法:2.4 ÷ 0.8 = 3小数四则混合运算:3.2 + 1.5 × 0.2 = 3.3七、作业设计(1) 2.5 × 4(2) 1.2 × 0.5(3) 2.4 ÷ 0.4(1) 5.6 + 2.3 × 0.5(2) 4.8 ÷ 1.2 0.7八、课后反思及拓展延伸课后,教师应反思本节课的教学效果,针对学生的掌握情况,进行针对性的辅导。
Powerbuilder创建数据窗口规范与注意事项导言:数据窗口是powerbuilder中一个最重要的控件,且是powerbuilder独有的一个控件,他存在于用户与数据库之间,能够方便的帮助用户进行sql语句对数据库进行操作,使开发人员能够节约大量时间与精力,然而相对数据窗口的强大,powerbuilder软件本身就显得略有不足,相对其他开发软件而言会有更多的bug。
下面就数据窗口的创建与标准布局做一些讲解。
1.新建数据窗口时常见的处理流程a)新建数据窗口1)选择表和要编辑、要显示的字段。
2)设置检索参数3)设置where条件b)显示处理(不分先后)1)去掉无需编辑、无需显示的,但要存储、处理数据的字段2)调整Header、Detail区域字体大小3)设置显示格式format掩码1.直接掩码写死2.根据条件设置掩码c)输入控制1)设置字段是否可以编辑1.去掉无需编辑、需要显示的字段的焦点2.根据条件设置字段是否可以编辑2)设置字段的编辑风格1.edit标签页下style typea)editb)editmaskc)radiobuttonsd)checkboxe)dropdowndwf)dropdownlistbox3)设置字段掩码(如果无显示掩码,则以编辑掩码显示)1.数值(“0.00”、“###0.00”)2.日期(“yyyy-mm-dd”、“yyyy-mm-dd hh:mm:ss”)d)设置数据窗口的更新属性一、创建powerbuilder数据窗口时的注意事项1.简化数据窗口输出列在powerbuilder中,数据传输的流量问题是值得注意的一个问题,每一个数据从数据库到数据窗口都是需要流量作为代价的。
因此,在创建数据库的时候,能够尽可能的少引入列是一个应当遵守的原则。
理论上,能够不读取的字段就不要将其加入数据窗口中,以减少网络传输。
2.列visible属性设为false后改回自动移动到最后的处理方法。
pb报表制作powerbuilder报表制作教程pb报表编制教程步骤在通常的管理信息系统开发过程中,总是有没完没了的报表需要制作,调试报表花费的时间也是最多而且乏味,还常常不能满足客户的要求。
如果能够让用户自己调整报表的格式和内容,然后将它保存下来,程序下次启动时若能自动调用保存了的报表格式那就方便多了。
实现原理PowerBuilder中有一种以PSR为后缀的特殊的保存报表的文件格式(本文简称PSR 文件),数据窗口可以直接读取PSR文件生成报表,而程序通过生成PSR文件,就可以实现动态报表格式的保存。
首先,通过设置数据窗口对象(dataobject)中的文本、列等的Resizeable和moveable属性为1来实现对象位置的拖动控制,通过数据窗口的Modify函数实现对象值的更改(包括增加和删除)。
其次要保存报表格式。
在一个应用中,数据窗口对象的名称总是惟一的,将每一个数据窗口对象转化成PSR文件存于数据库表中。
在窗口打开时,程序先校验报表格式是否存在。
如果存在,将报表格式读出来放在一个临时文件当中,然后设置数据窗口(datawindow)的数据对象(dataobject)为这个报表文件,并提取数据; 如果不存在,直接提取数据即可。
实现过程1. 建立一个数据库表用以保存报表格式文件,各个字段定义如下:2. 建立一个窗口w_temp。
定义实例变量如下:string is_dwtype,is_dwobject//保存报表中对象的类型及名称3. 在窗口的Open事件中加入如下代码, 校验报表格式是否存在,如果存在,读取定义好的报表格式到数据窗口。
blob emp_piclong ll_handlestring ls_dwobject,ls_reportfile,ls_pathls_dwobject = dw_print.dataobject//判断是否存在该数据窗口的报表格式select count(*) into:ll_count from dyn_report where dwobject=:ls_dwobject;if ll_count>0 then//读取报表格式文件到大文本变量selectblob memo into:emp_pic from dyn_report where dwobject=:ls_dwobject;//创建PSR临时文件并保存到硬盘ls_reportfile =‘\temp7089.psr’ll_handle = FileOpen(is_reportfile,StreamMode!,write!,LockWrite!,Replace!) FileWrite(ll_handle,emp_pic)FileClose(ll_handle)dw_print.dataobject = ls_reportfiledw_print.settransobject(sqlca)elseDw_print.settransobject(sqlca)End ifDw_print.retrieve()4. 保存报表格式,这可以通过Cb_savereport按钮的clicked事件实现。
PB培训教程(提高篇)-(多场景)PB培训教程(提高篇)一、引言随着我国经济的快速发展,企业对人才的需求日益增长,专业技能培训成为了提升员工素质的重要途径。
PB(PowerBuilder)作为一款优秀的客户端/服务器应用程序开发工具,具有强大的数据处理能力和灵活的界面设计功能,广泛应用于企业级应用开发。
为了帮助广大PB爱好者提高开发技能,本教程将从实战角度出发,详细讲解PB的高级应用技巧。
二、PB开发环境介绍1.PB简介PowerBuilder(简称PB)是美国Sybase公司推出的一款客户端/服务器应用程序开发工具。
它采用面向对象的编程思想,支持多种数据库,具有强大的数据处理能力和灵活的界面设计功能。
PB在我国的企业级应用开发领域具有广泛的应用。
2.PB开发环境搭建(1)安装PB开发工具:并安装PB开发工具,根据提示完成安装过程。
(2)配置数据库连接:安装并配置数据库软件(如Oracle、SQLServer等),建立数据库连接。
(3)创建PB项目:在PB开发环境中创建新项目,配置项目属性,为后续开发做好准备。
三、PB高级应用技巧1.数据窗口应用(1)数据窗口简介:数据窗口是PB中用于数据显示和编辑的重要组件,具有强大的数据处理能力。
(2)数据窗口设计:掌握数据窗口的设计方法,包括数据源设置、列属性设置、样式设置等。
(3)数据窗口事件处理:了解数据窗口的事件处理机制,掌握常见事件(如Click、DoubleClick等)的编写方法。
(4)数据窗口与数据库交互:学习如何使用数据窗口进行数据的增、删、改、查操作。
2.PB与Web技术结合(1)Web开发简介:了解Web开发的基本概念,掌握、CSS、JavaScript等基本技术。
(2)PBWeb应用程序:学习如何使用PBWeb应用程序,包括Web数据窗口的使用、Web事件处理等。
(3)PB与WebService交互:掌握PB调用WebService的方法,实现PB与WebService的数据交互。
PB培训教程(提高篇)PB培训教程(提高篇)PB( PowerBuilder)是一款流行的集成开发环境(IDE),它是一种用于开发企业级应用程序的工具。
无论是Web应用程序、桌面应用程序,PB都可以胜任。
在企业中,人们使用PB制作的软件可以在不同的系统平台和数据库中实现数据的集成。
在本篇文章中,我们将为大家分享一些提高篇的PB培训教程,帮助读者更好地使用PB进行应用程序开发。
1.利用PB进行线程编程随着计算机处理速度的提高,人们期望计算机可以同时执行多个任务,因此,线程编程变得越来越重要。
PB自带的开发工具和函数库可以帮助您更容易地在应用程序中实现线程编程。
以下是一些线程编程的基本概念:①主线程和子线程主线程是应用程序中的主要执行线程,它通常负责与用户交互和管理应用程序的状态。
子线程可以独立于主线程运行,它通常负责执行后台任务,如文件下载或计算。
②线程同步不同的线程之间通常需要协调执行。
线程同步的目的是确保线程之间的任务执行是有序的。
同步机制包括信号量、互斥锁、互斥量等。
③线程通信不同的线程之间通常需要通信,以便协调执行。
线程通信的目的是允许一个线程向另一个线程传递信息。
常见的线程通信机制包括消息队列、管道等。
在PB中,您可以使用Create和SendMessage函数创建线程,使用ResetEvent和WaitForSingleObject函数同步线程,使用PostThreadMessage和PeekMessage函数进行线程之间的通信。
2.利用PB进行多语言开发多语言开发已成为全球软件开发的重要趋势。
随着各国经济的快速发展,软件企业和产品已经选择了向全球市场推广其产品的策略。
要实现多语言开发,需要考虑最终用户的语言、文化、习惯等。
以下是一些常见的多语言开发方法:①本地化本地化是指调整应用程序以适应特定地区或国家的语言和文化。
本地化涉及到应用程序的所有方面,包括UI、消息框、菜单和帮助文档等。
总复习一、使用PB开发数据库的基本步骤1、建立数据库主要步骤:(1)建立数据库(2)建立表结构(3)建立主键、外键和索引(4)输入数据2、建立应用程序对象主要步骤:(1)建立工作空间(2)建立目标文件、库文件和应用程序对象` (3)处理应用程序对象的事件●在应用程序对象的open事件中建立与数据库的连接●在应用程序对象的open事件中调用主窗口(或登录窗口),如果尚未建立窗口,可以暂时空缺●在应用程序对象的close事件中断开与数据库的连接3、建立登录窗口主要步骤:(1)创建窗口(2)在窗口上建立静态文本框(3)建立用于输入账号的单行编辑框(4)建立用于输入密码的单行编辑框(5)在单行编辑框中自定义事件,用于支持回车键(6)在窗口上建立确认、退出按钮(7)编写自定义事件中的脚本(8)编写确认、退出按钮中的脚本4、建立主窗口和主菜单主要步骤:(1)建立主菜单●建立菜单项●建立工具条●建立快捷方式●编写退出脚本(2)建立主窗口●建立MDI窗口●设置窗口标题和状态参数●连接主菜单和主窗口5、应用窗口(1)增删改窗口◆创建窗口◆建立数据窗口对象◆在窗口上建立数据窗口控件◆连接数据窗口对象和数据窗口控件◆在窗口上建立增加、删除、提交、退出按钮◆编写open事件脚本(2)检索窗口◆创建窗口◆建立数据窗口对象◆在窗口上建立数据窗口控件◆连接数据窗口对象和数据窗口控件◆在窗口上建立检索条件控件,建立检索、退出按钮◆编写open事件脚本◆编写各按钮中clicked!事件脚本(3)统计窗口◆创建窗口◆建立数据窗口对象(包括各种统计图形)◆在窗口上建立数据窗口控件◆连接数据窗口对象和数据窗口控件◆编写open事件脚本(4)打印窗口◆创建窗口◆建立数据窗口对象◆在窗口上建立数据窗口控件◆连接数据窗口对象和数据窗口控件◆在窗口上建立打印、退出按钮◆编写open事件脚本◆编写各按钮中clicked!事件脚本二、应用举例题目背景:一个简化的学生成绩管理子系统由两个表组成,一个表叫成绩单表, 用来记录学生的考试成绩;另一个表叫学生表, 用来描述学生的基本信息。
17.1 创建分布式程序上几章中,我们介绍了PowerBuilder分布式计算的基本概念,在接下来的章节中,我们将做一个简单的分布式程序。
我们来看一下一个已经存在的应用程序,然后将做成的分布式运行的程序。
单击Library按钮,打开一个名为Clients的库,单击Clients应用对象。
按Run按钮(图17-1)。
这里没有提供现成的数据库,读者需要自行建立。
图17-1这是一个商品预定程序,所预定的是个人电脑配件。
这是一些电脑常用配件名,旁边所列的配件的价格,这些价格来自电脑分销商的远程数据库。
分销商将定期更改这些数据库中的价格表。
最后的分销商给购买者折扣。
与电脑配件不同的是,折扣值的是不公开的,分销商将给予不同的购买用户以不同的折扣,折扣的计算方法是秘密的,并且不断变化。
因此,我们想把电脑预定程序做成一个分布式运行的程序,让计算折扣的程序运行在我们的服务器中,这样做的目的一方面是保密,另一方面,在分销商更改折扣算法时,只需更服务端程序,而不用更改在客户端中的电脑预定程序。
17.2 Nonvisual Object 与 Proxy Object第一步,我们所做的是将折扣计算模块生成一个非可视对象NVO。
单击用户对象按钮(user object),按NEW,然后选择Class框中的Custom按钮,系统出现一个用户对象窗口。
我们可以注意到窗口的标题栏中有一句话为:Inherited from Nonv isual Object,它说明我们所创建的对象正是NVO。
接着我们为NVO定义一个函数。
打开D eclare菜单中User Object Functions,按NEW按钮,这样就打开了函数定义窗口(图17-2)。
这个函数名为GetDiscount,它需要有一个参数为CustomName(用户名),类型为STRING (字符串),返回值为DECIMAL(小数)。
图17-2这就是我们的折扣函数。
假若用户名为Mohair,则我们给予九折,否则,给九五折。
POWERBUILDER教程第一章概述1.1特点1.事件驱动在事件驱动方式中,程序的运行没有固定的流程,程序的代码也是为各种可能发生的事件编写,当程序开始运行后,它可以接受来自系统、用户或其他应用程序触发的事件,然后执行事件代码。
建立窗口、控件和其他应用部件时都含有一组预定义的事件。
例如:clicked(单击),用户也可以定义自己的事件。
2.面向对象Windows应用程序中常见的窗口、菜单、控件在powerbuilder中都是一个个对象。
同时,也可以创建自己的用户对象。
每个对象都有自身的特征和行为(属性、事件和函数)。
Powerbuilder提供了基础类库PFC,它为应用程序开发提供了许多可重用的预定义类和对象,利用基本类库PFC可以快速开发高质量、重用好的应用程序。
3.Powerscript语言Powerbuilder中,所有的处理逻辑都是用powerscript语言编写,powerscript是PowerBuilder是专用语言。
4.强大的数据库窗口对象数据窗口对象是PowerBuilder中的一种对象类型,是专门为访问后台的数据库服务的,在数据窗口对象中可以定义数据的来源和数据的显示风格,这样在应用程序就可以把精力完全放在程序的流程控制上,而不用关心具体数据的来源。
如果需要使用数据库中不同的数据,也只要对数据窗口对象进行修改就可以。
5.其他特点支持internet、支持分布式应用、支持多平台、支持大多数关系型数据库(Sybase、MS SQLSERVER、ORACLE等等以及ODBC等其他数据源)等等1.2安装略注:升级至7.0111.3开发环境IDE1 菜单栏图标第一章库文件工具栏图标第二章对象编辑工具栏图标第三章库文件编辑区第四章对象编辑区第五章Datawindow编辑器1.4 预备知识一个PowerBuilder应用程序一般由若干个窗口组成,每个窗口有若干个控件(如按钮、菜单、文本等),每个对象或控件都有若干个事件(如按钮的单击或双击等),每个事件将对应一段程序。
1.5 习题第二章库文件与应用对象2.1 库文件如果一个应用创建的对象很多,可以考虑将这些对象存储于多个pbl文件中,一般按照功能模块或按对象类型组织存放。
2.2 应用对象所有的程序在运行时都需要一个入口,应用程序运行时从这个入库点开始启动。
在PowerBuilder中的入口就是应用程序对象。
在PowerBuilder中应用程序就是应用对象(application)、窗口(window)、数据窗口(datawindow)、菜单(menu)、以及用户对象(user object)等。
2.3 应用对象属性、事件、函数1 应用对象的属性2 应用对象的事件应用程序的事件关键点:事件的触发条件是什么事件的参数事件的典型处理脚本事件的返回值事件中那些函数不能使用3 应用对象的函数第三章数据库连接2.1 数据库概述1 关系型数据库逻辑结构为一个二维表2 表一个数据库通常包含多个表,每个表都包含行和列,一个表的数据可能和其他表有关联。
3 主键一个或多个列的组合,用来唯一标识表中的行。
4 外键一个表的一个或多个列,这些列于其他表的主键列相对应。
用于保证数据库的有效性。
5 索引可以提高数据的检索速度,同时也加大了数据存储和写入时间。
6 视图不同于表,可以理解为一个虚表。
它的字段都隐藏在相关的实表中。
7 扩展属性Pb连接数据库是创建。
Pbcatcol 保存字段信息Pbcatedt 保存编辑风格Pbcarfmt 保存显示风格Pbcattbl 保存数据表信息Pbcatvld 有效性校验2.2 数据库使用2.3 数据库连接1.odbc连接2专用数据库连接略3 事务对象事务对象(transcation object)在PowerBuilder应用中有很重要的地位,它执行各种嵌入式的sql语句。
它是一个特殊的不可视对象,其功能就是为PowerBuilder程序和数据库之间建立通讯,事务对象中定义了PowerBuilder用来与数据库连接的参数。
在访问数据库之间,首先要创建一个事务对象,并把数据库连接所需参数赋给这个事务对象的相应属性,然后通过这个事务与数据库进行连接,才能完成所需的数据库操作。
PowerBuilder会自动为应用程序创建一个sqlca的默认全局事务对象,在应用程序中可以使用这个默认事务对象进行数据库连接,当然也可以自定义事务。
事务对象的属性例子:SQLCA.DBMS = "ODBC"SQLCA.AutoCommit = FalseSQLCA.DBParm = "ConnectString='DSN=ukhis;UID=sa;PWD=sql2008'"事务对象的管理语句Connect using [事务对象];连接数据库,之前要指定相关的属性,成功后才能与数据库通讯。
Disconnect using [事务对象];断开与数据库的连接Commit using[事务对象];提交尚未提交的数据Rollback using [事务对象]撤销尚未提交的数据第四章语法4.1语法基础1 注释行注释open(w_main) //代开主窗口行注释已// 开始,其后书写注释,直到行结束块注释/*Create by xykaiInput 输入参数Output 输出参数*/块注释已/* 开始,其后写注释,直到*/ 结束注:默认情况下在代码编辑器中注释显示为蓝色2 标示符标识符是程序中用来代表变量、标号、函数、窗口、菜单、控件对象的名称。
注:命名的规则参见《开发规范》标示符不能使用保留关键字3 语句分隔符、断行及续行分隔符;PowerBuilder中对分隔符要求不是那么严格,不需要每条语句都有分隔符,一般键入enter键(回车)即可。
有关sql操作的需要指定分隔符。
续行&大多数情况下一条语句一行,有时超长或希望多写几行的情况时使用续行符。
例如:int li_xif li_x = 1 &li_x = 2 thenend if注:续行符的使用位置参见《开发规范》4特殊字符5空值空值(Null)一种交换数据的特殊值,指代表变量的数据未定义、不确定,它与空字符串、数值0以及日期00-00-00的意义是完全不同的。
与null值进行任何运算结果都是null。
有两种途径能得到null值。
1从数据库获取2 通过setnull得到。
例如:string ls_idSetnull(ls_id)6保留关键字And、call、case、choose等等7常用代词This 代表窗口、用户对象、菜单、应用程序或控件对象自身Parent 可以在窗口的控制、用户定制对象和菜单的程序中使用。
在窗口的控制中使用时代表包容该控件的窗口。
例如: 一个窗口w_win中有一个按钮,可以在按钮的clicked中写代码Close(w_win)和Close(parent)效果是一直的。
Super 在编写控制或对象的子对象时,可以用于调用祖先的脚本。
Call supper::clicked4.2数据类型1 标准数据类型2 any数据类型一种可变的数据类型,程序中给它赋什么类型,它就代表什么类型。
注:虽然灵活,但又潜在风险,由于类型不确定所用时间会更长、编译时不能发现错误只有运行时才会发现等等。
3 系统对象类型在PowerBuilder中,窗口、菜单、各种控件都是系统对象,每种对象实际上都是一种数据类型。
例如:Window mywinDatawindow mydatawindow4 枚举类型例如left!、righ!等等.注:开发人员不能定义自己的枚举类型,而只能按系统要求使用它。
4.3变量与常量1 定义除系统预定义的5个全局变量外,所有的变量在使用之前都需要进行说明。
语法如下:数据类型变量名{=初始值}例如:Integer iInteger j=12 作用域3数组数组代表具有相同类型的一系列变量。
声明如下:数组类型数组名[下标]例如:String ls_id[30]String ls_type[5]={‘a’,’b’,’c’,’d’,’e’}注:PowerBuilder中数组的下标从1开始4 常量应用程序不能修改的变量,提高可读性和可维护性。
语法如下:Constant 数据类型常量名=常量值例如:Constant dec ldc_pi = 3.14154.4运算符1 双目运算符有两个操作数的运算符为双目运算符2 单目运算符3 组合运算符4 连接运算符连接运算符只有一个,即使符号+ 。
表示把两个string或blob变量进行连接。
例如:String ls_a,ls_b,ls_cls_a = ‘hello’ls_b = ‘world’ls_c = ls_a + ls_b5关系运算符6逻辑运算符7运算符优先级4.5语句1 赋值语句用于给变量、对象属性进行赋值,是使用最频繁的语句。
格式如下:Variablename = expression说明将表达式的值赋值给左边变量Variablename 代表变量名Expression 代表表达式例如:ls_id = ‘a’ls_id = ls_a + ls_b2 条件语句If…thenif condition1 thenaction1elseif condition2action2elseaction3end ifconditon1、condition2 代表条件表达式action1、action2、action3代表一条或多条语句。
例如:If li_score >= 85 thenLs_dengji = ‘优秀’Elseif li_score >= 60 thenLs_dengji = ‘及格’Elsels_dengji = ‘不及格’end if注:单行语句可以不写end if。
例如:if li_i = 1 then ReturnChoose casechoose case testexpressioncase expressionliststatement[case expressionliststatement……][case elsestatement]end choosetestexpression 代表测试值expressionlist 代表可能出现的测试值statement 代表执行的语句段例如:Choose case ls_dengjiCase ‘优秀’Messagebox(‘成绩’,’你的成绩高于85分’)Case ‘及格’Messagebox(‘成绩’,’你的成绩高于60分’)Case elseMessagebox(‘成绩’,’你的成绩低于60分’)End choose3 循环语句For…next例如:Integer iInteger li_sum = 0For I = 1 to 50li_sum = li_sum + InextDo…loopDo while…loopDo…loop while4 流控制语句Continue 在循环语句中遇到时则不执行continue之后和循环结束之前的语句,开始新一轮循环。