PowerBuilder函数详解(下)
PowerBuilder 函数详解 下) 函数详解(下作者 佚名来源 技术文章总汇发布时间 2005-07-13浏览次数3579字体 大 中 小内容摘要 在这里把 PowerBuilder 各个版本的基本函数整理一下,奉献给大家,希望能在编程过程中起 到帮助!文件操作函数•FileClose() 功能关闭先前用 FileOpen()函数打开的文件。
语法 FileClose ( fileno ) 参数 fileno:integer,指定要关闭文件的文件句柄,该句柄使用 FileOpen()函数打开文件时得到 返回值 Integer。
函数执行成功时返回 1,发生错误时返回-1。
如果 fileno 参数的值为 NULL,那 么 FileClose()函数返回 NULL。
•FileDelete() 功能删除指定的文件。
语法 FileDelete ( filename ) 参数 filename:string 类型,指定要删除文件的文件名,其中可以包含路径返回值 Boolean。
函 数执行成功时返回 TRUE,发生错误时返回 FALSE。
如果 filename 参数的值为 NULL,那么 FileDelete()函数返回 NULL。
•FileExists() 功能检查指定的文件是否存在。
语法 FileExists ( filename ) 参数 filename:string 类型,指定要检查存在性的文件的文件名,其中可以包含路径返回值 Boolean。
如果指定文件存在时返回 TRUE,不存在时返回 FALSE。
如果 filename 参数的值为 NULL, 那么 FileExists()函数返回 NULL。
用法如果 filename 参数指定的文件被另一个应用加锁 锁住,那么 FileExists()函数也将返回 FALSE。
•FileLength() 功能得到指定文件的长度(以字节为单位)。
语法 FileLength ( filename ) 参数 filename: string 类型, 指定要得到其长度的文件的文件名, 其中可以包含路径返回值 Long。
函数执行成功时返回指定文件的长度(以字节为单位)。
如果指定的文件不存在,函数返回-1。
如果 filename 参数的值为 NULL,那么 FileLength()函数返回 NULL。
•FileOpen() 功能以指定的读写方式打开指定的文件,同时返回该文件的句柄。
语法 FileOpen(filename{,filemode{,fileaccess{,filelock{,writemode,{creator,filetype}}}}}) 参数 filename:string 类型,指定要打开文件的名称,其中可以包含路径 filemode:FileMode 枚举类型,可选项,指定文件打开方式。
有效取值为:?LineMode! - 缺省值,行模 式;?StreamMode! - 流模式 fileaccess:FileAccess 枚举类型,可选项,指定文件访问方式。
有效取值为:?Read! - 缺省值,只读方式,这样打开的文件只能进行读操作;?Write! - 只写方 式,这样打开的文件只能进行写操作?filelock:FileLock 枚举类型,可选项,指定文件加锁方式。
有效取值为:n LockReadWrite! - 缺省值,只有打开该文件的用户能够访问该文件,其它用 户 对该文件的访问均被拒绝;n LockRead! - 只有打开该文件的用户能够读该文件,但其它任何用 户均可写该文件;n LockWrite! - 只有打开该文件的用户能够写该文件,但其它任何用户均可读 该文件;n Shared! - 所有用户均可读写该文件 writemode:WriteMode 枚举类型,可选项,当 fileaccess 参数指定为 Write!时,该参数指定在指定文件已经存在时数据的添加方式。
有效取值 为:?Append! - 缺省值,将数据添加到原文件尾部;?Replace! - 覆盖原有数据 creator:可选 项,用于 Macintosh 机,使用四个字符的字符串指定文件的创建者。
指定该参数后,必须同时 指定 filetype 参数 filetype:可选项,用于 Macintosh 机,使用四个字符的字符串指定文件类型 返回值 Integer。
函数执行成功时返回打开文件的句柄,随后的文件操作函数利用该句柄完成对 文件的操作。
发生错误时函数返回-1。
如果任何参数的值为 NULL,那么 FileOpen()函数返回 NULL。
用法当文件以行模式打开时,每执行一次 FileRead()函数读取一行数据;每执行一次 FileWrite()函数,该函数自动在写出的字符串末尾增加一个回车(CR)换行(LF)符(这是应 用程序在 Windows 系统中运行时的情况,在 UNIX 下只加一个换行字符)。
当文件以流模式打 开时,执行一次 FileRead()函数读取 32,765 个字节的数据,如果余下数据没有这么多,那么 FileRead()函数就读取所有余下的数据;执行一次 FileWrite()函数时,最多可写入 32,765 个字 节的数据,并且不添加回车换行字符。
当文件以写方式使用 FileOpen()函数打开时,如果指定 的文件不存在,那么 FileOpen()函数创建该文件。
•FileRead() 功能从指定文件中读取数据。
语法 FileRead ( fileno, variable ) 参数 fileno:integer 类型,指定文件句柄(由 FileOpen()函数得到)variable:string 或 blob 类 型的变量,用于保存读取的数据返回值 Integer。
函数执行成功时返回读取的字符数或字节数; 如果在读取任何字符前读到了文件结束符(EOF),则 FileRead()函数返回-100;当指定文件 以行模式打开时,如果在读取任何字符之前遇到了回车(CR)或换行(LF)字符,则 FileRead() 函数返回 0。
如果发生其它错误,FileRead()函数返回-1。
如果任何参数的值为 NULL,那么 FileRead()函数返回 NULL。
用法当指定文件以行模式(Line Mode)打开时,FileRead()函数一 次读取一行数据,并把它保存到参数 variable 中,然后跳过行结束符(回车换行符,操作系统 不同,使用的字符也不同),把文件指针移动到下一行的起始位置。
当文件以流模式(Stream Mode)打开时,FileRead()函数或一直读取到文件结尾,或读取 32,765 字节的数据,决定于两 者哪个数据长度更短些。
•FileSeek() 功能将文件指针移动到指定位置。
读写文件时相应函数会自动移动文件指针。
语法 FileSeek ( fileno, position, origin ) 参数 fileno:integer 类型,指定文件句柄(由 FileOpen()函数得到)position:long 类型,指定 相对于 origin 参数指定位置的新位置偏移量,以字节为单位 origin:SeekType 枚举类型,指定 从哪里开始移动文件指针,即指针移动的基准。
有效取值为:?FromBeginning! - 缺省值,从文 件开头移动指针;?FromCurrent! - 从当前位置移动文件指针;?FromEnd! - 从文件结尾处移动 文件指针返回值 Long。
函数执行成功时返回指针移动后的指针位置。
如果任何参数的值为 NULL,那么 FileSeek()函数返回 NULL。
•FileWrite() 功能向指定文件中写数据。
语法 FileWrite (fileno , variable ) 参数 fileno:integer 类型,指定文件句柄(由 FileOpen()函数得到)variable:string 或 blob 类 型,其值将写入 fileno 参数指定的文件返回值 Integer。
函数执行成功时返回写入文件的字符或 字节数,发生错误时返回-1。
如果任何参数的值为 NULL,那么 FileWrite()函数返回 NULL。
用 法 FileWrite()函数从当前文件指针开始写入指定数据,写入之后,将文件指针调整到刚刚写入 数据的下一个字节位置。
当文件以 writemode 参数设置为 Replace!方式打开时,文件指针最初 位于文件的开头位置;当文件以 writemode 参数设置为 Append!方式打开时,文件指针最初位 于文件的结尾位置。
当文件以行模式打开时,执行 FileWrite()函数时,该函数自动在每次写入 数据的后面加上回车换行符,并把文件指针移动到回车换行符后面。
当文件以流模式打开时, FileWrite()函数一次最多写入 32,765 个字节。
如果 variable 参数中数据的长度超过了 32,765 个 字节,那么 FileWrite()函数只向文件中写入前 32,765 个字符并返回 32,765。
•GetFileOpenName() 功能显示打开文件对话框,让用户选择要打开的文件。
语法 GetFileOpenName(title,pathname,filename{,extension{,filter}}) 参数 title:string 类型,指定对话框的标题 pathname:string 类型变量,用于保存该对话框返 回的文件路径及文件名 filename:string 类型变量,用于保存该对话框返回的文件名 extension: string 类型,可选项,使用 1 到 3 个字符指定缺省的扩展文件名 filter:string 类型,可选项, 其值为文件名掩码,指定显示在该对话框的列表框中供用户选择的文件名满足的条件(比如*.*, *.TXT,*.EXE 等)返回值 Integer。
函数执行成功时返回 1;当用户单击了对话框上的“Cancel” 按钮时函数返回 0;发生错误时返回-1。
如果任何参数的值为 NULL,那么 GetFileOpenName() 函数返回 NULL。
用法 filter 参数的格式为:description,*. ext 缺省值为:"All Files (*.*),*.*"其中,description 说明 扩展名的意义,比如“所有文件”、“文本文件”等。
你可以根据需要指定在打开文件对话框中显示 的文件名类型。
当需要指定多种文件类型时, 各类型之间使用逗号分隔, 例如: "PIF 文件, *.PIF, 批处理文件, *.BAT"需要注意的是,该函数只是得到一个文件名,而并没有打开文件,需要打开文件时,依然需要使用 FileOpen()函数。
powerbuilder evaluate函数
powerbuilder evaluate函数什么是PowerBuilder的Evaluate函数?PowerBuilder是一种常用的集成开发环境(IDE),用于创建企业级应用程序。
它支持多种编程语言和技术,并提供了一系列的内置函数来简化开发过程。
其中一个重要的内置函数是Evaluate函数。
Evaluate函数是PowerBuilder中的一个强大的功能,可以根据用户提供的字符串表达式进行动态求值。
它可以将这个字符串表达式作为输入参数,并返回相应的结果。
Evaluate函数可以处理各种类型的表达式,包括数学运算、逻辑运算、字符串处理以及函数调用。
如何使用PowerBuilder的Evaluate函数?使用Evaluate函数非常简单,只需以下几个步骤:1. 准备表达式:首先,你需要准备好一个字符串表达式,这个表达式可以包含各种运算符、函数和变量。
例如,你可以使用加法运算符(+)将两个数字相加,或者使用逻辑运算符(AND、OR)来进行条件判断。
2. 调用Evaluate函数:在你的PowerBuilder应用程序中,找到适当的位置来调用Evaluate函数。
你可以在按钮点击事件、计算字段或任何其他需要对表达式进行求值的地方使用Evaluate函数。
函数的语法如下:result = Evaluate(expression)其中,expression是你准备好的字符串表达式,而result是Evaluate函数的返回值。
3. 处理结果:当Evaluate函数执行完毕后,它会返回表达式的计算结果。
你可以将这个结果赋值给一个变量,以便在应用程序的其他部分使用。
或者,你还可以直接使用这个结果做进一步的计算或显示。
4. 错误处理:在使用Evaluate函数时,你需要考虑到可能出现的错误情况。
例如,如果用户提供的表达式不符合语法规则,或者表达式中使用了没有定义的变量或函数,那么Evaluate函数可能会返回错误的结果。
powerbuilder 延时 函数
一、PowerBuilder简介PowerBuilder是一款用于创建企业应用程序的集成开发环境(IDE),它最初由PowerSoft公司开发并于1991年发布。
目前它是由Sybase 公司拥有和维护。
PowerBuilder使用一种称为PowerScript的自定义编程语言来编写应用程序逻辑,并通过与数据库系统集成来提供数据库访问和数据处理能力。
PowerBuilder凭借其易用性和强大的功能,成为企业应用程序开发的首选工具之一。
二、延时函数的作用在实际的应用程序开发中,我们常常需要在程序执行过程中对某些操作进行延时处理,以达到一定的效果或者满足特定的需求。
在PowerBuilder中,延时函数便成为了实现这种延时处理的重要工具。
延时函数可以用来暂停程序的执行一段特定的时间,从而达到需要延迟执行的效果。
三、PowerBuilder中的延时函数PowerBuilder中提供了一些用于延时处理的函数,其中最常用的是Sleep函数。
Sleep函数可以让程序暂停执行一定的时间。
语法格式如下:Sleep(时间)其中,时间参数表示延时的时间,单位为毫秒。
四、延时函数的使用示例下面我们通过一个简单的示例来演示如何在PowerBuilder中使用延时函数。
例:假设我们需要在PowerBuilder应用程序中实现一个定时弹出提示框的功能,提示框需要在程序启动后延时3秒钟才会出现。
下面是实现该功能的PowerScript代码:```// 程序启动事件onOpen()long ll_delayll_delay = 3000 // 延时为3秒Sleep(ll_delay) // 执行延时处理MessageBox("提示", "欢迎使用PowerBuilder应用程序!")end```在上面的示例中,我们在程序启动事件中使用了Sleep函数来延时3秒,然后弹出了一个提示框。
通过这种方式,我们可以实现延时弹出提示框的功能。
powerbuilder中shellexecute用法 -回复
powerbuilder中shellexecute用法-回复"PowerBuilder中ShellExecute用法"在PowerBuilder中,ShellExecute函数用于执行外部程序,并且它可以接受多个参数来指定要执行的程序、执行方式以及传递给程序的参数。
本文将逐步介绍使用ShellExecute函数的方法和注意事项。
一、ShellExecute函数的基本介绍ShellExecute函数是Windows API中的一个函数,它可以启动其他应用程序或打开文件。
在PowerBuilder中,可以使用这个函数来启动外部程序、打开文件、访问网页等等。
ShellExecute函数的基本格式如下:long ShellExecute(long hwnd, string lpOperation, string lpFile, string lpParameters, string lpDirectory, long nShowCmd)其中,各参数的含义如下:hwnd:父窗口的句柄,一般为当前应用程序的窗口句柄,用于指定新程序的父窗口。
lpOperation:要执行的操作,如"open"表示打开文件,默认值为"open"。
lpFile:要执行的程序或文件路径。
lpParameters:传递给程序的参数,可以为空。
lpDirectory:新程序的初始工作目录。
nShowCmd:新程序窗口的显示方式。
二、使用ShellExecute函数打开文件下面以打开一个文本文件为例,介绍如何使用ShellExecute函数。
1. 创建一个CommandButton控件,并在其Click事件中添加以下代码:long ll_returnstring ls_file, ls_operation, ls_param, ls_dirll_return = ShellExecute(0, "open", "c:\test.txt", "", "", 1)如果该文件存在,点击Button后将会打开文本文件,如果不存在则没有任何反应。
PowerBuilder函数
§1.1 数值计算函数
函数及格式 Abs(n) ASin(n) ACos(n) ATan(n) Ceiling(n) Cos(n) Exp(n) Fact(n) Int(n) Log(n) LogTen(n) Max(x, y) Min(x, y) Mod(x, y) Pi(n) Rand(n) Randomize(n) Round(x, n) Sign(n) Sin(n)
filename{,extension{,filter}}) GetFileSaveName(title,pathname, filename,{,extension{,filter}})
返回值类型 Integer Integer Boolean Integer Integer Boolean Boolean Long Integer Integer
显示保存文件用户对话窗,让用户选择要保存到的文件
§1.8 打印函数
函数及格式 Print(printjobnumber,{tab1,}string{, tab2}) PrintBitmap(printjobnumber,bitmap,x,y,width,height) PrintCancel(printjobnubmer) PrintClose(printjobnumber) PrintDataWindow(printjobnumber, dwcontrol)
Date Date Boolean Boolean Time Time Time
功能 得到字符串第一个字符的ASCII码整数值 将字符串的第一个字符、Blob变量的第一个值、或一个整数转换成字符 将字符串或Blob值转换成Decimal类型的值 将字符串或Blob值转换成Double类型的值 将字符串或Blob值转换成Integer类型的值 将两个无符号整数组合成一个长整数 将字符串或Blob值转换成Long类型的值 将两个无符号整数组合成一个LongLong类型的值 将字符串或Blob值转换成LongLong类型的值 将字符串或Blob值转换成Real类型的值 将DateTime类型转换成Date类型的值或将第一个值是DateTime或Date的Blob值转换成Date类型
PowerBuilder教程二
3.7.4 SQLCA对象说明
全局 SQLCA 变量在接口库中定义。预处理器 会为全局 SQLCA 变量生成外部引用,并且会 为该变量的指针生成外部引用。该外部引用名 为 sqlca,类型为 SQLCA。指针名为 sqlcaptr。 实际的全局变量在导入库中声明。 SQLCA 由 sqlca.h 头文件定义,该文件包括 在安装目录的 h 子目录中。
3.数据库连接
几种连接方式介绍
ODBC ADO
.NET DATA PROVIDER
JDBC OLEDB
3.1 ODBC
开放数据库互连(Open Database Connectivity, ODBC)是微软公司开放服务结构(WOSA, Windows Open Services Architecture)中有关数据 库的一个组成部分,它建立了一组规范,并提供了一 组对数据库访问的标准API(应用程序编程接口)。 这些API利用SQL来完成其大部分任务。ODBC本身也 提供了对SQL语言的支持,用户可以直接将SQL语句 送给ODBC。
SQLCA是PowerBuilder众多对象中最重要的 一个对象,并且也是最不好理解的一个对象。 它实际上是PowerBuilder程序与数据库之间传 递信息的一个结构变量,共有15个成员。
3.7.4 SQLCA对象说明
1 DBMS string 所使用的数据库管理系统的名 字,如SQL SERVER,Oracle,ODBC。 2 Database string 要连接的数据库名字。 3 UserID string 连接数据库所用的用户名。有 的DBMS不需要此项。 4 DBPass string 用户连接数据库的口令。 5 Lock string 这是数据库的保护级别,一般不 必给出。
PB中文件操作函数大全
PB中文件操作函数大全文件操作是计算机程序设计中的一项基本操作,用于对文件进行读取、写入、修改、删除等操作。
在PB(PowerBuilder)中,提供了一系列的文件操作函数,用于方便地对文件进行处理。
下面是PB中常用的文件操作函数的详细介绍,共计1200字以上。
1. FileOpen 函数:作用:用于打开一个文件,返回文件句柄。
语法:FileOpen ( integer filehandle, string filename,integer mode )参数解释:- filehandle:打开文件的文件句柄,为整数型。
- filename:文件名,为字符串类型。
- mode:打开文件的模式,为整数型,常用的模式有以下几种:-1:只读方式打开文件。
-2:写入方式打开文件。
-3:追加方式打开文件。
2. FileClose 函数:作用:关闭一个已打开的文件。
语法:FileClose ( integer filehandle )参数解释:- filehandle:要关闭的文件句柄,为整数型。
3. FileRead 函数:作用:从一个已打开的文件中读取内容。
语法:FileRead ( integer filehandle, refany content, integer length )参数解释:- filehandle:要读取内容的文件句柄,为整数型。
- content:用于存储读取内容的变量,为任意类型的引用。
- length:要读取的内容长度,为整数型。
4. FileWrite 函数:作用:向一个已打开的文件中写入内容。
语法:FileWrite ( integer filehandle, any content )参数解释:- filehandle:要写入内容的文件句柄,为整数型。
- content:要写入的内容,为任意类型。
5. FileDelete 函数:作用:删除指定的文件。
语法:FileDelete ( string filename )参数解释:- filename:要删除的文件名,为字符串类型。
PowerBuilder常用日期时间函数
PowerB uilde r常用日期时间函数PowerBuilde r常用日期时间函数2011-01-12 21:57Toda y():功能得到当前系统日期,在某些情况下,同时得到当前系统时间。
返回值:Date。
该函数返回当前系统日期。
用法:单独调用Today()函数时,该函数总是返回当前系统日期,但是,虽然Toda y()函数的返回值类型为Da te,在该函数用做某些函数的参数、而该参数要求DateT ime类型的值时,Today()函数也能够在返回当前系统日期的同时返回当前系统时间。
再如,Today()函数作为数据窗口控件S etIte m()函数的参数,该函数参数中指定的数据窗口列的数据类型为D a teTime,那么当前系统日期和时间将同时设置到数据窗口指定项中。
-------------------------------------------------------Now():功能得到客户机的当前系统时间,返回值为Time类型。
-------------------------------------------------------Year(date):功能得到日期值中的年度(有效取值1000到3000)。
参数date:date类型的值,返回值:Intege r。
函数执行成功时得到da te参数中的年份(采用四位数字),发生错误时返回1900。
用法:当应用程序把有两位数字表示年份的字符串转换成日期时,P owerBuilde r根据下述规则选择世纪:如果年份值在00到49之间,PowerBuild e r将年份中的世纪(前两位数字)当作20;如果年份值在50到99之间,PowerBuilde r将年份中的世纪(前两位数字)当作19。
powerbuilder lpt函数
powerbuilder lpt函数
PowerBuilder中的LPT函数用于控制打印机的并行端口。
以下是一些常用的LPT函数:
1. lptopen()
- 函数功能:打开LPT端口。
- 语法:integer lptopen (string lptname)
- 参数说明:lptname为LPT端口的名称,例如"LPT1"。
- 返回值:成功打开端口则返回0,否则返回错误码。
2. lptwrite()
- 函数功能:向LPT端口写入数据。
- 语法:integer lptwrite (long lptnum, string data, long datalen)
- 参数说明:lptnum为端口号,data为要写入的数据,datalen 为数据长度。
- 返回值:成功写入数据则返回0,否则返回错误码。
3. lptclose()
- 函数功能:关闭LPT端口。
- 语法:integer lptclose (long lptnum)
- 参数说明:lptnum为端口号。
- 返回值:成功关闭端口则返回0,否则返回错误码。
使用这些LPT函数可以实现对打印机的基本控制,比如打开端口、写入数据和关闭端口等操作。
PowerBuilder函数详解
PowerBuilder函数详解LowerBound()功能:得到指定数组第n维的下界语法:LowerBound ( array {, n } )参数array:数组名n:数值类型,可选项,指定要得到数组哪一维的下界。
缺省值为1返回值Long。
函数执行成功时返回array数组第n维的下界。
如果n的值超过了指定数组的最大维数,那么该函数返回-1。
如果任何参数的值为NULL,LowerBound()函数返回NULL。
UpperBound()功能:得到指定数组第n维的上界。
语法:UpperBound( array {, n } )参数array:数组名n:数值类型,可选项,指定要得到数组哪一维的上界。
缺省值为1返回值Long。
函数执行成功时返回array数组第n维的上界。
如果n的值超过了指定数组的最大维数,那么该函数返回-1。
如果任何参数的值为NULL,UpperBound()函数返回NULL。
Blob()功能:将字符串转换成Blob类型数据。
语法:Blob ( text )参数text:string类型,指定要转换的数据返回值Blob。
函数执行成功时返回转换后的Blob类型数据;如果text参数的值为NULL,则Blob()函数返回NULL。
BlobEdit()功能:将任意类型的数据插入到Blob类型变量的指定位置。
语法:BlobEdit ( blobvariable, n, data )参数blobvariable:Blob类型的已初始化变量,将向该变量中插入数据n:指定插入位置,有效值在1到4,294,967,295之间data:要插入到Blob类型变量中的数据,其数据类型可以是任何有效的PowerBuilder数据类型返回值Unsigned long。
函数执行成功时返回下次可以插入数据的位置;如果blobvariable变量中空间不够或任何参数的值为NULL,则BlobEdit()函数返回NULL。
PowerBuilder讲义四
处理cb_save的clicked事件
integer li_i dw_edit.accepttext() if dw_edit.update()=1 then commit using sqlca; dw_list.retrieve("%%") dw_edit.reset() this.enabled = false cb_delete.enabled = false
处理cb_save的clicked事件
else rollback using sqlca; messagebox("系统提示","保存数据失败, 请仔细检查数据") end if
修改菜单中的代码
us_inputpara lo_inputpara lo_inputpara.list_dw = "d_relationclass_grid" lo_inputpara.edit_dw = "d_relationclass_freeform" lo_inputpara.title = text lo_inputpara.keycol = "relationclassid" openwithparm(w_singalinput,lo_inputpara,w_mainwind ow)
实现检索条
因为我们的窗口是个通用窗口,即可能会 遇到很多不同的数据窗口,其检索条件会 有很多不同,所以我们无法直接在窗口上 画出检索条。 解决的方法是建立一个用户自定义对象, 在其中定义一些标准方法接口但并不实现, 类似于实现一个接口类。
Clicked事件的代码
string sortstring if isnull(dwo) then return if describe(+".band")="!" then return if long(describe("datawindow.detail.Height"))>220 then return
