当前位置:文档之家› PowerBuilder控件使用手册

PowerBuilder控件使用手册

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下面我们单击窗口上的查询模式按钮,数据窗口上面的所有数据被清空。

相关主题