志翔科技有限公司後勤網

後勤等待處理訊息站,請各位成員努力消除待工區
 
首頁首頁  會員註冊會員註冊  登入登入  

分享 | 
 

 有關編排datawindow注意事項

向下 
發表人內容
flying
Admin
avatar

文章數 : 207
注冊日期 : 2008-11-11

發表主題: 有關編排datawindow注意事項   周三 11月 26, 2008 11:14 am

1.grid的各項欄位要檢查統一對齊,尤其y and height的值
2.有提供update能力卻忘了update property打勾,會造成系統存檔時錯誤,當在SQL編輯時有選欄位動作,或更動retrieval argument,原有update打勾的會被PB取消,必須再進入update property勾選相關設定.
3.想方法提醒操作者他更動到了資料,一般會選某些指標欄位秀成紅字,或版面上放個圖片欄位bitmap ( if( isRowNew(),"c:\id21\bmp\newpap.bmp",if(isRowModified(),"c:\id21\bmp\mod.bmp","")))
4.edit limit與欄位寬度不符,若輸入超過資料庫能放寬度,存檔時將出現SQL錯誤,SQL補選欄位之字元尤其會將edit limit設為0
5.運作邏輯選中了已不存在的欄位,將出現執行階段與設計階段sql錯誤,發生此情況一般是事後刪欄位,卻未同步維護註冊表.
6.衡量數字欄是否需要FORMAT ###.#,未指定format將由系統引擎自動依其欄位定義處理.
7.類似作廢單之已失效資料,編排時表頭或明細考慮用灰底,以突顯無法編輯用意.
8.如果是checkbox,需指定0或1,漏掉也可存,但作業會錯亂
9.字元字數與顯示的寬度要大致一致,不要無法顯示全區文字,造成截斷,尤其是freeform的格式
10.如果SQL子句有參考database_function,參數用到table.column,務必加table name.以免日後增加欄位取到同名column,造成corralation error
  如呼叫database function get_monthmon(monthothertot.tax)
11.freeform編排要注意整齊,不要上下欄位出現左邊或右邊界鋸齒排列
12.欄位如果有帶tablename,要將tablenam拿掉比較簡潔,exp. quopaper_num,變成num就好,其抬頭要一併處理,如num_t ,因為一覽表的抬頭區簡易快速功能表會以抬頭區物件識別欄位對項,例如orderno_t,選由大到小排列功能時,系統才知道是針對orderno.
13.注意tab sequence,控制游標tab順序,儘量不要給0,不開放編修的可以在小鐵鎚的欄位設定中權等打200 .
14.若欄位為數字型態,儘量用Arial字形
15.命名遵守規則,如為卡式,尾端加detail,一覽表可加list,統計表d_cal_xxx,並且不要拼錯字,造成規劃上困擾,exp. d_quopeper_detail,peper與paper很難快速分辨錯字
16.grid一覽表要提供點選需加choose_button的computed field
17.若要點選取時讓系統自動帶有編號,以便成批傳送時資料有次序依循,必須在SQL增compute欄位space(1),再命名為choose_button,若純在datawindow版面才新增+/-之compute欄位是無法setitem序號的.
18.類似薪資一覽表太多欄位捲動,須注意維持識別欄位在可視區,例如儘量將姓名欄位往數值區左緣靠,並在中繼位置再放一次姓名欄位.
19.如果datawindow要retrieve as need,則footer區不可加compute欄位,以免失效而仍讀完.
20.一般超過可視區才會出現捲軸,若發現尚未超出可視區但已出現捲軸,不要先去懷疑PB有BUG,據經驗是有看不到的物件visible=false在可視區之外,才造成捲軸, 用edit source去搜查x="3類似字樣,可找到x位置=3000以上的物件
21.如果datawindow已完成才回頭去改table欄位寬度,需至SQL編排畫面重選該欄位,因為讀取寬度原已被寫入到datawindow,將造成寬度不一致,系統容易因此問題跳開,而且此欄位所有有用到的datawindow都要處理.
22.除非特殊需要或excel報表要用的datawindow,否則不要加argument,以讓不同工作視窗皆可設定呼叫,透過小鐵鎚[指定關聯]設定主從關係.

idoncys6 在 星期五 九月 24, 2004 2:59 pm 作了第 15 次修改
回頂端 向下
檢視會員個人資料 http://idon.666forum.net
flying
Admin
avatar

文章數 : 207
注冊日期 : 2008-11-11

發表主題: 回復: 有關編排datawindow注意事項   周三 11月 26, 2008 11:15 am

字體可設定為(修改中為紅字,否則為黑字)
if(isRowModified() or isRowNew(),255,0)

背景可設定為(指標所在筆數為黃色,否則為白色)
if(currentRow()=getrow(),23325158,16777215)
if(currentRow()=getrow(),23325158,16777215)

淺灰 80269524
白色 16777215
grey 8421504
淺黃 23325158
薄綠 12639424
深灰 12632256
淺藍 15780518
回頂端 向下
檢視會員個人資料 http://idon.666forum.net
flying
Admin
avatar

文章數 : 207
注冊日期 : 2008-11-11

發表主題: 回復: 有關編排datawindow注意事項   周三 11月 26, 2008 11:15 am

案例:薪資系統的薪資試算

人事卡式有設計薪資試算額,含月支薪額與專業加給,主管加給
這三個欄位並非TABLE內建,所以在SQL端必須加以指定
在sql之compute頁加
0 as calmonthm
0 as calprom
0 as calleadm

注意:在規劃compute欄位時需注意型態,例如月支薪額一般為數值型態,不要將之規為字元形態,以下為不當處理

space(1) as calmonthm

***************************************
SQL範例子句
SELECT "baseman"."empno",
"baseman"."unit",
"baseman"."service",
"baseman"."name",
"baseman"."fastno",
"baseman"."manno",
"baseman"."sprom",
"baseman"."dateinc",
"baseman"."dateoutc",
"baseman"."duty2",
"baseman"."duty",
"baseman"."tax",
"baseman"."house",
"baseman"."loan1name",
"baseman"."loan2name",
"baseman"."payed",
"baseman"."summary",
"baseman"."basemon",
"baseman"."isold",
0 as calmonthm,
0 as caleadm,
0 as calprom,
0 as calsprom,
0 as calgyhmon,
0 as calbackmon, "baseman"."healsecur",
"baseman"."cashno",
"baseman"."payedname"
FROM "baseman"
回頂端 向下
檢視會員個人資料 http://idon.666forum.net
flying
Admin
avatar

文章數 : 207
注冊日期 : 2008-11-11

發表主題: 回復: 有關編排datawindow注意事項   周三 11月 26, 2008 11:15 am

有關輸入格式設計

均以datawindow編排時期的設定為優先.當未指定時,系統將代勞處理

若是數值在小鐵鎚可不必設定,而交由系統自動判別,系統會依資料視窗定義的型態,取輸入format
choose case ls_coltype
 case "decimal(0)","long","integer"
   ls_mask="###,###,###,###"
 case "decimal(1)"
   ls_mask="###,###,###,###.0"
 case "decimal(2)"
   ls_mask="###,###,###,###.00"
 case "decimal(3)"
   ls_mask="###,###,###,###.000"
 case "decimal(4)"
   ls_mask="###,###,###,###.0000"
 case "decimal(5)"
   ls_mask="###,###,###,###.00000"
end choose
如果在小鐵鎚有輸入[欄位設定]有指定[輸入格式],則以小鐵鎚者為主,一般原因如下
1.database與datawindow有設定小數,但臨時變更格式不要小數
2.不要系統產生的三位一撇


若是字串,請儘量在datawindow編排階段指定
exp.
duty char(6),editmask.mask="!!-#-#(#)#" ,format="!!-#-#(#)#"

id char(10),editmask.mask="!#########"

!:表示大寫字母
#:表只接受數字


西式日期則不用設定
回頂端 向下
檢視會員個人資料 http://idon.666forum.net
flying
Admin
avatar

文章數 : 207
注冊日期 : 2008-11-11

發表主題: 回復: 有關編排datawindow注意事項   周三 11月 26, 2008 11:15 am

原轉帳帳號payedname為14碼,後來改為15碼,在datawindow的edit source畫面可看到

column=(type=char(14) update=yes updatewhereclause=yes name=payedname dbname="baseman.payedname" )

datawindow運作時只帶出前14碼,造成資料取得不完整的錯誤
回頂端 向下
檢視會員個人資料 http://idon.666forum.net
flying
Admin
avatar

文章數 : 207
注冊日期 : 2008-11-11

發表主題: 回復: 有關編排datawindow注意事項   周三 11月 26, 2008 11:16 am

設計時照此圖例規則,相關系統動作如設限,排序功能才會正常

需補圖...
回頂端 向下
檢視會員個人資料 http://idon.666forum.net
flying
Admin
avatar

文章數 : 207
注冊日期 : 2008-11-11

發表主題: 回復: 有關編排datawindow注意事項   周三 11月 26, 2008 11:16 am

如果在SQL端增加compute數值欄位,雖然命名如下
select ...............,0.0 as lastprice,............ from order_item;

看起來datawindow取值應會取到小數值,其實不一定,仍要用edit source看datawindow的原始碼,可能發現以下結果
column=(type=decimal(0) updatewhereclause=yes name=lastprice dbname="lastprice" )

這樣在執行時lastprice該compute欄位會一直被進位成整數,而去掉小數

需用edit source校正成decimal(3),表小數三位
回頂端 向下
檢視會員個人資料 http://idon.666forum.net
flying
Admin
avatar

文章數 : 207
注冊日期 : 2008-11-11

發表主題: 回復: 有關編排datawindow注意事項   周三 11月 26, 2008 11:17 am

如果在SQL端有compute欄位,例如order_item.num*order_itemprice
一定要加別名 as money,完整敘述如下
select order_item.num*order_itemprice as money from order_item......
以免欄位重選時,這些compute欄位被重新命名為compute_00xx
且次序重排,原於datawindow的位置也跑掉
回頂端 向下
檢視會員個人資料 http://idon.666forum.net
flying
Admin
avatar

文章數 : 207
注冊日期 : 2008-11-11

發表主題: 回復: 有關編排datawindow注意事項   周三 11月 26, 2008 11:29 am

編輯datawindow時預覽資料幾乎都是用功能表的View->preview功能,按retrieve鈕後讀取資料
有時不小心會執行到View->data然後一樣讀取資料,但如果此時存檔後,將會把retrieve讀取資料給一併存到datawindow程式碼去了.
可以用edit source看到這些資料
這些存在於程式碼的資料將在執行時期與真正資料混在一起,造成操作者看到幽靈資料,形成困擾.
所以如果有用View->data讀到資料,要確保刪除之再存檔.
回頂端 向下
檢視會員個人資料 http://idon.666forum.net
 
有關編排datawindow注意事項
回頂端 
1頁(共1頁)

這個論壇的權限:無法 在這個版面回復文章
志翔科技有限公司後勤網 :: 後勤主題與待工區 :: 後勤標準化-
前往: