日韩久久久精品,亚洲精品久久久久久久久久久,亚洲欧美一区二区三区国产精品 ,一区二区福利

pb數據函數操作

系統 2903 0

?

一、連接數據庫


連接數據庫也就是指定事務對象。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()函數。
語法格式:
dw_control.Update()
這個更新可能成功,也可能失敗。一般在這個函數被調用之后,總是要做一個檢查。請看下面的例子:
Int li_return
li_return = dw_1.Update()
IF li_return = 1 THEN
???? COMMIT USING SQLCA;
ELSE
???? ROLLBACK USING SQLCA;
END IF
在這段代碼中,首先對數據窗口控件進行更新操作。但是更新只是把數據寫入到客戶機的內存,并沒有提交到數據庫中。如果更新成功,就把它提交到數據庫中,如果更新失敗,就回滾到當前的事務。

行操作
行操作的函數主要是對數據庫中的數據進行插入、刪除或選擇操作。

一、插入行


在DataWindow中插入一行,可以使用InsertRow()函數。
語法格式:
dw_control.InsertRow(rownumber)
dw_control是數據窗口控件名,rownumber是要插入行的的行號。如果這個參數為0,代表在當前DataWindow的最后一行插入一空行。
InsertRow()函數返回一個長整型值,以此來代表插入的行號。如果插入失敗,則返回-1。

二、刪除行


要刪除DataWindow內的一行數據,則要使用DeleteRow()函數。
語法格式:
dw_control.DeleteRow(rownumber)
其中rownumber是要刪除的行號。如果該值為0,表示刪除當前行。如果刪除成功,返回1,失敗則返回-1。

三、設置當前行


如果要設置DataWindow中的某行為當前行,可以使用SetRow()函數。
語法格式:
dw_control.SetRow(rownumber)
其中rownumber是要設置為當前行的行號。如果函數返回1表示成功,返回-1代表失敗。

四、獲取當前行


如果想要獲取DataWindow中的某行為當前行,可以使用GetRow()函數。
語法格式:
dw_control.GetRow()
該函數沒有參數,它返回一個長整型,代表當前行號。如果返回-1代表失敗。如果返回0代表沒有選中任何行。

五、選擇行


如果想要在DataWindow中加亮顯示某一行或取消加亮顯示某一行,可以使用SelectRow()函數。
語法格式:
dw_control.SelectRow(rownumber,select)
其中,rownumber表示要加亮或者取消加這顯示的行號,0表示所有行。select是一個布爾類型的值,TRUE表示加亮,FALSE表示取消加亮顯示。該函數返回1時表示成功,返回-1時表示失敗。
如果想要直接設置某一行為加亮,需要首先取消其它行的加亮顯示狀態,采用如下的兩行代碼:
dw_1.SelectRow(0,FALSE)
dw_1.SelectRow(rownumber,TRUE)


六、獲取選擇行


如果想要獲取當前DataWindow中加亮顯示的行,可以使用GetSelectRow()函數。
語法格式:
dw_control.GetSelectRow(rownumber)
其中,rownumber為開始查找的行的行號,0表示從頭開始查找。該函數返回一個長整數,表示從rownumber開始查找第一個加亮顯示的行的行號。如果失敗返回0。

七、滾動行


如果在DataWindow的末尾插入一行數據,而當前行是在DataWindow的中央,那么這種插入可能不會被用戶覺察。為了改變這種情況,可以滾動行到DataWindow的末尾,這樣用戶就能發現新的改變。要滾動行,可以使用ScrollToRow()函數。
語法格式:
dw_control.ScrollToRow(rownumber)
該函數返回1時表示成功,返回-1時表示失敗。
與ScrollToRow()函數據功能相關的還有如下幾個函數:
ScrollPriorRow():向上滾動一行
ScrollNextRow():向下滾動一行

列操作
列操作類的函數主要是選擇指定的列和獲取列的信息。

一、獲取列


如果要獲取當前的列號,可以使用GetColumn()函數,如果要獲取當前的列名,可以使用GetColumnName()函數。
語法格式:
dw_control.GetColumn()
dw_control.GetColumnName()
這兩個函數都沒有參數,GetColumn()函數返回一個長整型值,代表當前的列號,GetColumnName()函數返回當前列的列名。如果返回0,表示當前沒有任何列被選擇返回-1表示失敗。

二、設置列


要設置某一列為DataWindow中的當前列,可以使用SetColumn()函數。
語法格式:
dw_control.SetColumn(column)
其中column既可以是列號,也可以是列名。當該函數返回1時表示成功,返回-1時表示失敗。

數據操作
數據操作類的函數主要是對DataWindow中的數據進行獲取、設置。

一、獲取數據


如果要從DataWindow的指定行和列中獲取數據,就要使用GetItem系列的函數。這個系列的函數共有五個,分別是對字符串、數字、日期、日期時間和小數。
語法格式:
dw_control.GetItemString(rownumber,column)
dw_control.GetItemNumber(rownumber,column)
dw_control.GetItemDate(rownumber,column)
dw_control.GetItemDateTime(rownumber,column)
dw_control.GetItemDecimal(rownumber,column)
其中,rownumber參數表示行號,column可以是列號或列名。

二、設置數據


與獲取數據所用的函數不同,設置DataWindow內指定行列處的數據只要使用一個SetItem()函數就可以了。
語法格式:
dw_control.SetItem(rownumber, column, value)
其中rownumber表示行號,column可以是列號,也可以是列名,value表示要設置的值。但是該必須與DataWindow中指定的行列處的數據類型一致,不然PowerBuilder會報錯。
SetItem()函數返回1時表示成功,返回-1時表示失敗。

三、數據排序


如果希望對DataWindow內的數據進行重新排序,而又不想重新從數據庫中檢索數據,可以使用SetSort()和Sort()函數。這兩個函數一起完成對DataWindow進行排序的功能。其中SetSort()函數用于設置如何排序,Sort()函數用于對DataWindow實際進行排序。
語法格式:
dw_control.SetSort(expression)
dw_control.Sort()
其中expression是一個字符串,表示排序的表達式,它的具體值是一個列名后面加一個空格,然后是"A",表示升序,或"D",表示降序。如果有多個列要同時進行排序,它們之間用逗號隔開。
例:dw_1.SetSort("name A,xh D")
這兩個函數都是返回1表示成功,返回-1表示失敗。

四、數據過濾


如果希望對DataWindow內的數據進行過濾而不重新從數據庫中檢索數據,可以使用SetFilter()和Filter()函數。它們一起完成對數據的過濾功能。其中SetFilter()函數用來設置過濾條件,Filter()函數用于對DataWindow進行過濾。
語法格式:
dw_control.SetFiter(expression)
dw_control.Fiter()
其中expression是一個字符串,表示過濾的條件,它實際是一個邏輯表達式。
例:
dw_1.SetFilter("id>\'003\' AND name like\'王%\'")
dw_1.Filter()
這兩個函數都是返回1表示成功,返回-1表示失敗。

五、數據檢查


PowerBuilder提供了兩個函數用于數據的檢查,它們是DeleteCount()和ModifiedCount(),其作用分別是檢查DataWindow中的數據自上一次更新到現在,被刪除的行數和被修改的行數。它們一般在窗口的CloseQuery事件中使用,用來檢查該窗口的DataWindow中的數據是否有尚未保存的修改。
語法格式:
dw_control.DeleteCount()
dw.control.ModifiedCount()
它們分別返回從上一次更新到現在,DataWindow中被刪除和被修改的行數。如果沒有行被刪除或被修改,那么它們返回0。如果出現錯誤則返回-1。
一般情況下,如果窗口中含有可供修改的數據窗口對象,那么在窗口的CloseQuery事件中通常使用如下代碼檢查數據窗口對象中是否有尚未保存的數據:
Int li_return
IF dw_1.ModifiedCount() > 0 OR dw_1.DeletedCount() >0 THEN
???? li_return = MessageBox("提示","數據尚未保存,是否保存?",Question!,YesNoCancel!,3)
???? CHOOSE CASE li_return
??????????? CASE 1
???????????????? TriggerEvent(\'ue_save\')
???????????????? RETURN 0
??????????? CASE 2
???????????????? RETURN 0
??????????? CASE 3
???????????????? RETURN 1
??? END CHOOSE
END IF

?

?

★SetTransObject
語法:dwcontrol.SetTransObject ( transaction )
功能:給數據窗口或者datastore控件dwcontrol設置事務對象transaction,缺省事務對象是SQLCA。
返回值:成功設置事務對象則返回1,執行過程中發生了錯誤則返回-1,有任意參數為Null時返回Null。

★Retrieve
語法:dwcontrol.Retrieve ( {, argument, argument . . . } )
功能:使用數據窗口控件的當前事務對象檢索數據庫中的數據。如果數據窗口控件對應的數據窗口對象定義了檢索參數,則應該在該函數中指定檢索參數,參數的個數和數據窗口對象的檢索變量個數相等,對應的數據類型相兼容。
返回值:返回數據窗口控件主緩存區(PrimaryBuffer)中的記錄數,如果檢索數據時發生錯誤則返回-1,如果任意參數為Null則返回Null
*該函數的參數和數據窗口對象定義的參數的順序要相同,類型要兼容。個數不能少于數據窗口對象定義的參數,即可以等于和多于數據窗口對象定義的參數,多的參數忽略。

★DeleteRow
語法:dwcontrol.DeleteRow ( row )
功能:刪除數據窗口dwcontrol中的第row行數據,如果row為0則表示刪除當前行的數據。
返回值:執行成功則返回1,執行錯誤則返回-1,如果任意參數為Null則返回Null。
*該函數執行后只是將被刪除的數據從數據窗口的主緩存區移放到Deleted緩沖區,在數據庫中并沒有真正刪除數據,當正確執行了Update函數并且使用commit語句提交了事務后,才真正從數據庫中刪除該數據

★InsertRow
語法:dwcontrol.InsertRow ( row )
功能:在數據窗口dwcontrol的第row行前插入一行空白數據。當指定row為0時,表示在當前行之前插入一行空白數據。
返回值:返回插入的數據的行號,如果執行過程中發生錯誤則返回-1,如果任意參數為Null則返回Null

★Update
語法:dwcontrol.Update ( { accept {, resetflag } } )
功能:提交數據窗口或者datastore中的數據。如果accept為True,表示在提交數據之前自動執行AccpetText函數,否則不執行該函數,該參數缺省為True;如果resetflag為True,表示數據提交后自動清除修改標識,該參數缺省為True。
返回值:執行成功則返回1,發生錯誤則返回-1,如果dwcontrol為Null則返回Null

★AcceptText
語法:dwcontrol.AcceptText ( )
功能:該函數執行時,首先對當前編輯框中的內容進行對應字段的校驗規則,能夠通過校驗規則,則保存在對應字段中,否則顯示校驗信息提示錯誤。需要執行該函數的原因是,當在某字段上的編輯框中輸入內容而沒有移動光標到別的字段上時,其他控件獲得焦點,此時編輯框中的內容不能被保存到字段中,所以就應該在數據窗口失去焦點時執行該函數。
返回值:執行成功則返回1,執行過程中發生錯誤則返回-1,如果dwcontrol為Null則返回Null。
*該函數在數據窗口的ItemChanged事件中不起作用,因為項目改變是發生在接受編輯框中內容之后

★ModifiedCount
語法:dwcontrol.ModifiedCount ( )
功能:獲取數據窗口或者Datastore中被修改過但還沒有提交到數據庫中的記錄數。
返回值:返回long類型的數據窗口控件中被修改過的記錄數,如果沒有記錄被修改過或者修改后都已經保存到了數據庫中則返回0,執行過程中如果發生錯誤則返回-1,如果dwcontrol為Null則返回Null。
*該函數獲得的修改過的記錄數包括主緩存區和Filter緩存區的被修改過的和新添加到數據窗口中的記錄數

★DeletedCount
語法:dwcontrol.DeletedCount ( )
功能:獲取數據窗口控件或者datastore控件dwcontrol中被刪除的記錄數。
返回值:返回long類型的已經被刪除但還沒有提交到數據庫中的記錄數,如果執行過程中發生了錯誤則返回-1,如果dwcontrol為Null則返回Null,如果沒有刪除過記錄則返回0

★RowsMove
它可以將數據從一個緩沖區移動到另外緩沖區中。該函數的語法是:
dwcontrol.RowsMove ( startrow, endrow, movebuffer, targetdw, beforerow,?? targetbuffer )
其中,dwcontrol是進行移動操作的源數據窗口;startrow和endrow是要移動數據的范圍(包括這兩個行號的數據);movebuffer指要從哪個緩存區移出數據,可以是Primary!、Delete!、Filter!;targetdw是目標數據窗口控件名稱;beforerow表示在目標數據窗口的哪一行之前插入移入的數據,如果該數值比目標數據窗口的行數大,則在最后插入移入的數據;targetbuffer是目標緩存區,取值同movebuffer一樣。

★GetItemStatus和SetItemStatus
使用函數dwcontrol.GetItemStatus ( row, column, Primary! )可以獲取該緩沖區內指定單元的狀態,當參數column為0時,表示讀取整個行的修改狀態。有以下狀態。
NotModified! :指定單元的數據和原始數據相同,沒有修改過。
DataModified!:指定單元的數據和原始數據不同,修改過。
New!:該數據行是新增加的,但還沒有在該行上輸入數據。
NewModified!:該數據行是新增加的,并且已經在該行上錄入了數據。
這些修改標識都是由數據窗口自動維護的,一般情況下沒有必要編寫腳本修改這些標記,但并不是說就不能修改。PowerBuilder提供了函數SetItemStatus,它的語法是:
dwcontrol.SetItemStatus ( row, column, dwbuffer, status )
其中,row參數指定將要修改狀態的行;column參數指定將要修改狀態的列(可以是整型的列號,也可以是string類型的列名),當列號為0時表示要修改row指定的整行的狀態;dwbuffer指定要修改哪個緩沖區(肯定不能是original),status為上面的四個取值中的一個,但不是任意的取值,因為有些狀態不能用該函數設置成另外一種狀態,必須是能夠轉換的狀態。下面列出了能夠轉換的狀態。
??? 期望的狀態 New!?? NewModified! DataModified! NotModified!
當前狀態
New!?? \?? Yes?? Yes?? No
NewModified! No?? \?? Yes?? New
DataModified! NewModified! Yes?? \?? Yes
NotModified! Yes?? Yes?? Yes?? \
表中的Yes表示可以使用SetItemStatus進行該狀態設置,No表示不會產生預期的狀態,如果標明了某個特定的狀態,則說明是新的狀態,而不是期望的狀態。例如,數據窗口dw_1的第1行第1列的當前狀態為DataModified!,使用函數dw_1.SetItemStatus(1,1,New!)后,第1行第1列的狀態改變為NewModified!。同樣對于該數據窗口dw_1,如果使用函數dw_1.SetItemStatus(1,1,NotModified!),則會將其狀態改變為NotModified!。當從一種狀態不允許轉變到另一種狀態時,可以修改成其他一個中間狀態,然后再進行一次轉換。例如,要從new!改成NotModified,應該首先轉換到DataModified!

★GetItemX
讀取數據窗口中的數據
dwcontrol.GetItemX( row, column {, dwbuffer, originalvalue } )
其中的X可以替換成Date、DateTime、Decimal、Number、String、Time,所以讀取數據的函數有6個。參數row表示要讀取哪行的數據,是一個long類型數值。column代表列,可以是string型的列名,也可以是整型的列號。dwbuffer是DWBuffer枚舉型,取值Primary!、Delete!、Filter!分別代表主緩沖區、刪除緩沖區和過濾緩沖區。originalvalue為Boolean型,表示是否讀取最近一次檢索時檢索到的初始值,當指定dwbuffer時必須指定該參數,該參數和dwbuffer都是可選的。函數正確執行則返回對應類型的數據,執行過程中發生錯誤則返回空值(""),任何參數為Null則返回Null

★SetItem和SetText
函數SetItem的語法格式是:
dwcontrol.SetItem ( row, column, value )
各個參數的含義如下。
dwcontrol:數據窗口或datastore控件名稱。
row:要設置的數據所在行。
column:要設置的數據所在的列。可以用整型列號,也可以用string型列名。
value:要設置的值,應該和要設置的列的類型一致。
函數正確執行則返回1,這時數據窗口中row行column列顯示的數據是剛剛用該函數設定的數據,如果函數執行過程中發生錯誤則返回-1。注意,該函數執行時僅僅檢查函數中指定數據的類型和字段的類型是否一致,不會進行有效性校驗,包括在數據窗口中設置的校驗規則、在ItemChanged事件中編寫的校驗規則、在ItemChanged調用的校驗規則都不會執行。
函數SetText的語法格式是:
integer dwcontrol.SetText ( string text )
功能是設置當前編輯框中的內容。注意,當編輯框離開當前單元時要進行有效性校驗,如果校驗數據正確,則當前字段接受該數據,否則觸發ItemError事件。所以,可以使用該函數給帶有校驗規則的字段設置數據。
EG:
int li_i
dw_1.SetColumn("name")???? //使name列成為當前列
For li_i = 1 To dw_1.RowCount()
???????? dw_1.SetRow(li_i)??????????????? //使第I行成為當前行
????????????????? dw_1.SetText("屁")?????????????? //向當前編輯框中寫入內容
Next
dw_1.SetColumn("sex")???????????????? //選中性別列,保證最后一個也要通過校驗規則

★SetColumn、SetRow和GetColumn、GetRow和GetClickedColumn、GetClickedRow和GetColumnName
設置當前列
integer dwcontrol.SetColumn ( string column)
integer dwcontrol.SetColumn ( integer column)
設置當前行
integer dwcontrol.SetRow ( long row )
得到當前列
integer dwcontrol.GetColumn ( )
得到當前行
long dwcontrol.GetRow ( )
得到用戶單擊的列
integer dwcontrol.GetClickedColumn ( )
得到用戶單擊的行
long dwcontrol.GetClickedRow ( )
得到當前列的名
string dwcontrol.GetColumnName ( )

★SetFilter、Filter和Find
這兩個函數必須配對使用,首先使用函數SetFilter設置過濾規則,然后用函數Filter進行過濾。過濾規則是boolean類型的表達式,能夠使用過濾規則的,將表達式為True的數據行顯示在數據窗口中,使其為False的數據行被移送到數據窗口的Filter!緩存區。在設計數據窗口對象時也可以定義過濾規則,使用這兩個函數可以根據需要來動態改變過濾規則。在設計時,指定了過濾規則的數據窗口可以使用這兩個函數再進行過濾。每次過濾都是對數據窗口的Original!緩存區進行的,而不是在前一次過濾出來的數據基礎上再次過濾。
函數SetFilter的語法是:
dwcontrol.SetFilter ( format )
其中,dwcontrol是要進行過濾的數據窗口控件名稱。format是過濾規則,string類型。過濾規則是由字段、常量、運算符、函數構成的boolean表達式。需要取消過濾規則顯示所有的數據時,可以指定過濾規則為空(""),如果讓用戶可以隨便指定過濾規則,則可以使用Null的過濾表達式,這時PowerBuilder提供一個和數據窗口設計時相同的過濾規則指定窗口。該函數正確執行返回1,否則返回-1。執行完后,數據窗口中顯示的數據沒有發生變化,只有當執行了Filter函數后才按照剛剛指定的過濾規則顯示數據。
該函數的語法是:
dwcontrol.Filter ( )
dwcontrol是和SetFilter中同名的數據窗口控件名稱。該函數執行正確則返回1,否則返回-1,如果dwcontrol為Null則返回Null。
函數Find也可以用來進行查詢。該函數可以在數據窗口中的指定范圍查找符合某些條件的數據。該函數的語法格式是:
dwcontrol.Find ( expression_r, start, end )
其中,dwcontrol是要進行查找的數據窗口控件名稱,expression_r是表達式,含義和注意事項同SetFilter中的完全相同。start和end都是long類型變量,用行號表示的查找范圍,它們之間沒有大小約束。函數返回的是在指定范圍內找到的第一個符合條件的記錄號,如果沒有找到或發生了錯誤則返回0,如果參數有Null的則返回Null

★SetSort和Sort
數據的排序可以在數據窗口對象設計時就指定排序規則,也可以在腳本中動態指定。使用函數SetSort和Sort可以完成這一任務,它們和SetFilter、Filter一樣也必須配對使用。函數SetSort設置排序的規則,不改變數據的顯示,只有當執行了函數Sort時,數據才真正進行重新排列。
函數SetSort的語法是:
dwcontrol.SetSort ( format )
其中,dwcontrol為要進行排序的數據窗口控件的名稱;format為排序規則,是string類型,由字段、函數、ASC或DESC、邏輯聯結符、常數構成。可以使用字段名,也可以使用字段號來表示字段,字段號的格式是#X,其中X為正整數。該函數正確執行返回1,否則返回-1。
和SetFilter函數類似,當指定format為空("")時,可以取消排序,當指定format為Null時,可以由用戶指定排序規則。
使用函數SetSort后,再使用Sort函數才能重新排列數據。
該函數的格式是:
dwcontrol.Sort ( )
其中,dwcontrol是和SetSort中同名的數據窗口控件名稱。該函數正確執行則返回1,否則返回-1,如果參數dwcontrol為Null,則返回Null。

★SelectRow
選中指定的行
dwcontrol.SelectRow ( row, boolean )
其中,dwcontrol是數據窗口控件的名稱;row是行號,該參數為0則表示是對數據窗口中的所有數據行進行操作;boolean表示是否選中,如果是True,表示選中行號row的數據行,如果是False則取消。該函數正確執行返回1,發生錯誤返回-1,如果參數有Null則返回Null。

★PrintSetup、Print、PrintOpen、PrintDatawindow、PrintClose、PrintCancel
PrintSetup():
打印設置
PrintOpen():
啟動打印作業
PrintOpen函數用來打開一個作業,并返回當前可以使用的打印作業號,該打印作業號可以標識當前的打印工作。該函數的語法是:
PrintOpen ( { jobname } )
如果發生錯誤,該函數返回-1。打印作業名稱是可選的,名字在打印隊列中。在打印作業的最后必須關閉打印作業,使PowerBuilder和Windows清除打印作業所占用的所有資源。因此,每個啟動作業的語句都有一個關閉作業的語句相對應。
PrintClose()、PrintCancel():
關閉打印作業
有兩個函數可以用來關閉打印作業。PrintClose()函數把當前頁傳送給打印機,并關閉當前打印作業。語法格式為:
?????? PrintClose(printjobnumber)
函數PrintCancel()取消打印作業并刪除當前的打印文件。這個函數可以與Print或者PrintDataWindow()函數組合使用。用于PrintDatawindow()的語法是:
DatawindowControl.PrintCancel()
用于Print()的語法是:
?????? PrintCancel(printjobnumber)
PrintClose()函數和PrintCancel()函數是互相排斥的,成功調用過一個以后,不要在沒有再次打開打印作業時調用另一個函數。
PrintDatawindow():
該函數是以單個打印作業的形式打印數據窗口控件中的內容。PowerBuilder使用數據窗口對象中定義的字體和布局進行打印。用這個函數可以在一個打印作業中打印多個數據窗口,但是每個數據窗口控件都從新的一頁開始打印;如果要讓幾個數據窗口打印在同一頁中,則需要利用底層的打印函數或將要打印在同一頁中的數據窗口,創建成一個composite顯示樣式的數據窗口。PrintDatawindow函數的語法是:
PrintDatawindow(printjobnumber,datawindow)
其中,printjobnumber是PrintOpen函數返回的打印作業號,datawindow是要打印的數據窗口控件的名稱。除了能夠和Printopen()、PrintClose()函數共同使用外,其他函數都不能和PrintDatawindow共同使用。下面是一個完整地使用函數PrintDatawindow()進行數據窗口打印的例子,該例子中同時打印三個數據窗口:
Long ll_job
Ll_job = PrintOpen("數據窗口打印")
PrintDatawindow(ll_job,dw_1)
PrintDatawindow(ll_job,dw_2)
PrintDatawindow(ll_job,dw_3)
PrintClose(ll_job)????????????????? //關閉打印作業
Print():
該函數是一個通用的函數,可以用來打印PowerBuilder中許多可視對象。下面介紹打印數據窗口時的語法,格式如下:
datawindowname.Print ( { canceldialog } )
datawindowname為要打印的數據窗口控件名稱,canceldialog是一個boolean型變量,指示在打印時是否顯示一個無模式的可以隨時取消打印的窗口,該變量缺省為True。該函數正確執行則返回1,執行過程中發生錯誤則返回-1。
*雖然該函數和PrintDatawindow一樣都可以打印數據窗口,但是它們之間是有區別的。Print函數使用設置在數據窗口對象的打印規范來打印數據窗口,而PrintDatawindow函數使用打印機當前的設置來打印數據窗口。

pb數據函數操作


更多文章、技術交流、商務合作、聯系博主

微信掃碼或搜索:z360901061

微信掃一掃加我為好友

QQ號聯系: 360901061

您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描下面二維碼支持博主2元、5元、10元、20元等您想捐的金額吧,狠狠點擊下面給點支持吧,站長非常感激您!手機微信長按不能支付解決辦法:請將微信支付二維碼保存到相冊,切換到微信,然后點擊微信右上角掃一掃功能,選擇支付二維碼完成支付。

【本文對您有幫助就好】

您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描上面二維碼支持博主2元、5元、10元、自定義金額等您想捐的金額吧,站長會非常 感謝您的哦!!!

發表我的評論
最新評論 總共0條評論
主站蜘蛛池模板: 陆丰市| 鄂托克前旗| 垫江县| 芜湖县| 香格里拉县| 河北区| 噶尔县| 界首市| 灵山县| 信宜市| 安多县| 新宾| 拜泉县| 浮山县| 昭通市| 彩票| 城固县| 南宁市| 肥乡县| 桃园县| 广水市| 车致| 建始县| 永德县| 临泽县| 定西市| 崇礼县| 景宁| 三台县| 东阿县| 天气| 乌鲁木齐县| 长子县| 苍梧县| 绿春县| 肇东市| 文安县| 来凤县| 临清市| 托克逊县| 米泉市|