PowerBuilder控件使用手册
- 格式:pdf
- 大小:73.77 KB
- 文档页数:12
zyjckxx@1、数据库相关程序初始化代码// Profile sample1SQLCA.DBMS = "ODBC"SQLCA.AutoCommit = FalseSQLCA.DBParm = "ConnectString='DSN=sample1;UID=wgj;PWD=wgj'"2、在每个要进行数据操作的窗口中初始化代码:connect;DataWindow.settransobject(sqlca)DataWindow.retrieve(1)其中DataWindow为所用的数据窗口3、打开窗口:open(window),其中window为要打开的窗口名称4、关闭窗口:close(window),注意关闭事件触发空间所在的窗口可以用close(parent)5、为数据窗口设置过滤条件:dw_login.setfilter(querytj)6、过滤数据窗口的数据:filter(DataWindow)DataWindow.retrieve(1)7、使某一控件获得焦点:setfocus(Control)8、发送屏幕消息:messagebox(title, content, [yes], [no])messagebox(title, content, question!,yesno!),弹出“是”,“否”对话框,点“是”返回1,“否”返回09、取数据窗口的数据行数:DataWindow.rowcount()10、数据窗口取值:DataWindow.object.data[rowid,colid]11、删除数据窗口中的某一行数据:deleterow(DataWindow,rowid)12、判断修改数据是否成功:update(DataWindos,true,false)返回1表示成功,否则不成功13、提交数据:DataWindos.resetupdate()commit;14、设置数据窗口中的数据:dw_1.object.data[ii,3]=ddlb_1.textdw_1.object.data[ii,4]=integer(sle_4.text)注意当数据库中的数据不为字符串型时要先转换类型后才能赋给数据窗口的相应字段,如第二句。
PowerBu ilder是一个可视化图形界面的数据库应用系统开发工具,它支持面向对象技术、客户/服务器机制、分布式组件开发和因特网应用。
加服务器负载)。
2.文件服务器网络结构:应用程序在客户工作客户站上运行,文件服务器只提供资源的集中管理和访问途径。
(增加网络负载)3.客户服务器网络结构:向服务器发送处理请求而不是文件请求;服务器返回返回的是处理结果而不是文件。
访问文件服务器的数据库访问客服/服务器的数据库4.分布式客户/服务器网络结构客户端应用程序(客户层)电脑、实施商业规则的组件(中间层)电脑、数据库服务器(服务器层)电脑(1)组件具有不同的应用程序可以重复使用的组件共享特性。
(2)组件具有配置和设计的灵活性,使计算机性能得以改善(3)组件开发使得复杂的应用变为易于管理的模块5.Web网络结构Web服务器(电脑)->中间件(电脑)->数据库服务器(电脑)中间件负责管理W eb服务器和数据库服务器之间的通信,并提供应用程序服务,它能够直接访问数据库、调用外部程序。
或利用程序代码访问数据库。
因此可以提供与数据库相关的动态H TML页面或执行用户查询,并将结果格式化成H TML页面,然后通过Web服务器返回给用户浏览器。
通常软件系统根据需求分为两类。
一类需求是需要比较稳定的而且并能够预先指定的系统,称之为预先指定的系统。
如计算机控制系统,卫星图像处理系统、火箭发射控制、数据库管理系统。
开发这类系统需要预先进行严格需求分析,指定精确的规格说明,并在严格管理下进行传统的生命周期开发。
另一类是需求模糊,随时可变化的系统。
一般是商业和行政数据处理系统、决策支持系面向对象建模得到的模型对象的三个要素(三个子模型),即静态结构(对象模型)、交互次序(动态模型)和数据变化(功能模型)。
PB数据窗口教程数据窗口是PowerBuilder中最常用的控件之一、它用于显示数据库查询结果,并提供了对此结果进行浏览、修改和删除等操作的功能。
本教程将为您介绍如何在PowerBuilder中使用数据窗口控件。
第一步是创建一个数据窗口。
在PowerBuilder的“对象”菜单下,选择“新建”>“数据窗口”。
在弹出的对话框中,选择所需的数据源和表格,并点击“确定”按钮。
此时,将会出现一个空白的数据窗口设计器。
接下来,将需要显示在数据窗口中的列添加到数据窗口中。
您可以通过拖拽数据库字段或手动添加列的方式进行操作。
在设计器的左侧,您将看到一个“对象树”面板,在这里选择数据窗口对象,并右键单击以添加列。
完成列的设置后,您可以在设计器的页面中放置其他控件,以增强用户界面。
一些常用的控件包括文本框、复选框、下拉列表框等。
您可以通过拖拽控件到数据窗口设计器的页面中进行操作,并根据需要设置其属性。
下一步是设置数据窗口的数据源。
在数据窗口设计器的菜单栏中,选择“数据”>“设置数据源”选项。
在弹出的对话框中,选择所需的数据源和表格,并点击“确定”按钮。
此时,数据窗口将会显示数据源中的数据。
现在,您可以运行应用程序,并查看输出窗口中的结果。
您可以通过点击数据窗口中的列标题对数据进行排序,通过点击数据行进行选择,并通过单击“查阅”按钮在查询结果中进行导航。
如果需要,您还可以在数据窗口中进行增加、修改和删除操作。
通过本教程,您应该已经了解了如何在PowerBuilder中创建和使用数据窗口控件。
数据窗口是PowerBuilder开发中非常重要的一部分,掌握了数据窗口的使用方法,可以提升开发效率,并为用户提供更好的用户界面和交互体验。
希望本教程能对您有所帮助!。
在POWERBUILDER中使用WINSOCK控件的方法(一对一,UDP协议)2011-01-18 10:36(该程序是在pb10.5版本环境下编写)一、在窗口中添加WINSOCK控件:在应用中新开一个窗口,在窗口画板中点击controls-->OLE菜单项,弹出Insert object窗口,单击Insert control标签,从列表框中双击选定Microsoft Winsock control,将winsock的图标贴在窗口上。
在程序中该控件名称定为winsock_a(甲方)和winsock_b(乙方)。
二、设置信息输入输出文本框:在窗口中增加一个按钮cb_1,两个单行文本框sle_1,sle_2,分别用于输入要发送的字符串和接受对方发送的字符串。
三、设置通讯协议:WINSOCK控件允许用户以UDP和TCP两种协议中任选一种进行通讯。
1.UDP协议设置:UDP协议是一种无连接的通讯协议,在通讯之前,需要绑定remotehost 和remoteport属性,如果需要双向通讯,还要设置localport属性。
在甲方(本机地址为:192.168.0.34)窗口的Open事件中加入如下语句:winsock_a.object.protocol=1//winsock通讯协议设为UDP协议winsock_a.object.remotehost="192.168.0.29"//对方的ip地址winsock_a.object.remoteport=6000//对方的winsock通讯端口号winsock_a.object.localport=6001//本机的winsock通讯端口号winsock_a.object.bind//绑定通讯协议在乙方(本机地址为:192.168.0.29)窗口的Open事件中加入如下语句:winsock_b.object.protocol=1//winsock通讯协议设为UDP协议winsock_b.object.remotehost="192.168.0.34"//对方的ip地址winsock_b.object.remoteport=6001//对方的winsock通讯端口号winsock_b.object.localport=6000//本机的winsock通讯端口号winsock_b.object.bind//绑定通讯协议需要注意的是:在server和client的ole控件的OLE CONTROL PROPERTIES需要填写项目,不能空(已经作出测试)如图:server:client无论采用哪种协议,都要在窗口的Close事件中加入如下语句:if winsock_a/*或winsock_b*/.object.state <>0 thenwinsock_a.object.close()end if否则可能第二次使用时发生异常问题开始通讯在按钮cb_1(caption属性设为‘发送’)的click事件中加入如下语句:winsock_a.object.senddata(sle_1.text)在winsock_a/*或winsock_b*/控件的dataarrival事件中加入如下语句://接受到对方数据后string datastr1winsock_a/*或winsock_b*/.object.getdata(ref datastr1)sle_2.text=datastr1 //将数据字符串显示在文本框中到此,编译一下,然后在两部电脑分别放server和client(同一局域网内),就可以进行简单的运行了。
[网络编程实用教程]PowerBuilder 实用教程[网络编程实用教程]PowerBuilder 实用教程篇一 : PowerBuilder 实用教程程继辉第一章 PowerBuilder 概论PowerBuilder 7.0 简介新特性开发环境1.1 PB 7.0 简介1(1(1 PB 特性 1、支持多种操作系统 Windows、UNIX等操作平台 2、与多种数据库的连接性 Oracle、MS SQL Server Sybase SQLServer 3、丰富的开发工具 4、对Internet的强力支持1.1 PB 7.0 简介客户/服务器结构客户: 从其它计算机读取数据,处理后将数据存储到提供数据的计算机中。
服务器: 向其它计算机提供数据的计算机1.1 PB 7.0 简介面向对象设计概念对象属性方法事件关联1.1 PB 7.0 简介事件驱动过程的程序设计原理事件驱动:程序启动时,只做了一些初始化的工作,然后等待用户或外界的环境的触发。
所有的代码都是编写在不同的事件中。
1.2 PowerBuilder 7.0的新特性全新的用户接口和开发界面1.2 PowerBuilder 7.0的新特性非模态的开发视窗 PB7.0的画板一般是拥有多个视窗的窗口,每个视窗提供查看和修改对象的特定方式或者显示与对象相关的某种信息,见图示1.2 PowerBuilder 7.0的新特性数据库连接新特性1.3工具栏PB7.0 的开发环境菜单画板数据窗口画板第二章应用程序创建应用程序对象设置应用程序的属性应用程序对象的事件对象库搜索表运行应用程序应用程序对象的事件触发时机启动应用程序Open 事件初始化,打开初始化窗口与用户交互系统错误打开其它窗口系统错误启动应用程序应用程序终止关闭并清除所有对象应用程序对象应用程序属性应用程序事件对象库搜索表创建应用程序创建应用程序第三章窗口设计窗口创建窗口控件的基本操作窗口控件属性、事件和函数常用对话框创建窗口创建窗口设计窗口布局的地方窗口或控件属性编写事件代码的地方窗口事件窗口控件属性、事件和函数PB控件: 从行为上区分: 1 能响应用户的操作 2 不能响应用户的操作从用途上区分 1 激活动作类 2 选择项类 3 显示数据类 4 修饰类在窗口中添加控件在窗口中添加控件第四章数据库基础及管理数据库应用技术的发展过程如何开发数据库应用系统数据库结构的设计与实现数据库管理数据库的操作表的定义和数据操作表数据的处理 PB的专用接口与数据库建立连接4.1数据库应用技术的发展过程1、主机应用模式2、文件服务器应用模式3、客户服务器应用模式4、分布式计算应用模式5、WEB网络应用模式主机应用模式大型机应用程序数据库按键信息终端字符终端1 终端2 终端n文件服务器应用模式网络文件服务器数据库文件请求文件工作站1工作站2 应用程序工作站n 应用程序应用程序客户服务器应用模式应用程序网络服务器数据库处理请求处理结果工作站n 应用程序工作站1工作站2 应用程序应用程序文件服务器和C/S的数据库操作比较程序发出查询学号为99090221的信息的SQL请求查询操作在客户端完成查询文件请求文件服务器45000名学生数据的文件45000条记录的文件响应文件请求并返回整个文件程序发出查询学号为99090221的信息的SQL请求接收结果查询请求数据服务器查询在服务器端进行45000名学生数据的文件返回99090221的记录分布式计算应用模式数据库数据库服务器商业服务器实现商业规则的组件客户端应用程序工作站1工作站2工作站nWEB网络应用模式Internet/Intranet 客户端浏览器WEB服务器服务器中间件数据库服务器客户端应用 Java Applet ActiveXInternet/Intranet 客户端浏览器服务器数据库4.2 如何开发数据库应用系统用PowerBuilder开发应用系统时,一般都要经过系统分析、系统设计、系统开发、代码调试、系统测试、生成EXE、交付应用等各个阶段。
PB控件使用介绍一、PB中使用Microsoft Web Browser控件步骤:在pb的某窗口中加入OLE对象,选择Insert control(插入控件),然后选中"Microsoft WEB 浏览器",(随系统而定的版本),就可以在这个窗口直接使用IE浏览器控件了。
常用函数:(对这个ole控件取名叫ole_web)ole_web.object.navigate(string ls_url) file://浏览某url,譬如:ole_web.object.navigate('') 就是浏览 页面,当然支持本地文件,也支持本地图片文件的浏览,如jpeg,jpg,gif,png等等,如果是不支持的文件,则直接弹出选择打开文件对话框,和ie一模一样。
ole_web.object.goback() file://回退(如果没有内容可退,则会弹出错误,可以屏蔽该错误)ole_web.object.goforward() file://前进,同上常用事件:documentcomplete : url请求的页面完成;downloadcomplete:url中请求的下载完成;常用属性:ole_web.object.width :pixel高度,需要转换为pbunit高度才可以调整ole_web.object.height:同上ole_web.object.offline:离线方式,true,false两者之一你甚至可以用pb写出一个和ie类似的界面用来进行浏览网页或图片。
二、在程序中打印在程序中如何提供打印功能呢?这里有三种调用打印函数的格式可供选择。
1. 对数据窗口控制或者数据窗口可以使用这种打印格式。
DATAWINDOWNAME.Print(cancel_window)这里cancel_window 是一个布尔值,它指出是否要显示一个用户可以用来中止打印动作的窗口。
powerbuilder9.0教程1第1章 PowerBu i l der概述教学提⽰:PowerBuilder是美国Powersoft公司推出的⼀种使⽤⽅便、功能强⼤的数据库应⽤系统的前端开发⼯具。
最新的PowerBuilder 9.0版本扩展并改进了许多功能,增加了对.NET、PBDOM、XML DataWindow、RAD JavaServer Pages和PBNI的⽀持。
PowerBuilder 可以实现与多种⼤型数据库管理系统的连接,是⼀个⾼度集成的数据库应⽤系统开发⼯具。
教学要求:本章⾸先介绍PowerBuilder的主要特点,重点使读者掌握PowerBuilder 9.0集成开发环境的组成和基本⽤法,学会使⽤PowerBuilder 9.0开发简单应⽤程序的基本过程。
1.1 PowerBuilder简介PowerBuilder是著名的数据库应⽤开发⼯具⽣产⼚商Sybase Inc.的⼦公司PowerSoft 公司于1991年6⽉推出的产品。
它基于客户机/服务器体系结构研制设计,⽤于数据库应⽤程序的客户端开发。
PowerBuilder采⽤了⾯向对象和可视化技术,提供可视化的应⽤开发环境,利⽤PowerBuilder可以⽅便、快捷地开发出利⽤后台服务器中的数据库管理系统的数据库应⽤系统。
这些应⽤系统既可以运⾏于单机上,也可以运⾏于局域⽹或因特⽹平台上。
PowerBuilder⾃投放市场以来,以其独特的体系结构和强⼤的功能受到⼴⼤开发⼈员的好评和欢迎,在数据库前端开发⼯具市场占据了很⼤的份额。
⾃1991年6⽉PowerBuilder 1.0投放市场以来,PowerBuilder经历了多次升级换代,其性能⼤⼤增强和改善,使⽤效率⼤⼤提⾼。
特别是随着因特⽹的发展,PowerBuilder开始与Internet相结合,分别于1997年12⽉和1998年11⽉推出PowerBuilder 6.0和PowerBuilder 7.0,提供了Internet开发环境所需要的组件、库和⼯具,增强了Internet的应⽤能⼒,并提供了更加⾼效的数据窗⼝对象。
1 使DataWindow列只能追加不能修改如何使DataWindow中的数据只能追加新记录而不能修改,利用 Column 的 Protect 属性可以很方便的做到这一点,方法如下:将每一列的 Protect 属性设置为:If( IsRowNew(), 0, 1) )在 PowerScript 中可以动态修改 Protect 属性:dw_1.Modify("column_name_here.Protect='1~tIf(IsRowNew(),0,1)'")这样,DataWindow 中只有新追加的记录可修改,而其他记录是只读的。
2 如何在DataWindow中实现列的自动折行我们在PowerBuilder应用程序的开发过程中, 使用DataWindow时, 经常会遇到某列的数据太长, 不能同时全部显示的情况. 若采用自动水平滚动, 操作起来又不够简便. 下面介绍一种方法, 实现列数据多行显示, 即实现列数据的自动折行.具体步骤如下:1) 在DataWindow Painter中打开此DataWindow.2) 在需设定自动折行的列上双击鼠标, 弹开此列的属性窗口.3) 选择Position标签, 选中Autosize Height 多选框.4) 选择Edit标签, 不选中Auto Horz Scroll多选框.5) 单击OK按钮, 保存所做的修改.6) 点中Detail Band (即写有Detail的灰色长带), 单击鼠标右键, 选择Properties... 菜单项.7) 选中Autosize Height多选框.8) 单击OK按钮, 保存所做的修改.9) 保存此DataWindow.注意:连在一起的汉字(中间没有标点或空格分隔), 系统将认为是一个单词, 不会自动进行折行.3 在数据窗口中实现动画要实现动画,必须要有定时器,在数据窗口中已经有了一个定时器,双击数据窗口将弹出的对话框,在Timer Interval中定义大于零的值就有定时器(可以精确到毫秒),有了这个定时器就可以实现动画了。
PowerBuilder函数全集PrintDefineFont()功能定义打印作业使用的字体,对每个打印作业PowerBuilder支持八种字体。
语法PrintDefineFont(printjobnumber,fontnumber,facename,height,weight,fontpitch,fontfamily, italic,underline)参数printjobnumber:用PrintOpen()函数打开的打印作业号fontnumber:指定赋给当前定义字体的编号,有效值在1到8之间 facename:string类型,指定字体名称,该字体应该是你的打印机支持的字体,比如“宋体”height:Integer类型,使用正值指定字体的高度,以千分之一英寸为单位;使用负值指定字体点数,比如,-18代表18点。
一般来说,使用点数更精确些weight:指定字体的磅数,正常字体为400磅,粗体为700磅fontpitch:FontPitch枚举类型,指定字体标准。
有效取值为:Default! - 缺省值;Fixed! - 固定形式;Variable! - 可变形式fontfamily:FontFamily枚举类型,指定字体系列。
有效取值为:AnyFont!、Decorative!、Modern!、Roman!、Script!、Swiss!italic:boolean类型,指定是否使用斜体样式。
有效取值为:TRUE - 使用斜体样式;FALSE - 不使用斜体样式。
缺省值为FALSEunderline:boolean类型,指定是否加下划线。
有效取值为:TRUE - 加下划线;FALSE - 不加下划线。
缺省值为FALSE返回值Integer。
函数执行成功时返回1,发生错误时返回-1。
如果任何参数的值为NULL,PrintDefineFont()函数返回NULL。
用法在一个打印作业中,应用程序能够最多同时定义8种字体。
指代词Parent指代词指代词Patent用于引用包含当前对象的对象。
在w_main窗口或用户对象的控件中,Parent 指代窗口或是用户对象:在菜单中,Parent指代包含当前菜单项的上一级菜单。
例如,在窗口“改变标题”按钮上编写如下脚本:If parent.title=”测试窗口”thenPatent.title=”你好!”ElseParent.title=”测试窗口”End if用户点击该键会看到窗口的标题在“测试窗口”和“你好!”两者之间来回切换。
在w_main 的“退出”按键使用close(parent)和close(w_main)语句是相同的,前面的语句更通用些,即使窗口的名称改变了,程序任然能够正常运行。
标准数据类型:在说明变量或数组时使用Bolb:二进制大对象,用于存储大量数据,如图像、大文本等Boolean:布尔值、TRUE或FALSEChar或Charater:单个ASCII字符Date:日期,包括4位数的年(1000~3000)、月(01~12)、日(01~31)DateTime:日期及时间,仅用于对数据库存取DateTime值时使用Decimal或Dec:有符号十进制数,最大表式范围为18位长Double:有符号浮号数,精度为15位,范围从2.2E-308~1.7E+308Integer或Int:16比特有符号整数,范围从-32768~+32767Long:32比特有符号整数,范围从-2,147,483,648~+2,147,483,648Real:符号浮点数,精度6位,范围从1.17E-38~3.4E+38String:由任何ASCII字符组成,宽度从0~60.000Time:24小时制时间,小时(0~23)、分(0~59)、秒(0~59)以及秒的小数位(最多6位),范围从00:00:00到23:59:59.999999UnsignedInteger或Uint:16比特无符号整数,范围从0~65,535 UnsigndeLong或Ulong:32比特无符号整数,范围从0~4,294,967,295。
powerbuilder tooltip用法PowerBuilder Tooltip 用法详解引言:PowerBuilder 是一款老牌的客户端开发工具,被广泛应用于企业级应用程序的开发。
其中的Tooltip 功能使得用户能够在界面上方便地获取对象的相关信息,提高了用户体验和易用性。
本篇文章将介绍Tooltip 的用法,包括如何设置和自定义Tooltip。
第一章:Tooltip 概述1.1 什么是Tooltip?Tooltip 是PowerBuilder 中的一种用户界面控件,它用于为对象提供简短的解释或说明。
当用户将鼠标悬停在对象上时,系统会显示一个小窗口,其中包含了与该对象相关的信息。
1.2 Tooltip 的作用Tooltip 的主要作用是提供额外的信息,帮助用户更好地了解和使用应用程序。
它可以用于各种对象,如按钮、标签、图像等。
通过Tooltip,开发人员可以在不占用太多屏幕空间的情况下,为用户提供重要的提示和指导。
第二章:设置Tooltip2.1 为按钮添加Tooltip在PowerBuilder 中,为按钮添加Tooltip 是非常简单的。
首先,选中要添加Tooltip 的按钮控件,然后在属性窗口中找到TooltipText 属性。
在该属性中,输入希望显示的提示信息即可。
例如,将TooltipText 设置为“点击此按钮可以保存数据”。
2.2 为其他对象添加Tooltip与按钮类似,标签、图像和文本框等其他对象也可以添加Tooltip。
设置方法与上述步骤相似,即选中对象,找到TooltipText 属性并设置相应的提示信息。
第三章:自定义Tooltip3.1 改变Tooltip 的外观在大多数情况下,Tooltip 的默认外观已经足够满足需求。
但是,如果你希望改变Tooltip 的字体、颜色或边框等外观效果,你可以使用PowerBuilder 的属性设置功能。
例如,通过设置Tooltip 控件的Font 属性,你可以改变Tooltip 的字体样式和大小。
PB控件使用介绍一、PB中使用Microsoft Web Browser控件步骤:在pb的某窗口中加入OLE对象,选择Insert control(插入控件),然后选中"Microsoft WEB 浏览器",(随系统而定的版本),就可以在这个窗口直接使用IE浏览器控件了。
常用函数:(对这个ole控件取名叫ole_web)ole_web.object.navigate(string ls_url) file://浏览某url,譬如:ole_web.object.navigate('') 就是浏览 页面,当然支持本地文件,也支持本地图片文件的浏览,如jpeg,jpg,gif,png等等,如果是不支持的文件,则直接弹出选择打开文件对话框,和ie一模一样。
ole_web.object.goback() file://回退(如果没有内容可退,则会弹出错误,可以屏蔽该错误)ole_web.object.goforward() file://前进,同上常用事件:documentcomplete : url请求的页面完成;downloadcomplete:url中请求的下载完成;常用属性:ole_web.object.width :pixel高度,需要转换为pbunit高度才可以调整ole_web.object.height:同上ole_web.object.offline:离线方式,true,false两者之一你甚至可以用pb写出一个和ie类似的界面用来进行浏览网页或图片。
二、在程序中打印在程序中如何提供打印功能呢?这里有三种调用打印函数的格式可供选择。
1. 对数据窗口控制或者数据窗口可以使用这种打印格式。
DATAWINDOWNAME.Print(cancel_window)这里cancel_window 是一个布尔值,它指出是否要显示一个用户可以用来中止打印动作的窗口。
这种格式只适用于打印单个数据窗口的内容,如果要在同一个作业当中打印多个数据窗口的内容,就要使用PRINTDATAWINDOW函数。
2. 对任何对象均可使用第二种语法。
OBJECTNAME.Print(job#,x,y,{width,height})这种打印格式是直截了当的。
JOB#指出作业,X和Y指出打印作业指出的打印区。
WIDTH 和 HEIGHT指出打印的长度和宽度。
如果不特别的说明长宽的值,那么就使用对象原来的大小。
3. 打印函数的第三种格式可以用来打印串值:Print(job#,{tab1,}string_value{,tab2})其中,TAB1说明打印开始之前打印光标应该移动到哪里(千分之一英寸为单位)。
什么是打印光标呢?POWER BUILDER使用打印光标来保持打印区域内依次打印最后结束处的坐标轨迹。
若没有给出TAB1,或者TAB1的值小于当前光标的X坐标,则从所在的位置开始打印。
TAB2指定的是打印之后光标应该处在的位置,如上所述,或者TAB1的值小于当前光标的X坐标,那么光标保留在它原来的位置。
如果字符串中包括换行字符,那么最初的TAB位置只适合第一行。
三、 打印函数POWER BUILDER提供了几十个打印函数。
下面我们介绍几个常用的函数的用法。
PrintOpenPrintOpen函数打开一个打印作业,并且分配给它一个打印作业号,在以后的程序当中我们可以使用这个打印作业号。
它可以接受一个字符串作为参数,这个字符串说明打印作业的名称。
例如:int pjobpjob = PrintOpen(one print job)PrintCancelPrintCancel函数用来删除打印的作业和假脱机文件。
PrintCancel函数有两种格式。
DATAWINDOWNAME.PrintCancel()这种格式可以删除一个数据窗口或它所拥有的正在打印的子数据窗口的打印。
PrintCancel(job#)这种格式可以删除正在打印的作业。
PrintClose使用PrintClose函数可以打印当前页(或者假脱机的页),调用格式为:PrintClose(job#)一旦PrintClose函数执行完毕,那么与该打印作业有关的那个标识号就不再被使用。
PrintDatawindow使用PrintDataWindow函数可以打印一个数据窗口或者子窗口,这个函数主要用于打印在单个的打印作业当中打印多个数据窗口。
它的调用格式是:PrintDatawindow(job#,DATAWINDOWNAME)例如:integer jobjob = PrintOpen()PrintDatawindow(job,datawindow1)PrintDatawindow(job,datawindow2)PrintDatawindow(job,datawindow3)PrintClose(job)PrintPage使用PrintPage函数可以打印当前的页,并且为指定的打印作业开始新的一页。
调用格式如下:PringPage(job#)PrintSetup使用PrintSetup函数可以调用由打印机驱动程序提供的PrintSetup窗口,用户可以进行设置,函数可以在用户结束设置之后,将设置的结果保留在打印机的驱动程序当中。
四、 动态数据窗口1 简介从前面的内容当中,我们知道一个窗口上的数据窗口控件,必须和一个真正的数据窗口对象配合起来才能进行工作。
数据窗口对象和数据窗口对象所包含的所有的实体(如文本、图形)都有自己的属性。
在程序运行的时候,我们可以通过获取、修改这些属性的方法来对数据窗口对象及其所属实体进行动态的控制,甚至能够动态地建立一个新的数据窗口对象。
下面,我们就来介绍动态的操纵数据窗口对象的方法。
2 动态创建数据窗口创建数据窗口有两种方法。
一种是在POWER BUILDER 的数据画板中建立,另一种就是在程序运行的过程中通过执行一段脚本来动态地建立数据窗口。
下面我们来介绍这种动态创建的方法。
首先打开一个窗口画板。
我们看到该窗口上面有一个数据窗口控件(图9-1)。
图9-1在该数据窗口上面单击鼠标右键,弹出菜单,选择PROPERTIES 属性命令。
弹出这个数据窗口控件的属性对话框(图9-2)。
图9-2我们可以看到DATA WINDOWS OBJECT NAME 一项的内容为空,这说明DW_1这个数据窗口控件的所连接的数据窗口对象为空。
关掉这个对话框。
单击POWER BAR 上面的运行画板按钮,运行这个程序,我们看到该数据窗口上面并没有任何的显示(图9-3)。
关闭这个程序,回到POWER BUILDER 的窗口工作区。
在窗口上面单击鼠标右键,弹出菜单。
在菜单上选择SCRIPT命令,为该窗口的打开事件编写程序。
输入这样一段脚本:STRING SYNTAX,SQLSTR,ERRMSGSQLSTR = "SELECT ,SOCCER.AGE,SOCCER.CLUB,SOCCER.NATION"&+" FROM SOCCER"CONNECT USING SQLCA;SYNTAX = SQLCA.SYNTAXFROMSQL(SQLSTR,"STYLE(TYPE=GRID)", ERRMSG)dw_1.CREATE(SYNTAX, ERRMSG)这段程序的意思是把SPSTAR 这个表中的关于足球明星的内容显示在DW_1 这个数据窗口控件上面。
关闭窗口画板工作区。
单击POWER BAR上的运行按钮,执行这个程序。
我们看到数据窗口中显示了我们需要的信息(图9-4)。
图9-43 动态更新数据窗口数据窗口中的内容可以根据用户的需要动态的修改。
下面,就给您一个例子。
我们在窗口上布置一个新的按钮——“更改”。
在新的按钮上面单击鼠标右键,弹出菜单。
在菜单上选择PROPERTIES 命令,弹出这个按钮的属性定义对话框。
将按钮上面的文本设置为“更改”,单击OK按钮,确认修改。
如图8-5。
图9-5在按钮上面再次单击鼠标右键,弹出菜单,在菜单上面选择SCRIPT命令,开始为这个按钮的CLICKED单击事件编写脚本。
我们输入这样一段脚本。
STRING SYNTAX,SQLSTR,ERRMSGSQLSTR = "SELECT ,TENNIS.AGE,TENNIS.CLUB,TENNIS.NATION"& +" FROM TENNIS"CONNECT USING SQLCA;SYNTAX = SQLCA.SYNTAXFROMSQL(SQLSTR,"STYLE(TYPE=GRID)", ERRMSG)dw_1.CREATE(SYNTAX, ERRMSG)dw_1.SetTransObject(SQLCA)dw_1.RETRIEVE()这段脚本的意思是将DW_1这个数据窗口的显示内容从足球明星更改为网球明星。
请注意最后的这两行脚本。
当我们创建新的数据窗口对象的时候,已经断开了数据窗口控件与事物对象的连接,所以当我们调用CREATE函数之后,还要再次调用SETTRANSOBJECT来重新建立相应的连接。
关闭窗口画板的工作区。
单击POWER BAR 上面的运行按钮,运行这个程序。
现在数据窗口中的内容是足球明星的名字。
如图9-6。
图9-6下面我们单击“更改”按钮,我们看到窗口中的内容已经更改为网球明星的名字了。
如图9-7。
图9-74 提供查询模式在很多时候用户都希望能够自己设置检索条件来进行数据库的查询工作,所以为用户提供模式查询功能是一个常见而重要的工作。
下面我们就介绍如何实现这个功能。
我们打开一个预先定制好的窗口。
如图5。
在“查询模式”按钮上面单击鼠标右键,弹出菜单,选择SCRIPT 命令,为这一按钮的单击事件编写程序。
输入下面这段脚本:dw_1.Modify("datawindow.querymode = yes")这行脚本的意思是将数据窗口的查询模式设置为允许。
关闭这个窗口。
在“开始查询” 按钮上面单击鼠标右键,弹出菜单,选择SCRIPT 命令,为这一按钮的单击事件编写程序。
输入下面这段脚本:dw_1.Retrieve()dw_1.Modify("datawindow.querymode = no")这行脚本的意思是命令数据窗口按照用户输入的检索条件进行查询。
并且关闭查询模式。
关闭这个窗口。
关闭窗口画板工作区,然后单击POWER BAR 上面的运行按钮,运行这个程序。
我们看到数据窗口上面显示了数据库中存储的所有足球明星的资料。
如图9-8。
图9-8下面我们单击窗口上的查询模式按钮,数据窗口上面的所有数据被清空。