問:我想在程式執行中根據需要動態地建立乙個資料視窗物件,該怎麼做呢?
答:方法有四:
第一種方法:
在程式中用describe()函式得到某個已經存在的資料視窗物件的源**。如:
string str_dwsyntax,str_lag第二種方法://獲得資料視窗1的語法
str_dwsyntax=dw_1.object.datawindow.syntax
//根據資料視窗1的語法動態生成資料視窗2的語法
dw_2.create(str_dwsyntax)
//對資料視窗2的內容作區域性修改
str_lag="stu_id_t.font.height='-12' stu_id_t.font.face='楷體_gb2312'"
//字型變12號字型,由宋體改為楷體
dw_2.modify(str_lag)
dw_2.settransobject(sqlca)
dw_2.retrieve()
在程式中使用系統函式libraryexport()得到某個已經存在的資料視窗物件的源**。
第三種方法:
在powerbuilder開發環境的庫管理畫筆(library painter)中使用移出功能(右鍵→export)將某個資料視窗物件的語法儲存到文字檔案中。
第四種方法:
1、設計視窗時在視窗上設定乙個資料視窗控制項,該控制項用於展示動態建立的資料視窗。
2、構造一條select語句。
3、利用事務物件的物件函式syntaxfromsql()生成符合資料視窗物件語法的字串。
4、使用資料視窗控制項的物件函式create()建立資料視窗。
例子:string str_err_sql,str_err_create,str_sql,str_syntax
str_sql="select emp_id,emp_data,emp_name from employee where emp_salary>750"
//生成select語句對應的自由風格的資料視窗語法
str_syntax=sqlca.syntaxfromsql(str_sql,'style(type=form)',str_err_sql)
if len(str_err_sql)>0 then
messagebox("錯誤","取得sql語法時出錯")
return
else
dw_1.create(str_syntax,str_err_create)
if len(str_err_create)>0 then
messagebox("錯誤","建立資料視窗時出錯!")
return
end if
end if
dw_1.settransobject(sqlca)
dw_1.retrieve()
[注]syntaxfromsql()函式
說明:根據sql select語句生成資料視窗物件的源**,通常用於建立動態資料視窗物件。
語法:transaction.syntaxfromsql(sqlselect,presentation,err )。
返回值:
string,成功時返回生成的指定風格資料視窗物件的源**,錯誤時返回空字串,err引數可說明原因。
引數型別及說明
transaction
事務物件名。
sqlselect
string,其值為一條有效的sql select語句。
presentation
string,指定資料視窗預設的表現風格。
完整語法
style(type=value property=value ……) //資料視窗風格
type
tabular
預設值,列表風格
grid
列表風格
form
自由格式
crosstab
交叉列表
graph
統計圖風格
group
分組風格
label
標籤風格
nested
復合風格
ole 2.0
ole風格
richtext
超文字風格
datawindow(property=value ……) //資料視窗本身的屬性
column(property=value ……) //列物件屬性
group(groupby_colnum1 by_colnum2 …… property ……) //分組特性
text(property=value ……) //文字物件屬性
title('titlestring') //資料視窗的標題
errstring,當生成資料視窗源**發生錯誤時,該引數用於儲存出錯資訊。
[注]create()函式
說明:使用指定的源**建立資料視窗物件,並用新的資料視窗物件來取代舊的,但新的不會自動成為應用庫的一部份。
語法:dwcontrol.create( syntax )
返回值:
integer,成功為1,錯誤為-1。
引數型別及說明
dwcontrol
資料視窗控制項名。
syntax
資料視窗源**,create()函式將使用該**來建立資料視窗物件。
errorbuffer
可選,儲存建立時的出錯資訊,若省略則系統將使用訊息對話方塊顯示出錯資訊。
用法資料視窗物件源**語法相當複雜,因此手工從頭構造該語法幾乎是不可能的,但也不用洩氣,powersoft提供了幾個辦法構造資料視窗物件的源**。
1程式中使用資料視窗控制項的describe()函式得到某個已經存在的資料視窗物件的源**,再據此修改。
2程式中使用系統函式libraryexport()得到某個已經存在的資料視窗物件的源**,再據此修改。
3在powerbuilder開發環境的庫管理畫筆(library painter)中使用移出功能(export)將某個資料視窗物件的語法儲存到文字檔案中,再據此修改。
4程式中使用事務物件函式syntaxfromsql(),該函式根據sql語句建立資料視窗物件的源**,再據此修改。
pygame 建立乙個簡單的視窗
import pygame,sysimport pygame,sys def pygame test 初始化 pygame.init import pygame,sys def pygame test 初始化 pygame.init 建立乙個視窗 screen pygame.display.set ...
PB中如何判斷資料視窗發生的改變
問題 乙個資料視窗的資料發生了改變,但是該如何確定是哪些行的哪些列發生了改變?方法 注 本方法僅限於對資料 修改的判斷,不包含新增或刪除的資料 step 1,在資料視窗中加入乙個計算列 if isrowmodified y n 命名為 ismodified 用來判斷對應的資料行是否有改變。step ...
如何建立乙個模組 如何起步建立乙個童裝品牌?
自從有了童裝創業的想法,腦海中蹦出無數想法。從0到1建立乙個品牌,首先要問清楚自身,理想中這將是乙個怎樣的品牌?展示出來是怎樣的形象?希望消費者對品牌產生怎樣的感受?最終實現品牌的什麼目標?這些問題,並不是一開始就能確定答案,也不會是一成不變。我們應該從建立品牌,到運營 維護品牌,都對這些問題保持思...