ERP查询Q报表开发代码

一,按照一般ERP开发流程可参考ERP开发流程,直到下载程序。

当我们的查询页签存在栏位需要判断或者特殊处理时,在global中的自定义模组变数下添加,例如:

 1 #add-point:自定義模組變數-客製(Module Variable) name="global.variable_customerization"  2   3 DEFINE g_first_flag           LIKE type_t.num5  4 PRIVATE TYPE type_master      RECORD  5    startdate               LIKE type_t.dat,   6    enddate                 LIKE type_t.dat  7 END RECORD  8 DEFINE g_master            type_master   9  10 #end add-point

init下是对页面初始化,在页面资产初始化可以对栏位赋初值,设置下拉框等

   #add-point:畫面資料初始化 name="init.init"    LET g_first_flag = TRUE    LET g_master.startdate = ''    LET g_master.enddate = ''    ## CALL cpmq700_cre_tmp_table()    #end add-point  #或者     #add-point:畫面資料初始化 name="init.init"    CALL cl_set_combo_scc_part('b_imaaud001','18006','1,2')    #b_imaaud001代表那个页面栏位,18006是下拉框代码    LET g_first_flag = TRUE    #end add-point

 ui_dialog下搜索DIALOG ATTRIBUTES,里面添加栏位的逻辑。可参考filter下的栏位逻辑。

CONSTRUCT BY NAME g_wc ON imaastus,imaa001,imaal003,imaal004,imaa009,imaa003,imaa010,imaa004,imaaud001,imaaud006                       BEFORE CONSTRUCT                          ON ACTION controlp INFIELD imaastus                             ON ACTION controlp INFIELD imaa001                          INITIALIZE g_qryparam.* TO NULL                LET g_qryparam.state = 'c'                LET g_qryparam.reqry = FALSE                CALL q_imaa001()                           #呼叫開窗                DISPLAY g_qryparam.return1 TO imaa001      #顯示到畫面上                NEXT FIELD imaa001                         #返回原欄位                             ON ACTION controlp INFIELD imaal003                             ON ACTION controlp INFIELD imaal004                             ON ACTION controlp INFIELD imaa009                          INITIALIZE g_qryparam.* TO NULL                LET g_qryparam.state = 'c'                LET g_qryparam.reqry = FALSE                CALL q_rtax001()                           #呼叫開窗                DISPLAY g_qryparam.return1 TO imaa009      #顯示到畫面上                NEXT FIELD imaa009                         #返回原欄位                          ON ACTION controlp INFIELD imaa003                          INITIALIZE g_qryparam.* TO NULL                LET g_qryparam.state = 'c'                LET g_qryparam.reqry = FALSE                CALL q_imca001_1()                         #呼叫開窗                DISPLAY g_qryparam.return1 TO imaa003      #顯示到畫面上                NEXT FIELD imaa003                         #返回原欄位                          ON ACTION controlp INFIELD imaa010                          INITIALIZE g_qryparam.* TO NULL                LET g_qryparam.state = 'c'                LET g_qryparam.reqry = FALSE                CALL q_imaa010_1()                           #呼叫開窗                DISPLAY g_qryparam.return1 TO imaa010      #顯示到畫面上                NEXT FIELD imaa010                         #返回原欄位                          ON ACTION controlp INFIELD imaa004                                   ON ACTION controlp INFIELD imaaud001                                               ON ACTION controlp INFIELD imaaud006                    END CONSTRUCT

ui_dialog下搜索accept,对判断点击后变量赋值

           LET g_first_flag = FALSE

b_fill下搜索b_fill.array_clear,在里面添加调用函数的逻辑

   IF g_first_flag THEN       RETURN    ELSE       LET ls_wc = cl_replace_str(ls_wc,'1=2','1=1')       CALL cimq200_b_fill_sc(ls_wc)       RETURN    END IF

写自己的方法

PRIVATE FUNCTION cimq200_b_fill_sc(p_wc) DEFINE p_wc                STRING DEFINE l_sql               STRING     CALL g_imaa_d.clear()    LET g_cnt = l_ac    IF g_cnt = 0 THEN       LET g_cnt = 1    END IF    LET l_ac = 1     LET l_sql = " SELECT 0 imaaseq,imaastus,imaa001,imaal003, ",                " imaal004,imaa009,rtaxl003,imaa003, ",                " a.oocql004,imaa004,imaa010,b.oocql004 oocql010,imaa006,imaaud001, ",                " imaaud004,imaaud006,imaaud011 ",                "   FROM imaa_t ",                "   LEFT JOIN imaal_t ON imaa001=imaal001 AND imaaent=imaalent AND imaal002 = '",g_dlang,"'",                "   LEFT JOIN rtaxl_t ON imaa009=rtaxl001 AND imaaent=rtaxlent AND rtaxl002 = '",g_dlang,"'",                "   LEFT JOIN oocql_t a ON imaa003=a.oocql002 AND imaaent=a.oocqlent AND a.oocql001 = '200' AND a.oocql003 = '",g_dlang,"'",                "   LEFT JOIN oocql_t b ON imaa010=b.oocql002 AND imaaent=b.oocqlent AND b.oocql001 = '210' AND b.oocql003 = '",g_dlang,"'",                "  WHERE imaaent = ",g_enterprise,                "    AND ",p_wc CLIPPED    DISPLAY l_sql                PREPARE cimq200_b_fill_cs_pre FROM l_sql    DECLARE cimq200_b_fill_cs_cur CURSOR FOR cimq200_b_fill_cs_pre    FOREACH cimq200_b_fill_cs_cur INTO g_imaa_d[l_ac].*           #加项次       LET g_imaa_d[l_ac].imaaseq=l_ac       #料件属性显示汉字代替       CASE g_imaa_d[l_ac].imaaud001          WHEN 1             LET g_imaa_d[l_ac].imaaud001 = '五金'          WHEN 2             LET g_imaa_d[l_ac].imaaud001 = '注塑'       END CASE       #料件是否关键物料       CASE g_imaa_d[l_ac].imaaud006          WHEN 'Y'             LET g_imaa_d[l_ac].imaaud006 = ''          WHEN 'N'             LET g_imaa_d[l_ac].imaaud006 = ''       END CASE       LET l_ac = l_ac + 1        END FOREACH                            CALL g_imaa_d.deleteElement(g_imaa_d.getLength())      #add-point:陣列長度調整 name="b_fill.array_deleteElement"     #end add-point      LET g_error_show = 0      LET g_detail_cnt = g_imaa_d.getLength()    LET l_ac = g_cnt    LET g_cnt = 0       #調整單身index指標,避免翻頁後指到空白筆數    CALL cimq200_detail_index_setting()      #重新計算單身筆數並呈現 #  CALL cimq200_detail_action_trans()   #(ver:36) mark      LET l_ac = 1    IF g_imaa_d.getLength() > 0 THEN       CALL cimq200_b_fill2()    END IF      CALL cimq200_detail_action_trans()   #(ver:36)      END FUNCTION

 

发表评论

评论已关闭。

相关文章