PowerBuilder函数事件大全
PowerBuilder函数大全

PB函数大全∙Abs()功能计算绝对值。
语法Abs( n )参数n:要得到绝对值的数值型变量或表达式返回值返回值的数据类型与n的数据类型相同,函数执行成功时返回n的绝对值。
如果参数n的值为NUL L,Abs()函数返回NU LL。
∙Ceilin g()功能返回大于n的最小整数。
语法Ceil ing ( n )参数n:数值型变量或表达式返回值返回值的数据类型与n的数据类型相同。
函数执行成功时返回大于n的最小整数。
如果参数n的值为NUL L,Ceilin g()函数返回NU LL。
∙Cos()功能计算余弦,其中参数以弧度为单位。
语法Cos( n )参数n:数值型变量或表达式返回值Doub le。
函数执行成功时返回n的余弦。
如果参数n的值为NUL L,Cos()函数返回NU LL。
∙Exp()功能计算e的n次方。
语法Exp( n )参数n:指定幂值返回值Doub le。
函数执行成功时返回e(约等于2.71828)的n次方。
如果参数n的值为NUL L,Exp()函数返回NU LL。
∙Fact()功能计算n的阶乘。
语法Fact ( n )参数n:数值型变量或表达式返回值Doub le。
函数执行成功时返回n的阶乘。
如果参数n的值为NUL L,Fact()函数返回NU LL。
∙Int()功能得到小于等于n的最大整数。
语法Int( n )参数n:数值型变量或表达式返回值Inte ger。
函数执行成功时返回小于等于n的最大整数。
如果n的值太小或太大,超过了整数的表示范围,则函数返回0。
如果参数n的值为NUL L,Int()函数返回NU LL。
∙Log()功能计算n的自然对数。
语法Log( n )参数n:数值型变量或表达式,其值必须大于0返回值D ouble。
PowerBuilder培训(初级)

谁需要 PowerBuilder
PB可以做的事情很多,因此也就成为现在各软件公司进行系统开发的一 种常用工具,如果你将从事下列工作或有这些需求,则最好了解或通晓PB: 1、数据库系统前端开发中的程序设计; 2、开发咨询或技术支撑; 3、数据库系统分析及设计; 4、需要掌握VB,Delphi,Developer 2000以外的其他工具; 5、了解Internet网站建设中可以保护现有PB资源的开发方式; …… 注意: PB与数据库系统是不可分离的,因此,你只有对DBMS有基本的理解才 可能用好PB,精通当然最好。 如果你不知道DBMS是什么东西,请先学习相关内容,南京大学<数据库 系统概论>是非常好的入门教材,各流行数据库系统的基本概念都涵盖了。
PowerBuilder应用场合
1、大型数据库系统C/S模式前端开发工具或B/S模式应用服务器开发工具, 一般应用于需要大型或中型数据库系统支持(如ORACLE,Sybase,MS SQL Server,DB2,Informix)作为后台数据支撑平台的管理类系统,一 般可以承受千万级纪录量的系统,如: · MRPII系统 – 物料资源计划 · ERP系统 – 企业资源计划 · CRM – Customer Relation Management(客户关系管理) · Call Center – 呼叫中心(Haier) 2、中、小型数据库系统开发,一般数据量为10万左右,支持并发或仅单机 用户,如中、小型企业的内部信息管理、各种小型软件、共享软件等; 3、与Sybase的PowerDynamo,Jaguar CTS,PowerSite等集成,建立电子商 务应用服务支撑平台; 4、与PHP,Java,ASP集成,作为Intranet或Internet的后台数据库系统维护 工具,如异种平台(Unix,Linux,Solaris,NT)上的ORACLE,MySQL,DB2 等的Client方式维护。
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。
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数据窗口函数总结

PowerBuilder中数据窗口函数小结一、连接数据库连接数据库也就是指定事务对象。
PowerBuilder提供了两个函数:SetTrans()和SetTransObject()。
语法格式:dw_control.SetTrans(TransactionObject)dw_control.SetTransObject(TransactionObject)其中,dw_control是所使用的数据窗口控件,transactionObject是所要指定的事务对象。
这两个函数有一个重要的区别就是在使用SetTrans()函数时,用户不需做任何数据初始化或事务对象初始化工作。
用户只需要在这里填充一个事务对象,PB 就会自动完成对该事物对象的初始化以及和数据库连接的工作。
而使用SetTransObject()函数时,用户必须首先把所用的事务对象连接到数据库上。
但是,这并不意味着SetTrans()函数比SetTransObject()函数更好,使用SetTrans()函数时,每调用一次函数必须连接一次数据库,因为这个函数在每个事务处理的末端都会执行Disconnect语句。
与此相反,使用SetTransObject()函数可以为数据库维持一个开放性的连接。
因此在一般情况下,为了提高效率,总是采用SetTransObject()函数。
这两个函数都是成功时返回1,发生错误时返回-1。
二、检索数据用于检索数据的函数只有一个,就是Retrieve()函数。
语法格式:dw_control.Retrieve()如果数据窗口控件上的数据窗口对象是有检索参数的,就要在这个函数调用时加上检索参数。
而且检索参数必须和数据窗口对象中定义顺序一致。
此函数返回一个长整型的数据,代表检索出来的数据行数。
如果发生错误,将返回-1。
三、更新数据当用户对数据窗口对象内的数据修改后,想把这些修改反映到数据库中去时,必须使用Update()函数。
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函数详解(中)
PowerBuilder 函数详解 中) 函数详解(中作者 佚名来源 技术文章总汇发布时间 2005-07-13浏览次数2971字体 大 中 小内容摘要 在这里把 PowerBuilder 各个版本的基本函数整理一下,奉献给大家,希望能在编程过程中起 到帮助!系统与环境函数•Clipboard() 功能提取或替换 Windows 系统剪贴板的文本内容。
语法 Clipboard ( { string } ) 参数 string:string 类型,可选项,指定要复制到系统剪贴板上的文本。
如果剪贴板上已有内容 的话,该文本将取代剪贴板的当前内容返回值 String。
函数执行成功时,如果剪贴板上包含文 本数据,那么函数返回剪贴板的当前内容;如果剪贴板上包含非文本数据(比如位图)或不包 含任何数据,那么函数返回空字符串("")。
如果 string 参数的值为 NULL,Clipboard()函数返 回 NULL。
用法无论是否指定 string 参数, Clipboard()都将返回剪贴板的当前内容。
当指定 string 参数时,剪贴板的原有内容被 string 参数的值取代;省略 string 参数时,仅仅得到剪贴板的内 容。
•CommandParm() 功能得到应用程序运行时指定的命令参数。
语法 CommandParm ( ) 返回值 String。
函数执行成功时返回应用程序运行时的命令行参数,函数执行错误或没有命令 行参数时函数返回空字符串("")。
用法命令行参数是应用程序启动时跟在应用程序名称后面的 任何参数,比如,在运行窗口中输入了下述命令:MyAppl C:EMPLOYEEEMPLIST.TXT 那么 MyAppl 应用程序中使用 CommandParm()函数得到的命令行参数为: C:EMPLOYEEEMPLIST.TXT 当应用程序的命令行中包含几个参数时,CommandParm()函数 作为一个字符串返回所有参数。
PowerBuilder函数全集
PrintDefineFont()功能定义打印作业使用的字体,对每个打印作业PowerBuilder支持八种字体。
语法PrintDefineFont(printjobnumber,fontnumber,facename,height,weight,font pitch,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种字体。
当应用程序需要使用更多的字体时,可以在使用了某个字体号输出内容后使用PrintDefineFont()函数将该字体号对应的字体更换为其它字体。
pb(powerbuilder)异常及错误
pb(powerbuilder)异常及错误打开任意⼀个数据窗时,提⽰“sybase powerbuilder已停⽌⼯作”解决⽅法,错误如图所⽰⼀、打开任意⼀个数据窗时,提⽰⼀、解决⽅法1:找到注册表(运⾏:regedit)中HKEY_USERS\S-1-5-21-1060284298-1004336348-839522115-1003\Software\Sybase\PowerBuilder\9.0\Layout\Default,然后删除其中的Datawindow项⽬解决⽅法2:卸载PB 清理注册表,重启电脑,换个路径重新安装。
-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------⼆、使⽤return 1 处理报错信息:在DataWindow的DBError事件下:写脚本return 1 (如果返回1会触发itemchange事件)Return valueSet the return code to affect the outcome of the event:0 (Default) Reject the data value and show an error message box1 Reject the data value with no message box2 Accept the data value3 Reject the data value but allow focus to changeitemerror事件的返回值0——缺省值,显⽰出错信息,拒绝输⼊值并显⽰有效性检查,出错信息同时不允许移⾛焦点;1——不显⽰出错信息,拒绝输⼊信息,同时不允许移⾛焦点;2——不显⽰出错信息,接收输⼊值;3——不显⽰出错信息,拒绝输⼊信息,允许移⾛焦点;---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------三、数据管道 pipelineobject.Start 错误列表Integer. Returns 1 if it succeeds and a negative number if an error occurs.Error values are:-1 Pipe open failed-2 Too many columns-3 Table already exists-4 Table does not exist-5 Missing connection-6 Wrong arguments-7 Column mismatch-8 Fatal SQL error in source-9 Fatal SQL error in destination-10 Maximum number of errors exceeded-12 Bad table syntax-13 Key required but not supplied-15 Pipe already in progress-16 Error in source database-17 Error in destination database-18 Destination database is read-onlyIf any argument's value is NULL, Start returns NULL.String ls_errortextIF IsNull( ai_ErrCode ) THENls_errortext = "传递了空参数!"RETURN ''END IFCHOOSE CASE ai_ErrCodeCASE - 1ls_errortext = "数据管道打开错误!请检查所有的对象是否有效.错误代码:" + String( ai_ErrCode )CASE - 2ls_errortext = "列数超过上限!错误代码:" + String( ai_ErrCode )CASE - 3ls_errortext = "⽬的表已存在!错误代码:" + String( ai_ErrCode )CASE - 4ls_errortext = "⽬的表不存在!错误代码:" + String( ai_ErrCode )CASE - 5 //common start()函数与repair()函数公⽤错误代码ls_errortext = "连接被断开!错误代码:" + String( ai_ErrCode )CASE - 6ls_errortext = "错误参数!"CASE - 7ls_errortext = "列类型不匹配!错误代码:" + String( ai_ErrCode )CASE - 8ls_errortext = "源SQL语法错误!错误代码:" + String( ai_ErrCode )CASE - 9 //commonls_errortext = "⽬的SQL语法错误!错误代码:" + String( ai_ErrCode )CASE - 10 //commonls_errortext = "发⽣错误个数超过最⼤界定错误数!错误代码:" + String( ai_ErrCode )CASE - 11 //repair专⽤错误代码ls_errortext = "⽆效的窗⼝句柄!错误代码:" + String( ai_ErrCode )CASE - 12 //commonls_errortext = "错误的表语法!错误代码:" + String( ai_ErrCode )CASE - 13ls_errortext = "空的主键值!错误代码:" + String( ai_ErrCode )CASE - 15 //commonls_errortext = "该数据管道已打开!错误代码:" + String( ai_ErrCode )CASE - 16ls_errortext = "错误发⽣在源数据库!错误代码:" + String( ai_ErrCode )CASE - 17 //commonls_errortext = "错误发⽣在⽬的数据库!错误代码:" + String( ai_ErrCode )CASE - 18 //commonls_errortext = "⽬标数据库只读!错误代码:" + String( ai_ErrCode )END CHOOSERETURN ls_errortext-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------四、Database transaction information not available.Call SetTras or SetTransObject function1、dw控件没有加settransobject。
深入了解PowerBuilder事件
深入了解PowerBuilder事件摘要:事件是指作用在对象上的动作,在powerbuilder中,系统的运行是通过事件(event)的触发来实现的,powerbuilder中的大多数对象拥有自己的事件,用户也可以根据需要构造各种自定义事件,自定义事件可以像函数那样带有参数。
事件在powerbuilder应用开发中极其重要,加深对事件的认识有助于提高系统开发的整体水平。
本文系统阐述了powerbuilder事件的分类、事件id号、触发机制、事件的返回值以及执行流程等内容。
关键词:powerbuilder 对象事件系统消息中图分类号:tp3 文献标识码:a 文章编号:1007-9416(2011)12-0174-01通常,powerbuilder事件分为系统事件和用户自定义事件。
其中,系统事件是指被用户的动作或系统消息触发的事件,部分系统事件带有返回值,如果定义了参数,在触发时可以进行参数值传递;而用户自定义事件是为增强对象的功能而增加的事件,与系统事件一样,用户自定义事件可以指定事件的参数和返回值,并指定是否让事件使用系统消息等内容。
1、事件id与系统消息的关系在powerbuilder中,被用户的动作或操作系统所触发的事件必须具有id(如,系统事件),事件id的作用是把事件与系统消息连接起来。
至于用户自定义事件,可以使用列在event declaration对话框中的事件id,用来响应某个对应的系统消息。
其中,event列表框中的“pbm_”代码为映射到powerbuilder中的系统消息代码。
在构造用户自定义事件时,不能修改“与系统消息有关”事件的参数及返回值,这是由于与事件id相对应的系统消息一旦发生,powerbuilder即刻触发该事件并为事件参数赋值。
另外,若用户自定义事件“与系统消息无关”(如,open事件),则不为事件选择id,这样做的好处是:事件只能在应用程序运行中由程序来触发,而不会被用户的动作或系统活动所触发。