{"id":5806,"date":"2019-09-16T14:36:49","date_gmt":"2019-09-16T06:36:49","guid":{"rendered":"http:\/\/www.hefeiyu.com\/?p=5806"},"modified":"2019-09-16T14:36:49","modified_gmt":"2019-09-16T06:36:49","slug":"04-t100%e6%89%8b%e5%86%8c-%e5%8f%8c%e6%a1%a3adet400","status":"publish","type":"post","link":"https:\/\/www.hefeiyu.com\/?p=5806","title":{"rendered":"04 T100\u624b\u518c \u53cc\u6863(adet400)"},"content":{"rendered":"<p><strong>4.1 \u53cc\u6587\u4ef6\u8868\u683c\u6a21\u578b<\/strong><\/p>\n<p><img decoding=\"async\" src=\"http:\/\/www.hefeiyu.com\/wp-content\/uploads\/2019\/09\/d950cd33eaff7a1fb193fd388b83e142.png\" \/><\/p>\n<p>\u53cc\u6863\u6837\u677f\ufe5dpattern\ufe5e\u53ea\u80fd\u652f\u6301\u5355\u4e00\u7684\u4e3b\u8868\uff0c\u53e6\u5916\u53ef\u652f\u6301\u591a\u4e2a\u5355\u5934\u5b50\u8868\uff0c\u5355\u8eab\u5b50\u8868\uff1b\u800c\u4e14\u6bcf\u4e2a\u5355\u8eab\u5b50\u8868\u4e2a\u522b\u53ef\u63a5\u4e8c\u5c42\u5b50\u8868\u3002<\/p>\n<p>&nbsp;<\/p>\n<p><strong>4.2 \u53cc\u6863\u53c2\u8003\u753b\u9762<\/strong><\/p>\n<p><img loading=\"lazy\" decoding=\"async\" width=\"823\" height=\"521\" class=\"wp-image-5807\" src=\"http:\/\/www.hefeiyu.com\/wp-content\/uploads\/2019\/09\/word-image-163.png\" srcset=\"https:\/\/www.hefeiyu.com\/wp-content\/uploads\/2019\/09\/word-image-163.png 823w, https:\/\/www.hefeiyu.com\/wp-content\/uploads\/2019\/09\/word-image-163-768x486.png 768w\" sizes=\"auto, (max-width: 823px) 100vw, 823px\" \/> <img loading=\"lazy\" decoding=\"async\" width=\"784\" height=\"601\" class=\"wp-image-5808\" src=\"http:\/\/www.hefeiyu.com\/wp-content\/uploads\/2019\/09\/word-image-164.png\" srcset=\"https:\/\/www.hefeiyu.com\/wp-content\/uploads\/2019\/09\/word-image-164.png 784w, https:\/\/www.hefeiyu.com\/wp-content\/uploads\/2019\/09\/word-image-164-768x589.png 768w\" sizes=\"auto, (max-width: 784px) 100vw, 784px\" \/><\/p>\n<p>\u53cc\u6587\u4ef6\u4e0e\u5355\u6587\u4ef6\u7684\u6570\u636e\u6d4f\u89c8\u9875\u7b7e\u5728\u8bbe\u8ba1\u4e0a\u5e76\u65e0\u5dee\u522b\uff0c\u4e3b\u8981\u5dee\u522b\u5728\u6570\u636e\u8f93\u5165\u9875\u7b7e\u7684\u5355\u8eab\u8868\u683c\u6392\u5217\u4e0a\u3002\u5355\u8eab\u8868\u683c\u53ef\u4ee5\u8bbe\u7f6e\u5355\u4e00\u9875\u7b7e\u3001\u4e5f\u53ef\u4ee5\u5c06\u76f8\u8fd1\u7684\u6570\u636e\u6536\u7eb3\u4e8e\u540c\u4e00\u4e2a\u9875\u7b7e\u5185\uff0c\u89c6\u9700\u6c42\u8bbe\u7f6e\u3002<\/p>\n<p>\u4e2a\u522b\u7684\u5355\u8eab\u5b50\u8868\u53ef\u4ee5\u7f6e\u653e\u4e8e\u540c\u4e00\u4e2a\u300e\u8868\u683c\u5bb9\u5668\ufe5dtable container\ufe5e\u300f\u6216\u5206\u6563\u4e8e\u591a\u4e2a\u8868\u683c\u5bb9\u5668\u5185\u3002\u5206\u6563\u4e8e\u591a\u4e2a\u8868\u683c\u5bb9\u5668\u5185\u65f6\uff0c\u7f16\u53f7\u6570\u8f83\u5927\u7684\u5bb9\u5668\u4e0d\u53ef\u7ef4\u62a4PK\u6570\u636e\u3002<\/p>\n<p><strong>4.3 \u53cc\u6587\u4ef6\u7a0b\u5e8f\u6d41\u7a0b<\/strong><\/p>\n<table style=\"height: 5px;\" width=\"160\">\n<tbody>\n<tr>\n<td width=\"89\"><\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<p>&nbsp;<\/p>\n<p><img decoding=\"async\" src=\"http:\/\/www.hefeiyu.com\/wp-content\/uploads\/2019\/09\/0ea28936557544b40b170735427b9a8a.png\" \/><\/p>\n<p><strong>4.4 \u5206\u6bb5\u7a0b\u5e8f\u6d41\u7a0b<\/strong><\/p>\n<p><strong>4.4.1\u5171\u4eab\u53ca\u6a21\u5757\u53d8\u91cf\u5ba3\u544a<\/strong><\/p>\n<p>\u7a0b\u5e8f\u6ce8\u8bb0\u6bb5\u843d<\/p>\n<p>01 {&lt;section id=&#8221;adet400.description&#8221; &gt;}<\/p>\n<p>02 #+ Version..: T100-ERP-1.00.00(SD\u7248\u6b21:2,PR\u7248\u6b21:2) Build-000147<\/p>\n<p>03 #+<\/p>\n<p>04 #+ Filename&#8230;: adet400<\/p>\n<p>05 #+ Description: \u95e8\u5e97\u5907\u7528\u91d1\u9886\u7528\u4f5c\u4e1a<\/p>\n<p>06 #+ Creator&#8230;.: 02748(2014\/03\/27)<\/p>\n<p>07 #+ Modifier&#8230;: 02748(2014\/06\/30) -SD\/PR- 00000(2013\/01\/01)<\/p>\n<p>08 #+ Buildtype..: \u5e94\u7528 t01 \u6837\u677f\u81ea\u52a8\u4ea7\u751f<\/p>\n<p>09 #+ \u4ee5\u4e0a\u6bb5\u843d\u7531\u5b50\u6837\u677fa00\u4ea7\u751f<\/p>\n<p>10 {&lt;\/section&gt;}<\/p>\n<p>\u5f15\u5165\u53ca\u5168\u5c40\u53d8\u91cf\u8bbe\u5b9a<\/p>\n<p>11 {&lt;section id=&#8221;adet400.global&#8221; &gt;}<\/p>\n<p>12 #\u5e94\u7528 t01 \u6837\u677f\u81ea\u52a8\u4ea7\u751f(Version:19)<\/p>\n<p>13 IMPORT os<\/p>\n<p>14 IMPORT util<\/p>\n<p>15 IMPORT FGL lib_cl_dlg<\/p>\n<p>16 #add-point:\u589e\u52a0\u6c47\u5165\u9879\u76ee<\/p>\n<p>17 \u7a0b\u5e8f\u4e2d\u82e5\u9700\u8981\u4f7f\u7528JAVA\u6216Genero\u539f\u751flib\u5747\u987b\u5728\u6b64\u5904\u8bbe\u7f6eIMPORT<\/p>\n<p>18 #end add-point<\/p>\n<p>19 SCHEMA ds<\/p>\n<p>20 GLOBALS &#8220;..\/..\/cfg\/top_global.inc&#8221;<\/p>\n<p>21<\/p>\n<p>22 #add-point:\u589e\u52a0\u6c47\u5165\u53d8\u91cf\u6587\u4ef6<\/p>\n<p>23 \u90e8\u5206\u5927\u578b\u7a0b\u5e8f\u9700\u8981\u62e5\u6709\u81ea\u5df1\u7684inc\u53c2\u6570\u914d\u7f6e\u6587\u4ef6\uff0c\u53ef\u4ee5\u81ea\u884c\u4e8e\u6b64\u5904\u6c47\u5165<\/p>\n<p>24 #end add-point<\/p>\n<p>25<\/p>\n<p>26 #\u5355\u5934 type \u5ba3\u544a<\/p>\n<p>\u7a0b\u5f0f\u9700\u4f7f\u7528\u7684\u5168\u57df\u8b8a\u6578\uff0c\u8b8a\u6578\u8cc7\u6599\u5f9e\u756b\u9762\u6b04\u4f4d\u53d6\u51fa\uff0c\u4e0d\u53ef\u589e\u6e1b<\/p>\n<p>27 PRIVATE type type_g_deaq_m RECORD<\/p>\n<p>\u7565<\/p>\n<p>62 #add-point:\u4f20\u5165\u53c2\u6570\u8bf4\u660e(global.argv)<\/p>\n<p>63 \u7a0b\u5e8f\u4e2d\u82e5\u9700\u8981\u81ea\u884c\u589e\u52a0\u8981\u7528\u7684\u5168\u5c40\u53d8\u91cf\u5219\u53ef\u4e8e\u6b64\u5904\u8bbe\u5b9a<\/p>\n<p>Form\u548ccurrent window\u90fd\u6709\u6307\u5b9a\u5168\u57df\u7269\u4ef6\uff0c\u56e0\u6b64\u53ef\u4ee5\u76f4\u63a5\u4f7f\u7528\u7269\u4ef6\u64cd\u4f5c<\/p>\n<p>64 #end add-point<\/p>\n<p>65 #add-point:\u4f20\u5165\u53c2\u6570\u8bf4\u660e(global.argv)<\/p>\n<p>66 \u81ea\u52a8\u8865\u5165 azzi900\u7684\u53c2\u6570\u5b9a\u4e49\u8bf4\u660e\u7279\u522b\u5199\u6cd5<\/p>\n<p>67 #argv[1] imaa_t.imaa002<\/p>\n<p>68 #argv[2] type_t.chr1 #\u6d4b\u8bd5\u7528\u53c2\u6570<\/p>\n<p>69 #end add-point<\/p>\n<p>70 {&lt;\/section &gt;}<\/p>\n<p><strong>4.4.2\u4e3b\u7a0b\u5e8f<\/strong><\/p>\n<p>01 {&lt;section id=&#8221;adet400.main&#8221; &gt;}<\/p>\n<p>02 #+ \u6b64\u6bb5\u843d\u7531\u5b50\u6837\u677fa26\u4ea7\u751f<\/p>\n<p>03 #OPTIONS SHORT CIRCUIT<\/p>\n<p>04 #+ \u4f5c\u4e1a\u5f00\u59cb<\/p>\n<p>05 MAIN<\/p>\n<p>\u540c\u5355\u6863<\/p>\n<p>68 END MAIN<\/p>\n<p>69 {&lt;\/section&gt;}<\/p>\n<p>&nbsp;<\/p>\n<p><strong>4.4.3 _init\u521d\u59cb\u5316<\/strong><\/p>\n<p>01 {&lt;section id=&#8221;adet400.init&#8221; &gt;}<\/p>\n<p>02 #+ \u6d4f\u89c8\u9875\u7b7e\u6570\u636e\u521d\u59cb\u5316<\/p>\n<p>03 PRIVATE FUNCTION adet400_init()<\/p>\n<p>\u540c\u5355\u6863<\/p>\n<p>22 END FUNCTION<\/p>\n<p>23 {&lt;\/section&gt;}<\/p>\n<p>&nbsp;<\/p>\n<p><strong>4.4.4 _default_search \u6267\u884c\u540e\u9996\u6b21\u67e5\u8be2\u6570\u636e<\/strong><\/p>\n<p>01 {&lt;section id=&#8221;adet400.default_search&#8221; &gt;}<\/p>\n<p>02 #+ \u5916\u90e8\u53c2\u6570\u641c\u5bfb<\/p>\n<p>03 PRIVATE FUNCTION adet400_default_search()<\/p>\n<p>\u540c\u5355\u6863<\/p>\n<p>31 END FUNCTION<\/p>\n<p>32 {&lt;\/section&gt;}<\/p>\n<p><strong>4.4.5 _ui_dialog\u64cd\u4f5c\u529f\u80fd\u9009\u5355<\/strong><\/p>\n<p>01 {&lt;section id=&#8221;adet400.ui_dialog&#8221; &gt;}<\/p>\n<p>02 #+ \u529f\u80fd\u9009\u5355<\/p>\n<p>03 PRIVATE FUNCTION adet400_ui_dialog()<\/p>\n<p>04 DEFINE li_exit LIKE type_t.num5 #\u5224\u522b\u662f\u5426\u4e3a\u79bb\u5f00\u4f5c\u4e1a<\/p>\n<p>05 DEFINE ls_wc STRING #wc\u7528<\/p>\n<p>06 DEFINE la_param RECORD #\u7a0b\u5e8f\u4e32\u67e5\u7528\u53d8\u91cf<\/p>\n<p>07 prog STRING, #\u4e32\u67e5\u7a0b\u5e8f\u540d\u79f0<\/p>\n<p>08 param DYNAMIC ARRAY OF STRING #\u4f20\u9012\u53d8\u6570<\/p>\n<p>09 END RECORD<\/p>\n<p>10 DEFINE ls_js STRING #\u8f6c\u6362\u540e\u7684json\u5b57\u7b26\u4e32<\/p>\n<p>&nbsp;<\/p>\n<p>11 CALL cl_set_act_visible(&#8220;accept,cancel&#8221;, FALSE)<\/p>\n<p>12<\/p>\n<p>13 #\u56e0\u5e94\u67e5\u8be2\u65b9\u6848\u8fdb\u884c\u5904\u7406<\/p>\n<p>14 CALL gfrm_curr.setElementImage(&#8220;logo&#8221;,&#8221;logo\/applogo.png&#8221;)<\/p>\n<p>\u7a0b\u5f0f\u958b\u555f\u6642\u986f\u793a\u7684\u9801\u9762\u70ba\u700f\u89bd\u9801\u7c64, \u6b64\u8655\u5148\u96b1\u85cf\u55ae\u982d\/\u55ae\u8eab\u8cc7\u8a0a\u9801, \u53ea\u986f\u793a\u700f\u89bd\u9801<\/p>\n<p>15 IF g_default THEN<\/p>\n<p>16 CALL gfrm_curr.setElementHidden(&#8220;mainlayout&#8221;,0)<\/p>\n<p>17 CALL gfrm_curr.setElementHidden(&#8220;worksheet&#8221;,1)<\/p>\n<p>18 LET g_main_hidden = 0<\/p>\n<p>19 ELSE<\/p>\n<p>20 CALL gfrm_curr.setElementHidden(&#8220;mainlayout&#8221;,1)<\/p>\n<p>21 CALL gfrm_curr.setElementHidden(&#8220;worksheet&#8221;,0)<\/p>\n<p>22 LET g_main_hidden = 1<\/p>\n<p>23 END IF<\/p>\n<p>24<\/p>\n<p>\u82e5\u7a0b\u5f0f\u6709\u9810\u8a2d\u884c\u70ba, \u5247\u5728\u9032\u5165\u6b64\u6bb5\u6642\u6703\u5148\u76f4\u63a5\u8a72\u52d5\u4f5c<\/p>\n<p>25 #action default\u52a8\u4f5c<\/p>\n<p>\u540c\u5355\u6863<\/p>\n<p>40 LET lb_first = TRUE<\/p>\n<p>41 WHILE TRUE<\/p>\n<p>42<\/p>\n<p>43 IF g_action_choice = &#8220;logistics&#8221; THEN<\/p>\n<p>\u7576\u4f7f\u7528\u8005\u9032\u884c\u71df\u904b\u64da\u9ede\u5207\u63db\u6642\u6703\u96e2\u958bdialog\u4e26\u91cd\u65b0\u9032\u5165, \u8996\u540c\u91cd\u555f\u7a0b\u5f0f, \u6e05\u7a7a\u756b\u9762\u4e0a\u5df2\u7d93\u67e5\u8a62\u689d\u4ef6\u7b49\u8cc7\u8a0a<\/p>\n<p>44 #\u6e05\u9664\u753b\u9762\u53ca\u76f8\u5173\u8d44\u6599<\/p>\n<p>45 CLEAR FORM<\/p>\n<p>46 CALL g_browser.clear()<\/p>\n<p>47 INITIALIZE g_deaq_m.* TO NULL<\/p>\n<p>48 CALL g_dear_d.clear()<\/p>\n<p>49 LET g_wc = &#8216; 1=2&#8217;<\/p>\n<p>50 LET g_wc2 = &#8216; 1=1&#8217;<\/p>\n<p>51 LET g_action_choice = &#8220;&#8221;<\/p>\n<p>52 CALL adet400_init()<\/p>\n<p>53 END IF<\/p>\n<p>54<\/p>\n<p>55 #\u5148\u586b\u5145browser\u6570\u636e<\/p>\n<p>56 CALL lib_cl_dlg.cl_dlg_before_display()<\/p>\n<p>57 CALL cl_notice()<\/p>\n<p>58<\/p>\n<p>59 DIALOG ATTRIBUTES(UNBUFFERED,FIELD ORDER FORM)<\/p>\n<p>60<\/p>\n<p>61 #\u5de6\u4fa7\u6d4f\u89c8\u9875\u7b7e<\/p>\n<p>62 DISPLAY ARRAY g_browser TO s_browse.* ATTRIBUTES(COUNT=g_header_cnt)<\/p>\n<p>\u540c\u5355\u6863<\/p>\n<p>69 END DISPLAY<\/p>\n<p>70<\/p>\n<p>71 DISPLAY ARRAY g_dear_d TO s_detail1.* ATTRIBUTES(COUNT=g_rec_b) #page1<\/p>\n<p>72 BEFORE ROW<\/p>\n<p>73 #\u663e\u793a\u5355\u8eab\u7b14\u6570<\/p>\n<p>74 CALL adet400_idx_chk()<\/p>\n<p>75 #\u786e\u5b9a\u5f53\u4e0b\u9009\u62e9\u7684\u7b14\u6570<\/p>\n<p>76 LET l_ac = DIALOG.getCurrentRow(&#8220;s_detail1&#8221;)<\/p>\n<p>77 LET g_detail_idx = l_ac<\/p>\n<p>78<\/p>\n<p>79 BEFORE DISPLAY<\/p>\n<p>\u6b64\u6a23\u677f\u540c\u6642\u652f\u63f4\u7b2c\u4e00\u968e\u55ae\u8eab\u53ca\u7b2c\u4e8c\u968e\u55ae\u8eab, \u6b64\u8655\u7684\u63a7\u5236\u6bb5\u662f\u7576\u8cc7\u6599\u505c\u7559\u5728\u7b2c\u4e00\u968e\u55ae\u8eab\u6642\u7b46\u6578\u7684\u63a7\u5236<\/p>\n<p>80 #\u5982\u679c\u4e00\u76f4\u90fd\u5728\u7b2c\u4e00\u9636\u5219\u63a7\u5236\u7b14\u6570\u4f4d\u7f6e<\/p>\n<p>81 IF g_loc = &#8216;m&#8217; THEN<\/p>\n<p>82 CALL FGL_SET_ARR_CURR(g_detail_idx)<\/p>\n<p>83 END IF<\/p>\n<p>84 LET g_loc = &#8216;m&#8217;<\/p>\n<p>85 LET l_ac = DIALOG.getCurrentRow(&#8220;s_detail1&#8221;)<\/p>\n<p>86 LET g_current_page = 1<\/p>\n<p>\u6839\u64da\u7576\u4e0b\u6240\u505c\u7559\u7684\u9801\u9762, \u986f\u793a\u8a72\u9801\u9762\u7684\u7b46\u6578\u8cc7\u8a0a<\/p>\n<p>87 #\u663e\u793a\u5355\u8eab\u7b14\u6570<\/p>\n<p>88 CALL adet400_idx_chk()<\/p>\n<p>89 END DISPLAY<\/p>\n<p>90<\/p>\n<p>\u6b64\u8655\u63a1\u7528subdialog\u5beb\u6cd5, \u5f15\u5165\u984d\u5916\u7684\u5169\u500bdialog\u8cc7\u8a0a<\/p>\n<p>91 SUBDIALOG lib_cl_dlg.cl_dlg_qryplan<\/p>\n<p>92 SUBDIALOG lib_cl_dlg.cl_dlg_relateapps<\/p>\n<p>93<\/p>\n<p>94 BEFORE DIALOG<\/p>\n<p>95 #\u5148\u586b\u5145browser\u6570\u636e<\/p>\n<p>96 CALL adet400_browser_fill(&#8220;&#8221;)<\/p>\n<p>97 CALL cl_navigator_setting(g_current_idx, g_detail_cnt)<\/p>\n<p>98 LET g_curr_diag = ui.DIALOG.getCurrent()<\/p>\n<p>99 LET g_current_sw = FALSE<\/p>\n<p>100 #\u56de\u5f52\u65e7\u7b14\u6570\u4f4d\u7f6e (\u56de\u5230\u5f53\u65f6\u5f02\u52a8\u7684\u7b14\u6570)<\/p>\n<p>\u7565<\/p>\n<p>110 LET g_current_sw = TRUE<\/p>\n<p>111 LET g_current_row = g_current_idx #\u76ee\u524d\u6307\u6807<\/p>\n<p>112<\/p>\n<p>113 #\u6709\u6570\u636e\u624d\u8fdb\u884cfetch<\/p>\n<p>114 IF g_current_idx &lt;&gt; 0 THEN<\/p>\n<p>115 CALL adet400_fetch(&#8221;) # reload data<\/p>\n<p>116 END IF<\/p>\n<p>117 #LET g_detail_idx = 1<\/p>\n<p>118 CALL adet400_ui_detailshow() #Setting the current row<\/p>\n<p>119<\/p>\n<p>120 #\u7b14\u6570\u663e\u793a<\/p>\n<p>121 LET g_current_page = 1<\/p>\n<p>122 CALL adet400_idx_chk()<\/p>\n<p>123<\/p>\n<p>124 #\u72b6\u6001\u4ee3\u7801\u5207\u6362action<\/p>\n<p>\u540c\u5355\u6863<\/p>\n<p>134<\/p>\n<p>135 #+ \u6b64\u6bb5\u843d\u7531\u5b50\u6837\u677fa43\u4ea7\u751f<\/p>\n<p>136 ON ACTION modify_detail<\/p>\n<p>\u7576\u4f7f\u7528\u8005\u76f4\u63a5\u96d9\u9ede\u64ca\u55ae\u8eab\u9032\u5165\u4fee\u6539\u6bb5\u843d\u6642\u6703\u5148\u7d93\u904e\u6b64action, \u4e26\u5224\u5b9a\u7576\u4e0b\u6240\u9078\u64c7\u7684\u55ae\u8eab, \u76f4\u63a5\u9032\u5165\u5230\u8a72\u55ae\u8eab\u7684\u7b2c\u4e00\u500b\u6b04\u4f4d<\/p>\n<p>137 LET g_action_choice=&#8221;modify_detail&#8221;<\/p>\n<p>138 IF cl_auth_chk_act(&#8220;modify&#8221;) THEN<\/p>\n<p>139 LET g_aw = g_curr_diag.getCurrentItem()<\/p>\n<p>140 CALL adet400_modify()<\/p>\n<p>141 EXIT DIALOG<\/p>\n<p>142 END IF<\/p>\n<p>\u540c\u5355\u6863<\/p>\n<p>154 CONTINUE DIALOG<\/p>\n<p>155 END DIALOG<\/p>\n<p>156<\/p>\n<p>157 IF g_action_choice = &#8220;exit&#8221; AND NOT cl_null(g_action_choice) THEN<\/p>\n<p>158 EXIT WHILE<\/p>\n<p>159 END IF<\/p>\n<p>160<\/p>\n<p>161 END WHILE<\/p>\n<p>162<\/p>\n<p>163 CALL cl_set_act_visible(&#8220;accept,cancel&#8221;, TRUE)<\/p>\n<p>164<\/p>\n<p>165 END FUNCTION<\/p>\n<p>166 {&lt;\/section&gt;}<\/p>\n<p><strong>4.4.6 _browser_fill\u6d4f\u89c8\u9875\u7b7e\u6570\u636e\u586b\u5145<\/strong><\/p>\n<p>01 {&lt;section id=&#8221;adet400.browser_fill&#8221; &gt;}<\/p>\n<p>\u700f\u89bd\u9801\u8cc7\u6599\u586b\u5145\u7684\u6bb5\u843d\u5927\u81f4\u4e0a\u8207\u55ae\u6a94\u76f8\u540c, \u5dee\u7570\u50c5\u5728\u65bc\u7d71\u8a08\u8cc7\u6599\u7b46\u6578\u8207\u641c\u5c0b\u8cc7\u6599\u6642\u6703\u7d0d\u5165\u55ae\u8eab\u7684\u641c\u5c0b\u689d\u4ef6(g_wc2)<\/p>\n<p>02 #+ \u6d4f\u89c8\u9875\u7b7e\u6570\u636e\u586b\u5145<\/p>\n<p>03 PRIVATE FUNCTION adet400_browser_fill(ps_page_action)<\/p>\n<p>\u540c\u5355\u6863<\/p>\n<p>12 IF g_wc2 &lt;&gt; &#8221; 1=1&#8243; THEN<\/p>\n<p>13 #\u5355\u8eab\u6709\u8f93\u5165\u641c\u5bfb\u6761\u4ef6<\/p>\n<p>14 LET l_sub_sql = &#8221; SELECT UNIQUE deaqdocno,&#8230; &#8221;<\/p>\n<p>15 ELSE<\/p>\n<p>16 #\u5355\u8eab\u672a\u8f93\u5165\u641c\u5bfb\u6761\u4ef6<\/p>\n<p>17 LET l_sub_sql = &#8221; SELECT UNIQUE deaqdocno,&#8230; &#8221;<\/p>\n<p>18 END IF<\/p>\n<p>\u540c\u5355\u6863<\/p>\n<p>34 LET g_sql = &#8221; SELECT DISTINCT t0.deaqstus,t0.deaqsite,&#8230;&#8221;,<\/p>\n<p>35 &#8221; WHERE t0.deaqent = &#8216;&#8221; ||g_enterprise|| &#8220;&#8216; AND &#8220;\u2026<\/p>\n<p>\u540c\u5355\u6863<\/p>\n<p>76 END FUNCTION<\/p>\n<p>77 {&lt;\/section&gt;}<\/p>\n<p><strong>4.4.7 _ui_headershow\u5237\u65b0\u5355\u5934\u6570\u636e\u5185\u5bb9<\/strong><\/p>\n<p>\u6839\u64da\u7576\u4e0b\u6240\u9078\u64c7\u7684\u55ae\u982d\u8cc7\u6599, \u91cd\u65b0\u5f9e\u8cc7\u6599\u5eab\u6488\u53d6\u6700\u65b0\u7684\u8cc7\u6599\u5167\u5bb9<\/p>\n<p>01 {&lt;section id=&#8221;adet400.ui_headershow&#8221; &gt;}<\/p>\n<p>02 #+ \u5355\u5934\u6570\u636e\u91cd\u65b0\u663e\u793a<\/p>\n<p>03 PRIVATE FUNCTION adet400_ui_headershow()<\/p>\n<p>04 LET g_deaq_m.deaqdocno = g_browser[g_current_idx].b_deaqdocno<\/p>\n<p>05 EXECUTE adet400_master_referesh USING g_deaq_m.deaqdocno INTO g_deaq_m.deaqsite,&#8230;<\/p>\n<p>06 CALL adet400_show()<\/p>\n<p>07 END FUNCTION<\/p>\n<p>08 {&lt;\/section&gt;}<\/p>\n<p><strong>4.4.8 _ui_detailshow\u5237\u65b0\u5355\u8eab\u6570\u636e\u5185\u5bb9<\/strong><\/p>\n<p>01 {&lt;section id=&#8221;adet400.ui_detailshow&#8221; &gt;}<\/p>\n<p>\u6b64\u8655\u50c5\u5237\u65b0\u55ae\u8eab\u7b46\u6578\u7684\u4f4d\u7f6e, \u82e5\u9700\u8981\u91cd\u5237\u65b0\u55ae\u8eab\u8cc7\u6599\u53ef\u65bcadd-point\u81ea\u884c\u64b0\u5beb<\/p>\n<p>02 #+ \u5355\u8eab\u6570\u636e\u91cd\u65b0\u663e\u793a<\/p>\n<p>03 PRIVATE FUNCTION adet400_ui_detailshow()<\/p>\n<p>04 #add-point:ui_detailshow\u6bb5before<\/p>\n<p>05 \u4e8e\u6b64\u6bb5\u843d\u5b9a\u4e49\u5355\u8eab\u5237\u65b0\u524d\u7684\u884c\u4e3a<\/p>\n<p>06 #end add-point<\/p>\n<p>07 IF g_curr_diag IS NOT NULL THEN<\/p>\n<p>08 CALL g_curr_diag.setCurrentRow(&#8220;s_detail1&#8221;,g_detail_idx)<\/p>\n<p>09 END IF<\/p>\n<p>\u6293\u53d6\u55ae\u982d\u8cc7\u6599\u7684\u6bb5\u843d\u540c\u55ae\u6a94, \u4f46\u9808\u984d\u5916\u547c\u53ebshow\u6bb5\u9032\u884c\u586b\u5145\u55ae\u8eab\u7684\u52d5\u4f5c<\/p>\n<p>10 #add-point:ui_detailshow\u6bb5after<\/p>\n<p>11 \u4e8e\u6b64\u6bb5\u843d\u5b9a\u4e49\u5355\u8eab\u5237\u65b0\u540e\u6240\u9700\u5904\u7406\u7684\u76f8\u5173\u6bb5\u843d<\/p>\n<p>12 #end add-pointEND FUNCTION<\/p>\n<p>13 {&lt;\/section&gt;}<\/p>\n<p><strong>4.4.9 _fetch \u6570\u636e\u7b14\u6570\u67e5\u8be2\u4e0e\u6570\u636e\u6293\u53d6<\/strong><\/p>\n<p>01 {&lt;section id=&#8221;adet400.fetch&#8221; &gt;}<\/p>\n<p>02 #+ \u6307\u5b9aPK\u540e\u6293\u53d6\u5355\u5934\u5176\u4ed6\u6570\u636e<\/p>\n<p>03 PRIVATE FUNCTION adet400_fetch(p_flag)<\/p>\n<p>\u540c\u5355\u6863<\/p>\n<p>34 #\u91cd\u65b0\u663e\u793a<\/p>\n<p>35 CALL adet400_show()<\/p>\n<p>36<\/p>\n<p>37 #+ \u6b64\u6bb5\u843d\u7531\u5b50\u6837\u677fa56\u4ea7\u751f<\/p>\n<p>38 #\u68c0\u67e5\u6b64\u5355\u636e\u662f\u5426\u9700\u663e\u793aBPM\u7b7e\u6838\u72b6\u51b5\u6309\u94ae<\/p>\n<p>\u6b64\u6bb5\u843d\u50c5\u91dd\u5c0d\u6709\u7c3d\u6838\u529f\u80fd\u7684\u7a0b\u5f0f, \u6839\u64da\u8a72\u55ae\u64da\u7684\u8cc7\u8a0a,\u5224\u5b9a\u662f\u5426\u986f\u793aBPM\u7c3d\u6838\u72c0\u6cc1\u7684\u6309\u9215<\/p>\n<p>39 IF cl_bpm_chk() THEN<\/p>\n<p>40 CALL cl_set_act_visible(&#8220;bpm_status&#8221;,TRUE)<\/p>\n<p>41 ELSE<\/p>\n<p>42 CALL cl_set_act_visible(&#8220;bpm_status&#8221;,FALSE)<\/p>\n<p>43 END IF<\/p>\n<p>44 END FUNCTION<\/p>\n<p>45 {&lt;\/section&gt;}<\/p>\n<p><strong>4.4.10 _b_fill\u5355\u8eab\u6570\u636e\u7b14\u6570\u67e5\u8be2\u4e0e\u6570\u636e\u6293\u53d6<\/strong><\/p>\n<p>01 {&lt;section id=&#8221;adet400.b_fill&#8221; &gt;}<\/p>\n<p>02 #+ \u5355\u8eab\u6570\u7ec4\u586b\u5145<\/p>\n<p>03 PRIVATE FUNCTION adet400_b_fill()<\/p>\n<p>\u5224\u65b7\u8a72\u55ae\u8eab\u662f\u5426\u9032\u884c\u586b\u5145, \u6703\u4f9d\u64dafill_chk\u6240\u53d6\u5f97\u7684\u8cc7\u8a0a\u6c7a\u5b9a\u586b\u5145\u8207\u5426, \u4e26\u4e14\u6839\u64da\u7576\u4e0b\u57f7\u884c\u7684\u52d5\u4f5c\u78ba\u5b9a\u662f\u5426\u9700\u91cd\u91cd\u7d44SQL, \u5207\u63db\u4e0a\u4e0b\u7b46\u8cc7\u6599\u6642\u4e0d\u91cd\u7d44SQL<\/p>\n<p>\u7565<\/p>\n<p>09 CALL g_dear_d.clear() #g_dear_d \u5355\u5934\u53ca\u5355\u8eab<\/p>\n<p>10 #\u5224\u65ad\u662f\u5426\u586b\u5145<\/p>\n<p>11 IF adet400_fill_chk(1) THEN<\/p>\n<p>12 #\u5207\u6362\u4e0a\u4e0b\u7b14\u65f6\u4e0d\u91cd\u7ec4SQL<\/p>\n<p>13 IF g_action_choice &lt;&gt; &#8216;fetch&#8217; OR cl_null(g_action_choice) THEN<\/p>\n<p>14 LET g_sql = &#8220;SELECT UNIQUE &#8230; &#8221;<\/p>\n<p>15 LET g_sql = cl_sql_add_mask(g_sql) #\u906e\u853d\u7279\u5b9a\u8d44\u6599<\/p>\n<p>16 IF NOT cl_null(g_wc2_table1) THEN<\/p>\n<p>17 LET g_sql = g_sql CLIPPED, &#8221; AND &#8220;, g_wc2_table1 CLIPPED<\/p>\n<p>18 END IF<\/p>\n<p>19 LET g_sql = g_sql, &#8221; ORDER BY dear_t.dearseq&#8221;<\/p>\n<p>20<\/p>\n<p>21 LET g_sql = cl_sql_add_mask(g_sql) #\u906e\u853d\u7279\u5b9a\u8d44\u6599<\/p>\n<p>22 PREPARE adet400_pb FROM g_sql<\/p>\n<p>23 DECLARE b_fill_cs CURSOR FOR adet400_pb<\/p>\n<p>24 END IF<\/p>\n<p>25 LET g_cnt = l_ac<\/p>\n<p>26 LET l_ac = 1<\/p>\n<p>27 OPEN b_fill_cs USING g_enterprise,g_deaq_m.deaqdocno<\/p>\n<p>28 FOREACH b_fill_cs INTO g_dear_d[l_ac].dearseq,&#8230;<\/p>\n<p>29 IF SQLCA.sqlcode THEN<\/p>\n<p>\u7565<\/p>\n<p>35 END IF<\/p>\n<p>36<\/p>\n<p>37 LET l_ac = l_ac + 1<\/p>\n<p>38 IF l_ac &gt; g_max_rec THEN<\/p>\n<p>39 EXIT FOREACH<\/p>\n<p>40 END IF<\/p>\n<p>41 END FOREACH<\/p>\n<p>42 IF l_ac &gt; g_max_rec AND g_error_show = 1 THEN<\/p>\n<p>\u7565<\/p>\n<p>\u7576\u8cc7\u6599\u7b46\u6578\u8d85\u51fa\u4e0a\u9650\u6642\u6703\u63d0\u793a\u932f\u8aa4\u8a0a\u606f<\/p>\n<p>51 END IF<\/p>\n<p>52 LET g_error_show = 0<\/p>\n<p>53 END IF<\/p>\n<p>55 CALL g_dear_d.deleteElement(g_dear_d.getLength())<\/p>\n<p>56<\/p>\n<p>57 #\u5c4f\u853d\u76f8\u5173\u5904\u7406<\/p>\n<p>58 FOR l_ac = 1 TO g_dear_d.getLength()<\/p>\n<p>\u5c07\u6240\u6709\u53d6\u5f97\u7684\u8cc7\u6599\u9032\u884c\u5099\u4efd, \u63a5\u8457\u906e\u7f69\u8655\u7406, \u6700\u5f8c\u5099\u4efd\u906e\u7f69\u5f8c\u8cc7\u6599<\/p>\n<p>59 LET g_dear_d_mask_o[l_ac].* = g_dear_d[l_ac].*<\/p>\n<p>60 CALL adet400_dear_t_mask()<\/p>\n<p>61 LET g_dear_d_mask_n[l_ac].* = g_dear_d[l_ac].*<\/p>\n<p>62 END FOR<\/p>\n<p>63 LET l_ac = g_cnt<\/p>\n<p>64 LET g_cnt = 0<\/p>\n<p>65 FREE adet400_pb<\/p>\n<p>66 FUNCTION<\/p>\n<p>67 {&lt;\/section&gt;}<\/p>\n<p><strong>4.4.11 _b_fill2\u7b2c\u4e8c\u9636\u5355\u8eab\u6570\u636e\u7b14\u6570\u67e5\u8be2\u4e0e\u6570\u636e\u6293\u53d6<\/strong><\/p>\n<p>01 {&lt;section id=&#8221;adet400.b_fill2&#8243; &gt;}<\/p>\n<p>\u7b2c\u4e8c\u968e\u55ae\u8eab\u7684\u8cc7\u6599\u586b\u5145\u6bb5, \u6b64\u7a0b\u5f0f\u7121\u7b2c\u4e8c\u968e\u55ae\u8eab\u56e0\u6b64\u7121\u4f5c\u7528<\/p>\n<p>02 #+ \u5355\u8eab\u6570\u7ec4\u586b\u51452<\/p>\n<p>03 PRIVATE FUNCTION adet400_b_fill2(pi_idx)<\/p>\n<p>\u7565<\/p>\n<p>19 END FUNCTION<\/p>\n<p>20 {&lt;\/section&gt;}<\/p>\n<p><strong>4.4.12 _show \u6570\u636e\u663e\u793a<\/strong><\/p>\n<p>01 {&lt;section id=&#8221;adet400.show&#8221; &gt;}<\/p>\n<p>02 #+ \u5355\u5934\u6570\u636e\u91cd\u65b0\u663e\u793a\u53ca\u5355\u8eab\u6570\u636e\u91cd\u6293<\/p>\n<p>03 PRIVATE FUNCTION adet400_show()<\/p>\n<p>\u7565<\/p>\n<p>14 IF g_bfill = &#8220;Y&#8221; THEN<\/p>\n<p>\u7279\u5b9a\u6bb5\u843d\u50c5\u9700\u5237\u65b0reference(\u55ae\u982d\u53ca\u55ae\u8eab)\u8207\u986f\u793a, \u5229\u7528g_bfill\u63a7\u5236\u662f\u5426\u9023\u540c\u55ae\u8eab\u8cc7\u6599\u4e00\u540c\u5237\u65b0<\/p>\n<p>15 CALL adet400_b_fill() #\u5355\u8eab\u586b\u5145<\/p>\n<p>16 CALL adet400_b_fill2(&#8216;0&#8217;) #\u5355\u8eab\u586b\u5145<\/p>\n<p>17 END IF<\/p>\n<p>18<\/p>\n<p>19 #\u663e\u793afollowup\u56fe\u6807<\/p>\n<p>20 #+ \u6b64\u6bb5\u843d\u7531\u5b50\u6837\u677fa48\u4ea7\u751f<\/p>\n<p>21 CALL adet400_set_pk_array()<\/p>\n<p>22 CALL cl_user_overview_set_follow_pic()<\/p>\n<p>\u4e00\u822c\u7684\u55ae\u982d\u5e36\u503c\u6703\u5728fetch\u6bb5\u6bb5\u4e00\u540c\u5e36\u51fa\u8cc7\u6599, \u82e5\u6709\u6bd4\u8f03\u7279\u5225\u9700\u7368\u7acb\u8655\u7406\u7684\u5e36\u503c\u5247\u5728\u6b64\u6bb5\u7684add-point\u4e2d\u81ea\u884c\u64b0\u5beb\u8655\u7406\u6bb5, \u4f8b\u5982\u591a\u8a9e\u8a00\u7684\u6b04\u4f4d\u7684\u5e36\u503c\u8655\u7406\u7686\u6703\u5728\u6b64\u6bb5\u843d\u8655\u7406\u3002<\/p>\n<p>23 LET l_ac_t = l_ac<\/p>\n<p>24<\/p>\n<p>25 #\u8bfb\u5165ref\u503c(\u5355\u5934)<\/p>\n<p>26 #add-point:show\u6bb5reference<\/p>\n<p>27 \u82e5\u5355\u5934\u6709\u81ea\u5b9a\u4e49\u7684\u53c2\u7167\u5b57\u6bb5\u6216\u591a\u8bed\u8a00\u5b57\u6bb5,\u53ef\u4e8e\u6b64\u5904\u8fdb\u884c\u5904\u7406<\/p>\n<p>28 #end add-point<\/p>\n<p>29<\/p>\n<p>30 #\u5c06\u6570\u636e\u8f93\u51fa\u5230\u753b\u9762\u4e0a<\/p>\n<p>31 DISPLAY BY NAME g_deaq_m.deaqsite,&#8230;<\/p>\n<p>32 #\u663e\u793a\u72b6\u6001(stus)\u56fe\u7247<\/p>\n<p>33 #\u6b64\u6bb5\u843d\u7531\u5b50\u6837\u677fa21\u4ea7\u751f<\/p>\n<p>34 #\u6839\u636e\u72b6\u6001\u4ee3\u7801\u663e\u793a\u5bf9\u5e94\u56fe\u7247<\/p>\n<p>35 CASE g_deaq_m.deaqstus<\/p>\n<p>36 WHEN &#8220;N&#8221;<\/p>\n<p>37 CALL gfrm_curr.setElementImage(&#8220;statechange&#8221;, &#8220;stus\/32\/unconfirmed.png&#8221;)<\/p>\n<p>\u7565<\/p>\n<p>\u4e00\u822c\u55ae\u8eab\u5e36\u503c\u6703\u5728b_fill\u5e36\u51fa\u8cc7\u6599, \u82e5\u6709\u9700\u7368\u7acb\u8655\u7406\u7684\u5e36\u503c\u5247\u5728\u6b64\u6bb5\u7684add-point\u4e2d\u81ea\u884c\u64b0\u5beb\u6bb5, \u4f8b\u5982\u81ea\u5b9a\u7fa9\u53c3\u7167\u6b04\u4f4d, \u591a\u8a9e\u8a00\u6b04\u4f4d\u6216\u662f\u975e\u4e3b\u8981\u55ae\u8eab\u8868\u7684\u6b04\u4f4d\u7b49\u7b49<\/p>\n<p>47 END CASE<\/p>\n<p>48<\/p>\n<p>49 #\u8bfb\u5165ref\u503c(\u5355\u8eab)<\/p>\n<p>50 FOR l_ac = 1 TO g_dear_d.getLength()<\/p>\n<p>51 #add-point:show\u6bb5\u5355\u8eabreference<\/p>\n<p>52 \u81ea\u5b9a\u4e49\u7684\u53c2\u7167\u5b57\u6bb5, \u591a\u8bed\u8a00\u5b57\u6bb5\u6216\u975e\u4e3b\u8868\u7684\u5355\u8eab\u5b57\u6bb5\u5e26\u503c,\u53ef\u4e8e\u6b64\u5904\u8fdb\u884c\u5904\u7406<\/p>\n<p>53 #end add-point<\/p>\n<p>54 END FOR<\/p>\n<p>55<\/p>\n<p>56 LET l_ac = l_ac_t<\/p>\n<p>57 #\u79fb\u52a8\u4e0a\u4e0b\u7b14\u53ef\u4ee5\u8fde\u52a8\u5207\u6362\u6570\u636e<\/p>\n<p>58 CALL cl_show_fld_cont()<\/p>\n<p>59 CALL adet400_detail_show()<\/p>\n<p>60 END FUNCTION<\/p>\n<p>61 {&lt;\/section&gt;}<\/p>\n<p><strong>4.4.13 _detail_show \u5355\u8eab\u6570\u636e\u663e\u793a<\/strong><\/p>\n<p>01 {&lt;section id=&#8221;adet400.detail_show&#8221; &gt;}<\/p>\n<p>\u6b64function\u8655\u7406\u7684\u70ba\u7b2c\u4e8c\u968e\u55ae\u8eab\u7684\u5e36\u503c, \u82e5\u6709\u9700\u8981\u7279\u5225\u7684\u8655\u7406\u5247\u64b0\u5beb\u65bc\u6b64\u6bb5\u843d<\/p>\n<p>02 #+ \u7b2c\u4e8c\u9636\u5355\u8eabreference<\/p>\n<p>03 PRIVATE FUNCTION adet400_detail_show()<\/p>\n<p>\u7565<\/p>\n<p>05 END FUNCTION<\/p>\n<p>06 {&lt;\/section&gt;}<\/p>\n<p><strong>4.4.14 _set_pk_array \u8bbe\u5b9a\u5355\u5934PK\u6570\u636e\u63d0\u4f9b\u76f8\u5173\u6587\u4ef6\u4f7f\u7528<\/strong><\/p>\n<p>01 {&lt;section id=&#8221;adet400.set_pk_array&#8221; &gt;}<\/p>\n<p>02 #+ \u6b64\u6bb5\u843d\u7531\u5b50\u6837\u677fa51\u4ea7\u751f<\/p>\n<p>03 #+ \u7ed9\u4e88pk_array\u5185\u5bb9<\/p>\n<p>04 PRIVATE FUNCTION adet400_set_pk_array()<\/p>\n<p>\u540c\u5355\u6863<\/p>\n<p>18 END FUNCTION<\/p>\n<p>19 {&lt;\/section&gt;}<\/p>\n<p><strong>4.4.15 _query \u6570\u636e\u67e5\u8be2<\/strong><\/p>\n<p>01 {&lt;section id=&#8221;adet400.query&#8221; &gt;}<\/p>\n<p>\u6b64\u6bb5Query\u7684\u884c\u70ba\u540c\u55ae\u6a94, \u4f46\u591a\u4e86\u6e05\u7a7a\u756b\u9762\u4e0afilter\u689d\u4ef6\u7684\u6bb5\u843d<\/p>\n<p>02 #+ \u6570\u636e\u67e5\u8be2QBE\u529f\u80fd\u51c6\u5907<\/p>\n<p>03 PRIVATE FUNCTION adet400_query()<\/p>\n<p>\u540c\u5355\u6863<\/p>\n<p>14 #\u6e05\u7a7afilter\u6761\u4ef6<\/p>\n<p>15 CALL adet400_filter_show(&#8216;deaqsite&#8217;)<\/p>\n<p>\u7565<\/p>\n<p>21 END FUNCTION<\/p>\n<p>22 {&lt;\/section&gt;}<\/p>\n<p><strong>4.4.16 _ui_browser_refresh \u6d4f\u89c8\u9875\u7b7e\u6570\u636e\u91cd\u65b0\u663e\u793a<\/strong><\/p>\n<p>{&lt;section id=&#8221;adet400.ui_browser_refresh&#8221; &gt;}<\/p>\n<p>#+ \u6d4f\u89c8\u9875\u7b7e\u6570\u636e\u91cd\u65b0\u663e\u793a<\/p>\n<p>PRIVATE FUNCTION adet400_ui_browser_refresh()<\/p>\n<p>\u540c\u5355\u6863<\/p>\n<p>END FUNCTION<\/p>\n<p>{&lt;\/section&gt;}<\/p>\n<p><strong>4.4.17 _construct QBE\u6570\u636e\u67e5\u8be2<\/strong><\/p>\n<p>01 {&lt;section id=&#8221;adet400.construct&#8221; &gt;}<\/p>\n<p>02 #+ QBE\u6570\u636e\u67e5\u8be2<\/p>\n<p>03 PRIVATE FUNCTION adet400_construct()<\/p>\n<p>\u540c\u5355\u6863<\/p>\n<p>11<\/p>\n<p>12 #\u4f7f\u7528DIALOG\u5305\u4f4f \u5355\u5934CONSTRUCT\u53ca\u5355\u8eabCONSTRUCT<\/p>\n<p>13 DIALOG ATTRIBUTES(UNBUFFERED,FIELD ORDER FORM)<\/p>\n<p>\u540c\u5355\u6863<\/p>\n<p>41 #\u5355\u8eab\u6839\u636etable\u5206\u62c6construct<\/p>\n<p>42 CONSTRUCT g_wc2_table1 ON dearseq&#8230; FROM s_detail1[1].dearseq,&#8230;<\/p>\n<p>43 BEFORE CONSTRUCT<\/p>\n<p>Construct\u55ae\u8eab\u6bb5\u843d, \u6839\u64da\u55ae\u8eabtable\u7684\u6578\u91cf\u6703\u6709\u591a\u500bconstruct, \u4e5f\u6703\u6709\u5c0d\u61c9\u7684g_wc2_table\u8b8a\u6578\u627f\u63a5<\/p>\n<p>44<\/p>\n<p>45 #\u5355\u8eab\u4e00\u822c\u5b57\u6bb5\u5f00\u7a97\u76f8\u5173\u5904\u7406<\/p>\n<p>\u7565<\/p>\n<p>77 END CONSTRUCT<\/p>\n<p>78<\/p>\n<p>79 BEFORE DIALOG<\/p>\n<p>80 CALL cl_qbe_init()<\/p>\n<p>81<\/p>\n<p>82 #\u67e5\u8be2\u65b9\u6848\u5217\u8868<\/p>\n<p>83 ON ACTION qbe_select<\/p>\n<p>\u7565<\/p>\n<p>121 CONTINUE DIALOG<\/p>\n<p>construct\u6bb5\u7d50\u675f\u524d\u6703\u91cd\u65b0\u5c07\u6240\u6709\u7684g_wc2_table (\u82e5\u6709\u591a\u500b\u55ae\u8eabtable\u5247\u6703\u6709\u5c0d\u61c9\u6578\u91cf\u7684g_wc2_table)\u7d44\u5408\u70bag_wc2, \u4ee3\u8868\u55ae\u8eab\u6240\u4e0b\u7684\u67e5\u8a62\u689d\u4ef6<\/p>\n<p>122 END DIALOG<\/p>\n<p>123<\/p>\n<p>124 #\u7ec4\u5408g_wc2<\/p>\n<p>125 LET g_wc2 = g_wc2_table1<\/p>\n<p>126<\/p>\n<p>127 IF INT_FLAG THEN<\/p>\n<p>128 RETURN<\/p>\n<p>129 END IF<\/p>\n<p>130 END FUNCTION<\/p>\n<p>131 {&lt;\/section&gt;}<\/p>\n<p><strong>4.4.18 _filter \u8fc7\u6ee4\u6761\u4ef6\u529f\u80fd<\/strong><\/p>\n<p>01 {&lt;section id=&#8221;adet400.filter&#8221; &gt;}<\/p>\n<p>\u6839\u64daQuery\u6240\u67e5\u8a62\u51fa\u4f86\u7684\u689d\u4ef6\u53ef\u80fd\u4e0d\u5920\u7cbe\u78ba, \u53ef\u4ee5\u7d93\u904e\u700f\u89bd\u9801\u7c64\u7684\u904e\u6ffe\u529f\u80fd\u9032\u884c\u7b2c\u4e8c\u6b21\u8cc7\u6599\u7be9\u9078<\/p>\n<p>02 #+ \u6b64\u6bb5\u843d\u7531\u5b50\u6837\u677fa50\u4ea7\u751f<\/p>\n<p>03 #+ filter\u8fc7\u6ee4\u529f\u80fd<\/p>\n<p>04 PRIVATE FUNCTION adet400_filter()<\/p>\n<p>05 #\u5207\u6362\u753b\u9762\u56de\u6d4f\u89c8\u9875\u7b7e\u9875\u9762<\/p>\n<p>\u5148\u5c07\u539f\u5148g_wc\u4e2d\u7684\u7be9\u9078\u689d\u4ef6\u53d6\u6d88\u65b9\u4fbf\u5f8c\u7e8c\u7684\u8655\u7406<\/p>\n<p>\u7565<\/p>\n<p>12 LET g_wc = cl_replace_str(g_wc, g_wc_filter_t, &#8221;)<\/p>\n<p>13<\/p>\n<p>14 #\u4f7f\u7528DIALOG\u5305\u4f4f \u5355\u5934CONSTRUCT\u53ca\u5355\u8eabCONSTRUCT<\/p>\n<p>15 DIALOG ATTRIBUTES(UNBUFFERED,FIELD ORDER FORM)<\/p>\n<p>16<\/p>\n<p>\u6b64\u6bb5construct\u53ef\u4f9b\u67e5\u8a62\u7684\u6b04\u4f4d\u53ea\u6709\u700f\u89bd\u9801\u7c64\u7684\u4e3b\u8868\u6b04\u4f4d<\/p>\n<p>17 CONSTRUCT g_wc_filter ON deaqsite,&#8230;<\/p>\n<p>18<\/p>\n<p>19 BEFORE CONSTRUCT #\u5148\u5c06\u539f\u672c\u7684\u6761\u4ef6\u8fd8\u539f\u5230\u753b\u9762\u4e0a<\/p>\n<p>20 DISPLAY adet400_filter_parser(&#8216;deaqsite&#8217;) TO s_browse[1].b_deaqsite<\/p>\n<p>\u7565<\/p>\n<p>\u6bcf\u6b21\u4f7f\u7528filter\u6642\u6703\u5c07\u67e5\u8a62\u689d\u4ef6\u5132\u5b58\u81f3\u8b8a\u6578\u4e2d, \u7576\u4e0b\u4e00\u6b21\u9032\u884cfilter\u6642\u6703\u5c07\u524d\u4e00\u6b21\u904e\u6ffe\u7684\u689d\u4ef6\u986f\u793a\u65bc\u756b\u9762\u4e0a, \u4f46\u9808\u6ce8\u610f\u7684\u662f\u82e5\u9032\u884cfilter\u529f\u80fd\u5f8c\u91cd\u65b0Query\u5247\u6703\u6e05\u7a7afilter\u5148\u524d\u7684\u689d\u4ef6<\/p>\n<p>41 END CONSTRUCT<\/p>\n<p>42<\/p>\n<p>43 BEFORE DIALOG<\/p>\n<p>44 #add-point:filter\u6bb5b_dialog<\/p>\n<p>45 \u8fdb\u5165fitler\u529f\u80fd\u524d\u82e5\u6709\u9700\u8981\u5904\u7406\u7684\u6bb5\u843d\u53ef\u4e8e\u6b64\u5904\u5b9a\u4e49<\/p>\n<p>46 #end add-point<\/p>\n<p>47 ON ACTION accept<\/p>\n<p>48 CONTINUE DIALOG<\/p>\n<p>49 END DIALOG<\/p>\n<p>\u5c07fitler\u53d6\u5f97\u7684\u689d\u4ef6\u4f75\u5165g_wc\u4e2d, \u53d6\u5f97\u66f4\u7cbe\u78ba\u4e14\u7b26\u5408\u4f7f\u7528\u8005\u9700\u6c42\u7684\u8cc7\u6599\u65b0Query\u5247\u6703\u6e05\u7a7afilter\u5148\u524d\u7684\u689d\u4ef6<\/p>\n<p>50<\/p>\n<p>51 #\u7ec4\u5408\u6761\u4ef6<\/p>\n<p>52 IF NOT INT_FLAG THEN<\/p>\n<p>53 LET g_wc_filter = &#8221; AND &#8220;, g_wc_filter, &#8221; &#8221;<\/p>\n<p>54 LET g_wc = g_wc , g_wc_filter<\/p>\n<p>55 ELSE<\/p>\n<p>56 LET g_wc_filter = g_wc_filter_t<\/p>\n<p>57 LET g_wc = g_wc_t<\/p>\n<p>58 END IF<\/p>\n<p>59<\/p>\n<p>60 #\u663e\u793a\u6761\u4ef6\u5230\u5b57\u6bb5title<\/p>\n<p>\u540c\u6642\u5c07\u4f7f\u7528\u8005\u6240\u8f38\u5165\u7684filter\u689d\u4ef6\u986f\u793a\u65bc\u700f\u89bd\u9801\u7c64\u7684\u6a19\u984c\u4e0a<\/p>\n<p>61 CALL adet400_filter_show(&#8216;deaqsite&#8217;)<\/p>\n<p>\u7565<\/p>\n<p>88 END FUNCTION<\/p>\n<p>89 {&lt;\/section&gt;}<\/p>\n<p>&nbsp;<\/p>\n<p><strong>4.4.19 _filter_parser \u8fc7\u6ee4\u6761\u4ef6\u529f\u80fd(\u6761\u4ef6\u89e3\u6790)<\/strong><\/p>\n<p>01 {&lt;section id=&#8221;adet400.filter_parser&#8221; &gt;}<\/p>\n<p>02 #+ filter\u8fc7\u6ee4\u529f\u80fd<\/p>\n<p>03 PRIVATE FUNCTION adet400_filter_parser(ps_field)<\/p>\n<p>\u7565<\/p>\n<p>\u6b64function\u4e3b\u8981\u89e3\u6790fitler\u6240\u53d6\u5f97\u7684\u5404\u500b\u689d\u4ef6\u4e26\u89e3\u6790, \u4e4b\u5f8c\u56de\u50b3\u8a72\u6b04\u4f4d\u6240\u4e0b\u9054\u7684\u904e\u6ffe\u689d\u4ef6<\/p>\n<p>11 #\u4e00\u822c\u6761\u4ef6\u89e3\u6790<\/p>\n<p>12 LET ls_tmp = ps_field, &#8220;='&#8221;<\/p>\n<p>\u7565<\/p>\n<p>18 #\u6a21\u7cca\u6761\u4ef6\u89e3\u6790<\/p>\n<p>19 LET ls_tmp = ps_field, &#8221; like &#8216;&#8221;<\/p>\n<p>\u7565<\/p>\n<p>25 RETURN ls_var<\/p>\n<p>26 END FUNCTION<\/p>\n<p>27 {&lt;\/section&gt;}<\/p>\n<p><strong>4.4.20 _filter_show \u8fc7\u6ee4\u6761\u4ef6\u529f\u80fd(\u6761\u4ef6\u663e\u793a)<\/strong><\/p>\n<p>01 {&lt;section id=&#8221;adet400.filter_show&#8221; &gt;}<\/p>\n<p>02 #+ \u663e\u793a\u8fc7\u6ee4\u6761\u4ef6<\/p>\n<p>03 PRIVATE FUNCTION adet400_filter_show(ps_field)<\/p>\n<p>\u7565<\/p>\n<p>\u6b64function\u5c07fitler\u53d6\u5f97\u7684\u6b04\u4f4d\u904e\u6ffe\u689d\u4ef6\u986f\u793a\u5230\u700f\u89bd\u9801\u7c64\u4e0a<\/p>\n<p>14 LET ls_name = &#8220;formonly.b_&#8221;, ps_field<\/p>\n<p>\u7565<\/p>\n<p>19 #\u663e\u793a\u6570\u636e\u7ec4\u5408<\/p>\n<p>20 LET ls_condition = adet400_filter_parser(ps_field)<\/p>\n<p>\u7565<\/p>\n<p>28 #\u5c06\u6570\u636e\u663e\u793a\u56de\u53bb<\/p>\n<p>29 CALL lnode_item.setAttribute(&#8220;text&#8221;,ls_title)<\/p>\n<p>30 END FUNCTION<\/p>\n<p>31 {&lt;\/section&gt;}<\/p>\n<p><strong>4.4.21 _insert \u8d44\u6599\u65b0\u589e<\/strong><\/p>\n<p>01 {&lt;section id=&#8221;adet400.insert&#8221; &gt;}<\/p>\n<p>02 #+ \u8d44\u6599\u65b0\u589e<\/p>\n<p>03 PRIVATE FUNCTION adet400_insert()<\/p>\n<p>\u540c\u5355\u6863<\/p>\n<p>67 END FUNCTION<\/p>\n<p>68 {&lt;\/section&gt;}<\/p>\n<p><strong>4.4.22 _insert_b \u5355\u8eab\u8d44\u6599\u65b0\u589e<\/strong><\/p>\n<p>01{&lt;section id=&#8221;adet400.insert_b&#8221; &gt;}<\/p>\n<p>02 #+ \u65b0\u589e\u5355\u8eab\u540e\u5176\u4ed6table\u8fde\u52a8<\/p>\n<p>03 PRIVATE FUNCTION adet400_insert_b(ps_table,ps_keys,ps_page)<\/p>\n<p>04 DEFINE ps_table STRING<\/p>\n<p>\u7565<\/p>\n<p>06 LET g_update = TRUE<\/p>\n<p>07 #\u5224\u65ad\u662f\u5426\u662f\u540c\u4e00\u7fa4\u7ec4\u7684table<\/p>\n<p>08 LET ls_group = &#8220;&#8216;1&#8217;,&#8221;<\/p>\n<p>09 IF ls_group.getIndexOf(ps_page,1) &gt; 0 THEN<\/p>\n<p>10 INSERT INTO dear_t (dearent,&#8230;) VALUES(g_enterprise,&#8230;)<\/p>\n<p>11 IF SQLCA.sqlcode THEN<\/p>\n<p>\u55ae\u8eab\u8cc7\u6599\u65b0\u589e\u9664\u6642\u6703\u78ba\u8a8d\u662f\u5426\u6709\u5176\u4ed6\u55ae\u8eab\u70ba\u540c\u4e00\u500b\u7fa4\u7d44, \u82e5\u6709\u7684\u8a71\u5247\u5728\u540c\u7fa4\u7d44\u5167\u7684\u55ae\u8eab\u65b0\u589e\u8a72\u7b46\u8cc7\u6599<\/p>\n<p>\u7565<\/p>\n<p>15 END IF<\/p>\n<p>16 END IF<\/p>\n<p>17 END FUNCTION<\/p>\n<p>18 {&lt;\/section&gt;}<\/p>\n<p><strong>4.4.23 _input \u6570\u636e\u8f93\u5165<\/strong><\/p>\n<p>01 {&lt;section id=&#8221;adet400.input&#8221; &gt;}<\/p>\n<p>02 #+ \u6570\u636e\u8f93\u5165<\/p>\n<p>03 PRIVATE FUNCTION adet400_input(p_cmd)<\/p>\n<p>\u7565<\/p>\n<p>32 #\u5148\u505a\u72b6\u6001\u5224\u5b9a<\/p>\n<p>33 IF p_cmd = &#8216;r&#8217; THEN<\/p>\n<p>\u9032\u5165input\u6bb5\u6642\u540c\u55ae\u6a94\u9808\u5148\u9032\u884cp_cmd\u7684\u8f49\u63db, \u4f46\u662f\u6b64\u8655\u7684r(\u8907\u88fd)\u884c\u70ba\u8207\u55ae\u6a94\u6709\u6240\u4e0d\u540c, \u9700\u984d\u5916\u9032\u884c\u55ae\u8eab\u7684\u8907\u88fd\u8655\u7406<\/p>\n<p>34 LET l_cmd_t = &#8216;r&#8217;<\/p>\n<p>35 LET p_cmd = &#8216;a&#8217;<\/p>\n<p>36 ELSE<\/p>\n<p>37 LET l_cmd_t = p_cmd<\/p>\n<p>38 END IF<\/p>\n<p>\u7565<\/p>\n<p>56 LET g_forupd_sql = &#8220;SELECT dearseq,&#8230; WHERE &#8230;&#8221;<\/p>\n<p>\u6b64\u8655\u5b9a\u7fa9\u7684\u662f\u55ae\u8eab\u7684lock SQL, \u82e5\u6709\u8d85\u904e\u4e00\u500b\u7684\u55ae\u8eab, \u5247\u6b64\u8655\u6703\u7522\u51fa\u591a\u6bb5SQL<\/p>\n<p>57 LET g_forupd_sql = cl_sql_forupd(g_forupd_sql)<\/p>\n<p>58 LET g_forupd_sql = cl_sql_add_mask(g_forupd_sql)<\/p>\n<p>59 #\u906e\u853d\u7279\u5b9a\u8d44\u6599<\/p>\n<p>60 DECLARE adet400_bcl CURSOR FROM g_forupd_sql<\/p>\n<p>61<\/p>\n<p>62 LET l_allow_insert = cl_auth_detail_input(&#8220;insert&#8221;)<\/p>\n<p>\u53d6\u5f97\u55ae\u8eab\u662f\u5426\u5141\u8a31\u65b0\u589e\/\u4fee\u6539\/\u522a\u9664\u7684\u6b0a\u9650<\/p>\n<p>63 LET l_allow_delete = cl_auth_detail_input(&#8220;delete&#8221;)<\/p>\n<p>64 LET g_qryparam.state = &#8216;i&#8217;<\/p>\n<p>\u7565<\/p>\n<p>65 DISPLAY BY NAME g_deaq_m.deaqsite,&#8230;<\/p>\n<p>66 LET lb_reproduce = FALSE #\u786e\u5b9a\u662f\u5426\u590d\u5236\u8fc7\u5355\u8eab<\/p>\n<p>67<\/p>\n<p>68 DIALOG ATTRIBUTES(UNBUFFERED,FIELD ORDER FORM)<\/p>\n<p>69 {&lt;\/section&gt;}<\/p>\n<p>70 {&lt;section id=&#8221;adet400.input.head&#8221; &gt;}<\/p>\n<p>71 #\u5355\u5934\u6bb5<\/p>\n<p>72 INPUT BY NAME g_deaq_m.deaqsite, &#8230; ATTRIBUTE(WITHOUT DEFAULTS)<\/p>\n<p>\u540c\u5355\u6863<\/p>\n<p>102 AFTER INPUT<\/p>\n<p>\u540c\u5355\u6863<\/p>\n<p>187 IF l_cmd_t = &#8216;r&#8217; AND p_cmd = &#8216;a&#8217; THEN<\/p>\n<p>\u6b64\u8655\u5224\u65b7\u5982\u679c\u662f\u8907\u88fd, \u5247\u9700\u5728\u5beb\u5165\u55ae\u982d\u8cc7\u6599\u5f8c\u4e00\u4f75\u8907\u88fd\u55ae\u8eab\u8cc7\u6599<\/p>\n<p>188 CALL adet400_detail_reproduce()<\/p>\n<p>189 END IF<\/p>\n<p>190 LET p_cmd = &#8216;u&#8217;<\/p>\n<p>\u540c\u5355\u6863<\/p>\n<p>244 END INPUT<\/p>\n<p>\u55ae\u8eab\u8f38\u5165\u6bb5, \u8cc7\u6599\u53ef\u5426\u65b0\u589e\/\u522a\u9664\u53ef\u900f\u904e\u8a2d\u5b9a\u8655\u7406, \u6bcf\u500b\u55ae\u8eab\u9801\u7c64\u6703\u6709\u4e00\u500b\u5c0d\u61c9\u7684INPUT ARRAY\u6bb5<\/p>\n<p>245 {&lt;\/section&gt;}<\/p>\n<p>246 {&lt;section id=&#8221;adet400.input.body&#8221; &gt;}<\/p>\n<p>247 #Page1 \u9ed8\u8ba4\u503c\u4ea7\u751f\u4e8e\u6b64\u5904<\/p>\n<p>248 INPUT ARRAY g_dear_d FROM s_detail1.* ATTRIBUTE(COUNT = g_rec_b, &#8230;)<\/p>\n<p>249 BEFORE INPUT<\/p>\n<p>250 IF g_insert = &#8216;Y&#8217; AND NOT cl_null(g_insert) THEN<\/p>\n<p>251 CALL FGL_SET_ARR_CURR(g_dear_d.getLength()+1)<\/p>\n<p>252 LET g_insert = &#8216;N&#8217;<\/p>\n<p>\u55ae\u8eab\u7684\u65b0\u589e\u53ea\u80fd\u5920\u5728\u8a72\u8868\u683c\u7684\u7b2c\u4e00\u500b\u9801\u7c64, \u82e5\u662f\u5728\u5176\u4ed6\u9801\u7c64\u65b0\u589e\u8cc7\u6599\u6642\u5247\u6703\u88ab\u5f37\u5236\u5c0e\u56de\u7b2c\u4e00\u9801\u9032\u884c\u65b0\u589e<\/p>\n<p>253 END IF<\/p>\n<p>254 CALL adet400_b_fill()<\/p>\n<p>255 #\u5982\u679c\u4e00\u76f4\u90fd\u5728\u5355\u8eab1\u5219\u63a7\u5236\u7b14\u6570\u4f4d\u7f6e<\/p>\n<p>256 IF g_loc = &#8216;m&#8217; AND g_rec_b != 0 THEN<\/p>\n<p>257 CALL FGL_SET_ARR_CURR(g_detail_idx)<\/p>\n<p>258 END IF<\/p>\n<p>259 LET g_loc = &#8216;m&#8217; 255<\/p>\n<p>260 LET g_rec_b = g_dear_d.getLength()<\/p>\n<p>261 BEFORE ROW<\/p>\n<p>262 LET l_insert = FALSE<\/p>\n<p>\u9032\u5165\u5230\u4efb\u4f55\u4e00\u7b46\u55ae\u8eab\u8cc7\u6599\u6642\u5148\u9032\u884c\u9396\u5b9a, \u78ba\u4fdd\u5f8c\u7e8c\u7684\u4fee\u6539\u80fd\u5920\u6b63\u5e38\u5beb\u5165<\/p>\n<p>\u7565<\/p>\n<p>280 CALL s_transaction_begin()<\/p>\n<p>281 OPEN adet400_cl USING g_enterprise,g_deaq_m.deaqdocno<\/p>\n<p>282 IF STATUS THEN<\/p>\n<p>\u7565<\/p>\n<p>290 END IF<\/p>\n<p>291<\/p>\n<p>292 LET g_rec_b = g_dear_d.getLength()<\/p>\n<p>293 IF g_rec_b &gt;= l_ac AND g_dear_d[l_ac].dearseq IS NOT NULL THEN<\/p>\n<p>294 LET l_cmd=&#8217;u&#8217;<\/p>\n<p>295 LET g_dear_d_t.* = g_dear_d[l_ac].* #BACKUP<\/p>\n<p>296 LET g_dear_d_o.* = g_dear_d[l_ac].* #BACKUP<\/p>\n<p>297 CALL adet400_set_entry_b(l_cmd)<\/p>\n<p>\u9032\u5165\u6bcf\u4e00\u7b46\u55ae\u8eab\u8cc7\u6599\u524d\u5148\u9032\u884c\u8cc7\u6599\u5099\u4efd, \u4ee5\u53ca\u958b\u555f\u6216\u95dc\u9589\u7279\u5b9a\u6b04\u4f4d\u7684\u8655\u7406, \u4e26\u9032\u884c\u76f8\u95dc\u8cc7\u6599\u7684lock<\/p>\n<p>298 CALL adet400_set_no_entry_b(l_cmd)<\/p>\n<p>299 IF NOT adet400_lock_b(&#8220;dear_t&#8221;,&#8221;&#8216;1&#8242;&#8221;) THEN<\/p>\n<p>300 LET l_lock_sw=&#8217;Y&#8217;<\/p>\n<p>301 ELSE<\/p>\n<p>302 FETCH adet400_bcl INTO g_dear_d[l_ac].dearseq,&#8230;<\/p>\n<p>303 IF SQLCA.sqlcode THEN<\/p>\n<p>\u7565<\/p>\n<p>\u91cd\u65b0\u5e36\u51fa\u53c3\u7167\u6b04\u4f4d\u7684\u5167\u5bb9, \u4f46\u4e0d\u5237\u65b0\u55ae\u8eab\u8cc7\u6599, \u78ba\u4fdd\u4e0d\u5f71\u97ff\u55ae\u8eab\u7684\u7b46\u6578\u5167\u5bb9<\/p>\n<p>321 END IF<\/p>\n<p>322 LET g_bfill = &#8220;N&#8221;<\/p>\n<p>323 CALL adet400_show()<\/p>\n<p>324 LET g_bfill = &#8220;Y&#8221;<\/p>\n<p>325 CALL cl_show_fld_cont()<\/p>\n<p>325 END IF<\/p>\n<p>327 ELSE<\/p>\n<p>328 LET l_cmd=&#8217;a&#8217;<\/p>\n<p>329 END IF<\/p>\n<p>330<\/p>\n<p>331 BEFORE INSERT<\/p>\n<p>\u7565<\/p>\n<p>341 CALL adet400_set_entry_b(l_cmd)<\/p>\n<p>\u95dc\u9589\/\u958b\u555f\u55ae\u8eab\u7279\u5b9a\u6b04\u4f4d\u7684\u7de8\u8f2f\u529f\u80fd<\/p>\n<p>342 CALL adet400_set_no_entry_b(l_cmd)<\/p>\n<p>343 IF lb_reproduce THEN<\/p>\n<p>344 LET lb_reproduce = FALSE<\/p>\n<p>345 LET g_dear_d[li_reproduce_target].* = g_dear_d[li_reproduce].*<\/p>\n<p>346 LET g_dear_d[li_reproduce_target].dearseq = NULL<\/p>\n<p>347 END IF<\/p>\n<p>348<\/p>\n<p>349 AFTER INSERT<\/p>\n<p>\u7565<\/p>\n<p>376 SELECT COUNT(*) INTO l_count FROM dear_t WHERE dearent = g_enterprise AND &#8230;<\/p>\n<p>377 #\u6570\u636e\u672a\u91cd\u590d, \u63d2\u5165\u65b0\u589e\u6570\u636e<\/p>\n<p>378 IF l_count = 0 THEN<\/p>\n<p>\u5224\u5b9a\u8a72\u7b46\u8cc7\u6599\u7684\u9375\u503c\u6c92\u6709\u91cd\u8907\u6642\u5247\u547c\u53ebinsert_b, \u5c07\u8cc7\u6599\u5beb\u5165\u5c0d\u61c9\u7684\u55ae\u8eab\u8868\u4e2d<\/p>\n<p>379 #\u540c\u6b65\u65b0\u589e\u5230\u540c\u5c42\u7684table<\/p>\n<p>380 INITIALIZE gs_keys TO NULL<\/p>\n<p>381 LET gs_keys[1] = g_deaq_m.deaqdocno<\/p>\n<p>382 LET gs_keys[2] = g_dear_d[g_detail_idx].dearseq<\/p>\n<p>383 CALL adet400_insert_b(&#8216;dear_t&#8217;,gs_keys,&#8221;&#8216;1&#8242;&#8221;)<\/p>\n<p>\u7565<\/p>\n<p>401 BEFORE DELETE #\u662f\u5426\u53d6\u6d88\u5355\u8eab<\/p>\n<p>\u82e5\u70bal_cmd\u70baa\u4ee3\u8868\u525b\u8cc7\u6599\u70ba\u525b\u65b0\u589e, \u5c1a\u672a\u5beb\u5165\u8cc7\u6599\u5eab<\/p>\n<p>402 IF l_cmd = &#8216;a&#8217; THEN<\/p>\n<p>403 LET l_cmd=&#8217;d&#8217;<\/p>\n<p>404 ELSE<\/p>\n<p>405 IF NOT cl_ask_del_detail() THEN<\/p>\n<p>\u5148\u9032\u884c\u8a62\u554f, \u78ba\u5b9a\u522a\u9664\u8a72\u7b46\u55ae\u8eab\u8cc7\u6599, \u5982\u679c\u70ba\u5426\u5247\u53d6\u6d88\u522a\u9664<\/p>\n<p>406 CANCEL DELETE<\/p>\n<p>407 END IF<\/p>\n<p>408 IF l_lock_sw = &#8220;Y&#8221; THEN<\/p>\n<p>\u82e5\u8a72\u7b46\u8cc7\u6599\u5df2\u88ab\u9396\u5b9a, \u5247\u63d0\u793a\u932f\u8aa4\u8a0a\u606f\u4e26\u53d6\u6d88\u522a\u9664<\/p>\n<p>\u7565<\/p>\n<p>414 CALL cl_err()<\/p>\n<p>415 CANCEL DELETE<\/p>\n<p>416 END IF<\/p>\n<p>417<\/p>\n<p>418 #\u53d6\u5f97\u8be5\u7b14\u8d44\u6599key\u503c<\/p>\n<p>419 INITIALIZE gs_keys TO NULL<\/p>\n<p>420 LET gs_keys[01] = g_deaq_m.deaqdocno<\/p>\n<p>421 LET gs_keys[gs_keys.getLength()+1] = g_dear_d_t.dearseq<\/p>\n<p>422<\/p>\n<p>423 #\u5220\u9664\u540c\u5c42\u5355\u8eab<\/p>\n<p>424 IF NOT adet400_delete_b(&#8216;dear_t&#8217;,gs_keys,&#8221;&#8216;1&#8242;&#8221;) THEN<\/p>\n<p>425 CALL s_transaction_end(&#8216;N&#8217;,&#8217;0&#8242;)<\/p>\n<p>\u6839\u64da\u8981\u522a\u9664\u7684\u8cc7\u6599\u8207\u8868\u683c\u9032\u884c\u6bd4\u5c0d, \u4e00\u540c\u522a\u9664\u5176\u4ed6\u76f8\u95dc\u8868\u683c\u7684\u5c0d\u61c9\u8cc7\u6599<\/p>\n<p>426 CLOSE adet400_bcl<\/p>\n<p>427 CANCEL DELETE<\/p>\n<p>428 END IF<\/p>\n<p>429<\/p>\n<p>430 #\u5220\u9664\u4e0b\u5c42\u5355\u8eab<\/p>\n<p>431 IF NOT adet400_key_delete_b(gs_keys,&#8217;dear_t&#8217;) THEN<\/p>\n<p>432 CALL s_transaction_end(&#8216;N&#8217;,&#8217;0&#8242;)<\/p>\n<p>\u8a72\u6bb5\u843d\u70ba\u4e0a\u5c64\u55ae\u8eab, \u522a\u9664\u6642\u9023\u5e36\u522a\u9664\u4e0b\u5c64\u55ae\u8eab\u8cc7\u6599<\/p>\n<p>433 CLOSE adet400_bcl<\/p>\n<p>434 CANCEL DELETE<\/p>\n<p>435 END IF<\/p>\n<p>436<\/p>\n<p>437 CALL s_transaction_end(&#8216;Y&#8217;,&#8217;0&#8242;)<\/p>\n<p>438 CLOSE adet400_bcl<\/p>\n<p>439 LET g_rec_b = g_rec_b-1<\/p>\n<p>440 LET l_count = g_dear_d.getLength()<\/p>\n<p>441 END IF<\/p>\n<p>442<\/p>\n<p>443 AFTER DELETE<\/p>\n<p>444 #\u5982\u679c\u662f\u6700\u540e\u4e00\u7b14<\/p>\n<p>\u82e5\u522a\u9664\u7684\u8cc7\u6599\u70ba\u8a72\u55ae\u8eab\u7684\u6700\u5f8c\u4e00\u7b46\u8cc7\u6599\u5247\u5c07\u6307\u6a19\u5f80\u524d\u632a\u4e00\u7b46<\/p>\n<p>445 IF l_ac = (g_dear_d.getLength() + 1) THEN<\/p>\n<p>446 CALL FGL_SET_ARR_CURR(l_ac-1)<\/p>\n<p>447 END IF<\/p>\n<p>\u7565<\/p>\n<p>461 ON ROW CHANGE<\/p>\n<p>\u7565<\/p>\n<p>467 IF l_lock_sw = &#8216;Y&#8217; THEN<\/p>\n<p>\u7565<\/p>\n<p>469 LET g_dear_d[l_ac].* = g_dear_d_t.*<\/p>\n<p>\u8cc7\u6599\u66f4\u65b0\u524d\u5148\u5c07\u88ab\u906e\u7f69\u7684\u6b04\u4f4d\u8cc7\u6599\u9084\u539f, \u7136\u5f8c\u518d\u9032\u884c\u8cc7\u6599\u66f4\u65b0<\/p>\n<p>470 ELSE<\/p>\n<p>471 #\u5c06\u5c4f\u853d\u5b57\u6bb5\u8fd8\u539f<\/p>\n<p>472 CALL adet400_dear_t_mask_restore(&#8216;restore_mask_o&#8217;)<\/p>\n<p>473<\/p>\n<p>474 UPDATE dear_t SET (deardocno,&#8230;) = (g_deaq_m.deaqdocno,&#8230;)<\/p>\n<p>475 WHERE dearent = g_enterprise &#8230;<\/p>\n<p>476<\/p>\n<p>477 CASE<\/p>\n<p>478 WHEN SQLCA.sqlerrd[3] = 0 #\u66f4\u65b0\u4e0d\u5230\u7684\u5904\u7406<\/p>\n<p>\u7565<\/p>\n<p>\u6839\u64da\u8981\u4fee\u6539\u7684\u8cc7\u6599\u8207\u8868\u683c\u9032\u884c\u6bd4\u5c0d, \u4e00\u540c\u4fee\u6539\u5176\u4ed6\u76f8\u95dc\u8868\u683c\u7684\u5c0d\u61c9\u8cc7\u6599<\/p>\n<p>482 OTHERWISE<\/p>\n<p>483 INITIALIZE gs_keys TO NULL<\/p>\n<p>484 LET gs_keys[1] = g_deaq_m.deaqdocno<\/p>\n<p>485 LET gs_keys_bak[1] = g_deaqdocno_t<\/p>\n<p>486 LET gs_keys[2] = g_dear_d[g_detail_idx].dearseq<\/p>\n<p>487 LET gs_keys_bak[2] = g_dear_d_t.dearseq<\/p>\n<p>488 CALL adet400_update_b(&#8216;dear_t&#8217;,gs_keys,gs_keys_bak,&#8221;&#8216;1&#8242;&#8221;)<\/p>\n<p>489 END CASE<\/p>\n<p>\u518d\u6b21\u5728\u8cc7\u6599\u9032\u884c\u906e\u853d, \u78ba\u4fdd\u8cc7\u6599\u986f\u793a\u65bc\u756b\u9762\u4e0a\u6642\u5df2\u5b8c\u6210\u906e\u7f69\u8655\u7406<\/p>\n<p>490<\/p>\n<p>491 #\u5c06\u5c4f\u853d\u5b57\u6bb5\u8fdb\u884c\u906e\u853d<\/p>\n<p>492 CALL adet400_dear_t_mask_restore(&#8216;restore_mask_n&#8217;)<\/p>\n<p>493<\/p>\n<p>\u8a72\u6bb5\u843d\u70ba\u4e0a\u5c64\u55ae\u8eab, \u7570\u52d5key\u503c\u6642\u9023\u5e36\u66f4\u52d5\u4e0b\u5c64\u55ae\u8eab\u8cc7\u6599<\/p>\n<p>494 #\u5224\u65adkey\u662f\u5426\u6709\u6539\u53d8<\/p>\n<p>495 INITIALIZE gs_keys TO NULL<\/p>\n<p>496 IF NOT(g_dear_d[g_detail_idx].dearseq = g_dear_d_t.dearseq) THEN<\/p>\n<p>497 LET gs_keys[01] = g_deaq_m.deaqdocno<\/p>\n<p>498 LET gs_keys[gs_keys.getLength()+1] = g_dear_d_t.dearseq<\/p>\n<p>499 CALL adet400_key_update_b(gs_keys,&#8217;dear_t&#8217;)<\/p>\n<p>500 END IF<\/p>\n<p>501 #\u4fee\u6539\u5386\u7a0b\u8bb0\u5f55<\/p>\n<p>502 LET g_log1 = util.JSON.stringify(g_deaq_m),util.JSON.stringify(g_dear_d_t)<\/p>\n<p>503 LET g_log2 = util.JSON.stringify(g_deaq_m),util.JSON.stringify(g_dear_d[l_ac])<\/p>\n<p>504 IF NOT cl_log_modified_record(g_log1,g_log2) THEN<\/p>\n<p>505 CALL s_transaction_end(&#8216;N&#8217;,&#8217;0&#8242;)<\/p>\n<p>506 END IF<\/p>\n<p>\u8a18\u9304\u4fee\u6539\u524d\u8207\u4fee\u6539\u5f8c\u7684\u55ae\u8eab\u8cc7\u6599, \u8a72\u8cc7\u6599\u5c07\u5b58\u5165\u8cc7\u6599\u5eab, \u53ef\u900f\u904e\u5c0d\u61c9\u7684\u5de5\u5177\u67e5\u770b\u76f8\u95dc\u7684\u4fee\u6539\u7d00\u9304<\/p>\n<p>507 END IF<\/p>\n<p>508<\/p>\n<p>509 AFTER ROW<\/p>\n<p>\u7565<\/p>\n<p>514 CALL adet400_unlock_b(&#8220;dear_t&#8221;,&#8221;&#8216;1&#8242;&#8221;)<\/p>\n<p>515 CALL s_transaction_end(&#8216;Y&#8217;,&#8217;0&#8242;)<\/p>\n<p>\u96e2\u958b\u8a72\u7b46\u55ae\u8eab\u6642\u5c07\u89e3\u958b\u8a72\u7b46\u8cc7\u6599\u7684lock, \u4e26\u5c07\u904e\u7a0b\u4e2d\u7684\u52d5\u4f5c\u5beb\u5165\u8cc7\u6599\u5eab<\/p>\n<p>516<\/p>\n<p>517 AFTER INPUT<\/p>\n<p>\u7565<\/p>\n<p>521 ON ACTION controlo<\/p>\n<p>\u8907\u88fd\u55ae\u8eab\u529f\u80fd, \u5c07\u7576\u4e0b\u7b46\u6578\u9078\u64c7\u7684\u8cc7\u6599\u8907\u88fd\u4e26\u79fb\u52d5\u5230\u6700\u672b\u7b46, \u540c\u6642\u6e05\u9664\u55ae\u8eab\u9375\u503c\u6b04\u4f4d\u7684\u8cc7\u6599<\/p>\n<p>522 CALL FGL_SET_ARR_CURR(g_dear_d.getLength()+1)<\/p>\n<p>523 LET lb_reproduce = TRUE<\/p>\n<p>524 LET li_reproduce = l_ac<\/p>\n<p>525 LET li_reproduce_target = g_dear_d.getLength()+1<\/p>\n<p>526 END INPUT<\/p>\n<p>527 {&lt;\/section&gt;}<\/p>\n<p>528 {&lt;section id=&#8221;adet400.input.other&#8221; &gt;}<\/p>\n<p>529 BEFORE DIALOG<\/p>\n<p>\u7565<\/p>\n<p>538 #\u65b0\u589e\u65f6\u5f3a\u5236\u4ece\u5355\u5934\u5f00\u59cb\u586b<\/p>\n<p>\u9ede\u64ca\u65b0\u589e\u529f\u80fd\u6642\u6703\u5f37\u5236\u5148\u5c0e\u5230\u55ae\u982d\u6bb5\u843d, \u82e5\u9ede\u64camodify_detail\u6309\u9215\u9032\u5230\u6b64\u6bb5\u843d\u5247\u6703\u6839\u64da\u7576\u4e0b\u9ede\u64ca\u7684\u9801\u7c64\u9032\u884c\u5c0d\u61c9\u7684\u9801\u7c64key\u6b04\u4f4d<\/p>\n<p>539 IF p_cmd = &#8216;a&#8217; THEN<\/p>\n<p>540 NEXT FIELD deaqdocno<\/p>\n<p>541 ELSE<\/p>\n<p>542 CASE g_aw<\/p>\n<p>543 WHEN &#8220;s_detail1&#8221;<\/p>\n<p>544 NEXT FIELD dearseq<\/p>\n<p>545 END CASE<\/p>\n<p>546 END IF<\/p>\n<p>\u7565<\/p>\n<p>557 CONTINUE DIALOG<\/p>\n<p>558 END DIALOG<\/p>\n<p>559 END FUNCTION<\/p>\n<p>560{&lt;\/section&gt;}<\/p>\n<p><strong>4.4.24 _lock_b\u5355\u8eab\u6570\u636e\u9501\u5b9a<\/strong><\/p>\n<p>01 {&lt;section id=&#8221;adet400.lock_b&#8221; &gt;}<\/p>\n<p>02 #+ \u8fde\u52a8lock\u5176\u4ed6\u5355\u8eabtable\u6570\u636e<\/p>\n<p>03 PRIVATE FUNCTION adet400_lock_b(ps_table,ps_page)<\/p>\n<p>\u7565<\/p>\n<p>\u55ae\u8eab\u8cc7\u6599\u9032\u5165\u4fee\u6539\u524d\u9808\u5148\u9396\u5b9a\u8a72\u7b46\u8cc7\u6599, \u6b64\u8655\u91dd\u5c0d\u540c\u7fa4\u7d44\u7684\u55ae\u8eab\u8cc7\u6599\u4e00\u540c\u9032\u884c\u9396\u5b9a(key\u503c\u76f8\u540c)<\/p>\n<p>13 #\u9501\u5b9a\u6574\u7ec4table<\/p>\n<p>14 #LET ls_group = &#8220;&#8216;1&#8217;,&#8221;<\/p>\n<p>15 #\u4ec5\u9501\u5b9a\u81ea\u8eabtable<\/p>\n<p>16 LET ls_group = &#8220;dear_t&#8221;<\/p>\n<p>17 IF ls_group.getIndexOf(ps_table,1) THEN<\/p>\n<p>18 OPEN adet400_bcl USING g_enterprise,&#8230;<\/p>\n<p>19 IF SQLCA.sqlcode THEN<\/p>\n<p>\u7565<\/p>\n<p>25 END IF<\/p>\n<p>26 END IF<\/p>\n<p>27 RETURN TRUE<\/p>\n<p>28 END FUNCTION<\/p>\n<p>29 {&lt;\/section&gt;}<\/p>\n<p>&nbsp;<\/p>\n<p><strong>4.4.25 _unlock_b\u5355\u8eab\u8d44\u6599\u89e3\u9501<\/strong><\/p>\n<p>01 {&lt;section id=&#8221;adet400.unlock_b&#8221; &gt;}<\/p>\n<p>02 #+ \u8fde\u52a8unlock\u5176\u4ed6\u5355\u8eabtable\u6570\u636e<\/p>\n<p>03 PRIVATE FUNCTION adet400_unlock_b(ps_table,ps_page)<\/p>\n<p>\u7565<\/p>\n<p>\u55ae\u8eab\u8cc7\u6599\u7d50\u675f\u4fee\u6539\u524d\u9808\u5247\u89e3\u9396\u8a72\u7b46\u8cc7\u6599, \u6b64\u8655\u91dd\u5c0d\u540c\u7fa4\u7d44\u7684\u55ae\u8eab\u8cc7\u6599\u4e00\u540c\u9032\u884c\u89e3\u9396(key\u503c\u76f8\u540c)<\/p>\n<p>08 LET ls_group = &#8220;&#8216;1&#8217;,&#8221;<\/p>\n<p>09 IF ls_group.getIndexOf(ps_page,1) THEN<\/p>\n<p>10 CLOSE adet400_bcl<\/p>\n<p>11 END IF<\/p>\n<p>12 END FUNCTION<\/p>\n<p>13 {&lt;\/section&gt;}<\/p>\n<p><strong>4.4.26 _modify \u6570\u636e\u4fee\u6539<\/strong><\/p>\n<p>01 {&lt;section id=&#8221;adet400.modify&#8221; &gt;}<\/p>\n<p>02 #+ \u6570\u636e\u4fee\u6539<\/p>\n<p>03 PRIVATE FUNCTION adet400_modify()<\/p>\n<p>\u540c\u5355\u6863<\/p>\n<p>41 #\u5b57\u6bb5\u66f4\u6539<\/p>\n<p>42 LET g_update = FALSE<\/p>\n<p>43 CALL adet400_input(&#8220;u&#8221;)<\/p>\n<p>\u7565<\/p>\n<p>\u78ba\u8a8d\u8cc7\u6599\u6709\u7570\u52d5\u5f8c(\u55ae\u982d\u6216\u55ae\u8eab)\u9032\u884c\u4fee\u6539\u8005\u4ee5\u53ca\u4fee\u6539\u6642\u9593\u6b04\u4f4d\u7684\u7570\u52d5<\/p>\n<p>50 IF g_update OR NOT INT_FLAG THEN<\/p>\n<p>51 #\u82e5\u6709modid\u8ddfmoddt\u5219\u8fdb\u884cupdate<\/p>\n<p>52 UPDATE deaq_t SET (deaqmodid,deaqmoddt) = (g_deaq_m.deaqmodid,g_deaq_m.deaqmoddt)<\/p>\n<p>53 WHERE deaqent = g_enterprise AND deaqdocno = g_deaqdocno_t<\/p>\n<p>54 END IF<\/p>\n<p>\u540c\u5355\u6863<\/p>\n<p>85 END FUNCTION<\/p>\n<p>86 {&lt;\/section&gt;}<\/p>\n<p><strong>4.4.27 _update_b \u5355\u8eab\u6570\u636e\u4fee\u6539<\/strong><\/p>\n<p>01 {&lt;section id=&#8221;adet400.update_b&#8221; &gt;}<\/p>\n<p>02 #+ \u4fee\u6539\u5355\u8eab\u540e\u5176\u4ed6table\u8fde\u52a8<\/p>\n<p>03 PRIVATE FUNCTION adet400_update_b(ps_table,ps_keys,ps_keys_bak,ps_page)<\/p>\n<p>\u7565<\/p>\n<p>07 LET g_update = TRUE<\/p>\n<p>08 #\u5224\u65adkey\u662f\u5426\u6709\u6539\u53d8<\/p>\n<p>09 LET lb_chk = TRUE<\/p>\n<p>10 FOR li_idx = 1 TO ps_keys.getLength()<\/p>\n<p>11 IF ps_keys[li_idx] &lt;&gt; ps_keys_bak[li_idx] THEN<\/p>\n<p>12 LET lb_chk = FALSE<\/p>\n<p>13 EXIT FOR<\/p>\n<p>\u55ae\u8eab\u8cc7\u6599\u4fee\u6539\u5f8c\u9808\u9032\u884c\u6aa2\u67e5, \u82e5key\u503c\u5167\u5bb9\u6709\u7570\u52d5\u5247\u6703\u5f71\u97ff\u540c\u7fa4\u7d44\u5167\u7684\u5176\u4ed6\u55ae\u8eab\u8cc7\u6599, \u6b64\u8655\u5148\u91dd\u5c0dkey\u662f\u5426\u7570\u52d5\u9032\u884c\u6aa2\u67e5key\u6b04\u4f4d<\/p>\n<p>14 END IF<\/p>\n<p>15 END FOR<\/p>\n<p>16<\/p>\n<p>17 #\u4e0d\u9700\u8981\u505a\u5904\u7406<\/p>\n<p>18 IF lb_chk THEN<\/p>\n<p>19 RETURN<\/p>\n<p>20 END IF<\/p>\n<p>\u78ba\u5b9akey\u503c\u6709\u7570\u52d5\u7684\u72c0\u6cc1\u4e0b\u5247\u5c0d\u540c\u7fa4\u7d44\u5167\u7684\u5176\u4ed6\u55ae\u8eab\u8cc7\u6599\u9032\u884c\u9375\u503c\u7570\u52d5<\/p>\n<p>21<\/p>\n<p>22 #\u5224\u65ad\u662f\u5426\u662f\u540c\u4e00\u7fa4\u7ec4\u7684table<\/p>\n<p>23 LET ls_group = &#8220;&#8216;1&#8217;,&#8221;<\/p>\n<p>24 IF ls_group.getIndexOf(ps_page,1) &gt; 0 AND ps_table &lt;&gt; &#8220;dear_t&#8221; THEN<\/p>\n<p>25 UPDATE dear_t SET (deardocno,&#8230;) = (ps_keys[1],&#8230;)<\/p>\n<p>26 WHERE dearent = g_enterprise &#8230;<\/p>\n<p>\u7565<\/p>\n<p>41 END IF<\/p>\n<p>42 END FUNCTION<\/p>\n<p>43 {&lt;\/section&gt;}<\/p>\n<p><strong>4.4.28 _reproduce \u6570\u636e\u590d\u5236<\/strong><\/p>\n<p>01 {&lt;section id=&#8221;adet400.reproduce&#8221; &gt;}<\/p>\n<p>02 #+ \u6570\u636e\u590d\u5236<\/p>\n<p>03 PRIVATE FUNCTION adet400_reproduce()<\/p>\n<p>\u540c\u5355\u6863<\/p>\n<p>54 END FUNCTION<\/p>\n<p>55 {&lt;\/section&gt;}<\/p>\n<p>&nbsp;<\/p>\n<p><strong>4.4.29 _detail_reproduce\u5355\u8eab\u6570\u636e\u590d\u5236<\/strong><\/p>\n<p>01 {&lt;section id=&#8221;adet400.detail_reproduce&#8221; &gt;}<\/p>\n<p>02 #+ \u5355\u8eab\u81ea\u52a8\u590d\u5236<\/p>\n<p>\u4e0d\u540c\u65bc\u55ae\u6a94\u7684\u8907\u88fd\u529f\u80fd, \u96d9\u6a94\u7684\u8907\u88fd\u529f\u80fd\u540c\u6642\u5305\u542b\u4e86\u55ae\u8eab\u7684\u8907\u88fd\u6bb5\u843d, \u6b64\u6bb5\u843d\u5728\u55ae\u982d\u8907\u88fd\u5b8c\u6210\u6642\u547c\u53eb\u6b64\u6bb5\u843d\u9032\u884c\u55ae\u8eab\u8cc7\u6599\u8907\u88fd<\/p>\n<p>03 PRIVATE FUNCTION adet400_detail_reproduce()<\/p>\n<p>\u7565<\/p>\n<p>08 CALL s_transaction_begin()<\/p>\n<p>09 LET ld_date = cl_get_current()<\/p>\n<p>10 DROP TABLE adet400_detail<\/p>\n<p>11<\/p>\n<p>12 #CREATE TEMP TABLE<\/p>\n<p>13 LET ls_sql = &#8220;CREATE GLOBAL TEMPORARY TABLE adet400_detail AS &#8220;,<\/p>\n<p>14 &#8220;SELECT * FROM dear_t &#8221;<\/p>\n<p>15 PREPARE repro_tbl FROM ls_sql<\/p>\n<p>16 EXECUTE repro_tbl<\/p>\n<p>17 FREE repro_tbl<\/p>\n<p>18<\/p>\n<p>19 #\u5c06\u7b26\u5408\u6761\u4ef6\u7684\u8d44\u6599\u4e22\u5165TEMP TABLE<\/p>\n<p>20 INSERT INTO adet400_detail SELECT * FROM dear_t<\/p>\n<p>21 WHERE dearent = g_enterprise AND deardocno = g_deaqdocno_t<\/p>\n<p>22<\/p>\n<p>23 #\u5c06key\u4fee\u6b63\u4e3a\u8c03\u6574\u540e<\/p>\n<p>24 UPDATE adet400_detail SET deardocno = g_deaq_m.deaqdocno<\/p>\n<p>25<\/p>\n<p>\u5c07\u539f\u8cc7\u6599\u5beb\u5165\u66ab\u5b58\u8868\u4e2d, \u4e26\u4e14\u5c07\u539f\u55ae\u8eab\u7684FK\u4fee\u6b63\u70ba\u65b0\u7684\u55ae\u982d\u9375\u503c<\/p>\n<p>26 #\u5c06\u8d44\u6599\u585e\u56de\u539ftable<\/p>\n<p>27 INSERT INTO dear_t SELECT * FROM adet400_detail<\/p>\n<p>28 IF SQLCA.sqlcode THEN<\/p>\n<p>\u7565<\/p>\n<p>35 END IF<\/p>\n<p>36<\/p>\n<p>37 #\u5220\u9664TEMP TABLE<\/p>\n<p>\u8907\u88fd\u55ae\u8eab\u7684\u52d5\u4f5c\u5b8c\u6210\u5f8c, \u6e05\u9664\u66ab\u5b58\u8868, \u4e26\u5c07\u4e0a\u8ff0\u7684\u52d5\u4f5c\u5beb\u5165\u8cc7\u6599\u5eab\u5167<\/p>\n<p>38 DROP TABLE adet400_detail<\/p>\n<p>39 CALL s_transaction_end(&#8216;Y&#8217;,&#8217;0&#8242;)<\/p>\n<p>40<\/p>\n<p>41 #\u5df2\u65b0\u589e\u5b8c, \u8c03\u6574\u6570\u636e\u5185\u5bb9(\u4fee\u6539\u65f6\u4f7f\u7528)<\/p>\n<p>42 LET g_deaqdocno_t = g_deaq_m.deaqdocno<\/p>\n<p>43 END FUNCTION<\/p>\n<p>44 {&lt;\/section&gt;}<\/p>\n<p><strong>4.4.30 _delete\u6570\u636e\u5220\u9664<\/strong><\/p>\n<p>01 {&lt;section id=&#8221;adet400.delete&#8221; &gt;}<\/p>\n<p>\u6839\u64da\u55ae\u982d\u8207\u55ae\u8eab\u7684\u95dc\u806f(FK), \u9032\u884c\u55ae\u8eab\u8cc7\u6599\u7684\u522a\u9664, \u82e5\u55ae\u8eab\u6709\u591a\u5f35\u8868\u5247\u6703\u7522\u51fa\u591a\u6bb5<\/p>\n<p>02 #+ \u6570\u636e\u5220\u9664<\/p>\n<p>03 PRIVATE FUNCTION adet400_delete()<\/p>\n<p>\u540c\u5355\u6863<\/p>\n<p>60 #\u5220\u9664\u5355\u8eab<\/p>\n<p>61 DELETE FROM dear_t<\/p>\n<p>62 WHERE dearent = g_enterprise AND deardocno = g_deaq_m.deaqdocno<\/p>\n<p>63 IF SQLCA.sqlcode THEN<\/p>\n<p>\u8cc7\u6599\u522a\u9664\u5b8c\u6210\u5f8c\u6703\u8b1b\u6307\u6a19\u63d0\u524d\u5230\u524d\u4e00\u7b46\u8cc7\u6599\u4e0a, \u82e5\u662f\u5df2\u7121\u8cc7\u6599\u5247\u6e05\u7a7a\u756b\u9762<\/p>\n<p>\u7565<\/p>\n<p>70 END IF<\/p>\n<p>\u7565<\/p>\n<p>81 IF g_browser_cnt &gt; 0 THEN<\/p>\n<p>82 CALL adet400_fetch(&#8216;P&#8217;)<\/p>\n<p>83 DISPLAY g_browser_cnt TO FORMONLY.h_count #\u603b\u7b14\u6570\u7684\u663e\u793a<\/p>\n<p>84 DISPLAY g_browser_cnt TO FORMONLY.b_count #\u603b\u7b14\u6570\u7684\u663e\u793a<\/p>\n<p>85 ELSE<\/p>\n<p>86 CLEAR FORM<\/p>\n<p>87 END IF<\/p>\n<p>88 END IF<\/p>\n<p>89<\/p>\n<p>90 CALL s_transaction_end(&#8216;Y&#8217;,&#8217;0&#8242;)<\/p>\n<p>91 CLOSE adet400_cl<\/p>\n<p>92 #\u529f\u80fd\u5df2\u5b8c\u6210,\u901a\u62a5\u8baf\u606f\u4e2d\u5fc3<\/p>\n<p>93 CALL adet400_msgcentre_notify(&#8221;)<\/p>\n<p>94 END FUNCTION<\/p>\n<p>95 {&lt;\/section&gt;}<\/p>\n<p>&nbsp;<\/p>\n<p><strong>4.4.31 _delete_b\u5355\u8eab\u6570\u636e\u5220\u9664<\/strong><\/p>\n<p>01 {&lt;section id=&#8221;adet400.delete_b&#8221; &gt;}<\/p>\n<p>02 #+ \u5220\u9664\u5355\u8eab\u540e\u5176\u4ed6table\u8fde\u52a8<\/p>\n<p>03 PRIVATE FUNCTION adet400_delete_b(ps_table,ps_keys_bak,ps_page)<\/p>\n<p>\u7565<\/p>\n<p>10 LET g_update = TRUE<\/p>\n<p>11 #\u5224\u65ad\u662f\u5426\u662f\u540c\u4e00\u7fa4\u7ec4\u7684table<\/p>\n<p>\u55ae\u8eab\u8cc7\u6599\u522a\u9664\u6642\u6703\u78ba\u8a8d\u662f\u5426\u70ba\u540c\u4e00\u500b\u7fa4\u7d44, \u79fb\u9664\u8a72\u7fa4\u7d44\u7684\u67d0\u55ae\u8eab\u8cc7\u6599\u6642, \u6703\u9023\u540c\u540c\u7fa4\u7d44\u7684\u5176\u4ed6\u55ae\u8eab\u7684\u8a72\u7b46\u8cc7\u6599\u9032\u884c\u522a\u9664<\/p>\n<p>12 LET ls_group = &#8220;&#8216;1&#8217;,&#8221;<\/p>\n<p>13 IF ls_group.getIndexOf(ps_page,1) &gt; 0 THEN<\/p>\n<p>14 DELETE FROM dear_t<\/p>\n<p>15 WHERE dearent = g_enterprise AND deardocno = ps_keys_bak[1] AND dearseq = ps_keys_bak[2]<\/p>\n<p>16 IF SQLCA.sqlcode THEN<\/p>\n<p>\u7565<\/p>\n<p>21 RETURN FALSE<\/p>\n<p>\u522a\u9664\u8cc7\u6599\u904e\u7a0b\u4e2d\u767c\u751f\u4efb\u4f55\u932f\u8aa4\u5247\u56de\u50b3\u932f\u8aa4, \u82e5\u5b8c\u6210\u6240\u6709\u52d5\u4f5c\u4e14\u7121\u767c\u751f\u932f\u8aa4\u5247\u56de\u50b3\u6b63\u78ba<\/p>\n<p>22 END IF<\/p>\n<p>23 END IF<\/p>\n<p>24 LET li_idx = g_detail_idx<\/p>\n<p>25 IF ps_page &lt;&gt; &#8220;&#8216;1&#8242;&#8221; THEN<\/p>\n<p>\u522a\u9664\u6b64\u9801\u7c64\u4ee5\u5916\u7684\u5176\u4ed6\u9801\u7c64\u8cc7\u6599, \u9023\u52d5\u7684\u76f8\u95dc\u9801\u7c64\u7684\u540c\u7b46\u8cc7\u6599\u7686\u522a\u9664, \u78ba\u4fdd\u756b\u9762\u4e00\u81f4<\/p>\n<p>26 CALL g_dear_d.deleteElement(li_idx)<\/p>\n<p>27 END IF<\/p>\n<p>28 RETURN TRUE<\/p>\n<p>29 END FUNCTION<\/p>\n<p>30 {&lt;\/section&gt;}<\/p>\n<p><strong>4.4.32 _set_entry \u5b57\u6bb5\u7f16\u8f91\u5f00\u542f<\/strong><\/p>\n<p>01 {&lt;section id=&#8221;adet400.set_entry&#8221; &gt;}<\/p>\n<p>02 #+ \u5355\u5934\u5b57\u6bb5\u5f00\u542f\u8bbe\u5b9a<\/p>\n<p>03 PRIVATE FUNCTION adet400_set_entry(p_cmd)<\/p>\n<p>\u540c\u5355\u6863<\/p>\n<p>08 END FUNCTION<\/p>\n<p>09 {&lt;\/section&gt;}<\/p>\n<p>&nbsp;<\/p>\n<p><strong>4.4.33 _set_no_entry \u5b57\u6bb5\u7f16\u8f91\u5173\u95ed<\/strong><\/p>\n<p>01 {&lt;section id=&#8221;adet400.set_no_entry&#8221; &gt;}<\/p>\n<p>02 #+ \u5355\u5934\u5b57\u6bb5\u5173\u95ed\u8bbe\u5b9a<\/p>\n<p>03 PRIVATE FUNCTION adet400_set_no_entry(p_cmd)<\/p>\n<p>\u540c\u5355\u6863<\/p>\n<p>04 END FUNCTION<\/p>\n<p>05 {&lt;\/section&gt;}<\/p>\n<p>&nbsp;<\/p>\n<p><strong>4.4.34 _set_entry_b \u5355\u8eab\u5b57\u6bb5\u7f16\u8f91\u5f00\u542f<\/strong><\/p>\n<p>01 {&lt;section id=&#8221;adet400.set_entry_b&#8221; &gt;}<\/p>\n<p>\u5728\u9032\u5165\u8f38\u5165\u6bb5\u524d\u6703\u91dd\u5c0d\u7279\u5b9a\u6b04\u4f4d\u89e3\u958b\u8f38\u5165\u529f\u80fd, p_cmd\u70baa\u6642\u4ee3\u8868\u65b0\u589e\u6bb5\u8981\u89e3\u958b\u7684\u6b04\u4f4d, p_cmd\u70bau\u6642\u4ee3\u8868\u4fee\u6539\u6bb5\u6642\u8981\u89e3\u958b\u7684\u6b04\u4f4d(\u6b64\u8655\u7684\u6b04\u4f4d\u662f\u6307\u55ae\u8eab\u6b04\u4f4d)<\/p>\n<p>02 #+ \u5355\u8eab\u5b57\u6bb5\u5f00\u542f\u8bbe\u5b9a<\/p>\n<p>03 PRIVATE FUNCTION adet400_set_entry_b(p_cmd)<\/p>\n<p>\u7565<\/p>\n<p>09 IF p_cmd = &#8216;a&#8217; THEN<\/p>\n<p>10 CALL cl_set_comp_entry(&#8220;&#8221;,TRUE)<\/p>\n<p>11 END IF<\/p>\n<p>\u7565<\/p>\n<p>18 END FUNCTION<\/p>\n<p>19 {&lt;\/section&gt;}<\/p>\n<p>&nbsp;<\/p>\n<p><strong>4.4.35 _set_no_entry_b \u5355\u8eab\u5b57\u6bb5\u7f16\u8f91\u5173\u95ed<\/strong><\/p>\n<p>01 {&lt;section id=&#8221;adet400.set_no_entry_b&#8221; &gt;}<\/p>\n<p>02 #+ \u5355\u8eab\u5b57\u6bb5\u5173\u95ed\u8bbe\u5b9a<\/p>\n<p>03 PRIVATE FUNCTION adet400_set_no_entry_b(p_cmd)<\/p>\n<p>\u7565<\/p>\n<p>\u5728\u9032\u5165\u8f38\u5165\u6bb5\u524d\u6703\u91dd\u5c0d\u7279\u5b9a\u6b04\u4f4d\u95dc\u9589\u8f38\u5165\u529f\u80fd, p_cmd\u70baa\u6642\u4ee3\u8868\u65b0\u589e\u6bb5\u8981\u95dc\u9589\u7684\u6b04\u4f4d, p_cmd\u70bau\u6642\u4ee3\u8868\u4fee\u6539\u6bb5\u6642\u8981\u95dc\u9589\u7684\u6b04\u4f4d(\u6b64\u8655\u7684\u6b04\u4f4d\u662f\u6307\u55ae\u8eab\u6b04\u4f4d)<\/p>\n<p>08 DEFINE p_cmd LIKE type_t.chr1<\/p>\n<p>09 IF p_cmd = &#8216;u&#8217; AND g_chkey = &#8216;N&#8217; THEN<\/p>\n<p>10 CALL cl_set_comp_entry(&#8220;&#8221;,FALSE)<\/p>\n<p>11 END IF<\/p>\n<p>\u7565<\/p>\n<p>19 END FUNCTION<\/p>\n<p>20 {&lt;\/section&gt;}<\/p>\n<p>&nbsp;<\/p>\n<p><strong>4.4.36 _state_change\u72b6\u6001\u4ee3\u7801\u5f02\u52a8<\/strong><\/p>\n<p>01 {&lt;section id=&#8221;adet400.state_change&#8221; &gt;}<\/p>\n<p>02 #+ \u6b64\u6bb5\u843d\u7531\u5b50\u6837\u677fa09\u4ea7\u751f<\/p>\n<p>03 #+ \u786e\u8ba4\u7801\u53d8\u66f4<\/p>\n<p>04 PRIVATE FUNCTION adet400_statechange()<\/p>\n<p>\u540c\u5355\u6863<\/p>\n<p>09 END FUNCTION<\/p>\n<p>10 {&lt;\/section&gt;}<\/p>\n<p>&nbsp;<\/p>\n<p><strong>4.4.37 _idx_chk\u5355\u8eab\u7b14\u6570\u663e\u793a<\/strong><\/p>\n<p>01 {&lt;section id=&#8221;adet400.idx_chk&#8221; &gt;}<\/p>\n<p>02 #+ \u663e\u793a\u6b63\u786e\u7684\u5355\u8eab\u6570\u636e\u7b14\u6570<\/p>\n<p>\u6839\u64da\u7576\u4e0b\u6240\u9078\u64c7\u7684\u55ae\u8eab\u9801\u7c64, \u89e3\u6790\u5f8c\u53d6\u5f97\u5c0d\u61c9\u7684\u7576\u4e0b\u7b46\u6578\u8207\u7e3d\u7b46\u6578\u8cc7\u8a0a\u4e26\u986f\u793a\u81f3\u756b\u9762\u4e0a<\/p>\n<p>03 PRIVATE FUNCTION adet400_idx_chk()<\/p>\n<p>\u7565<\/p>\n<p>12 IF g_current_page = 1 THEN<\/p>\n<p>13 LET g_detail_idx = g_curr_diag.getCurrentRow(&#8220;s_detail1&#8221;)<\/p>\n<p>14 IF g_detail_idx &gt; g_dear_d.getLength() THEN<\/p>\n<p>15 LET g_detail_idx = g_dear_d.getLength()<\/p>\n<p>16 END IF<\/p>\n<p>17 IF g_detail_idx = 0 AND g_dear_d.getLength() &lt;&gt; 0 THEN<\/p>\n<p>18 LET g_detail_idx = 1<\/p>\n<p>19 END IF<\/p>\n<p>20 DISPLAY g_detail_idx TO FORMONLY.idx<\/p>\n<p>21 DISPLAY g_dear_d.getLength() TO FORMONLY.cnt<\/p>\n<p>22 END IF<\/p>\n<p>\u7565<\/p>\n<p>29 END FUNCTION<\/p>\n<p>30 {&lt;\/section&gt;}<\/p>\n<p>&nbsp;<\/p>\n<p><strong>4.4.38 _fill_chk\u5355\u8eab\u586b\u5145\u786e\u8ba4<\/strong><\/p>\n<p>01 {&lt;section id=&#8221;adet400.fill_chk&#8221; &gt;}<\/p>\n<p>02 #+ \u5355\u8eab\u586b\u5145\u786e\u8ba4<\/p>\n<p>03 PRIVATE FUNCTION adet400_fill_chk(ps_idx)<\/p>\n<p>04 #\u6b64funtion\u529f\u80fd\u6682\u65f6\u505c\u7528<\/p>\n<p>05 #\u65e0\u8bba\u4f20\u5165\u503c\u4e3a\u4f55\u7686\u56de\u4f20true(\u4ee3\u8868\u8981\u586b\u5145\u8be5\u5355\u8eab)<\/p>\n<p>06<\/p>\n<p>07 #\u5168\u90e8\u4e3a1=1 or null\u65f6\u56de\u4f20true<\/p>\n<p>08 IF (cl_null(g_wc2_table1) OR g_wc2_table1.trim() = &#8216;1=1&#8217;) THEN<\/p>\n<p>09 RETURN TRUE<\/p>\n<p>10 END IF<\/p>\n<p>11 RETURN TRUE<\/p>\n<p>12 END FUNCTION<\/p>\n<p>13 {&lt;\/section&gt;}<\/p>\n<p><strong>4.4.39 _send BPM\u63d0\u4ea4<\/strong><\/p>\n<p>01 {&lt;section id=&#8221;adet400.signature&#8221; &gt;}<\/p>\n<p>02 #\u6b64\u6bb5\u843d\u7531\u5b50\u6837\u677fa39\u4ea7\u751f<\/p>\n<p>03 #+ BPM\u63d0\u4ea4<\/p>\n<p>04 PRIVATE FUNCTION adet400_send()<\/p>\n<p>05 #add-point:send\u6bb5define<\/p>\n<p>06 DEFINE l_success LIKE type_t.num5<\/p>\n<p>07 #end add-point<\/p>\n<p>08<\/p>\n<p>09 IF g_deaq_m.deaqdocno IS NULL THEN<\/p>\n<p>\u7565<\/p>\n<p>14 END IF<\/p>\n<p>15<\/p>\n<p>16 #\u91cd\u65b0\u53d6\u5f97\u4e0e\u663e\u793a\u5b8c\u6574\u5355\u636e\u6570\u636e(\u6700\u65b0\u5355\u636e\u6570\u636e)<\/p>\n<p>17 EXECUTE adet400_master_referesh USING g_deaq_m.deaqdocno INTO g_deaq_m.deaqsite,&#8230;<\/p>\n<p>18<\/p>\n<p>19 ERROR &#8220;&#8221;<\/p>\n<p>20 CALL s_transaction_begin()<\/p>\n<p>21<\/p>\n<p>22 OPEN adet400_cl USING g_enterprise,g_deaq_m.deaqdocno<\/p>\n<p>23 IF STATUS THEN<\/p>\n<p>\u7565<\/p>\n<p>28 END IF<\/p>\n<p>29<\/p>\n<p>30 #\u9501\u4f4f\u5c06\u88ab\u66f4\u6539\u7684\u6570\u636e<\/p>\n<p>31 FETCH adet400_cl INTO g_deaq_m.deaqsite,&#8230;<\/p>\n<p>32<\/p>\n<p>33 #\u6570\u636e\u88ab\u4ed6\u4ebaLOCK, \u6216\u662fsql\u6267\u884c\u65f6\u51fa\u73b0\u9519\u8bef<\/p>\n<p>34 IF SQLCA.sqlcode THEN<\/p>\n<p>\u7565<\/p>\n<p>41 END IF<\/p>\n<p>42<\/p>\n<p>43 #\u4f9d\u636e\u5355\u636e\u4e2a\u6570\uff0c\u9700\u8981\u6307\u5b9a\u6240\u6709\u5355\u8eab\u6761\u4ef6\u4e3a&#8221; 1=1&#8243; (\u5355\u8eab\u6709\u51e0\u4e2a\u5c31\u8981\u8bbe\u51e0\u4e2a)<\/p>\n<p>44 LET g_wc2_table1 = &#8221; 1=1&#8243;<\/p>\n<p>45<\/p>\n<p>46 CALL adet400_show()<\/p>\n<p>47 CALL adet400_set_pk_array()<\/p>\n<p>\u7565<\/p>\n<p>59 #\u516c\u7528\u53d8\u6570\u521d\u59cb\u5316<\/p>\n<p>60 CALL cl_bpm_data_init()<\/p>\n<p>61<\/p>\n<p>62 #\u4f9d\u7167\u4e3b\u6a94\/\u5355\u8eab\u4e2a\u6570\u4ea7\u751f CALL cl_bpm_set_master_data() \/ cl_bpm_set_detail_data()<\/p>\n<p>63 #\u5355\u5934\u56fa\u5b9a\u4e3a CALL cl_bpm_set_master_data(util.JSONObject.fromFGL(xxxx)) \u4f20\u5165\u53c2\u6570: (1)\u5355\u5934\u6570\u7ec4 ; \u56de\u4f20\u503c: \u65e0<\/p>\n<p>64 CALL cl_bpm_set_master_data(util.JSONObject.fromFGL(g_deaq_m))<\/p>\n<p>65<\/p>\n<p>66 #\u5355\u8eab\u56fa\u5b9a\u4e3a CALL cl_bpm_set_detail_data(s_detailX, util.JSONArray.fromFGL(xxxx)) \u4f20\u5165\u53c2\u6570: (1)\u5355\u8eabSR\u540d\u79f0 (2)\u5355\u8eab\u6570\u7ec4 ; \u56de\u4f20\u503c: \u65e0<\/p>\n<p>67 CALL cl_bpm_set_detail_data(&#8220;s_detail1&#8221;, util.JSONArray.fromFGL(g_dear_d))<\/p>\n<p>68<\/p>\n<p>69 #\u5f00\u5355\u5931\u8d25<\/p>\n<p>70 IF NOT cl_bpm_cli() THEN<\/p>\n<p>71 CLOSE adet400_cl<\/p>\n<p>72 CALL s_transaction_end(&#8216;N&#8217;,&#8217;0&#8242;)<\/p>\n<p>73 RETURN FALSE<\/p>\n<p>74 END IF<\/p>\n<p>75<\/p>\n<p>76 #\u5b8c\u6210\u72b6\u6001\u66f4\u65b0<\/p>\n<p>77 CLOSE adet400_cl<\/p>\n<p>78 CALL s_transaction_end(&#8216;Y&#8217;,&#8217;0&#8242;)<\/p>\n<p>79<\/p>\n<p>80 #\u91cd\u65b0\u6307\u5b9a\u6b64\u7b14\u5355\u636e\u6570\u636e\u72b6\u6001\u56fe\u7247=&gt;\u9001\u7b7e\u4e2d<\/p>\n<p>81 LET g_browser[g_current_row].b_statepic = &#8220;stus\/16\/signing.png&#8221;<\/p>\n<p>82<\/p>\n<p>83 #\u91cd\u65b0\u53d6\u5f97\u5355\u5934\/\u5355\u8eab\u8d44\u6599,DISPLAY\u5728\u753b\u9762\u4e0a<\/p>\n<p>84 CALL adet400_ui_headershow()<\/p>\n<p>85 CALL adet400_ui_detailshow()<\/p>\n<p>86<\/p>\n<p>87 RETURN TRUE<\/p>\n<p>88<\/p>\n<p>89 END FUNCTION<\/p>\n<p><strong>4.4.40 _draw_out BPM\u62bd\u5355<\/strong><\/p>\n<p>01 #\u6b64\u6bb5\u843d\u7531\u5b50\u6837\u677fa40\u4ea7\u751f<\/p>\n<p>02 #+ BPM\u62bd\u5355<\/p>\n<p>03 PRIVATE FUNCTION adet400_draw_out()<\/p>\n<p>04<\/p>\n<p>05 #\u68c0\u67e5\u8d44\u6599\u662f\u5426\u5b58\u5728<\/p>\n<p>06 IF g_deaq_m.deaqdocno IS NULL THEN<\/p>\n<p>\u7565<\/p>\n<p>10 END IF<\/p>\n<p>11<\/p>\n<p>12 #LOCK\u4e3b\u6587\u4ef6\u8d44\u6599<\/p>\n<p>13 CALL s_transaction_begin()<\/p>\n<p>14<\/p>\n<p>15 #\u8fdb\u884cBPM\u62bd\u5355\u529f\u80fd<\/p>\n<p>16 OPEN adet400_cl USING g_enterprise,g_deaq_m.deaqdocno<\/p>\n<p>17 IF STATUS THEN<\/p>\n<p>\u7565<\/p>\n<p>20 END IF<\/p>\n<p>21<\/p>\n<p>22 #\u9501\u4f4f\u5c06\u88ab\u66f4\u6539\u7684\u6570\u636e<\/p>\n<p>23 FETCH adet400_cl INTO g_deaq_m.deaqsite,&#8230;<\/p>\n<p>24<\/p>\n<p>25 #\u6570\u636e\u88ab\u4ed6\u4ebaLOCK, \u6216\u662fsql\u6267\u884c\u65f6\u51fa\u73b0\u9519\u8bef<\/p>\n<p>26 IF SQLCA.sqlcode THEN<\/p>\n<p>\u7565<\/p>\n<p>29 END IF<\/p>\n<p>30<\/p>\n<p>31 #\u62bd\u5355\u5931\u8d25<\/p>\n<p>32 IF NOT cl_bpm_draw_out() THEN<\/p>\n<p>33 CLOSE adet400_cl<\/p>\n<p>34 CALL s_transaction_end(&#8216;N&#8217;,&#8217;0&#8242;)<\/p>\n<p>35 RETURN FALSE<\/p>\n<p>36 END IF<\/p>\n<p>37<\/p>\n<p>38 #\u5b8c\u6210\u72b6\u6001\u66f4\u65b0<\/p>\n<p>39 CLOSE adet400_cl<\/p>\n<p>40 CALL s_transaction_end(&#8216;Y&#8217;,&#8217;0&#8242;)<\/p>\n<p>41<\/p>\n<p>42 #\u91cd\u65b0\u6307\u5b9a\u6b64\u7b14\u5355\u636e\u6570\u636e\u72b6\u6001\u56fe\u7247=&gt;\u62bd\u5355<\/p>\n<p>43 LET g_browser[g_current_row].b_statepic = &#8220;stus\/16\/draw_out.png&#8221;<\/p>\n<p>44<\/p>\n<p>45 #\u91cd\u65b0\u53d6\u5f97\u5355\u5934\/\u5355\u8eab\u8d44\u6599,DISPLAY\u5728\u753b\u9762\u4e0a<\/p>\n<p>46 CALL adet400_ui_headershow()<\/p>\n<p>47 CALL adet400_ui_detailshow()<\/p>\n<p>48<\/p>\n<p>49 RETURN TRUE<\/p>\n<p>50 END FUNCTION<\/p>\n<p>51 {&lt;\/section&gt;}<\/p>\n<p><strong>4.4.41 _ key_update_b \u4e0b\u5c42\u5355\u8eabkey\u503c\u5f02\u52a8<\/strong><\/p>\n<p>01 {&lt;section id=&#8221;adet400.key_update_b&#8221; &gt;}<\/p>\n<p>02 #+ \u4e0a\u5c42\u5355\u8eabkey\u5b57\u6bb5\u53d8\u52a8\u540e, \u8fde\u5e26\u4fee\u6b63\u4e0b\u5c42\u5355\u8eabkey\u5b57\u6bb5<\/p>\n<p>03 PRIVATE FUNCTION adet400_key_update_b(ps_keys_bak,ps_table)<\/p>\n<p>04 DEFINE ps_keys_bak DYNAMIC ARRAY OF VARCHAR(500)<\/p>\n<p>\u56e0\u8a72\u96bb\u7a0b\u5f0f\u7121\u4e0b\u968e\u55ae\u8eab, \u56e0\u6b64\u6b64\u6bb5\u843d\u7121\u5167\u5bb9, \u82e5\u6709\u4e0b\u968e\u55ae\u8eab\u5247\u6703\u6839\u64da\u50b3\u5165\u7684key\u503c\u4fee\u6539\u8cc7\u6599<\/p>\n<p>05 DEFINE ps_table STRING<\/p>\n<p>06<\/p>\n<p>07 END FUNCTION<\/p>\n<p>08 {&lt;\/section&gt;}<\/p>\n<p><strong>4.4.42 _key_delete_b\u4e0b\u5c42\u5355\u8eab\u5220\u9664<\/strong><\/p>\n<p>01 {&lt;section id=&#8221;adet400.key_delete_b&#8221; &gt;}<\/p>\n<p>02 #+ \u4e0a\u5c42\u5355\u8eab\u5220\u9664\u540e, \u8fde\u5e26\u5220\u9664\u4e0b\u5c42\u5355\u8eabkey\u5b57\u6bb5<\/p>\n<p>03 PRIVATE FUNCTION adet400_key_delete_b(ps_keys_bak,ps_table)<\/p>\n<p>04 DEFINE ps_keys_bak DYNAMIC ARRAY OF VARCHAR(500)<\/p>\n<p>\u56e0\u8a72\u96bb\u7a0b\u5f0f\u7121\u4e0b\u968e\u55ae\u8eab, \u56e0\u6b64\u6b64\u6bb5\u843d\u7121\u5167\u5bb9, \u82e5\u6709\u4e0b\u968e\u55ae\u8eab\u5247\u6703\u6839\u64da\u50b3\u5165\u7684key\u503c\u522a\u9664\u8cc7\u6599<\/p>\n<p>05 DEFINE ps_table STRING<\/p>\n<p>06<\/p>\n<p>07 RETURN TRUE<\/p>\n<p>08 END FUNCTION<\/p>\n<p>09 {&lt;\/section&gt;}<\/p>\n<p><strong>4.4.43 mask_functions\u5c4f\u853d\u5904\u7406<\/strong><\/p>\n<p>\u906e\u7f69\u76f8\u95dc\u7684\u8655\u7406\u51fd\u5f0f\u7686\u5728mask.4gl\u4e2d, \u6b644gl\u900f\u904eazzi850\u906e\u7f69\u8a2d\u5b9a\u7522\u51fa, \u8def\u5f91\u70ba\u201dcom\/inc\/erp\/\u6a21\u7d44\u5225\u201d\u5e95\u4e0b, \u8a72\u6a94\u6848\u7121\u6cd5\u7de8\u8f2f, \u4e14\u5728\u6bcf\u6b21\u7a0b\u5f0f\u7522\u751f\u6642\u6703\u81ea\u52d5\u7522\u751f<\/p>\n<p>01 {&lt;section id=&#8221; adet400.mask_functions&#8221; &gt;}<\/p>\n<p>02 &amp;include &#8220;erp\/ade\/ adet400_mask.4gl&#8221;<\/p>\n<p>03 {&lt;\/section&gt;}<\/p>\n<p><strong>4.4.44 _ msgcentre_notify\u901a\u62a5\u8baf\u606f\u4e2d\u5fc3<\/strong><\/p>\n<p>01 {&lt;section id=&#8221;adet400.msgcentre_notify&#8221; &gt;}<\/p>\n<p>02 #\u5e94\u7528 a66 \u6837\u677f\u81ea\u52a8\u4ea7\u751f(Version:1)<\/p>\n<p>03 PRIVATE FUNCTION adet400_msgcentre_notify(lc_state)<\/p>\n<p>04 DEFINE lc_state LIKE type_t.chr5<\/p>\n<p>\u540c\u5355\u6863<\/p>\n<p>47 END FUNCTION<\/p>\n<p>48 {&lt;\/section&gt;}<\/p>\n<p>\u8f6c\u8f7d\u8bf7\u6ce8\u660e\uff1a<a href=\"https:\/\/www.hefeiyu.com\">\u8d6b\u975e\u57df<\/a> &raquo; <a href=\"https:\/\/www.hefeiyu.com\/?p=5806\">04 T100\u624b\u518c \u53cc\u6863(adet400)<\/a><\/p>","protected":false},"excerpt":{"rendered":"<p>4.1 \u53cc\u6587\u4ef6\u8868\u683c\u6a21\u578b \u53cc\u6863\u6837\u677f\ufe5dpattern\ufe5e\u53ea\u80fd\u652f\u6301\u5355\u4e00\u7684\u4e3b\u8868\uff0c\u53e6\u5916\u53ef\u652f\u6301\u591a\u4e2a\u5355\u5934\u5b50\u8868\uff0c\u5355\u8eab\u5b50\u8868\uff1b\u800c\u4e14\u6bcf\u4e2a\u5355\u8eab\u5b50\u8868\u4e2a\u522b\u53ef\u63a5\u4e8c\u5c42\u5b50\u8868\u3002 &nbsp; 4.2 \u53cc\u6863\u53c2\u8003\u753b\u9762 \u53cc\u6587\u4ef6\u4e0e\u5355\u6587\u4ef6\u7684\u6570\u636e\u6d4f\u89c8\u9875\u7b7e\u5728\u8bbe\u8ba1\u4e0a\u5e76\u65e0\u5dee\u522b\uff0c\u4e3b\u8981\u5dee\u522b\u5728\u6570\u636e\u8f93\u5165\u9875\u7b7e\u7684\u5355\u8eab [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[490],"tags":[827,854,707],"class_list":["post-5806","post","type-post","status-publish","format-standard","hentry","category-490","tag-827","tag-854","tag-707"],"_links":{"self":[{"href":"https:\/\/www.hefeiyu.com\/index.php?rest_route=\/wp\/v2\/posts\/5806","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.hefeiyu.com\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.hefeiyu.com\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.hefeiyu.com\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.hefeiyu.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=5806"}],"version-history":[{"count":1,"href":"https:\/\/www.hefeiyu.com\/index.php?rest_route=\/wp\/v2\/posts\/5806\/revisions"}],"predecessor-version":[{"id":5809,"href":"https:\/\/www.hefeiyu.com\/index.php?rest_route=\/wp\/v2\/posts\/5806\/revisions\/5809"}],"wp:attachment":[{"href":"https:\/\/www.hefeiyu.com\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=5806"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.hefeiyu.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=5806"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.hefeiyu.com\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=5806"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}