天天看點

PB_資料視窗展示資料問題

今天簡單總結下PB資料視窗(DW)顯示資料實作(不包含界面),如有不對地方,請大家多多指點,謝謝!

目标 : 實作如下圖檔的資料顯示功能,并且在點選“學生資訊清單(dw_userinfo_list)”某一行後要在“學生資訊(dw_userinfo_detail)”顯示該行記錄的詳細資訊。

PB_資料視窗展示資料問題

準備====================================================走起!

1.  在db裡建立學生資訊表“userinfo_table”此處省略N多字。。。

2.  建立兩個資料視窗:“dw_userinfo_free”and "dw_userinfo_grid"

e.g. "dw_userinfo_grid"

(1) NEW --> Datawindow(grid) --> sql select --> 選擇相應表及字段 --> return --> 在select color and border settings界面直接next --> finish 

(2) 在dw編輯頁面,對樣式進行設定,省略N多字。。。

3.  分别在“學生資訊清單”和“學生資訊”的Dataobject裡選擇"dw_userinfo_grid"和“dw_userinfo_free”

4.  在open方法裡添加如下代碼:

dw_userinfo_list.settransobject(sqlca) //連接配接資料庫
dw_userinfo_detail.settransobject(sqlca) //連接配接資料庫
dw_userinfo_list.retrieve('%','%') //顯示資料表裡面的資訊
           

5.  在 dw_userinfo_list的click方法添加如下代碼:

dw_userinfo_detail.reset()

string ls_id
if row>0 then
	this.selectrow(0,false)
	this.selectrow(row,true)
	ls_id = this.object.userid[row]
	dw_userinfo_detail.retrieve(ls_id)
end if
           

6.  在 dw_userinfo_detail的constructor方法裡添加如下代碼;

this.reset()
           

7.  下面需要在" dw_userinfo_detail"對應的"dw_userinfo_free"裡面設定參數及sql語句

(1) 在"dw_userinfo_free"頁面點選 design --> data sourse 

(2) 設定一個參數 : design --> retrieve argument建立一個參數,類型選擇string

(3) 在where tag裡設定查詢條件;在sort tag裡設定排序。結果如下:

SELECT "ZHT_USERINFO_TABLE"."USERID",  
         "ZHT_USERINFO_TABLE"."USERNAME",  
         "ZHT_USERINFO_TABLE"."AGE",  
         "ZHT_USERINFO_TABLE"."SEX",  
         "ZHT_USERINFO_TABLE"."BIRTHDAY",  
         "ZHT_USERINFO_TABLE"."ADDR" 
    FROM "ZHT_USERINFO_TABLE" 
   WHERE "ZHT_USERINFO_TABLE"."USERID" = :s_id   //userid是前台語句中傳參的參數,s_id是自己定義的變量,但是在語句中加冒号
ORDER BY "ZHT_USERINFO_TABLE"."USERID" ASC   //生成排序的語句,ASC表示ascending升序
           

8.  儲存後運作