04 T100手册 双档adet400Word文档格式.docx
- 文档编号:1492483
- 上传时间:2023-04-30
- 格式:DOCX
- 页数:53
- 大小:182.42KB
04 T100手册 双档adet400Word文档格式.docx
《04 T100手册 双档adet400Word文档格式.docx》由会员分享,可在线阅读,更多相关《04 T100手册 双档adet400Word文档格式.docx(53页珍藏版)》请在冰点文库上搜索。
19)
13IMPORTos
14IMPORTutil
15IMPORTFGLlib_cl_dlg
16#add-point:
增加汇入项目
17程序中若需要使用JAVA或Genero原生lib均须在此处设置IMPORT
18#endadd-point
19SCHEMAds
20GLOBALS"
../../cfg/top_global.inc"
21
22#add-point:
增加汇入变量文件
23部分大型程序需要拥有自己的inc参数配置文件,可以自行于此处汇入
24#endadd-point
25
程式需使用的全域變數,變數資料從畫面欄位取出,不可增減
26#单头type宣告
27PRIVATEtypetype_g_deaq_mRECORD
略
62#add-point:
传入参数说明(global.argv)
Form和currentwindow都有指定全域物件,因此可以直接使用物件操作
63程序中若需要自行增加要用的全局变量则可于此处设定
64#endadd-point
65#add-point:
66自动补入azzi900的参数定义说明特别写法
67#argv[1]imaa_t.imaa002
68#argv[2]type_t.chr1#测试用参数
69#endadd-point
70{<
/section>
4.4.2主程序
adet400.main"
02#+此段落由子样板a26产生
03#OPTIONSSHORTCIRCUIT
04#+作业开始
05MAIN
同单档
68ENDMAIN
69{<
4.4.3_init初始化
adet400.init"
02#+浏览页签数据初始化
03PRIVATEFUNCTIONadet400_init()
22ENDFUNCTION
23{<
4.4.4_default_search执行后首次查询数据
adet400.default_search"
02#+外部参数搜寻
03PRIVATEFUNCTIONadet400_default_search()
31ENDFUNCTION
32{<
4.4.5_ui_dialog操作功能选单
adet400.ui_dialog"
02#+功能选单
03PRIVATEFUNCTIONadet400_ui_dialog()
04DEFINEli_exitLIKEtype_t.num5#判别是否为离开作业
05DEFINEls_wcSTRING#wc用
06DEFINEla_paramRECORD#程序串查用变量
07progSTRING,#串查程序名称
08paramDYNAMICARRAYOFSTRING#传递变数
09ENDRECORD
10DEFINEls_jsSTRING#转换后的json字符串
11CALLcl_set_act_visible("
accept,cancel"
FALSE)
12
13#因应查询方案进行处理
程式開啟時顯示的頁面為瀏覽頁籤,此處先隱藏單頭/單身資訊頁,只顯示瀏覽頁
14CALLgfrm_curr.setElementImage("
logo"
"
logo/applogo.png"
)
15IFg_defaultTHEN
16CALLgfrm_curr.setElementHidden("
mainlayout"
0)
17CALLgfrm_curr.setElementHidden("
worksheet"
1)
18LETg_main_hidden=0
19ELSE
20CALLgfrm_curr.setElementHidden("
21CALLgfrm_curr.setElementHidden("
22LETg_main_hidden=1
23ENDIF
若程式有預設行為,則在進入此段時會先直接該動作
24
25#actiondefault动作
同单档
40LETlb_first=TRUE
41WHILETRUE
42
當使用者進行營運據點切換時會離開dialog並重新進入,視同重啟程式,清空畫面上已經查詢條件等資訊
43IFg_action_choice="
logistics"
THEN
44#清除画面及相关资料
45CLEARFORM
46CALLg_browser.clear()
47INITIALIZEg_deaq_m.*TONULL
48CALLg_dear_d.clear()
49LETg_wc='
1=2'
50LETg_wc2='
1=1'
51LETg_action_choice="
"
52CALLadet400_init()
53ENDIF
54
55#先填充browser数据
56CALLlib_cl_dlg.cl_dlg_before_display()
57CALLcl_notice()
58
59DIALOGATTRIBUTES(UNBUFFERED,FIELDORDERFORM)
60
61#左侧浏览页签
62DISPLAYARRAYg_browserTOs_browse.*ATTRIBUTES(COUNT=g_header_cnt)
69ENDDISPLAY
70
71DISPLAYARRAYg_dear_dTOs_detail1.*ATTRIBUTES(COUNT=g_rec_b)#page1
72BEFOREROW
73#显示单身笔数
74CALLadet400_idx_chk()
75#确定当下选择的笔数
76LETl_ac=DIALOG.getCurrentRow("
s_detail1"
)
77LETg_detail_idx=l_ac
78
此樣板同時支援第一階單身及第二階單身,此處的控制段是當資料停留在第一階單身時筆數的控制
79BEFOREDISPLAY
80#如果一直都在第一阶则控制笔数位置
81IFg_loc='
m'
82CALLFGL_SET_ARR_CURR(g_detail_idx)
83ENDIF
84LETg_loc='
85LETl_ac=DIALOG.getCurrentRow("
根據當下所停留的頁面,顯示該頁面的筆數資訊
86LETg_current_page=1
87#显示单身笔数
88CALLadet400_idx_chk()
89ENDDISPLAY
此處採用subdialog寫法,引入額外的兩個dialog資訊
90
91SUBDIALOGlib_cl_dlg.cl_dlg_qryplan
92SUBDIALOGlib_cl_dlg.cl_dlg_relateapps
93
94BEFOREDIALOG
95#先填充browser数据
96CALLadet400_browser_fill("
97CALLcl_navigator_setting(g_current_idx,g_detail_cnt)
98LETg_curr_diag=ui.DIALOG.getCurrent()
99LETg_current_sw=FALSE
100#回归旧笔数位置(回到当时异动的笔数)
略
110LETg_current_sw=TRUE
111LETg_current_row=g_current_idx#目前指标
112
113#有数据才进行fetch
114IFg_current_idx<
>
0THEN
115CALLadet400_fetch('
'
)#reloaddata
116ENDIF
117#LETg_detail_idx=1
118CALLadet400_ui_detailshow()#Settingthecurrentrow
119
120#笔数显示
121LETg_current_page=1
122CALLadet400_idx_chk()
123
124#状态代码切换action
134
135#+此段落由子样板a43产生
當使用者直接雙點擊單身進入修改段落時會先經過此action,並判定當下所選擇的單身,直接進入到該單身的第一個欄位
136ONACTIONmodify_detail
137LETg_action_choice="
modify_detail"
138IFcl_auth_chk_act("
modify"
)THEN
139LETg_aw=g_curr_diag.getCurrentItem()
140CALLadet400_modify()
141EXITDIALOG
142ENDIF
154CONTINUEDIALOG
155ENDDIALOG
156
157IFg_action_choice="
exit"
ANDNOTcl_null(g_action_choice)THEN
158EXITWHILE
159ENDIF
160
161ENDWHILE
162
163CALLcl_set_act_visible("
TRUE)
164
165ENDFUNCTION
166{<
4.4.6_browser_fill浏览页签数据填充
瀏覽頁資料填充的段落大致上與單檔相同,差異僅在於統計資料筆數與搜尋資料時會納入單身的搜尋條件(g_wc2)
adet400.browser_fill"
02#+浏览页签数据填充
03PRIVATEFUNCTIONadet400_browser_fill(ps_page_action)
12IFg_wc2<
"
1=1"
13#单身有输入搜寻条件
14LETl_sub_sql="
SELECTUNIQUEdeaqdocno,..."
15ELSE
16#单身未输入搜寻条件
17LETl_sub_sql="
18ENDIF
34LETg_sql="
SELECTDISTINCTt0.deaqstus,t0.deaqsite,..."
35"
WHEREt0.deaqent='
||g_enterprise||"
AND"
…
76ENDFUNCTION
77{<
根據當下所選擇的單頭資料,重新從資料庫撈取最新的資料內容
4.4.7_ui_headershow刷新单头数据内容
adet400.ui_headershow"
02#+单头数据重新显示
03PRIVATEFUNCTIONadet400_ui_headershow()
04LETg_deaq_m.deaqdocno=g_browser[g_current_idx].b_deaqdocno
05EXECUTEadet400_master_refereshUSINGg_deaq_m.deaqdocnoINTOg_deaq_m.deaqsite,...
06CALLadet400_show()
07ENDFUNCTION
08{<
4.4.8_ui_detailshow刷新单身数据内容
此處僅刷新單身筆數的位置,若需要重刷新單身資料可於add-point自行撰寫
adet400.ui_detailshow"
02#+单身数据重新显示
03PRIVATEFUNCTIONadet400_ui_detailshow()
04#add-point:
ui_detailshow段before
05于此段落定义单身刷新前的行为
06#endadd-point
07IFg_curr_diagISNOTNULLTHEN
08CALLg_curr_diag.setCurrentRow("
g_detail_idx)
抓取單頭資料的段落同單檔,但須額外呼叫show段進行填充單身的動作
09ENDIF
10#add-point:
ui_detailshow段after
11于此段落定义单身刷新后所需处理的相关段落
12#endadd-pointENDFUNCTION
13{<
4.4.9_fetch数据笔数查询与数据抓取
adet400.fetch"
02#+指定PK后抓取单头其他数据
03PRIVATEFUNCTIONadet400_fetch(p_flag)
34#重新显示
35CALLadet400_show()
36
37#+此段落由子样板a56产生
此段落僅針對有簽核功能的程式,根據該單據的資訊,判定是否顯示BPM簽核狀況的按鈕
38#检查此单据是否需显示BPM签核状况按钮
39IFcl_bpm_chk()THEN
40CALLcl_set_act_visible("
bpm_status"
TRUE)
41ELSE
42CALLcl_set_act_visible("
FALSE)
43ENDIF
44ENDFUNCTION
45{<
4.4.10_b_fill单身数据笔数查询与数据抓取
adet400.b_fill"
02#+单身数组填充
判斷該單身是否進行填充,會依據fill_chk所取得的資訊決定填充與否,並且根據當下執行的動作確定是否需重重組SQL,切換上下筆資料時不重組SQL
03PRIVATEFUNCTIONadet400_b_fill()
09CALLg_dear_d.clear()#g_dear_d单头及单身
10#判断是否填充
11IFadet400_fill_chk
(1)THEN
12#切换上下笔时不重组SQL
13IFg_action_choice<
'
fetch'
ORcl_null(g_action_choice)THEN
14LETg_sql="
SELECTUNIQUE..."
15LETg_sql=cl_sql_add_mask(g_sql)#遮蔽特定资料
16IFNOTcl_null(g_wc2_table1)THEN
17LETg_sql=g_sqlCLIPPED,"
g_wc2_table1CLIPPED
19LETg_sql=g_sql,"
ORDERBYdear_t.dearseq"
20
21LETg_sql=cl_sql_add_mask(g_sql)#遮蔽特定资料
22PREPAREadet400_pbFROMg_sql
23DECLAREb_fill_csCURSORFORadet400_pb
24ENDIF
25LETg_cnt=l_ac
26LETl_ac=1
27OPENb_fill_csUSINGg_enterprise,g_deaq_m.deaqdocno
28FOREACHb_fill_csINTOg_dear_d[l_ac].dearseq,...
29IFSQLCA.sqlcodeTHEN
35ENDIF
36
37LETl_ac=l_ac+1
38IFl_ac>
g_max_recTHEN
39EXITFOREACH
40ENDIF
41ENDFOREACH
42IFl_ac>
g_max_recANDg_error_show=1THEN
當資料筆數超出上限時會提示錯誤訊息
51ENDIF
52LETg_error_show=0
55CALLg_dear_d.deleteElement(g_dear_d.getLength())
56
57#屏蔽相关处理
將所有取得的資料進行備份,接著遮罩處理,最後備份遮罩後資料
58FORl_ac=1TOg_dear_d.getLength()
59LETg_dear_d_mask_o[l_ac].*=g_dear_d[l_ac].*
60CALLadet400_dear_t_mask()
61LETg_dear_d_mask_n[l_ac].*=g_dear_d[l_ac].*
62ENDFOR
63LETl_ac=g_cnt
64LETg_cnt=0
65FREEadet400_pb
66FUNCTION
67{<
4.4.11_b_fill2第二阶单身数据笔数查询与数据抓取
第二階單身的資料填充段,此程式無第二階單身因此無作用
adet400.b_fill2"
02#+单身数组填充2
03PRIVATEFUNCTIONadet400_b_fill2(pi_idx)
19ENDFUNCTION
20{<
4.4.12_show数据显示
adet400.show"
02#+单头数据重新显示及单身数据重抓
03PRIVATEFUNCTIONadet400_show()
特定段落僅需刷新reference(單頭及單身)與顯示,利用g_bfill控制是否連同單身資料一同刷新
14IFg_bfill="
Y"
15CALLadet400_b_fill()#单身填充
16CALLadet400_b_fill2('
0'
)#单身填充
17ENDIF
18
19#显示followup图标
20#+此段落由子样板a48产生
21CALLadet400_set_pk_array()
一般的單頭帶值會在fetch段段一同帶出資料,若有比較特別需獨立處理的帶值則在此段的add-point中自行撰寫處理段,例如多語言的欄位的帶值處理皆會在此段落處理。
22CALLcl_user_overview_set_follow_pic()
23LETl_ac_t=l_ac
25#读入ref值(单头)
26#add-point:
show段reference
27若单头有自定义的参照字段或多语言字段,可于此处进行处理
28#endadd-point
29
30#将数据输出到画面上
31DISPLAYBYNAMEg_deaq_m.deaqsite,...
32#显示状态(stus)图片
33#此段落由子样板a21产生
34#根据状态代码显示对应图片
35CASEg_deaq_m.deaqstus
36WHEN"
N"
37CALLgfrm_curr.setElementImage("
statechange"
"
stus/32/unconfirmed.png"
一般單身帶值會在b_fill帶出資料,若有需獨立處理的帶值則在此段的add-point中自行撰寫段,例如自定義參照欄位,多語言欄位或是非主要單身表的欄位等等
47ENDCASE
48
49#读入ref值(单身)
50FORl_ac=1TOg_dear_d.getLength()
51#add-point:
show段单身reference
52自定义的参照字段,多语言字段或非主表的单身字段带值,可于此处进行处理
53#endadd-poin
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 04 T100手册 双档adet400 T100 手册 双档 adet400