【教学课件】第4章创建数据窗口.ppt
《【教学课件】第4章创建数据窗口.ppt》由会员分享,可在线阅读,更多相关《【教学课件】第4章创建数据窗口.ppt(96页珍藏版)》请在三一办公上搜索。
1、第4章 创建数据窗口,本篇主要内容,4.1 创建数据窗口4.2 数据源的选择4.3 编辑数据窗口4.4 连接数据窗口4.5 数据窗口编程4.6 一个典型示例,数据窗口是PowerBuilder 9.0中连接服务器与客户端的桥梁,同时是用来浏览、插入、删除和查询数据等操作的舞台。使用时只要让数据窗口知道做什么而不需要对数据库进行直接操作,大大降低了用户的使用难度。数据窗口对象主要由两部分组成:数据信息和显示风格。注意:数据窗口并不是一个窗口,数据窗口对象是PowerBuilder中的一个独立对象,对数据窗口对象的访问必须依靠数据窗口控件来进行。数据窗口控件是窗口中的一个控件,它和窗口上的其它控件
2、一样,有属性、函数和事件等。对数据窗口控件的访问必须依靠窗口来进行。因此,不能不依靠窗口而单独打开一个数据窗口控件。,4.1 创建数据窗口,步骤:创建数据窗口对象并为数据窗口选择数据源选择数据窗口的显示风格对设置的数据窗口进行确定或修改等操作。,数据窗口的显示风格:,Composite组合表方式,可集中多个datawindowCrosstab交叉表方式Freeform自由风格Graph图形和图象方式Grid以带线的表格方式Group记录分组显示Label以标签方式显示N-up有多个标签组成的显示方式Ole2.0将Ole对象作为数据源Richtext超文本方式Tabular风格,创建数据窗口举例
3、,(1)选择【File|New】菜单,打开New对话框,选择DataWindow标签页,出现选择数据窗口对象显示风格对话框。(2)选择要创建的数据窗口对象的显示风格。显示风格决定数据窗口对象以什么样格式显示数据。(3)如选择Tabular(表格)风格,点击OK按钮,出现选择数据源对话框。(4)点击Next按钮,在弹出的对话框中选择数据窗口所关联的表及表中的列。该对话框根据不同的显示风格有不同的形式。,创建数据窗口举例,(5)点击Next按钮,会弹出Select Color and Border Settings对话框。在对话框中设置其它属性,如数据窗口对象背景色、数据窗口对象内文本的颜色及边框
4、类型等。(6)设置完成后,点击Next按钮,弹出数据窗口对象的基本属性、特征对话框。对话框中显示了数据窗口对象的基本属性、特征,用户满意,点击Finish完成;若不满意点击Back按钮,返回上一步重新修改。一旦点击Finish按钮,数据源和显示风格就不能再改变。(7)设计完成后,选择菜单【File|Save】,打开保存数据窗口对话框。在对话框中选择库文件,输入数据窗口的名称、注释,点击OK按钮,就完成了数据窗口的创建。,4.1.1 Freeform 4.1.2 Grid4.1.3 Graph4.1.4 Composite4.1.5 Crosstab4.1.6 Group4.1.7 Label4
5、.1.8 N-up4.1.9 Ole2.04.1.10 Richtext4.1.11 Tabular,4.2 数据源的选择,数据源决定数据窗口对象从哪里以及如何得到数据,系统共定义了五种数据源。分别是:Quick Select(快速选取),大多采用这种数据源,它一般用于创建一个简单的Select语句;SQL Select(标准选取),用于创建任何Select语句;Query(查询),使用以前创建过的Query对象作为数据窗口对象的数据源;External(外部),使用数据库以外的其它数据源;Stored Procedure(存储过程),一般在服务器上创建复杂的查询,然后把数据回传给数据窗口对象
6、。,4.2.1 使用Quick Select选择数据源4.2.2 使用SQL选择数据源4.2.3 使用Query选择数据源4.2.4 使用External选择数据源4.2.5 使用Stored Procedure选择数据源,4.3 编辑数据窗口,4.3.1 数据窗口的几个区域Header标题区Detail细节区Summary汇总区Footer页脚区4.3.2 向数据窗口中添加界面元素InsertControltext Picture Line Oval Rectangle Round Rectangle ColumnComputed Field,4.3.3 设置数据字段属性,属性对话框:“Ge
7、neral”:”alignment”、”Border”“edit”:”style type”、”Format”、”Case”、”limit”、”accelerator”、”Auto Selection”、”Display Only”、”Password”“format”:,4.3.4 设置数据窗口打印参数,在数据窗口对象中的Print Specifications标签页中设置打印属性。(1)Document Name:输入文档文件的路径和名字,该文件用于打印时保存打印结果。(2)Left Margin(左边距)、Right Margin(右边距)、Top Margin(上边距)、Bottom
8、Margin(下边距):按指定的测量单位指定页边距。(3)Paper Orientation:指定纸张的方位是横向或纵向或保留上次的方位。(4)Paper Size:指定纸张大小。(5)Paper Source:指定纸张来源是手动的还是自动的。(6)Prompt Before Printing复选框:决定是否在打印数据窗口之前给予提示信息。(7)Display Buttons-Print和Display Buttons-Print Preview复选框:分别用来设定是否显示Print和Preview按钮。,4.4 连接数据窗口,打开要添加数据窗口控件的窗口,选择菜单【Insert|Contro
9、l|DataWindow】,在窗口的适当位置点击鼠标左键,这时出现一个空白框,这个空白框就是数据窗口控件。,4.4.2 数据窗口对象属性,(1)Name编辑框中的内容表示数据窗口控件名称,编写脚本时使用该名称。(2)DataObject:设置与数据窗口控件关联的数据窗口对象名称。(2)Title文本框:定义标题栏中标题内容。(3)TitleBar复选框:选中表示数据窗口控件显示标题栏,否则不显示。(4)Tag(5)Visible(6)ControlMenu复选框:选中表示在标题栏上显示控制按钮,否则不显示。(7)MaxBox、MinBox:选中这两个复选框分别表示给标题栏添加最大化按钮和最小化
10、按钮。,4.4.2 数据窗口对象属性,(8)HScrollBar VscrollBar:选择这两个复选框分别表示给数据窗口控件添加水平和垂直滚动条。(9)LiveScroll(10)HSplitScroll(11)Resizable(12)Border复选框和Border Style下拉列表框:用来设置控件的边界形状。(13)Icon(14)Other标签页:设置控件的位置、大小及鼠标在控件中的形状。,4.4.3 预览数据窗口,Design Preview,4.5 数据穿口编程,程序运行时,要操纵数据窗口对象中的数据,就要在程序中连接数据库,让数据窗口对象与数据库之间建立连接。必须首先创建应用
11、程序与数据库之间的连接,应用程序与数据库之间的连接是通过事务对象完成的。4.5.1 事务对象 事务对象是一个传递应用程序与数据库之间信息的一个变量,它驻留在内存中,存储着用于连接数据库及从数据库得到反馈的所有信息,它定义了数据库与应用程序连接的参数。一个应用程序开始创建时,系统就自动定义一个名为SQLCA的默认全局变量。,事务对象的属性,事务对象共有15个属性,可以分为两类,一类有10个,用来描述连接数据库的信息,如所连接的数据库的名称;AutoCommit:这是一个布尔型属性。它指定是否将数据库设置成自动提交所有事物。当它为TRUE时,由系统自动提交所有事务,当为FALSE时,用户必须自己在
12、程序中设置事务管理,并在需要的时候对数据库进行提交事务。它的默认值是FALSE。DataBase:这是一个字符串类型的属性。它指定要连接的数据库名称。DBMS:这是一个字符串类型的属性。它指定应用程序所使用的数据库管理系统的名称,如ODBC。DBPass:这是一个字符串类型的属性。它描述的是用户连接数据库的密码。,事务对象的属性,Lock:这是一个字符串类型的属性。它是数据库的保护级别,一般不必给出。LogID:这是一个字符串类型的属性。它用于指定登录数据库服务器所需的用户名或用户的ID。LogPass:ServerName:UserID:这是一个字符串类型的属性。它指定了连接数据库的用户名或
13、用户的ID。,事务对象的属性,另一类有5个,用来接受有关数据库或最近执行SQL语句的情况或状态,如数据库操作是否成功。SQLCode:这是一个长整型(Long)的属性。它用来指定最近一次数据库操作成功与否的代码,共有三个返回值:0表示操作成功;100表示操作成功,但没有返回数据;-1表示操作失败。用户可以从SQLDBCode或SQLErrTex中得到具体详细的错误信息。SQLDBCode:这是一个长整型的属性。它包含了数据库错误代码,不同的数据库,错误代码不同,但大部分数据库厂商都用0表示操作成功,100表示成功但没有检索到数据,负数表示没有成功。SQLErrText:这是一个字符串类型的属性
14、。它包含了数据库操作的错误信息。SQLRows:SQLReturnData:,4.5.2 为数据窗口设置事务对象,下面是一个连接ODBC数据库所用的代码:/Profile ExerciseSQLCA.DBMS=ODBCSQLCA.AutoCommit=FalseSQLCA.DBParm=Connectstring=DSN=exercise这段脚本用来设置事务对象的属性,一般把它写在应用程序的Open事件中还可以使用ProfileString()函数从系统中读取事务对象,并将获得的值赋给事务对象。用户在定义数据库描述文件的同时已生成连接事务的代码,在数据库属性中选择。,4.5.3 用数据窗口连接
15、数据库,(1)connect:数据库连接该语句表示与数据库连接。它的语句结构是:connect using 事务对象名;连接数据库成功则SQLCode的值为1,如果该值为0,则连接数据库没有成功。若是使用sqlca,可以使用两种格式:connect;connect using sqlca;上面两条语句作用一样,也就是说使用系统默认的sqlca,语句中可以指明,也可以不指明,默认指sqlca。,4.5.3 用数据窗口连接数据库,(2)disconnet:断开与数据库的连接该语句表示断开与数据库的连接,它的语法结构是:disconnect using 事务对象名;使用方法同(1)connect。,
16、4.5.3 用数据窗口连接数据库,(3)settransobject():事务对象与数据窗口控件关联通过connect语句,将一个事务对象与数据库连接起来了,但为了能使一个具体的数据窗口访问数据库,还必须把数据窗口控件和事务对象关联起来。关联语句中一定要使用数据窗口控件名,而不是数据窗口对象名。使用下面语句将数据窗口控件和事务对象关联。语句格式如下:DWControlname.settransobject(TransactionObjectName)如让dw_1数据窗口控件与sqlca事务对象关联,语句写为dw_1.settransobject(sqlca)。该语句一般写在数据窗口控件所在窗口
17、的Open事件中。,4.5.3 用数据窗口连接数据库,(4)retrieve()数据对象名称.retrieve(检索条件)例如:dw_1.settransobject(sqlca)dw_1.retrieve()数据库连接示例:图4-59在数据窗口中显示数据的步骤:1)设置事物对象参数2)连接数据库3)发送事务请求4)检索数据,可将数据显示在数据窗口中,4.5.4 缓冲区,缓冲区是数据窗口中的一个重要概念,只数据窗口工作过程中不可缺少的因素。PowerBuilder中的缓冲区:1)Primary Buffer(主要缓冲区)2)Delete Buffer(删除缓冲区)3)Filter Buffer
18、(过滤缓冲区)4)Original Buffer(原始缓冲区),4.5.5 常用操作数据窗口函数和方法,(一)Retrieve()函数(检索数据)(1)函数不带参数格式:dwcontrolname.retrieve()如数据窗口控件dw_1检索数据,可用dw_1.retrieve()语句。这种情况的使用简单,用于没有设定任何参数的数据窗口对象。(2)函数带有n个参数,格式是dwcontrolname.retrieve(参数1,参数2,参数n),如数据窗口控件dw_1检索数据,可用dw_1.retrieve(参数1,参数2,参数n)。,(一)Retrieve()函数,注意:这里参数的个数、类型、
19、与数据窗口对象中定义的变量个数、类型要相对应,若这里给定的参数个数少于数据窗口对象中定义的变量个数,程序运行时就会出现错误;若这里的参数个数多于数据窗口对象中定义的变量个数,程序运行时就会自动去掉后面多余的参数。检索函数多用于settransobject(sqlca)语句后面。(3)函数的返回值函数返回一个整型值,表示从数据库中检索到的行数;若没有匹配的结果,则返回值是0;若检索中出现了错误,返回值是-1。,(一)Retrieve()函数,(4)执行函数时触发的事件DBError:检索失败时发生。RetrieveRow:每行数据检索出来以后发生。RetrieveStart:检索开始时发生。Re
20、trieveEnd:检索完成后发生。(5)典型应用dw_1.settransobject(sqlca)dw_1.retrieve()将数据窗口与事务对象关联,并检索数据窗口中数据。,(二)Update()函数(更新数据),(二)Update()函数(更新数据)Update函数用于把当前数据窗口中从上次执行update或retrieve函数以来进行的所有修改保存到数据库中。(1)常用语法形式如下:DWcontrolname.Update()如更新数据窗口控件dw_1,脚本写为:dw_1.update()(2)函数返回值若返回值是1表示成功,返回值是-1表示失败。(3)执行函数时触发的事件DBEr
21、ror SQLPreviewUpdateStart UpdateEnd,(4)典型应用if dw_1.update()=1 thencommit;Else messagebox(“错误”,”无法保存更改!”)rollback;end if数据窗口中数据更新正确则提交事务(保存数据),否则取消事务(不保存数据)。,(二)Update()函数(更新数据),(3)insertrow()函数(插入记录),录入数据,添加新记录,就要用到insertrow函数。要想将插入的记录保存到数据库中,还应执行更新命令。(1)语法形式:DWcontrolname.insertrow(m)其中m表示插入行的前一行行号
22、,它是一个long型变量。若它的值是0,表示在数据窗口的最后插入一条记录。(2)函数的返回值函数的返回值是long型,表示插入行的行号;插入失败返回值是-1。该函数只能插入一条记录,但不能自动滚动到插入行,也不能自动把插入行设置为当前行。,(3)insertrow()函数(插入记录),(3)典型应用long nnnn=dw_1.insertrow(0)dw_1.scrolltorow(nn)在数据窗口控件dw_1的最后插入一条空白记录,并使屏幕滚动,使刚插入的记录显示在屏幕范围内。,(4)deletetrow()函数(删除记录),(1)语法形式:DWcontrolname.deleterow(
23、m)其中m表示要删除的行号,它是一个long型变量。若它的值是0,表示删除当前行。(2)函数的返回值1表示删除成功,-1表示删除失败。(3)典型应用long nn,row1nn=dw_1.rowcount()for row1=1 to nndw_1.deletrow(1)next,删除数据窗口控件dw_1中现有的所有记录,记录虽然删除,但数据库中数据并没改变,我们改变的只是缓冲区中的内容,要将删除结果保存,需要编写更新脚本。,(5)scrolltorow()函数(滚动行),在缓冲区的尾部插入新记录,新插入的记录可能在数据窗口中看不到,这时就可以使用该函数将新插入的行滚动到视窗内。(1)语法形式
24、:DWcontrolname.scrolltorow(rownumber)其中rownumber表示要滚动到的行号,是一个long型,若rownum为0,则会滚动到数据窗口的第一行,若rownum的值大于数据窗口的总行数,则会滚动到最后一行。滚动到的行就是数据窗口的当前行。(2)函数的返回值1表示操作成功,-1表示操作失败。,(5)scrolltorow()函数(滚动行),(3)典型应用dw_1.scrolltorow(dw_1.rowcount()滚动到数据窗口的最后一行。(4)触发事件执行该函数时,会触发以下事件:ItemChanged、ItemFocusChanged、RowFocusC
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 教学课件 教学 课件 创建 数据 窗口
链接地址:https://www.31ppt.com/p-5658774.html