2012年10月26日 星期五

[PowerBuilder] 建立無限多階 TreeView範例

利用TreeView Contol 建立 多階層TreeView

第一步:製作第一層
TreeViewItem ltvi_Item
integer li_Cnt, li_Rows
li_Rows = dw_emp.rowcount( )

For li_Cnt = 1 to li_Rows
//當emp_parentid為空值新增為ROOT
 if len(trim(dw_emp.Object.emp_parentid[li_Cnt]))>0 then continue
 SetPointer(HourGlass!)
 // Add a root for each department
 ltvi_Item.level=1 //ltvi_Item 在TreeView control 中的級別
 ltvi_Item.label = dw_emp.Object.emp_name[li_Cnt] //ltvi_Item的顯示資料
 ltvi_Item.data = dw_emp.Object.emp_id[li_Cnt] //ltvi_Item的內部資料
 ltvi_Item.pictureindex = 1 //ltvi_Item顯示的圖案編號
 ltvi_Item.selectedpictureindex = 2 //ltvi_Item被選中時顯示的圖案編號
 ltvi_Item.children = True //ltvi_Item是否有子項的標誌(+)
 tv_1.InsertItemLast(0, ltvi_Item) //將加入的ltvi_Item放在指定項的後面
Next

2012年10月16日 星期二

[PowerBuilder] 函數 多個Table同時更新函數

由於PowerBuilder的Update函數一次只能更新一個Table,
所以一旦要對多個Table同時更新,最簡單的方式是編寫SQL直接對Table寫入。
但是如果數量一多,效能似乎不太好。
可以利用這個函數改變datawindow  update的設定,達到多表更新的效果。

2012年10月5日 星期五

[MSSQL] 找出每個GROUP的第一筆

SELECT *
FROM (
 SELECT ROW_NUMBER() OVER(PARTITION BY [column2],[column3] ORDER BY [column1]) as rown,
 *
 FROM [TABLE1] ) AS T1
WHERE rown = 1