| 志翔科技有限公司後勤網 後勤等待處理訊息站,請各位成員努力消除待工區 |
| | 有關編排datawindow注意事項 | |
| | 發表人 | 內容 |
---|
flying Admin
文章數 : 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 次修改 | |
| | | flying Admin
文章數 : 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 | |
| | | flying Admin
文章數 : 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" | |
| | | flying Admin
文章數 : 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="!#########"
!:表示大寫字母 #:表只接受數字
西式日期則不用設定 | |
| | | flying Admin
文章數 : 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碼,造成資料取得不完整的錯誤 | |
| | | flying Admin
文章數 : 207 注冊日期 : 2008-11-11
| 主題: 回復: 有關編排datawindow注意事項 周三 11月 26, 2008 11:16 am | |
| 設計時照此圖例規則,相關系統動作如設限,排序功能才會正常
需補圖... | |
| | | flying Admin
文章數 : 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),表小數三位 | |
| | | flying Admin
文章數 : 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的位置也跑掉 | |
| | | flying Admin
文章數 : 207 注冊日期 : 2008-11-11
| 主題: 回復: 有關編排datawindow注意事項 周三 11月 26, 2008 11:29 am | |
| 編輯datawindow時預覽資料幾乎都是用功能表的View->preview功能,按retrieve鈕後讀取資料 有時不小心會執行到View->data然後一樣讀取資料,但如果此時存檔後,將會把retrieve讀取資料給一併存到datawindow程式碼去了. 可以用edit source看到這些資料 這些存在於程式碼的資料將在執行時期與真正資料混在一起,造成操作者看到幽靈資料,形成困擾. 所以如果有用View->data讀到資料,要確保刪除之再存檔. | |
| | | | 有關編排datawindow注意事項 | |
|
| |
|