1. 程式人生 > >PB函式大全(超全,解析很全面)

PB函式大全(超全,解析很全面)

       這幾天在pb花的時間比較長,用一個新的ide,一個新的語言,在短時間內去開發一個MIS,也是比較有難度的一件事兒。最主要的是熟悉語法格式和各種常用函式,再結合以前所學的程式語言,來快速消化並掌握它。

       工欲善其事,必先利其器。所以熟悉了語法格式後,常用函式則需要有個大概了了解,方便用時來查。下面是我收集的常用函式,比較多,希望對大家有用。

  • Abs()
    功能計算絕對值。
    語法Abs ( n )
    引數n:要得到絕對值的數值型變數或表示式返回值返回值的資料型別與n的資料型別相同,函式執行成功時返回n的絕對值。如果引數n的值為NULL,Abs()函式返回NULL。
  • Ceiling()
    功能返回大於n的最小整數。
    語法Ceiling ( n )
    引數n:數值型變數或表示式返回值返回值的資料型別與n的資料型別相同。函式執行成功時返回大於n的最小整數。如果引數n的值為NULL,Ceiling()函式返回NULL。
  • Cos()
    功能計算餘弦,其中引數以弧度為單位。
    語法Cos ( n )
    引數n:數值型變數或表示式返回值Double。函式執行成功時返回n的餘弦。如果引數n的值為NULL,Cos()函式返回NULL。
  • Exp()
    功能計算e的n次方。
    語法Exp ( n )
    引數n:指定冪值返回值Double。函式執行成功時返回e(約等於2.71828)的n次方。如果引數n的值為NULL,Exp()函式返回NULL。
  • Fact()
    功能計算n的階乘。
    語法Fact ( n )
    引數n:數值型變數或表示式返回值Double。函式執行成功時返回n的階乘。如果引數n的值為NULL,Fact()函式返回NULL。
  • Int()
    功能得到小於等於n的最大整數。
    語法Int ( n )
    引數n:數值型變數或表示式返回值Integer。函式執行成功時返回小於等於n的最大整數。如果n的值太小或太大,超過了整數的表示範圍,則函式返回0。如果引數n的值為NULL,Int()函式返回NULL。
  • Log()
    功能計算n的自然對數。
    語法Log ( n )
    引數n:數值型變數或表示式,其值必須大於0返回值Double。函式執行成功時返回n的自然對數。如果n小於等於0,將導致執行錯誤。如果引數n的值為NULL,Log()函式返回NULL。
  • LogTen()
    功能計算n的常用對數(以10為底)。
    語法LogTen ( n )
    引數n:數值型變數或表示式,其值必須大於0返回值Double。函式執行成功時返回n的常用對數。如果n小於等於0,將導致執行錯誤。如果引數n的值為NULL,LogTen()函式返回NULL。
  • Max()
    功能求兩個數中的最大值。
    語法Max ( x, y )
    引數x:數值型變數或表示式,參加比較的第一個數y :數值型變數或表示式,參加比較的第二個數返回值以x、y中資料型別更精確的資料型別作為該函式的返回值資料型別。函式執行成功時返回引數比較的兩個數中更大者。如果任何引數的值為NULL,Max()函式返回NULL。
  • Min()
    功能求兩個數中的最小值。
    語法Min( x, y )
    引數x:數值型變數或表示式,參加比較的第一個數y :數值型變數或表示式,參加比較的第二個數返回值以x、y中資料型別更精確的資料型別作為該函式的返回值資料型別。函式執行成功時返回引數比較的兩個數中較小者。如果任何引數的值為NULL,Min()函式返回NULL。
  • Mod()
    功能求餘數。
    語法Mod ( x, y )
    引數x:數值型變數或表示式,被除數y :數值型變數或表示式,除數返回值以x、y中資料型別更精確的資料型別作為該函式的返回值資料型別。函式執行成功時返回x除以y所得的餘數 。如果任何引數的值為NULL,Mod()函式返回NULL。
  • Pi()
    功能計算n與Pi(3.14159265358979323...)的乘積。
    語法Pi ( n )
    引數n:數值型變數或表示式返回值Double。函式執行成功時返回n與Pi(3.14159265358979323...)的乘積。發生錯誤時返回-1。如果引數n的值為NULL,Pi()函式返回NULL。
  • Rand()
    功能得到1與n之間的一個偽隨機數。
    語法Rand ( n )
    引數n:數值型變數或表示式,指定要產生的偽隨機數的上界。有效值在1到32,767之間返回值與n的資料型別相同。函式執行成功時返回1與n之間的一個偽隨機數,包括1和n在內。如果引數n的值為NULL,Rand()函式返回NULL。
Randomize()
功能初始化偽隨機數發生器,這樣讓應用程式每次使用不同的偽隨機數序列。
語法Randomize ( n )
引數n:數值型變數或表示式,指定偽隨機數生成器使用的起始值,不同的起始值可以生成不同的偽隨機數序列。當n的值為0時,該函式把系統時鐘作為偽隨機數生成器的起始值,這樣可以生成不可重複的偽隨機數序列。當n的值不為0時,可以產生不同的偽隨機數序列,但是,如果兩次使用相同的偽隨機數生成器起始值,那麼兩次生成的偽隨機數序列相同。n的值在0到32,767之間返回值Integer。極少使用該函式的返回值。
Round()
功能將x四捨五入到n位。
語法Round ( x, n )引數x:要四捨五入的數值型資料n:整數型別,指定從哪個小數位上四捨五入x。有效值在0到18之間返回值Decimal。函式執行成功時返回將x四捨五入到小數點後第n位的數值,如果函式執行失敗或任何引數的值為NULL,Round()函式返回NULL。
Sign()
功能確定n是整數、負數還是零。
語法Sign ( n )
引數n:數值型變數或表示式,指定要測試符號的值返回值Integer。當n大於0時返回1;當n小於0時返回-1;當n等於0時返回0。如果引數n的值為NULL,Sign()函式返回NULL。
Sin()
功能計算正弦,其中引數以弧度為單位。
語法Sin( n )
引數n:數值型變數或表示式返回值Double。函式執行成功時返回n的正弦。如果引數n的值為NULL,Sin()函式返回NULL。
Sqrt()
功能計算平方根。
語法Sqrt ( n )
引數n:數值型變數或表示式,指定要計算平方根的資料返回值Double。函式執行成功時返回n的平方根。如果n是負數,則執行該函式時引發執行錯誤。如果引數n的值為NULL,Sqrt()函式返回NULL。
Tan()
功能計算正切,其中引數以弧度為單位。
語法Tan( n )
引數n:數值型變數或表示式返回值Double。函式執行成功時返回n的正切。如果引數n的值為NULL,Tan()函式返回NULL。
  • Truncate()
    功能截斷數值到指定的小數位。
    語法Truncate ( x, n )
    引數x:要截斷的數值型資料n:整數型別,指定從哪個小數位上截斷x。有效值在0到18之間返回值Decimal。函式執行成功時返回將x截斷到小數點後第n位的數值,如果函式執行失敗或任何引數的值為NULL,Truncate()函式返回NULL。所謂截斷就是捨棄指定位之後的數值。  
Asc()
功能得到字串第一個字元的ASCII碼整數值。
語法Asc ( string )
引數string:要得到第一個字元ASCII值的字串返回值Integer。函式執行成功時返回string引數第一個字元的ASCII值,如果string引數的值為NULL,則Asc()函式返回NULL。
Char()
功能將字串的第一個字元、Blob變數的第一個值、或一個整數轉換成字元。
語法Char ( n )
引數n:字串、Blob變數或整數,也可以是包含上述型別資料的Any型別變數返回值Char。返回引數n的第一個字元。如果n引數的值為NULL,則Char()函式返回NULL。
Dec()
功能將字串或Blob值轉換成Decimal型別的值。
語法Dec ( stringorblob )
引數stringorblob:string型別變數或Blob型別變數。Blob型別變數時,把該變數第一個值轉換為Decimal型別的值,其餘部分被忽略。stringorblob引數也可以是包含上述型別資料的Any型別變數返回值Decimal。函式執行成功時返回相應的Decimal型別值。如果stringorblob引數中的值不是有效的PowerScript數字或資料型別不相容,那麼Dec()函式返回0。如果stringorblob引數的值為NULL,則Dec()函式返回NULL。
Double()
功能將字串或Blob值轉換成Double型別的值。
語法Double(stringorblob)
引數stringorblob:string型別變數或Blob型別變數。Blob型別變數時,把該變數第一個值轉換為Double型別的值,其餘部分被忽略。stringorblob引數也可以是包含上述型別資料的Any型別變數返回值Double。函式執行成功時返回相應的Double型別值。如果stringorblob引數中的值不是有效的PowerScript數字或資料型別不相容,那麼Double()函式返回0。如果stringorblob引數的值為NULL,則Double()函式返回NULL。
Integer()
功能 將字串或Blob值轉換成Integer型別的值。
語法Integer ( stringorblob )
引數stringorblob:string型別變數或Blob型別變數。Blob型別變數時,把該變數第一個值轉換為Integer型別的值,其餘部分被忽略。stringorblob引數也可以是包含上述型別資料的Any型別變數返回值Integer。函式執行成功時返回相應的Integer型別值。如果stringorblob引數中的值不是有效的PowerScript數字或資料型別不相容,那麼Integer()函式返回0。如果stringorblob引數的值為NULL,則Integer()函式返回NULL。
Long()
功能將其它型別的資料轉換為Long型別的值。該函式有兩種語法格式:
語法一、將兩個無符號整數組合成一個長整數值;
語法二、將字串或Blob值轉換成Long型別的值。下面分別予以介紹:
語法一、將兩個無符號整數組合成一個長整數值
語法Long ( lowword, highword )
引數lowword:UnsignedInteger型別,指定長整數中的低位值highword:UnsignedInteger型別,指定長整數中的高位值返回值Long。函式執行成功時返回由低位值和高位值組合後的長整數值,發生錯誤時返回-1。如果任何引數的值為NULL,則Long()函式返回NULL。
語法二、將字串或Blob值轉換成Long型別的值
語法Long ( stringorblob )
引數stringorblob:string型別變數或Blob型別變數。Blob型別變數時,把該變數第一個值轉換為Long型別的值,其餘部分被忽略。stringorblob引數也可以是包含上述型別資料的Any型別變數返回值Long。函式執行成功時返回相應的Long型別值。如果stringorblob引數中的值不是有效的PowerScript數字或資料型別不相容,那麼Long()函式返回0。如果stringorblob引數的值為NULL,則Long()函式返回NULL。
Real()
功能將字串或Blob值轉換成Real型別的值。
語法Real ( stringorblob )
引數stringorblob:string型別變數或Blob型別變數。當該引數是Blob型別變數時,把該變數第一個值轉換為Real型別的值,其餘部分被忽略。stringorblob引數也可以是包含上述型別資料的Any型別變數返回值Real。函式執行成功時返回相應的Real型別值。如果stringorblob引數中的值不是有效的PowerScript數字或資料型別不相容,那麼Real()函式返回0。如果stringorblob引數的值為NULL,則Real()函式返回NULL。
Date()功能 將其它型別的資料轉換為Date型別的資料。該函式有三種語法格式:
語法一、將DateTime型別或第一個值是DateTime或Date的Blob值轉換成Date型別的值;
語法二、將其值是個有效日期的字串轉換成Date型別的值;
語法三、將三個整數組合成一個日期。下面分別予以介紹:
語法一、將DateTime型別或第一個值是DateTime或Date的Blob值轉換成Date型別的值
語法Date ( datetime )
引數datetime:DateTime型別的值或第一個值是DateTime或Date的Blob型別的值。當該引數是Blob型別變數時,把該變數第一個值轉換為Date型別的值,其餘部分被忽略。datetime引數也可以是包含上述型別資料的Any型別變數返回值Date。函式執行成功時返回相應的Date型別值。如果datetime引數中的值不是有效的PowerScript日期或資料型別不相容,那麼Date()函式返回1900-01-01。如果datetime引數的值為NULL,則Date()函式返回NULL。
語法二、將其值是個有效日期的字串轉換成Date型別的值
語法Date ( string )
引數string:string型別,其值包括一個有效的以字串形式表示的日期(比如January 1, 1998或12-31-99),string引數也可以是包含字串型別資料的Any型別變數返回值Date。函式執行成功時返回相應的Date型別值。如果string引數中的值不是有效的PowerScript日期或資料型別不相容,那麼Date()函式返回1900-01-01。如果string引數的值為NULL,則Date()函式返回NULL。
語法三、將三個表示年、月、日的整數組合成一個日期
語法Date ( year, month, day )
引數year:integer型別,指定日期中的年份,用四位數字表示,從0到9999month:integer型別,指定日期中的月份,用一位或兩位數字表示,從1到12day:integer型別,指定日期中的號數,用一位或兩位數字表示,從1到31返回值Date。函式執行成功時返回由year、month、day三個引數確定的日期。如果這三個引數中任何一個引數使用了無效值(比如月份指定為14),則Date()函式返回1900-01-01。如果任何引數的值為NULL,則Date()函式返回NULL。
DateTime()
功能 將其它型別的資料轉換為DateTime型別的資料。該函式有兩種語法格式:語法一、把日期和時間值組合成DateTime型別的值;語法二、將Blob型別的值轉換成DateTime型別的值。下面分別予以介紹:
語法一、把日期和時間值組合成DateTime型別的值
語法DateTime ( date {, time } )
引數date:Date型別的日期值time:可選引數,Time型別的時間值,省略該引數時,PowerBuilder把時間設定為午夜(00:00:00.000000)。當指定該引數時,可以僅僅指定小時值返回值DateTime。函式執行成功時返回日期和時間組合而成的DateTime型別的值。如果任何引數的值為NULL,則DateTime()函式返回NULL。
語法二、將Blob型別的值轉換成DateTime型別的值
語法DateTime ( blob )
引數blob:Blob型別變數,把該變數第一個值轉換為DateTime型別的值,其餘部分被忽略。blob引數也可以是包含blob型別資料的Any型別變數返回值DateTime。函式執行成功時返回相應的DateTime型別值。如果blob引數的值為NULL,則DateTime()函式返回NULL。
IsDate()
功能檢測指定的字串是否包含有效的日期。
語法IsDate ( datevalue )
引數datevalue:string型別,指定要檢測的字串返回值Boolean。如果datevalue包含了有效的日期,則IsDate()函式返回TRUE,否則返回FALSE。如果datevalue引數的值為NULL,則IsDate()函式返回NULL。
IsNull()
功能測試變數或表示式的值是否是NULL。
語法IsNull ( any )
引數any:要測試的變數或表示式返回值Boolean:如果any的值為NULL,函式返回TRUE,否則函式返回FALSE。
IsNumber()
功能測試字串是否是有效的數值。
語法IsNumber ( string )
引數string:string型別,要測試的字串返回值Boolean:如果string的值為有效的PowerScript數字,函式返回TRUE,否則函式返回FALSE。如果string引數的值為NULL,則IsNumber()函式返回NULL。
IsTime()
功能測試字串的值是否是有效的時間。
語法IsTime ( timevalue )
引數timevalue:string型別,要測試的字串返回值Boolean:如果timevalue的值為有效的時間,函式返回TRUE,否則函式返回FALSE。如果timevalue 引數的值為NULL,則IsTime()函式返回NULL。
String()
功能按指定格式將資料轉換成字串。String()可以把Date、DateTime、數值型別、Time、String型別的資料轉換成指定格式的字串。
語法String(data,{format})
引數data:指定要轉換格式的資料,其資料型別可以是Date、DateTime、數值型別、Time、String,也可以是包含上述型別資料的Any型別變數format:可選項,string型別,其值指定資料格式。如果data引數的型別為string,則必須指定format引數返回值String。函式執行成功時返回以字串方式表示的指定資料,如果data引數的資料型別與format引數指定的格式不匹配、format引數指定的格式無效、或data引數不是前面提到的適宜資料型別時,String()函式返回空字串("")。
用法:
format是個用掩碼錶示的字串,對data引數為數值型別的情況來說,格式為:正數格式;負數格式;零的顯示格式;空的顯示格式除第一部分必須提供外,其它部分可以省略。數值型顯示格式中使用兩個掩碼字元:#和0,其中,使用#代表0~9之間的任意數字,0代表每個零都要顯示。另外,貨幣符號($或¥)、百分號(%)、小數點(.)、逗號(,)等字元也可以出現在格式字串中,但是,除小數點(.)、逗號(,)能夠出現在格式字元#和0之間外,其它字元只能放置在格式串的前面或後面,例如,###,###$###是個錯誤的格式串,¥###,###,###是個正確的格式串。省略format引數時,String()函式使用PowerBuilder預設格式。注意,如果顯示格式有多個部分,各部分之間的分號(;)不能省略。其它字元也可以出現在顯示格式字串中(只能放在格式串的開頭和末尾),但它們沒有特殊意義,系統只是照原樣顯示。例如,用顯示格式字串“收入##”格式化數值12時,顯示結果為“收入12”。對data引數為字串(String)型別的情況來說,format引數的語法格式為:正常字串格式;空值時格式在“正常字串格式”中,@代表字串中的任意字元,除此之外的任何字元照原樣顯示,例如,如果定義了下面的格式:(@@)@@@@[email protected]@@@則字串0166767593顯示為:(01)6676-7593對data引數為日期(Date)型別的情況來說,format引數的語法格式為:正常日期格式;日期為空值時的格式日期格式中格式字元意義如下:d棗開頭不帶0的日數(如8)dd棗開頭帶0的日數(如08)ddd棗星期的英文縮寫(如Mon、Tue)dddd棗星期的英文全稱(如Monday、Tuesday)m棗開頭不帶0的月份(如8)mm棗開頭帶0的月份(如08)mmm棗月份的英文縮寫(如Jan、Feb)mmmm棗月份的英文全稱(如January、February)yy棗兩位數字表示的年份(如97)yyyy棗四位數字表示的年份(如1997)另外,還可以使用下面的關鍵字作為日期的顯示格式:[General] Windows系統中定義的短日期格式[LongDate] Windows系統中定義的長日期格式[ShortDate] Windows系統中定義的短日期格式對data引數為時間(Time)型別的情況來說,語法格式為:正常時間格式;時間為空值時的格式時間格式中格式字元意義如下:h開頭不帶0的小時(比如6)hh棗開頭帶0的小時(比如06)m棗開頭不帶0的分鐘(比如6)mm棗開頭帶0的分鐘(比如06)s棗開頭不帶0的秒(比如6)ss棗開頭帶0的秒(比如06)f棗開頭不帶0的微秒,可以指定1~6個f,每個f代表一部分微秒AM/PM棗用AM/PM顯示上、下午時間,12小時制am/pm棗用am/pm顯示上、下午時間,12小時制A/P棗用A/P顯示上、下午時間,12小時制a/p棗用a/p顯示上、下午時間,12小時制另外,顯示格式中還可以使用關鍵字[Time],它表示按當前Windows系統定義的格式顯示時間。對data引數為日期時間(DateTime)型別的情況來說,語法格式為:正常日期時間格式;日期時間為空值時的格式日期時間型別使用的掩碼就是把日期掩碼和時間掩碼結合起來即可。
  • Time()
    功能 把其它型別的資料轉換為Time型別的值。該函式有三種語法格式:語法一、將DateTime型別或第一個值是DateTime或Time的Blob值轉換成Time型別的值;語法二、將其值是個有效時間的字串轉換成Time型別的值;語法三、將表示時、分、秒、以及微秒的整數組合成一個時間值。下面分別予以介紹:
    語法一、將DateTime型別或第一個值是DateTime或Time的Blob值轉換成Time型別的值
    語法Time ( datetime )
    引數datetime:DateTime型別的值或第一個值是DateTime或Time的Blob型別的值。當該引數是Blob型別變數時,把該變數第一個值轉換為Time型別的值,其餘部分被忽略。datetime引數也可以是包含上述型別資料的Any型別變數返回值Time。函式執行成功時返回相應的Time型別值。如果datetime引數中的值不是有效的PowerScript時間或資料型別不相容,那麼Time()函式返回00:00:00.000000。如果datetime引數的值為NULL,則Time()函式返回NULL。
    語法二、將其值是個有效時間的字串轉換成Time型別的值
    語法Time ( string )
    引數string:string型別,其值包括一個有效的以字串形式表示的時間(比如9am或10:25),string引數也可以是包含時間型別資料的Any型別變數返回值Time。函式執行成功時返回相應的Time型別值。如果string引數中的值不是有效的PowerScript時間或資料型別不相容,那麼Time()函式返回00:00:00.000000。如果string引數的值為NULL,則Time()函式返回NULL。
    語法三、將表示時、分、秒、以及微秒的整數組合成一個時間值
    語法Time ( hour, minute, second {, microsecond } )
    引數hour:integer型別,指定時間中的小時,從0到23minute:integer型別,指定時間中的分鐘,從0到59second:integer型別,指定時間中的秒,從0到59microsecond:integer型別,可選項,指定時間中的微秒,從0到32767返回值Time。函式執行成功時返回由hour、minute、second、microsecond 四個引數確定的時間。如果這四個引數中任何一個引數使用了無效值(比如小時指定為44),則Time()函式返回NULL。
Beep()
功能響鈴n次(n超過10時只響10次)。
語法Beep ( n )
引數n:數值型別,指定需要的響鈴次數。如果n的值大於10,那麼計算機只響鈴10次返回值Integer。函式執行成功時返回1,發生錯誤時返回-1。如果引數n的值為NULL,Beep()函式返回NULL。
ClassName()
功能確定指定變數的類(資料型別)。
語法ClassName(variable)
引數variable:指定要確定其資料型別的變數返回值String。函式執行成功時返回指定變數的資料型別,發生錯誤時返回空字串。如果引數variable的值為NULL,ClassName()函式返回NULL。用法需要注意的是,ClassName()函式不能確定列舉型別變數的型別,此時,ClassName()函式返回空字串("")。
DebugBreak()
功能暫停程式執行,開啟偵錯程式,進入除錯模式。
語法DebugBreak ( )
返回值無用法 DebugBreak()函式可以幫助你除錯應用程式。如果你希望應用程式執行某條語句後暫停執行,然後進入除錯模式,那麼可以在該語句後面放上DebugBreak()函式,應用程式執行到DebugBreak()函式後,開啟Debug(除錯)視窗,並在其中顯示當前上下文資訊。這種方式實現了應用程式在PowerBuilder開發環境中的即時除錯功能。
IntHigh()
功能得到Long型值的高位字。
語法IntHigh ( long )
引數long:long型值或變數返回值 Integer。函式執行成功時返回引數long的高位字,發生錯誤時返回-1。如果引數long的值為NULL,IntHigh()函式返回NULL。用法IntHigh()函式通常用於分解外部C或C++語言函式的返回值和Windows訊息。
IntLow()
功能得到Long型值的低位字。
語法IntLow ( long )
引數long:long型值或變數返回值Integer。函式執行成功時返回引數long的低位字,發生錯誤時返回-1。如果引數long的值為NULL,IntLow()函式返回NULL。用法IntLow()函式通常用於分解外部C或C++語言函式的返回值和Windows訊息。示例請參看IntHigh()函式。
IsValid()
功能檢查物件變數是否已經例項化,即例項變數的值是否是個有效的物件控制代碼。
語法IsValid ( objectname )
引數objectname:要檢測的物件名返回值Boolean。如果指定物件已經建立了物件例項,那麼IsValid()函式返回TRUE,否則返回FALSE。如果引數objectname的值為NULL,IsValid()函式返回NULL。
KeyDown()
功能檢查使用者是否按了鍵盤上指定的鍵。
語法KeyDown ( keycode )
引數 keycode:KeyCode列舉型別或integer型別,指明要檢測的按鍵或某個鍵的ASCII值返回值Boolean。如果使用者按了keycode引數指定的按鍵,函式返回TRUE,否則返回FALSE。如果引數keycode的值為NULL,KeyDown()函式返回NULL。用法KeyDown()函式通常在某個事件的事件處理程式中呼叫,它並不指明使用者鍵入了哪個字元,而是說明當前事件(即事件處理程式中呼叫KeyDown()函式的事件)發生時使用者正按著哪個按鍵。一般來說,應用程式在視窗的Key事件或控制元件的按鍵事件中呼叫KeyDown()函式,以檢測使用者是否按了某個特殊鍵。對控制元件來說,PowerBuilder沒有定義預定義的Key事件,這也沒有關係,如果在控制元件得到焦點後希望應用程式檢測使用者的按鍵,只要對該控制元件定義一個使用者事件,並把pbm_keydown (其它控制元件)或pbm_dwnkey(資料視窗控制元件)對映到該使用者事件上即可。
MessageBox()
功能顯示一個訊息對話方塊。
語法MessageBox(title,text{,icon{,button{,default}}})
引數title:string型別,指定訊息對話方塊的標題text:指定訊息對話方塊中顯示的訊息,該引數可以是數值資料型別、字串或boolean值icon:Icon列舉型別,可選項,指定要在該對話方塊左側顯示的圖示button:Button列舉型別,可選項,指定顯示在該對話方塊底部的按鈕default:數值型,可選項,指定作為預設按鈕的按鈕編號,按鈕編號自左向右依次計數,預設值為1,如果該引數指定的編號超過了顯示的按鈕個數,那麼MessageBox()函式將使用預設值返回值Integer。函式執行成功時返回使用者選擇的按鈕編號(例如1、2、3等),發生錯誤時返回-1。如果任何引數的值為NULL,MessageBox()函式返回NULL。
用法當你的應用程式需要顯示一段簡簡訊息(比如顯示出錯、警告等資訊)時,沒有必要自己從頭建立視窗、安排控制元件,使用MessageBox()函式既簡單又方便。使用者只有響應該視窗後,程式才能繼續執行下去。MessageBox()函式的icon引數指定顯示在視窗中的圖示,它是列舉型別,可能取值為:取值 圖示Information! StopSign! Exclamation! Question! None! 無圖示其中Information!是Icon引數的預設值。Button引數指定在視窗中顯示哪些按鈕,有效取值為:取值中文Windows 95下顯示OK!“確定”按鈕OKCancel!“確定”、“取消”按鈕YesNo!“是”、“否”按鈕 YesNoCancel!“是”、“否”、“取消”按鈕RetryCancel!“重試”、“取消”按鈕AbortRetryIgnore!“終止”、“重試”、“忽略”按鈕
PixelsToUnits()
功能 將畫素值轉換為PowerBuilder單位PBU。
語法PixelsToUnits ( pixels, type )
引數pixels:integer型別,指定要轉換為PowerBuilder單位的畫素數type:ConvertType列舉型別,指定按哪個方向進行轉換。有效取值為:XPixelsToUnits! - 按水平方向轉換畫素;YPixelsToUnits! - 按垂直方向轉換畫素返回值Integer。函式執行成功時返回pixels引數指定畫素數按指定方向轉換成的PowerBuilder單位數,發生錯誤時返回-1。如果任何引數的值為NULL,PixelsToUnits()函式返回NULL。用法視窗中水平方向和垂直方向相同的畫素數表示的距離並不相同。如果你使用水平方向和垂直方向相同的畫素數繪製一個方框,那麼你會看到,該方框不是正方形而是個矩形,而使用PBU計量的相同單位數將繪出正方形。因此,在進行單位轉換時,需要指明按那麼方向進行轉換。
PopulateError()
功能以應用程式定製的錯誤號和錯誤資訊填充Error物件,該函式不觸發應用物件的SystemError事件。
語法PopulateError ( number, text )
引數number:integer型別,指定要儲存到Error物件number屬性中的值text:string型別,指定要儲存到Error物件text屬性中的值返回值Integer。函式執行成功時返回1,發生錯誤時返回-1。
用法當應用程式需要根據變數的當前取值來定製Error物件時,可以使用PopulateError()函式來填充Error物件的number和text屬性,同時該函式根據上下文自動填充Error物件的其它屬性。定製了Error物件後,應用程式可以使用不帶引數的SignalError()函式觸發應用物件的SystemError事件。這樣,在SystemError事件的事件處理程式中可以編寫處理定製錯誤和系統錯誤的通用程式碼。如果應用程式沒有對SystemError事件編寫事件處理程式,那麼SignalError()函式什麼也不做。
RGB()
功能將代表紅、綠、藍三原色的三個整數組合成一個表示顏色的長整數。
語法RGB ( red, green, blue )
引數red:integer型別,指定顏色中的紅色分量強度,有效值在0到255之間green:integer型別,指定顏色中的綠色分量強度,有效值在0到255之間blue:integer型別,指定顏色中的藍色分量強度,有效值在0到255之間返回值Long。函式執行成功時返回由指定分量確定的顏色,用長整數表示。發生錯誤時返回-1。如果任何引數的值為NULL,RGB()函式返回NULL。
用法RGB()函式使用下述公式計算表示顏色的長整數:65536 * Blue+ 256 * Green+ Red其中,Blue代表藍色分量,Green代表綠色分量,Red代表紅色分量。各分量中,數值越小,亮度越低,數值越大,亮度越高。例如,RGB ( 0, 0, 0 )為黑色(亮度最低),RGB ( 255, 255,255 )為白色(亮度最高)。
SetNull()
功能將指定變數的值設定為NULL。這裡的變數可以是除陣列、結構、自動例項化物件之外的任何資料型別。
語法SetNull ( anyvariable )
引數anyvariable:要將其值設定為NULL的變數返回值Integer。函式執行成功時返回1,發生錯誤時返回-1。如果任何引數的值為NULL,SetNull()函式返回NULL。用法PowerBuilder應用程式在說明變數時,並不自動地將其初值設定為NULL,而是根據型別的不同而設定不同的初值,比如,數值型別的變數自動初始化為0,字串型變數自動初始化為空字串("")。因此,如果需要將某個變數的值設定為NULL,就需要使用SetNull()函式來完成任務了。一般來說,NULL值往往應用在資料庫值未確定的列上。
SetPointer()
功能設定滑鼠指標。
語法SetPointer ( type )
引數type:Pointer列舉型別,指明要設定為哪種滑鼠指標返回值Pointer。返回更換前的滑鼠指標,以便於應用程式恢復原有指標。如果引數type的值為NULL,SetPointer()函式返回NULL。用法type引數的可能取值為:Arrow!、Cross!、Beam!、HourGlass!、SizeNS!、SizeNESW!、SizeWE!、SizeNWSE!、UpArrow!。
SignalError()
功能以程式設計方式觸發應用物件的SystemError事件。
語法SignalError ( { number }, { text } )
引數number:integer型別,可選項,指定出錯編號,該編號將儲存到Error物件的number屬性中text:string型別,可選項,指定出錯資訊,該資訊將儲存到Error物件的text屬性中返回值Integer。函式執行成功時返回1,發生錯誤時返回-1。用法SignalError()函式通常用於測試應用程式的出錯處理程式碼,它以人工方式產生錯誤,以此模擬應用程式執行過程中可能出現的錯誤。我們知道,應用程式本身產生錯誤的條件往往不容易在測試時遇到。當應用程式使用PopulateError()函式定製了Error物件後,可以以不帶引數的方式呼叫SignalError()函式,由該函式觸發應用物件的SystemError事件。如果我們在呼叫SignalError()函式時指定了引數number和text,那麼SignalError()函式將根據上下文填充Error物件的所有屬性,然後觸發應用物件的SystemError事件。如果應用程式沒有對應用物件的SystemError事件編寫事件處理程式,那麼SignalError()函式什麼也不做。
  • UnitsToPixels()
    功能將PowerBuilder單位(PBU)轉換為畫素。
    語法UnitsToPixels ( units, type )
    引數units:integer型別,指定要轉換為畫素的PowerBuilder單位(PBU)數type:ConvertType列舉型別,指定按哪個方向進行轉換。有效取值為:XUnitsToPixels! - 按水平方向轉換PBU;YUnitsToPixels! - 按垂直方向轉換PBU返回值Integer。函式執行成功時返回units引數指定PBU數按指定方向轉換成的畫素數,發生錯誤時返回-1。如果任何引數的值為NULL,UnitsToPixels()函式返回NULL。用法視窗中水平方向和垂直方向相同的畫素數表示的距離並不相同。如果你使用水平方向和垂直方向相同的畫素數繪製一個方框,那麼你會看到,該方框不是正方形而是個矩形,而使用PBU計量的相同單位數將繪出正方形。因此,在進行單位轉換時,需要指明按那麼方向進行轉換。
Blob()
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。
BlobMid()
功能從Blob變數中提取出一段資料。提取之後,原Blob變數內容不變。
語法BlobMid ( data, n {, length } )
引數data:Blob型別的資料n:指定要提取資料的起始位置,有效值在1到4,294,967,295之間length:可選項,指定要提取資料的長度,以位元組為單位,有效值在1到4,294,967,295之間。預設時提取從指定位置n到末尾的所有資料返回值Blob。函式執行成功時返回指定位元組數的資料。如果n的值大於data的位元組數,函式返回空。如果n與length的和超過了data資料的位元組數,那麼BlobMid()函式返回剩下的資料,資料長度將小於引數length的值。如果任何引數的值為NULL,則BlobMid()函式返回NULL。
  • Len()
    功能得到Blob型別變數的資料長度,以位元組為單位。
    語法Len ( blob )
    引數blob:Blob型別變數返回值Long。函式執行成功時返回blob變數的長度,發生錯誤時返回-1。如果任何引數的值為NULL,則Len()函式返回NULL。用法如果在說明Blob型別的變數時指定了變數長度,那麼對該變數來說,Len()函式得到的就是這個指定的長度。如果在變數說明時未指定變數長度,那麼PowerBuilder在賦值時調整長度,未賦值Blob型別變數的長度為0。
  • String()
    功能將Blob型別變數的值轉換成字串型別。如果Blob型別變數的值不是文字型資料,String()函式將其值解釋成字元。
    語法String ( blob )
    引數blob:要對其值進行型別轉換的Blob型別變數返回值String。函式執行成功時返回轉換後的資料,失敗時返回空字串("")。如果blob變數中包含的資料不是字串型別的資料,那麼String()函式儘可能把資料解釋為字元,並返回字串型別資料。如果blob引數的值為NULL,則String()函式返回NULL。
Clipboard()
功能提取或替換Windows系統剪貼簿的文字內容。
語法Clipboard ( { string } )
引數string:string型別,可選項,指定要複製到系統剪貼簿上的文字。如果剪貼簿上已有內容的話,該文字將取代剪貼簿的當前內容返回值String。函式執行成功時,如果剪貼簿上包含文字資料,那麼函式返回剪貼簿的當前內容;如果剪貼簿上包含非文字資料(比如點陣圖)或不包含任何資料,那麼函式返回空字串("")。如果string引數的值為NULL,Clipboard()函式返回NULL。用法無論是否指定string引數,Clipboard()都將返回剪貼簿的當前內容。當指定string引數時,剪貼簿的原有內容被string引數的值取代;省略string引數時,僅僅得到剪貼簿的內容。
CommandParm()
功能得到應用程式執行時指定的命令引數。
語法CommandParm ( )
返回值String。函式執行成功時返回應用程式執行時的命令列引數,函式執行錯誤或沒有命令列引數時函式返回空字串("")。用法命令列引數是應用程式啟動時跟在應用程式名稱後面的任何引數,比如,在執行視窗中輸入了下述命令:MyAppl C:/EMPLOYEE/EMPLIST.TXT那麼MyAppl應用程式中使用CommandParm()函式得到的命令列引數為:C:/EMPLOYEE/EMPLIST.TXT當應用程式的命令列中包含幾個引數時,CommandParm()函式作為一個字串返回所有引數。利用字串操作函式可以分離各引數。在應用物件的Open事件中沒有必要執行CommandParm()函式。此時,Open事件的argument引數中包含了命令列引數。
DoScript()
功能執行AppleScript程式段,該函式只在Macintosh平臺上有效。
語法DoScript ( script, result )
引數script:string型別,指定要執行的程式段(script)result:string型別,由AppleScript程式段返回的結果資訊或出錯資訊返回值Integer。返回由AppleScript返回的結果程式碼。如果任何引數的值為NULL,DoScript()函式返回NULL。
GetApplication()
功能得到當前應用物件的控制代碼,這樣你可以查詢或設定應用物件的屬性(通常用於編寫通用程式碼)。
語法GetApplication ( )
返回值Application。返回當前應用物件的控制代碼。
GetEnvironment()
功能得到作業系統、處理器、螢幕顯示等與系統相關的資訊。
語法GetEnvironment ( environmentinfo )
引數environmentinfo:Environment物件名,用於儲存系統環境資訊返回值Integer。函式執行成功時返回1,發生錯誤時返回-1。如果引數environmentinfo的值為NULL,GetEnvironment()函式返回NULL。用法當開發交叉平臺專案時,利用GetEnvironment()函式,應用程式能夠得到當前執行的作業系統、使用的CPU型別、作業系統的版本、螢幕的大小以及顏色數等資訊,這些資訊的具體表示請參閱本書環境物件(Environment Object)的介紹。
GetFocus()
功能確定當前焦點位於哪個控制元件上。
語法GetFocus ( )
返回值GraphicObject。函式執行成功時返回當前得到焦點控制元件的引用,發生錯誤時返回無效引用。用法應用程式利用IsValid()函式可以檢測GetFocus()是否返回有效的控制元件引用。同時,使用TypeOf()函式可以確定控制元件的型別。
Post()
功能將指定訊息加入到某個視窗的訊息佇列中,這個視窗既可以是PowerBuilder應用的視窗,也可以是其它應用的視窗。
語法Post( handle, messageno, word, long )
引數handle:long型別,指定視窗的系統控制代碼,將向該視窗郵寄訊息messageno:UnsignedInteger型別,指定要郵寄的訊息號 word:long型別,指定與訊息一起郵寄的word類引數值。如果messageno引數指定的訊息不使用該引數,那麼將這個引數的值設定為0long:long型別或string,指定與訊息一起郵寄的long型引數值或字串返回值Boolean。如果任何引數的值為NULL,Post()函式返回NULL。
用法Post()函式用於向視窗傳送非PowerBuilder預定義事件的訊息,這個視窗可以是PowerBuilder應用的視窗,也可以是其它應用的視窗。Post()函式把傳送的訊息放置在指定視窗訊息佇列的尾部,然後返回到應用程式中,它並不等待相應事件事件處理程式的執行。這一點與Send()函式不同,Send()函式直接觸發指定視窗相應的事件,執行事件處理程式後返回到呼叫應用中。因此,我們說Post()函式採用的是非同步方式,Send()函式採用的是同步方式。Post()函式的引數handle指定接收訊息的視窗控制代碼,對PowerBuilder視窗來說,使用Handle()函式可以得到該控制代碼。對其它應用程式的視窗來說,可以呼叫系統API函式查詢視窗並得到相應視窗的控制代碼。如果應用程式要郵寄PowerBuilder定義事件(包括預定義事件和使用者定義事件),那麼使用PostEvent()函式既簡單有方便。當應用程式在long引數位置指定一個字串時,Post()函式複製一個該字串的副本,然後將副本的地址傳送給指定視窗。
ProfileInt()
功能從初始化檔案(.ini)中讀取整型設定值。
語法ProfileInt ( filename, section, key, default )
引數filename:string型別,指定初始化檔案的名稱,可以包括路徑,省略路徑時,該函式按作業系統的標準路徑搜尋指定檔案section:string型別,指定要得到的值所在的節(Section)key:string型別,指定要得到的值的名稱,不用區分大小寫default:integer型別,當指定的檔案、節名、專案名不存在或不能轉換為整數時,函式返回該引數指定的值返回值Integer。函式執行成功時,在指定的檔案、節名、專案名不存在任何錯誤的情況下,函式返回相應項的值;如果指定的檔案、節名、專案名不存在或不能轉換為整數時,函式返回default引數指定的預設值。如果發生錯誤,函式返回-1。如果任何引數的值為NULL,ProfileInt()函式返回NULL。
ProfileString()
功能從初始化檔案(.ini)中讀取字串型設定值。
語法ProfileString ( filename, section, key, default )
引數filename:string型別,指定初始化檔案的名稱,可以包括路徑,省略路徑時,該函式按作業系統的標準路徑搜尋指定檔案section:string型別,指定要得到的值所在的節(Section)key:string型別,指定要得到的值的名稱,不用區分大小寫default:string型別,當指定的檔案、節名、專案名不存在時,函式返回該引數指定的值返回值String。函式執行成功時,在指定的檔案、節名、專案名不存在任何錯誤的情況下,函式返回相應項的值;如果指定的檔案、節名、專案名不存在,函式返回default引數指定的預設值。如果發生錯誤,函式返回空字串。如果任何引數的值為NULL,ProfileString()函式返回NULL。
Restart()
功能停止所有程式段的執行、關閉所有視窗、提交事務、斷開與資料庫的連線,然後重新啟動應用程式。
語法Restart()
返回值Integer。函式執行成功時返回1,發生錯誤時返回-1。
Run()
功能執行指定的應用程式。
語法Run ( string {, windowstate } )
引數string:string型別,指定要執行的應用程式的名稱,其中可以包括路徑以及相應的引數,就像在命令列中鍵入的那樣windowstate:WindowState列舉型別,可選項,指定程式執行時的視窗狀態。有效取值為:Maximized! - 最大化視窗;Minimized! - 最小化視窗;Normal! - 預設值,正常視窗返回值Integer。函式執行成功時返回1,發生錯誤時返回-1。如果任何引數的值為NULL,Run()函式返回NULL。
用法使用Run()函式,應用程式能夠啟動作業系統中的任何程式。當在Run()引數中指定了要啟動應用程式的引數時,引數的意義、格式、個數等由具體的應用程式確定。如果在Run()函式的string引數中指定了檔名但沒有給出副檔名時,PowerBuilder認為該檔案的副檔名為.EXE。要執行副檔名不是.EXE的應用程式(比如.BAT, .COM, 或.PIF),必須在Run()函式的引數中指定檔案的副檔名。
Send()
功能向視窗傳送指定的訊息並立即執行相應的事件處理程式。
語法Send( handle, messageno, word, long )
引數handle:long型別,指定視窗的系統控制代碼,將向該視窗傳送訊息messageno:UnsignedInteger型別,指定要傳送的訊息號word:long型別,指定與訊息一起傳送的word類引數值。如果messageno引數指定的訊息不使用該引數,那麼將這個引數的值設定為0long:long型別或string,指定與訊息一起傳送的long型引數值或字串返回值Long。函式執行成功時返回Windows系統呼叫SendMessage()的返回值,發生錯誤時返回-1。如果任何引數的值為NULL,Send()函式返回NULL。
用法Send()函式用於向視窗傳送非PowerBuilder預定義事件的訊息,這個視窗可以是PowerBuilder應用的視窗,也可以是其它應用的視窗。Send()函式直接觸發指定視窗相應的事件,執行事件處理程式後返回到呼叫應用中,這一點與Post()函式不同,Post()函式把傳送的訊息放置在指定視窗訊息佇列的尾部,然後返回到應用程式中,它並不等待相應事件事件處理程式的執行。因此,我們說Post()函式採用的是非同步方式,Send()函式採用的是同步方式。Send()函式的引數handle指定接收訊息的視窗控制代碼,對PowerBuilder視窗來說,使用Handle()函式可以得到該控制代碼。對其它應用程式的視窗來說,可以呼叫系統API函式查詢視窗並得到相應視窗的控制代碼。實際上,Send()函式把它的各個引數直接傳送給Windows的系統呼叫SendMessage()。在各種C++開發工具的WINDOWS.H檔案中可以查到各訊息編號。如果應用程式要傳送PowerBuilder定義事件(包括預定義事件和使用者定義事件),那麼使用TriggerEvent()函式既簡單有方便。當應用程式在long引數位置指定一個字串時,Send()函式複製一個該字串的副本,然後將副本的地址傳送給指定視窗。
SetProfileString()
功能設定初始化檔案中指定項的值。
語法SetProfileString ( filename, section, key, value )
引數filename:string型別,指定初始化檔案的名稱,可以包括路徑,省略路徑時,該函式按作業系統的標準路徑搜尋指定檔案section:string型別,指定要設定的值所在的節(Section)key:string型別,指定要設定的值的名稱,不用區分大小寫default:string型別,指定要設定項的值返回值Integer。函式執行成功時返回1,指定的檔案未找到或指定的檔案不能訪問時函式返回-1。如果任何引數的值為NULL,SetProfileString()函式返回NULL。
ShowHelp()
功能顯示應用程式幫助,該幫助使用Microsoft Windows幫助系統進行操作。
語法ShowHelp ( helpfile, helpcommand {, typeid } )
引數helpfile:string型別,指定幫助檔案的名稱helpcommand:HelpCommand列舉型別,指定顯示幫助的格式。有效取值為:Index! - 顯示目錄主題,使用該值時不要指定typeid引數;Keyword! - 轉移到由指定關鍵字確定的主題;Topic! - 顯示指定主題的幫助typeid:可選項,指定幫助主題返回值Integer。函式執行成功時返回1,發生錯誤時返回-1。如果任何引數的值為NULL,ShowHelp()函式返回NULL。
SignalError()
功能觸發應用物件的SystemError事件,通常用於程式碼除錯。
語法SignalError ( { number }, { text } )
引數number:integer型別,可選項,其值將儲存到Error物件的number屬性中text:string型別,可選項,其值將儲存到Error物件的text屬性中返回值Integer。函式執行成功時返回1,發生錯誤時返回-1。
  • Yield()
    功能將控制權轉移給其它圖形物件,包括非PowerBuilder物件。該函式檢測訊息佇列,如果有訊息,就把訊息取出。利用該函式可以在執行耗時較長的操作時把控制權轉讓給其它應用。
    語法Yield()
    返回值Boolean。如果在訊息佇列中提取到了訊息,那麼函式返回TRUE,否則返回FALSE。用法正常情況下,PowerBuilder應用程式在執行一段程式碼(比如函式或事件處理程式)的過程中不響應使用者的操作。對耗時短暫的程式碼段來說,這種處理方式沒有什麼不妥的地方,但是,如果某個程式碼段的執行耗時較長,應用程式又希望為使用者提供更多的控制權,那麼需要在這段程式碼中插入Yield()函式,讓使用者能夠進行其它操作,特別在迴圈執行的程式碼中更應該如此。應用程式執行Yield()函式後,如果發現訊息佇