赞
踩
最近接到财务的一个需求希望能在SAP中实现研发支出分类的明细报表,EXCEL的原样式有很多的单元格合并的内容,对于这种形式的ALV报表开发我以前也未曾接触过只能抱着试一试的心态去开发,但是功夫不负有心人最终实现了这个需求。
网上还是有很多关于SAP ALV单元格合并的案例的,很多都是基于 https://tricktresor.de/blog/zellen-verbinden/这个类去实现的,我也是去基于这个类进行了需求的实现
有了轮子我们就要开始着手造车了,造车过程中遇到了很多的困难就不在这里讨论了,Talk is cheap,Show me the code
REPORT zrfi015. *----------------------------------------------------------------------- * TABLES *----------------------------------------------------------------------- TABLES: acdoca , coas. *----------------------------------------------------------------------- * INCLUDE *----------------------------------------------------------------------- INCLUDE <cl_alv_control>. *----------------------------------------------------------------------- * TYPES *----------------------------------------------------------------------- TYPES: BEGIN OF ty_alv, zfield01(50), "公司代码 zfield02(50), "公司名称 zfield03(50), "项目名称 zfield04(50), "项目编号 zfield05(50), "项目类别 zfield06(50), "资本化/费用化支出选项 zfield07(50), "工资(固定) zfield08(50), "工资(变动) zfield09(50), "奖金(固定) zfield10(50), "奖金(变动) zfield11(50), "社保(固定) zfield12(50), "社保(变动) zfield13(50), "社保-残障金 zfield14(50), "公积金(固定) zfield15(50), "公积金(变动) zfield16(50), "外包劳务费(固定) zfield17(50), "外包劳务费(变动) zfield18(50), "研发活动直接消耗-材料 zfield19(50), "研发活动直接消耗-燃料 zfield20(50), "研发活动直接消耗-动力费用-水费 zfield21(50), "研发活动直接消耗-动力费用-电费 zfield22(50), "研发支出-费用化支出-模具工装费 zfield23(50), "研发支出-费用化支出-样品、样机购置费 zfield24(50), "检测认证费 zfield25(50), "维修费 zfield26(50), "设备租赁费 zfield27(50), "折旧费 zfield28(50), "摊销费-无形资产 zfield29(50), "研发支出-费用化支出-新产品设计费 zfield30(50), "研发支出-费用化支出-新工艺规程制定费 zfield31(50), "咨询顾问费 zfield32(50), "法律费用 zfield33(50), "审计评估费 zfield34(50), "人事服务费 zfield35(50), "其他专业服务费 zfield36(50), "专利费 zfield37(50), "商标注册费 zfield38(50), "辞退福利 zfield39(50), "工会经费(固定) zfield40(50), "工会经费(变动) zfield41(50), "餐费 zfield42(50), "团队建设费 zfield43(50), "其他福利费 zfield44(50), "差旅费 zfield45(50), "会议费 zfield46(50), "协会费 zfield47(50), "劳防费 zfield48(50), "保险费 zfield49(50), "培训费 zfield50(50), "车辆费 zfield51(50), "办公费 zfield52(50), "邮寄费 zfield53(50), "运输费 zfield54(50), "招待费 zfield55(50), "招聘费 zfield56(50), "仓储服务费 zfield57(50), "软件许可费 zfield58(50), "耗材 zfield59(50), "税费 zfield60(50), "广宣费 zfield61(50), "展会费 zfield62(50), "其他售后费 zfield63(50), "房租费 zfield64(50), "机物料消耗 zfield65(50), "摊销费-装修 zfield66(50), "摊销费-数据费 zfield67(50), "摊销费-广告费 zfield68(50), "物业费 zfield69(50), "客退返修费 zfield70(50), "售后三包材料费 zfield71(50), "品牌建设费 zfield72(50), "物料报废损失 zfield73(50), "停工损失 zfield74(50), "网络通信费 zfield75(50), "产品运营数据存储费 zfield76(50), "环保安全费 zfield77(50), "售后三包-质量保证金 zfield78(50), "办公用具 zfield79(50), "低值易耗品 zfield80(50), "质量损失 zfield81(50), "股份支付 zfield82(50), "其他费用 zfield83(50), "研发支出-费用化支出-委托境外研发费用 zfield84(50), "研发支出-费用化支出-委托境内研发费用 zfield85(50), "副产品产出 zfield86(50), "其他结转 zfield87(50), "余额 zfield88(50), "合计 zsel TYPE c, END OF ty_alv. TYPES: BEGIN OF ty_alv1, zfield01 TYPE acdoca-rbukrs, "公司代码 zfield02 TYPE t001-butxt, "公司名称 zfield03 TYPE coas-ktext, "项目名称 zfield04 TYPE acdoca-aufnr, "项目编号 zfield05 TYPE coas-auart, "项目类别 zfield06(10) TYPE c, "资本化/费用化支出选项 zfield07 TYPE acdoca-hsl, "工资(固定) zfield08 TYPE acdoca-hsl, "工资(变动) zfield09 TYPE acdoca-hsl, "奖金(固定) zfield10 TYPE acdoca-hsl, "奖金(变动) zfield11 TYPE acdoca-hsl, "社保(固定) zfield12 TYPE acdoca-hsl, "社保(变动) zfield13 TYPE acdoca-hsl, "社保-残障金 zfield14 TYPE acdoca-hsl, "公积金(固定) zfield15 TYPE acdoca-hsl, "公积金(变动) zfield16 TYPE acdoca-hsl, "外包劳务费(固定) zfield17 TYPE acdoca-hsl, "外包劳务费(变动) zfield18 TYPE acdoca-hsl, "研发活动直接消耗-材料 zfield19 TYPE acdoca-hsl, "研发活动直接消耗-燃料 zfield20 TYPE acdoca-hsl, "研发活动直接消耗-动力费用-水费 zfield21 TYPE acdoca-hsl, "研发活动直接消耗-动力费用-电费 zfield22 TYPE acdoca-hsl, "研发支出-费用化支出-模具工装费 zfield23 TYPE acdoca-hsl, "研发支出-费用化支出-样品、样机购置费 zfield24 TYPE acdoca-hsl, "检测认证费 zfield25 TYPE acdoca-hsl, "维修费 zfield26 TYPE acdoca-hsl, "设备租赁费 zfield27 TYPE acdoca-hsl, "折旧费 zfield28 TYPE acdoca-hsl, "摊销费-无形资产 zfield29 TYPE acdoca-hsl, "研发支出-费用化支出-新产品设计费 zfield30 TYPE acdoca-hsl, "研发支出-费用化支出-新工艺规程制定费 zfield31 TYPE acdoca-hsl, "咨询顾问费 zfield32 TYPE acdoca-hsl, "法律费用 zfield33 TYPE acdoca-hsl, "审计评估费 zfield34 TYPE acdoca-hsl, "人事服务费 zfield35 TYPE acdoca-hsl, "其他专业服务费 zfield36 TYPE acdoca-hsl, "专利费 zfield37 TYPE acdoca-hsl, "商标注册费 zfield38 TYPE acdoca-hsl, "辞退福利 zfield39 TYPE acdoca-hsl, "工会经费(固定) zfield40 TYPE acdoca-hsl, "工会经费(变动) zfield41 TYPE acdoca-hsl, "餐费 zfield42 TYPE acdoca-hsl, "团队建设费 zfield43 TYPE acdoca-hsl, "其他福利费 zfield44 TYPE acdoca-hsl, "差旅费 zfield45 TYPE acdoca-hsl, "会议费 zfield46 TYPE acdoca-hsl, "协会费 zfield47 TYPE acdoca-hsl, "劳防费 zfield48 TYPE acdoca-hsl, "保险费 zfield49 TYPE acdoca-hsl, "培训费 zfield50 TYPE acdoca-hsl, "车辆费 zfield51 TYPE acdoca-hsl, "办公费 zfield52 TYPE acdoca-hsl, "邮寄费 zfield53 TYPE acdoca-hsl, "运输费 zfield54 TYPE acdoca-hsl, "招待费 zfield55 TYPE acdoca-hsl, "招聘费 zfield56 TYPE acdoca-hsl, "仓储服务费 zfield57 TYPE acdoca-hsl, "软件许可费 zfield58 TYPE acdoca-hsl, "耗材 zfield59 TYPE acdoca-hsl, "税费 zfield60 TYPE acdoca-hsl, "广宣费 zfield61 TYPE acdoca-hsl, "展会费 zfield62 TYPE acdoca-hsl, "其他售后费 zfield63 TYPE acdoca-hsl, "房租费 zfield64 TYPE acdoca-hsl, "机物料消耗 zfield65 TYPE acdoca-hsl, "摊销费-装修 zfield66 TYPE acdoca-hsl, "摊销费-数据费 zfield67 TYPE acdoca-hsl, "摊销费-广告费 zfield68 TYPE acdoca-hsl, "物业费 zfield69 TYPE acdoca-hsl, "客退返修费 zfield70 TYPE acdoca-hsl, "售后三包材料费 zfield71 TYPE acdoca-hsl, "品牌建设费 zfield72 TYPE acdoca-hsl, "物料报废损失 zfield73 TYPE acdoca-hsl, "停工损失 zfield74 TYPE acdoca-hsl, "网络通信费 zfield75 TYPE acdoca-hsl, "产品运营数据存储费 zfield76 TYPE acdoca-hsl, "环保安全费 zfield77 TYPE acdoca-hsl, "售后三包-质量保证金 zfield78 TYPE acdoca-hsl, "办公用具 zfield79 TYPE acdoca-hsl, "低值易耗品 zfield80 TYPE acdoca-hsl, "质量损失 zfield81 TYPE acdoca-hsl, "股份支付 zfield82 TYPE acdoca-hsl, "其他费用 zfield83 TYPE acdoca-hsl, "研发支出-费用化支出-委托境外研发费用 zfield84 TYPE acdoca-hsl, "研发支出-费用化支出-委托境内研发费用 zfield85 TYPE acdoca-hsl, "副产品产出 zfield86 TYPE acdoca-hsl, "其他结转 zfield87 TYPE acdoca-hsl, "余额 zfield88 TYPE acdoca-hsl, "合计 END OF ty_alv1. TYPES: BEGIN OF ty_data, bukrs TYPE t001-bukrs, butxt TYPE t001-butxt, aufnr TYPE coas-aufnr, auart TYPE coas-auart, ktext TYPE coas-ktext, racct TYPE acdoca-racct, hsl TYPE acdoca-hsl, END OF ty_data. *----------------------------------------------------------------------- * DATA *----------------------------------------------------------------------- DATA ok_code_9000 LIKE sy-ucomm. DATA: gs_alv TYPE ty_alv, gt_alv TYPE TABLE OF ty_alv, gs_alv1 TYPE ty_alv1, gt_alv1 TYPE TABLE OF ty_alv1, gs_data TYPE ty_data, gt_data TYPE TABLE OF ty_data, gs_variant TYPE disvariant, gs_stbl TYPE lvc_s_stbl. DATA: cl_grid_9000 TYPE REF TO cl_gui_alv_grid, cl_container_9000 TYPE REF TO cl_gui_custom_container. *----------------------------------------------------------------------- * CLASS LCL_EVENT_RECEIVER DEFINITION *----------------------------------------------------------------------- CLASS cl_event_receiver DEFINITION. PUBLIC SECTION. METHODS handle_modify FOR EVENT data_changed_finished OF cl_gui_alv_grid IMPORTING e_modified et_good_cells. ENDCLASS. *----------------------------------------------------------------------- * CLASS LCL_EVENT_RECEIVER IMPLEMENTATION *----------------------------------------------------------------------- CLASS cl_event_receiver IMPLEMENTATION. METHOD handle_modify. PERFORM frm_modify USING e_modified et_good_cells. ENDMETHOD. ENDCLASS. *----------------------------------------------------------------------- * P A R A M E T E R S & S E L E C T - O P T I O N S *----------------------------------------------------------------------- SELECTION-SCREEN BEGIN OF BLOCK bk1. SELECT-OPTIONS: s_bukrs FOR acdoca-rbukrs, s_auart FOR coas-auart NO INTERVALS OBLIGATORY, s_aufnr FOR coas-aufnr, s_budat FOR acdoca-budat. SELECTION-SCREEN END OF BLOCK bk1. *----------------------------------------------------------------------* * ALV层级关系定义 *----------------------------------------------------------------------* DATA: gs_layout TYPE lvc_s_layo. DATA: gs_fieldcat TYPE lvc_s_fcat, gt_fieldcat TYPE lvc_t_fcat, gt_ztfi012 TYPE TABLE OF ztfi012. *---------------------------------------------------------------------* * INITIALIZATION *---------------------------------------------------------------------* INITIALIZATION. *---------------------------------------------------------------------* * START-OF-SELECTION *---------------------------------------------------------------------* START-OF-SELECTION. PERFORM frm_layout. PERFORM frm_set_fieldacat. PERFORM frm_get_data. CALL SCREEN 9000. END-OF-SELECTION. *&---------------------------------------------------------------------* *& Form FRM_LAYOUT *&---------------------------------------------------------------------* *& text *&---------------------------------------------------------------------* *& --> p1 text *& <-- p2 text *&---------------------------------------------------------------------* FORM frm_layout. gs_layout-box_fname = 'ZSEL'. * gs_layout-zebra = 'X'. gs_layout-cwidth_opt = 'X'."设置Grid的字段列宽度自动适应 gs_layout-no_headers = 'X'."隐藏列抬头 ENDFORM. *&---------------------------------------------------------------------* *& Form FRM_SET_FIELDACAT *&---------------------------------------------------------------------* *& text *&---------------------------------------------------------------------* *& --> p1 text *& <-- p2 text *&---------------------------------------------------------------------* FORM frm_set_fieldacat . DATA: lv_lines TYPE int4, lv_fieldname(50). FIELD-SYMBOLS: <lf_zfield>, <lf_alv>, <lf_value>. RANGES: r_zfield FOR t001-butxt. SELECT * INTO TABLE @DATA(gt_ztfi012) FROM ztfi012 ORDER BY zrow. DO 87 TIMES. IF sy-index < 10. lv_fieldname = 'ZFIELD' && '0' && sy-index. ELSE. lv_fieldname = 'ZFIELD' && sy-index. ENDIF. gs_fieldcat-fieldname = lv_fieldname. gs_fieldcat-col_pos = sy-index. gs_fieldcat-tabname = '1'. gs_fieldcat-datatype = 'CHAR'. gs_fieldcat-inttype = 'C'. gs_fieldcat-intlen = 50. IF sy-index > 1. gs_fieldcat-outputlen = 6. ELSE. gs_fieldcat-outputlen = 50. ENDIF. gs_fieldcat-reptext = lv_fieldname. gs_fieldcat-scrtext_l = lv_fieldname. gs_fieldcat-scrtext_m = lv_fieldname. gs_fieldcat-scrtext_s = lv_fieldname. gs_fieldcat-ref_table = 'EKPO'. gs_fieldcat-ref_field = 'MENGE'. APPEND gs_fieldcat TO gt_fieldcat. CLEAR: lv_fieldname , gs_fieldcat. ENDDO. "抬头模板设置 LOOP AT gt_ztfi012 ASSIGNING FIELD-SYMBOL(<lf_ztfi012>). AT NEW zrow. LOOP AT gt_ztfi012 INTO DATA(ls_ztfi012) WHERE zrow EQ <lf_ztfi012>-zrow . ASSIGN COMPONENT ls_ztfi012-zfield OF STRUCTURE gs_alv TO <lf_zfield>. IF <lf_zfield> IS ASSIGNED. <lf_zfield> = ls_ztfi012-zvalue. ENDIF. CLEAR ls_ztfi012. ENDLOOP. APPEND gs_alv TO gt_alv. CLEAR gs_alv. ENDAT. ENDLOOP. ENDFORM. *&---------------------------------------------------------------------* *& Form FRM_GET_DATA *&---------------------------------------------------------------------* *& text *&---------------------------------------------------------------------* *& --> p1 text *& <-- p2 text *&---------------------------------------------------------------------* FORM frm_get_data . DATA: lv_zoption(3) TYPE c, lv_sum TYPE acdoca-hsl, lv_zfield07 TYPE acdoca-hsl, lv_zfield08 TYPE acdoca-hsl, lv_zfield09 TYPE acdoca-hsl, lv_zfield10 TYPE acdoca-hsl, lv_zfield11 TYPE acdoca-hsl, lv_zfield12 TYPE acdoca-hsl, lv_zfield13 TYPE acdoca-hsl, lv_zfield14 TYPE acdoca-hsl, lv_zfield15 TYPE acdoca-hsl, lv_zfield16 TYPE acdoca-hsl, lv_zfield17 TYPE acdoca-hsl, lv_zfield18 TYPE acdoca-hsl, lv_zfield19 TYPE acdoca-hsl, lv_zfield20 TYPE acdoca-hsl, lv_zfield21 TYPE acdoca-hsl, lv_zfield22 TYPE acdoca-hsl, lv_zfield23 TYPE acdoca-hsl, lv_zfield24 TYPE acdoca-hsl, lv_zfield25 TYPE acdoca-hsl, lv_zfield26 TYPE acdoca-hsl, lv_zfield27 TYPE acdoca-hsl, lv_zfield28 TYPE acdoca-hsl, lv_zfield29 TYPE acdoca-hsl, lv_zfield30 TYPE acdoca-hsl, lv_zfield31 TYPE acdoca-hsl, lv_zfield32 TYPE acdoca-hsl, lv_zfield33 TYPE acdoca-hsl, lv_zfield34 TYPE acdoca-hsl, lv_zfield35 TYPE acdoca-hsl, lv_zfield36 TYPE acdoca-hsl, lv_zfield37 TYPE acdoca-hsl, lv_zfield38 TYPE acdoca-hsl, lv_zfield39 TYPE acdoca-hsl, lv_zfield40 TYPE acdoca-hsl, lv_zfield41 TYPE acdoca-hsl, lv_zfield42 TYPE acdoca-hsl, lv_zfield43 TYPE acdoca-hsl, lv_zfield44 TYPE acdoca-hsl, lv_zfield45 TYPE acdoca-hsl, lv_zfield46 TYPE acdoca-hsl, lv_zfield47 TYPE acdoca-hsl, lv_zfield48 TYPE acdoca-hsl, lv_zfield49 TYPE acdoca-hsl, lv_zfield50 TYPE acdoca-hsl, lv_zfield51 TYPE acdoca-hsl, lv_zfield52 TYPE acdoca-hsl, lv_zfield53 TYPE acdoca-hsl, lv_zfield54 TYPE acdoca-hsl, lv_zfield55 TYPE acdoca-hsl, lv_zfield56 TYPE acdoca-hsl, lv_zfield57 TYPE acdoca-hsl, lv_zfield58 TYPE acdoca-hsl, lv_zfield59 TYPE acdoca-hsl, lv_zfield60 TYPE acdoca-hsl, lv_zfield61 TYPE acdoca-hsl, lv_zfield62 TYPE acdoca-hsl, lv_zfield63 TYPE acdoca-hsl, lv_zfield64 TYPE acdoca-hsl, lv_zfield65 TYPE acdoca-hsl, lv_zfield66 TYPE acdoca-hsl, lv_zfield67 TYPE acdoca-hsl, lv_zfield68 TYPE acdoca-hsl, lv_zfield69 TYPE acdoca-hsl, lv_zfield70 TYPE acdoca-hsl, lv_zfield71 TYPE acdoca-hsl, lv_zfield72 TYPE acdoca-hsl, lv_zfield73 TYPE acdoca-hsl, lv_zfield74 TYPE acdoca-hsl, lv_zfield75 TYPE acdoca-hsl, lv_zfield76 TYPE acdoca-hsl, lv_zfield77 TYPE acdoca-hsl, lv_zfield78 TYPE acdoca-hsl, lv_zfield79 TYPE acdoca-hsl, lv_zfield80 TYPE acdoca-hsl, lv_zfield81 TYPE acdoca-hsl, lv_zfield82 TYPE acdoca-hsl, lv_zfield83 TYPE acdoca-hsl, lv_zfield84 TYPE acdoca-hsl, lv_zfield85 TYPE acdoca-hsl, lv_zfield86 TYPE acdoca-hsl, lv_zfield87 TYPE acdoca-hsl, lv_zfield88 TYPE acdoca-hsl, lv_index TYPE string, lv_tmp TYPE string. FIELD-SYMBOLS <fs> . SELECT acdoca~rbukrs AS bukrs, "公司代码 acdoca~racct, "科目号 coas~ktext, "描述 coas~aufnr, "订单号 coas~auart, "订单类型 t001~butxt, "公司名称 acdoca~hsl "以公司代码货币记的金额 INTO TABLE @DATA(lt_data) FROM acdoca INNER JOIN coas ON acdoca~aufnr EQ coas~aufnr INNER JOIN t001 ON acdoca~rbukrs EQ t001~bukrs AND t001~spras EQ @sy-langu WHERE acdoca~rbukrs IN @s_bukrs AND acdoca~budat IN @s_budat AND coas~aufnr IN @s_aufnr AND coas~auart IN @s_auart . SORT lt_data BY bukrs racct ktext aufnr auart butxt. LOOP AT lt_data INTO DATA(ls_data). "公司代码 ASSIGN COMPONENT 'ZFIELD01' OF STRUCTURE gs_alv1 TO FIELD-SYMBOL(<lf_zfield01>). IF <lf_zfield01> IS ASSIGNED. <lf_zfield01> = ls_data-bukrs. ENDIF. "公司名称 ASSIGN COMPONENT 'ZFIELD02' OF STRUCTURE gs_alv1 TO FIELD-SYMBOL(<lf_zfield02>). IF <lf_zfield02> IS ASSIGNED. <lf_zfield02> = ls_data-butxt. ENDIF. "项目名称 ASSIGN COMPONENT 'ZFIELD03' OF STRUCTURE gs_alv1 TO FIELD-SYMBOL(<lf_zfield03>). IF <lf_zfield03> IS ASSIGNED. <lf_zfield03> = ls_data-ktext. ENDIF. "项目编号 ASSIGN COMPONENT 'ZFIELD04' OF STRUCTURE gs_alv1 TO FIELD-SYMBOL(<lf_zfield04>). IF <lf_zfield04> IS ASSIGNED. <lf_zfield04> = ls_data-aufnr. ENDIF. "项目类别 ASSIGN COMPONENT 'ZFIELD05' OF STRUCTURE gs_alv1 TO FIELD-SYMBOL(<lf_zfield05>). IF <lf_zfield05> IS ASSIGNED. <lf_zfield05> = ls_data-auart. ENDIF. "项目类别名称 IF <lf_zfield05> EQ 'RD01'. lv_zoption = '费用化'. ELSEIF <lf_zfield05> EQ 'RD02'. lv_zoption = '资本化'. ENDIF. ASSIGN COMPONENT 'ZFIELD06' OF STRUCTURE gs_alv1 TO FIELD-SYMBOL(<lf_zfield06>). IF <lf_zfield06> IS ASSIGNED. <lf_zfield06> = lv_zoption. ENDIF. CASE ls_data-racct. WHEN '8000010100'. "工资(固定) ASSIGN COMPONENT 'ZFIELD07' OF STRUCTURE gs_alv1 TO FIELD-SYMBOL(<lf_zfield07>). IF <lf_zfield07> IS ASSIGNED. <lf_zfield07> = ls_data-hsl. ENDIF. WHEN '8000010120'. "工资(变动) ASSIGN COMPONENT 'ZFIELD08' OF STRUCTURE gs_alv1 TO FIELD-SYMBOL(<lf_zfield08>). IF <lf_zfield08> IS ASSIGNED. <lf_zfield08> = ls_data-hsl. ENDIF. WHEN '8000010200'. "奖金(固定) ASSIGN COMPONENT 'ZFIELD09' OF STRUCTURE gs_alv1 TO FIELD-SYMBOL(<lf_zfield09>). IF <lf_zfield09> IS ASSIGNED. <lf_zfield09> = ls_data-hsl. ENDIF. WHEN '8000010220'. "奖金(变动) ASSIGN COMPONENT 'ZFIELD10' OF STRUCTURE gs_alv1 TO FIELD-SYMBOL(<lf_zfield10>). IF <lf_zfield10> IS ASSIGNED. ENDIF. WHEN '8000010400'. "社保(固定) ASSIGN COMPONENT 'ZFIELD11' OF STRUCTURE gs_alv1 TO FIELD-SYMBOL(<lf_zfield11>). IF <lf_zfield11> IS ASSIGNED. <lf_zfield11> = ls_data-hsl. ENDIF. WHEN '8000010420'. "社保(变动) ASSIGN COMPONENT 'ZFIELD12' OF STRUCTURE gs_alv1 TO FIELD-SYMBOL(<lf_zfield12>). IF <lf_zfield12> IS ASSIGNED. <lf_zfield12> = ls_data-hsl. ENDIF. WHEN '8000010410'. "社保-残障金 ASSIGN COMPONENT 'ZFIELD13' OF STRUCTURE gs_alv1 TO FIELD-SYMBOL(<lf_zfield13>). IF <lf_zfield13> IS ASSIGNED. <lf_zfield13> = ls_data-hsl. ENDIF. WHEN '8000010500'. "公积金(固定) ASSIGN COMPONENT 'ZFIELD14' OF STRUCTURE gs_alv1 TO FIELD-SYMBOL(<lf_zfield14>). IF <lf_zfield14> IS ASSIGNED. <lf_zfield14> = ls_data-hsl. ENDIF. WHEN '8000010520'. "公积金(变动) ASSIGN COMPONENT 'ZFIELD15' OF STRUCTURE gs_alv1 TO FIELD-SYMBOL(<lf_zfield15>). IF <lf_zfield15> IS ASSIGNED. <lf_zfield15> = ls_data-hsl. ENDIF. WHEN '8000011700'. "外包劳务费(固定) ASSIGN COMPONENT 'ZFIELD16' OF STRUCTURE gs_alv1 TO FIELD-SYMBOL(<lf_zfield16>). IF <lf_zfield16> IS ASSIGNED. <lf_zfield16> = ls_data-hsl. ENDIF. WHEN '8000011720'. "外包劳务费(变动) ASSIGN COMPONENT 'ZFIELD17' OF STRUCTURE gs_alv1 TO FIELD-SYMBOL(<lf_zfield17>). IF <lf_zfield17> IS ASSIGNED. <lf_zfield17> = ls_data-hsl. ENDIF. WHEN '8000017300'. "研发支出-费用化支出-原材料 ASSIGN COMPONENT 'ZFIELD18' OF STRUCTURE gs_alv1 TO FIELD-SYMBOL(<lf_zfield18>). IF <lf_zfield18> IS ASSIGNED. <lf_zfield18> = ls_data-hsl. ENDIF. WHEN '8000012700'. "气费 ASSIGN COMPONENT 'ZFIELD19' OF STRUCTURE gs_alv1 TO FIELD-SYMBOL(<lf_zfield19>). IF <lf_zfield19> IS ASSIGNED. <lf_zfield19> = ls_data-hsl. ENDIF. WHEN '8000012500'. "水费 ASSIGN COMPONENT 'ZFIELD20' OF STRUCTURE gs_alv1 TO FIELD-SYMBOL(<lf_zfield20>). IF <lf_zfield20> IS ASSIGNED. <lf_zfield20> = ls_data-hsl. ENDIF. WHEN '8000012600'. "电费 ASSIGN COMPONENT 'ZFIELD21' OF STRUCTURE gs_alv1 TO FIELD-SYMBOL(<lf_zfield21>). IF <lf_zfield21> IS ASSIGNED. <lf_zfield21> = ls_data-hsl. ENDIF. WHEN '8000017400'. "研发支出-费用化支出-模具工装费 ASSIGN COMPONENT 'ZFIELD22' OF STRUCTURE gs_alv1 TO FIELD-SYMBOL(<lf_zfield22>). IF <lf_zfield22> IS ASSIGNED. <lf_zfield22> = ls_data-hsl. ENDIF. WHEN '8000017500'. "研发支出-费用化支出-样品、样机购置费 ASSIGN COMPONENT 'ZFIELD23' OF STRUCTURE gs_alv1 TO FIELD-SYMBOL(<lf_zfield23>). IF <lf_zfield23> IS ASSIGNED. <lf_zfield23> = ls_data-hsl. ENDIF. WHEN '8000016600'. "检测认证费 ASSIGN COMPONENT 'ZFIELD24' OF STRUCTURE gs_alv1 TO FIELD-SYMBOL(<lf_zfield24>). IF <lf_zfield24> IS ASSIGNED. <lf_zfield24> = ls_data-hsl. ENDIF. WHEN '8000014300'. "维修费 ASSIGN COMPONENT 'ZFIELD25' OF STRUCTURE gs_alv1 TO FIELD-SYMBOL(<lf_zfield25>). IF <lf_zfield25> IS ASSIGNED. <lf_zfield25> = ls_data-hsl. ENDIF. WHEN '8000012300'. "设备租赁费 ASSIGN COMPONENT 'ZFIELD26' OF STRUCTURE gs_alv1 TO FIELD-SYMBOL(<lf_zfield26>). IF <lf_zfield26> IS ASSIGNED. <lf_zfield26> = ls_data-hsl. ENDIF. WHEN '8000014400'. "折旧费 ASSIGN COMPONENT 'ZFIELD27' OF STRUCTURE gs_alv1 TO FIELD-SYMBOL(<lf_zfield27>). IF <lf_zfield27> IS ASSIGNED. <lf_zfield27> = ls_data-hsl. ENDIF. WHEN '8000014500'. "摊销费-无形资产 ASSIGN COMPONENT 'ZFIELD28' OF STRUCTURE gs_alv1 TO FIELD-SYMBOL(<lf_zfield28>). IF <lf_zfield28> IS ASSIGNED. <lf_zfield28> = ls_data-hsl. ENDIF. WHEN '8000017600'. "新产品设计费 ASSIGN COMPONENT 'ZFIELD29' OF STRUCTURE gs_alv1 TO FIELD-SYMBOL(<lf_zfield29>). IF <lf_zfield29> IS ASSIGNED. <lf_zfield29> = ls_data-hsl. ENDIF. WHEN '8000017700'. "新工艺规程制定费 ASSIGN COMPONENT 'ZFIELD30' OF STRUCTURE gs_alv1 TO FIELD-SYMBOL(<lf_zfield30>). IF <lf_zfield30> IS ASSIGNED. <lf_zfield30> = ls_data-hsl. ENDIF. WHEN '8000016700'. "咨询顾问费 ASSIGN COMPONENT 'ZFIELD31' OF STRUCTURE gs_alv1 TO FIELD-SYMBOL(<lf_zfield31>). IF <lf_zfield31> IS ASSIGNED. <lf_zfield31> = ls_data-hsl. ENDIF. WHEN '8000013500'. "法律费用 ASSIGN COMPONENT 'ZFIELD32' OF STRUCTURE gs_alv1 TO FIELD-SYMBOL(<lf_zfield32>). IF <lf_zfield32> IS ASSIGNED. <lf_zfield32> = ls_data-hsl. ENDIF. WHEN '8000013600'. "审计评估费 ASSIGN COMPONENT 'ZFIELD33' OF STRUCTURE gs_alv1 TO FIELD-SYMBOL(<lf_zfield33>). IF <lf_zfield33> IS ASSIGNED. <lf_zfield33> = ls_data-hsl. ENDIF. WHEN '8000016500'. "人事服务费 ASSIGN COMPONENT 'ZFIELD34' OF STRUCTURE gs_alv1 TO FIELD-SYMBOL(<lf_zfield34>). IF <lf_zfield34> IS ASSIGNED. <lf_zfield34> = ls_data-hsl. ENDIF. WHEN '8000013700'. "其他专业服务费 ASSIGN COMPONENT 'ZFIELD35' OF STRUCTURE gs_alv1 TO FIELD-SYMBOL(<lf_zfield35>). IF <lf_zfield35> IS ASSIGNED. <lf_zfield35> = ls_data-hsl. ENDIF. WHEN '8000013300'. "专利费 ASSIGN COMPONENT 'ZFIELD36' OF STRUCTURE gs_alv1 TO FIELD-SYMBOL(<lf_zfield36>). IF <lf_zfield36> IS ASSIGNED. <lf_zfield36> = ls_data-hsl. ENDIF. WHEN '8000013400'. "商标注册费 ASSIGN COMPONENT 'ZFIELD37' OF STRUCTURE gs_alv1 TO FIELD-SYMBOL(<lf_zfield37>). IF <lf_zfield37> IS ASSIGNED. <lf_zfield37> = ls_data-hsl. ENDIF. WHEN '8000010110'. "辞退福利 ASSIGN COMPONENT 'ZFIELD38' OF STRUCTURE gs_alv1 TO FIELD-SYMBOL(<lf_zfield38>). IF <lf_zfield38> IS ASSIGNED. <lf_zfield38> = ls_data-hsl. ENDIF. WHEN '8000010900'. "工会经费(固定) ASSIGN COMPONENT 'ZFIELD39' OF STRUCTURE gs_alv1 TO FIELD-SYMBOL(<lf_zfield39>). IF <lf_zfield39> IS ASSIGNED. <lf_zfield39> = ls_data-hsl. ENDIF. WHEN '8000010920'. "工会经费(变动) ASSIGN COMPONENT 'ZFIELD40' OF STRUCTURE gs_alv1 TO FIELD-SYMBOL(<lf_zfield40>). IF <lf_zfield40> IS ASSIGNED. <lf_zfield40> = ls_data-hsl. ENDIF. WHEN '8000010600'. "餐费 ASSIGN COMPONENT 'ZFIELD41' OF STRUCTURE gs_alv1 TO FIELD-SYMBOL(<lf_zfield41>). IF <lf_zfield41> IS ASSIGNED. <lf_zfield41> = ls_data-hsl. ENDIF. WHEN '8000010700'. "团队建设费 ASSIGN COMPONENT 'ZFIELD42' OF STRUCTURE gs_alv1 TO FIELD-SYMBOL(<lf_zfield42>). IF <lf_zfield42> IS ASSIGNED. <lf_zfield42> = ls_data-hsl. ENDIF. WHEN '8000010800'. "其他福利费 ASSIGN COMPONENT 'ZFIELD43' OF STRUCTURE gs_alv1 TO FIELD-SYMBOL(<lf_zfield43>). IF <lf_zfield43> IS ASSIGNED. <lf_zfield43> = ls_data-hsl. ENDIF. WHEN '8000011300'. "差旅费 ASSIGN COMPONENT 'ZFIELD44' OF STRUCTURE gs_alv1 TO FIELD-SYMBOL(<lf_zfield44>). IF <lf_zfield44> IS ASSIGNED. <lf_zfield44> = ls_data-hsl. ENDIF. WHEN '8000011600'. "会议费 ASSIGN COMPONENT 'ZFIELD45' OF STRUCTURE gs_alv1 TO FIELD-SYMBOL(<lf_zfield45>). IF <lf_zfield45> IS ASSIGNED. <lf_zfield45> = ls_data-hsl. ENDIF. WHEN '8000012900'. "协会费 ASSIGN COMPONENT 'ZFIELD46' OF STRUCTURE gs_alv1 TO FIELD-SYMBOL(<lf_zfield46>). IF <lf_zfield46> IS ASSIGNED. <lf_zfield46> = ls_data-hsl. ENDIF. WHEN '8000011000'. "劳防费 ASSIGN COMPONENT 'ZFIELD47' OF STRUCTURE gs_alv1 TO FIELD-SYMBOL(<lf_zfield47>). IF <lf_zfield47> IS ASSIGNED. <lf_zfield47> = ls_data-hsl. ENDIF. WHEN '8000011100'. "保险费 ASSIGN COMPONENT 'ZFIELD48' OF STRUCTURE gs_alv1 TO FIELD-SYMBOL(<lf_zfield48>). IF <lf_zfield48> IS ASSIGNED. <lf_zfield48> = ls_data-hsl. ENDIF. WHEN '8000011200'. "培训费 ASSIGN COMPONENT 'ZFIELD49' OF STRUCTURE gs_alv1 TO FIELD-SYMBOL(<lf_zfield49>). IF <lf_zfield49> IS ASSIGNED. <lf_zfield49> = ls_data-hsl. ENDIF. WHEN '8000011400'. "车辆费 ASSIGN COMPONENT 'ZFIELD50' OF STRUCTURE gs_alv1 TO FIELD-SYMBOL(<lf_zfield50>). IF <lf_zfield50> IS ASSIGNED. <lf_zfield50> = ls_data-hsl. ENDIF. WHEN '8000011800'. "办公费 ASSIGN COMPONENT 'ZFIELD51' OF STRUCTURE gs_alv1 TO FIELD-SYMBOL(<lf_zfield51>). IF <lf_zfield51> IS ASSIGNED. <lf_zfield51> = ls_data-hsl. ENDIF. WHEN '8000011900'. "邮寄费 ASSIGN COMPONENT 'ZFIELD52' OF STRUCTURE gs_alv1 TO FIELD-SYMBOL(<lf_zfield52>). IF <lf_zfield52> IS ASSIGNED. <lf_zfield52> = ls_data-hsl. ENDIF. WHEN '8000012000'. "运输费 ASSIGN COMPONENT 'ZFIELD53' OF STRUCTURE gs_alv1 TO FIELD-SYMBOL(<lf_zfield53>). IF <lf_zfield53> IS ASSIGNED. <lf_zfield53> = ls_data-hsl. ENDIF. WHEN '8000012100'. "招待费 ASSIGN COMPONENT 'ZFIELD54' OF STRUCTURE gs_alv1 TO FIELD-SYMBOL(<lf_zfield54>). IF <lf_zfield54> IS ASSIGNED. <lf_zfield54> = ls_data-hsl. ENDIF. WHEN '8000012200'. "招聘费 ASSIGN COMPONENT 'ZFIELD55' OF STRUCTURE gs_alv1 TO FIELD-SYMBOL(<lf_zfield55>). IF <lf_zfield55> IS ASSIGNED. <lf_zfield55> = ls_data-hsl. ENDIF. WHEN '8000012800'. "仓储服务费 ASSIGN COMPONENT 'ZFIELD56' OF STRUCTURE gs_alv1 TO FIELD-SYMBOL(<lf_zfield56>). IF <lf_zfield56> IS ASSIGNED. <lf_zfield56> = ls_data-hsl. ENDIF. WHEN '8000013000'. "软件许可费 ASSIGN COMPONENT 'ZFIELD57' OF STRUCTURE gs_alv1 TO FIELD-SYMBOL(<lf_zfield57>). IF <lf_zfield57> IS ASSIGNED. <lf_zfield57> = ls_data-hsl. ENDIF. WHEN '8000013100'. "耗材 ASSIGN COMPONENT 'ZFIELD58' OF STRUCTURE gs_alv1 TO FIELD-SYMBOL(<lf_zfield58>). IF <lf_zfield58> IS ASSIGNED. <lf_zfield58> = ls_data-hsl. ENDIF. WHEN '8000013200'. "税费 ASSIGN COMPONENT 'ZFIELD59' OF STRUCTURE gs_alv1 TO FIELD-SYMBOL(<lf_zfield59>). IF <lf_zfield59> IS ASSIGNED. <lf_zfield59> = ls_data-hsl. ENDIF. WHEN '8000013800'. "广宣费 ASSIGN COMPONENT 'ZFIELD60' OF STRUCTURE gs_alv1 TO FIELD-SYMBOL(<lf_zfield60>). IF <lf_zfield60> IS ASSIGNED. <lf_zfield60> = ls_data-hsl. ENDIF. WHEN '8000013900'. "展会费 ASSIGN COMPONENT 'ZFIELD61' OF STRUCTURE gs_alv1 TO FIELD-SYMBOL(<lf_zfield61>). IF <lf_zfield61> IS ASSIGNED. <lf_zfield61> = ls_data-hsl. ENDIF. WHEN '8000014000'. "其他售后费 ASSIGN COMPONENT 'ZFIELD62' OF STRUCTURE gs_alv1 TO FIELD-SYMBOL(<lf_zfield62>). IF <lf_zfield62> IS ASSIGNED. <lf_zfield62> = ls_data-hsl. ENDIF. WHEN '8000014100'. "房租费 ASSIGN COMPONENT 'ZFIELD63' OF STRUCTURE gs_alv1 TO FIELD-SYMBOL(<lf_zfield63>). IF <lf_zfield63> IS ASSIGNED. <lf_zfield63> = ls_data-hsl. ENDIF. WHEN '8000014200'. "机物料消耗 ASSIGN COMPONENT 'ZFIELD64' OF STRUCTURE gs_alv1 TO FIELD-SYMBOL(<lf_zfield64>). IF <lf_zfield64> IS ASSIGNED. <lf_zfield64> = ls_data-hsl. ENDIF. WHEN '8000014510'. "摊销费-装修 ASSIGN COMPONENT 'ZFIELD65' OF STRUCTURE gs_alv1 TO FIELD-SYMBOL(<lf_zfield65>). IF <lf_zfield65> IS ASSIGNED. <lf_zfield65> = ls_data-hsl. ENDIF. WHEN '8000014520'. "摊销费-数据费 ASSIGN COMPONENT 'ZFIELD66' OF STRUCTURE gs_alv1 TO FIELD-SYMBOL(<lf_zfield66>). IF <lf_zfield66> IS ASSIGNED. <lf_zfield66> = ls_data-hsl. ENDIF. WHEN '8000014530'. "摊销费-广告费 ASSIGN COMPONENT 'ZFIELD67' OF STRUCTURE gs_alv1 TO FIELD-SYMBOL(<lf_zfield67>). IF <lf_zfield67> IS ASSIGNED. <lf_zfield67> = ls_data-hsl. ENDIF. WHEN '8000014600'. "物业费 ASSIGN COMPONENT 'ZFIELD68' OF STRUCTURE gs_alv1 TO FIELD-SYMBOL(<lf_zfield68>). IF <lf_zfield68> IS ASSIGNED. <lf_zfield68> = ls_data-hsl. ENDIF. WHEN '8000014700'. "客退返修费 ASSIGN COMPONENT 'ZFIELD69' OF STRUCTURE gs_alv1 TO FIELD-SYMBOL(<lf_zfield69>). IF <lf_zfield69> IS ASSIGNED. <lf_zfield69> = ls_data-hsl. ENDIF. WHEN '8000015400'. "售后三包材料费 ASSIGN COMPONENT 'ZFIELD70' OF STRUCTURE gs_alv1 TO FIELD-SYMBOL(<lf_zfield70>). IF <lf_zfield70> IS ASSIGNED. <lf_zfield70> = ls_data-hsl. ENDIF. WHEN '8000015600'. "品牌建设费 ASSIGN COMPONENT 'ZFIELD71' OF STRUCTURE gs_alv1 TO FIELD-SYMBOL(<lf_zfield71>). IF <lf_zfield71> IS ASSIGNED. <lf_zfield71> = ls_data-hsl. ENDIF. WHEN '8000015700'. "物料报废损失 ASSIGN COMPONENT 'ZFIELD72' OF STRUCTURE gs_alv1 TO FIELD-SYMBOL(<lf_zfield72>). IF <lf_zfield72> IS ASSIGNED. <lf_zfield72> = ls_data-hsl. ENDIF. WHEN '8000015800'. "停工损失 ASSIGN COMPONENT 'ZFIELD73' OF STRUCTURE gs_alv1 TO FIELD-SYMBOL(<lf_zfield73>). IF <lf_zfield73> IS ASSIGNED. <lf_zfield73> = ls_data-hsl. ENDIF. WHEN '8000015900'. "网络通信费 ASSIGN COMPONENT 'ZFIELD74' OF STRUCTURE gs_alv1 TO FIELD-SYMBOL(<lf_zfield74>). IF <lf_zfield74> IS ASSIGNED. <lf_zfield74> = ls_data-hsl. ENDIF. WHEN '8000016000'. "产品运营数据存储费 ASSIGN COMPONENT 'ZFIELD75' OF STRUCTURE gs_alv1 TO FIELD-SYMBOL(<lf_zfield75>). IF <lf_zfield75> IS ASSIGNED. <lf_zfield75> = ls_data-hsl. ENDIF. WHEN '8000016200'. "环保安全费 ASSIGN COMPONENT 'ZFIELD76' OF STRUCTURE gs_alv1 TO FIELD-SYMBOL(<lf_zfield76>). IF <lf_zfield76> IS ASSIGNED. <lf_zfield76> = ls_data-hsl. ENDIF. WHEN '8000016400'. "售后三包-质量保证金 ASSIGN COMPONENT 'ZFIELD77' OF STRUCTURE gs_alv1 TO FIELD-SYMBOL(<lf_zfield77>). IF <lf_zfield77> IS ASSIGNED. <lf_zfield77> = ls_data-hsl. ENDIF. WHEN '8000016800'. "办公用具 ASSIGN COMPONENT 'ZFIELD78' OF STRUCTURE gs_alv1 TO FIELD-SYMBOL(<lf_zfield78>). IF <lf_zfield78> IS ASSIGNED. <lf_zfield78> = ls_data-hsl. ENDIF. WHEN '8000016900'. "低值易耗品 ASSIGN COMPONENT 'ZFIELD79' OF STRUCTURE gs_alv1 TO FIELD-SYMBOL(<lf_zfield79>). IF <lf_zfield79> IS ASSIGNED. <lf_zfield79> = ls_data-hsl. ENDIF. WHEN '8000017000'. "质量损失 ASSIGN COMPONENT 'ZFIELD80' OF STRUCTURE gs_alv1 TO FIELD-SYMBOL(<lf_zfield80>). IF <lf_zfield80> IS ASSIGNED. <lf_zfield80> = ls_data-hsl. ENDIF. WHEN '8000017100'. "股份支付 ASSIGN COMPONENT 'ZFIELD81' OF STRUCTURE gs_alv1 TO FIELD-SYMBOL(<lf_zfield81>). IF <lf_zfield81> IS ASSIGNED. <lf_zfield81> = ls_data-hsl. ENDIF. WHEN '8000017200'. "其他费用 ASSIGN COMPONENT 'ZFIELD82' OF STRUCTURE gs_alv1 TO FIELD-SYMBOL(<lf_zfield82>). IF <lf_zfield82> IS ASSIGNED. <lf_zfield82> = ls_data-hsl. ENDIF. WHEN '8000017900'. "研发支出-费用化支出-委托境外研发费用 ASSIGN COMPONENT 'ZFIELD83' OF STRUCTURE gs_alv1 TO FIELD-SYMBOL(<lf_zfield83>). IF <lf_zfield83> IS ASSIGNED. <lf_zfield83> = ls_data-hsl. ENDIF. WHEN '8000017800'. "研发支出-费用化支出-委托境内研发费用 ASSIGN COMPONENT 'ZFIELD84' OF STRUCTURE gs_alv1 TO FIELD-SYMBOL(<lf_zfield84>). IF <lf_zfield84> IS ASSIGNED. <lf_zfield84> = ls_data-hsl. ENDIF. WHEN '8000018000'. "副产品产出 ASSIGN COMPONENT 'ZFIELD85' OF STRUCTURE gs_alv1 TO FIELD-SYMBOL(<lf_zfield85>). IF <lf_zfield85> IS ASSIGNED. <lf_zfield85> = ls_data-hsl. ENDIF. WHEN '8000990010'. "结转 ASSIGN COMPONENT 'ZFIELD86' OF STRUCTURE gs_alv1 TO FIELD-SYMBOL(<lf_zfield86>). IF <lf_zfield86> IS ASSIGNED. <lf_zfield86> = ls_data-hsl. ENDIF. ENDCASE. COLLECT gs_alv1 INTO gt_alv1. CLEAR: ls_data, gs_alv1. ENDLOOP. "负号前置 LOOP AT gt_alv1 INTO gs_alv1. MOVE-CORRESPONDING gs_alv1 TO gs_alv. DO 88 TIMES. IF sy-index < 10. lv_index = 'ZFIELD' && '0' && sy-index. ELSE. lv_index = 'ZFIELD' && sy-index. ENDIF. ASSIGN COMPONENT lv_index OF STRUCTURE gs_alv TO <fs>. lv_tmp = <fs>. CALL FUNCTION 'CLOI_PUT_SIGN_IN_FRONT' CHANGING value = lv_tmp. <fs> = lv_tmp. ENDDO. APPEND gs_alv TO gt_alv. CLEAR: gs_alv , gs_alv1 , lv_index , lv_tmp. ENDLOOP. ENDFORM. *&---------------------------------------------------------------------* *& Form FRM_MERGE_CELL *&---------------------------------------------------------------------* *& text *&---------------------------------------------------------------------* *& --> p1 text *& <-- p2 text *&---------------------------------------------------------------------* FORM frm_merge_cell USING cl_alv_grid TYPE REF TO zcl_gui_alv_grid_merge. DATA: ls_tab_col_merge TYPE lvc_s_co01, lt_tab_col_merge TYPE lvc_t_co01. DATA lv_index TYPE i. "------第一行------- "公司代码单元格合并 ls_tab_col_merge-col_id = 1. ls_tab_col_merge-outputlen = 4. APPEND ls_tab_col_merge TO lt_tab_col_merge. "公司名称单元格合并 ls_tab_col_merge-col_id = 2. ls_tab_col_merge-outputlen = 5. APPEND ls_tab_col_merge TO lt_tab_col_merge. "项目名称单元格合并 ls_tab_col_merge-col_id = 3. ls_tab_col_merge-outputlen = 6. APPEND ls_tab_col_merge TO lt_tab_col_merge. "项目编号单元格合并 ls_tab_col_merge-col_id = 4. ls_tab_col_merge-outputlen = 7. APPEND ls_tab_col_merge TO lt_tab_col_merge. "项目类别单元格合并 ls_tab_col_merge-col_id = 5. ls_tab_col_merge-outputlen = 8. APPEND ls_tab_col_merge TO lt_tab_col_merge. "项目类别名称单元格合并 ls_tab_col_merge-col_id = 6. ls_tab_col_merge-outputlen = 9. APPEND ls_tab_col_merge TO lt_tab_col_merge. "余额单元格合并 ls_tab_col_merge-col_id = 87. ls_tab_col_merge-outputlen = 90. APPEND ls_tab_col_merge TO lt_tab_col_merge. CALL METHOD cl_alv_grid->z_set_merge_vert EXPORTING row = 1 CHANGING tab_col_merge = lt_tab_col_merge. "样式设置 粗体/居中对齐 CALL METHOD cl_alv_grid->z_set_cell_style EXPORTING row = 1 col = 1 style = CONV #( alv_style_font_bold + alv_style_align_center_center ). CALL METHOD cl_alv_grid->z_set_cell_style EXPORTING row = 1 col = 2 style = CONV #( alv_style_font_bold + alv_style_align_center_center ). CALL METHOD cl_alv_grid->z_set_cell_style EXPORTING row = 1 col = 3 style = CONV #( alv_style_font_bold + alv_style_align_center_center ). CALL METHOD cl_alv_grid->z_set_cell_style EXPORTING row = 1 col = 4 style = CONV #( alv_style_font_bold + alv_style_align_center_center ). CALL METHOD cl_alv_grid->z_set_cell_style EXPORTING row = 1 col = 5 style = CONV #( alv_style_font_bold + alv_style_align_center_center ). CALL METHOD cl_alv_grid->z_set_cell_style EXPORTING row = 1 col = 6 style = CONV #( alv_style_font_bold + alv_style_align_center_center ). "人员人工费用单元格合并 CLEAR lt_tab_col_merge. ls_tab_col_merge-col_id = 7. ls_tab_col_merge-outputlen = 17. APPEND ls_tab_col_merge TO lt_tab_col_merge. "直接投入费用单元格合并 ls_tab_col_merge-col_id = 18. ls_tab_col_merge-outputlen = 26. APPEND ls_tab_col_merge TO lt_tab_col_merge. "新产品设计费用单元格合并 ls_tab_col_merge-col_id = 29. ls_tab_col_merge-outputlen = 30. APPEND ls_tab_col_merge TO lt_tab_col_merge. "其他相关费用 ls_tab_col_merge-col_id = 31. ls_tab_col_merge-outputlen = 82. APPEND ls_tab_col_merge TO lt_tab_col_merge. "委托研发费用 ls_tab_col_merge-col_id = 83. ls_tab_col_merge-outputlen = 84. APPEND ls_tab_col_merge TO lt_tab_col_merge. "转出 ls_tab_col_merge-col_id = 85. ls_tab_col_merge-outputlen = 86. APPEND ls_tab_col_merge TO lt_tab_col_merge. CALL METHOD cl_alv_grid->z_set_merge_horiz EXPORTING row = 1 CHANGING tab_col_merge = lt_tab_col_merge. "样式设置 粗体/居中对齐 "人员人工费用 "fiest cell style CALL METHOD cl_alv_grid->z_set_cell_style EXPORTING row = 1 col = 7 style = CONV #( alv_style_font_bold + alv_style_align_center_center ). "last cell style CALL METHOD cl_alv_grid->z_set_cell_style EXPORTING row = 1 col = 17 style = CONV #( alv_style_font_bold + alv_style_align_center_center ). "直接投入费用 "first cell style CALL METHOD cl_alv_grid->z_set_cell_style EXPORTING row = 1 col = 18 style = CONV #( alv_style_font_bold + alv_style_align_center_center ). "last cell style CALL METHOD cl_alv_grid->z_set_cell_style EXPORTING row = 1 col = 26 style = CONV #( alv_style_font_bold + alv_style_align_center_center ). "折旧费用 CALL METHOD cl_alv_grid->z_set_cell_style EXPORTING row = 1 col = 27 style = CONV #( alv_style_font_bold + alv_style_align_center_center ). "无形资产摊销 CALL METHOD cl_alv_grid->z_set_cell_style EXPORTING row = 1 col = 28 style = CONV #( alv_style_font_bold + alv_style_align_center_center ). "新产品设计费 "first cell style CALL METHOD cl_alv_grid->z_set_cell_style EXPORTING row = 1 col = 29 style = CONV #( alv_style_font_bold + alv_style_align_center_center ). "last cell style CALL METHOD cl_alv_grid->z_set_cell_style EXPORTING row = 1 col = 30 style = CONV #( alv_style_font_bold + alv_style_align_center_center ). "其他相关费用 "first cell style CALL METHOD cl_alv_grid->z_set_cell_style EXPORTING row = 1 col = 31 style = CONV #( alv_style_font_bold + alv_style_align_center_center ). "last cell style CALL METHOD cl_alv_grid->z_set_cell_style EXPORTING row = 1 col = 82 style = CONV #( alv_style_font_bold + alv_style_align_center_center ). "委托研发费用 "first cell style CALL METHOD cl_alv_grid->z_set_cell_style EXPORTING row = 1 col = 83 style = CONV #( alv_style_font_bold + alv_style_align_center_center ). "last cell style CALL METHOD cl_alv_grid->z_set_cell_style EXPORTING row = 1 col = 84 style = CONV #( alv_style_font_bold + alv_style_align_center_center ). "转出 "first cell style CALL METHOD cl_alv_grid->z_set_cell_style EXPORTING row = 1 col = 85 style = CONV #( alv_style_font_bold + alv_style_align_center_center ). "last cell style CALL METHOD cl_alv_grid->z_set_cell_style EXPORTING row = 1 col = 86 style = CONV #( alv_style_font_bold + alv_style_align_center_center ). "余额 CALL METHOD cl_alv_grid->z_set_cell_style EXPORTING row = 1 col = 87 style = CONV #( alv_style_font_bold + alv_style_align_center_center ). "------第二行------- "直接从事研发活动人员-工资薪金单元格合并 CLEAR lt_tab_col_merge. ls_tab_col_merge-col_id = 7. ls_tab_col_merge-outputlen = 10 . APPEND ls_tab_col_merge TO lt_tab_col_merge. "直接从事研发活动人员-五险一金单元格合并 ls_tab_col_merge-col_id = 11. ls_tab_col_merge-outputlen = 15. APPEND ls_tab_col_merge TO lt_tab_col_merge. "外聘研发人员的劳务费用单元格合并 ls_tab_col_merge-col_id = 16. ls_tab_col_merge-outputlen = 17. APPEND ls_tab_col_merge TO lt_tab_col_merge. "研发成果的检索、分析、评议、论证、鉴定、评审、评估、验收费用单元格合并 ls_tab_col_merge-col_id = 32. ls_tab_col_merge-outputlen = 35. APPEND ls_tab_col_merge TO lt_tab_col_merge. "知识产权的申请费、注册费、代理费单元格合并 ls_tab_col_merge-col_id = 36. ls_tab_col_merge-outputlen = 37. APPEND ls_tab_col_merge TO lt_tab_col_merge. "职工福利费、补充养老保险费、补充医疗保险费单元格合并 ls_tab_col_merge-col_id = 38. ls_tab_col_merge-outputlen = 43. APPEND ls_tab_col_merge TO lt_tab_col_merge. "差旅费、会议费单元格合并 ls_tab_col_merge-col_id = 44. ls_tab_col_merge-outputlen = 46. APPEND ls_tab_col_merge TO lt_tab_col_merge. "其他费用单元格合并 ls_tab_col_merge-col_id = 47. ls_tab_col_merge-outputlen = 82. APPEND ls_tab_col_merge TO lt_tab_col_merge. CALL METHOD cl_alv_grid->z_set_merge_horiz EXPORTING row = 2 CHANGING tab_col_merge = lt_tab_col_merge. "样式设置 粗体/居中对齐 "直接从事研发活动人员-工资薪金 "fiest cell style CALL METHOD cl_alv_grid->z_set_cell_style EXPORTING row = 2 col = 7 style = CONV #( alv_style_font_bold + alv_style_align_center_center ). "last cell style CALL METHOD cl_alv_grid->z_set_cell_style EXPORTING row = 2 col = 10 style = CONV #( alv_style_font_bold + alv_style_align_center_center ). "直接从事研发活动人员-五险一金 "first cell style CALL METHOD cl_alv_grid->z_set_cell_style EXPORTING row = 2 col = 11 style = CONV #( alv_style_font_bold + alv_style_align_center_center ). "last cell style CALL METHOD cl_alv_grid->z_set_cell_style EXPORTING row = 2 col = 15 style = CONV #( alv_style_font_bold + alv_style_align_center_center ). "外聘研发人员的劳务费用 "first cell style CALL METHOD cl_alv_grid->z_set_cell_style EXPORTING row = 2 col = 16 style = CONV #( alv_style_font_bold + alv_style_align_center_center ). "last cell style CALL METHOD cl_alv_grid->z_set_cell_style EXPORTING row = 2 col = 17 style = CONV #( alv_style_font_bold + alv_style_align_center_center ). "研发活动直接消耗-材料 CALL METHOD cl_alv_grid->z_set_cell_style EXPORTING row = 2 col = 18 style = CONV #( alv_style_font_bold + alv_style_align_center_center ). "研发活动直接消耗-燃料 CALL METHOD cl_alv_grid->z_set_cell_style EXPORTING row = 2 col = 19 style = CONV #( alv_style_font_bold + alv_style_align_center_center ). "研发活动直接消耗-动力费用 CALL METHOD cl_alv_grid->z_set_cell_style EXPORTING row = 2 col = 20 style = CONV #( alv_style_font_bold + alv_style_align_center_center ). "研发活动直接消耗-动力费用 CALL METHOD cl_alv_grid->z_set_cell_style EXPORTING row = 2 col = 21 style = CONV #( alv_style_font_bold + alv_style_align_center_center ). "用于不构成固定资产的样品、样机及一般测试手段购置费 CALL METHOD cl_alv_grid->z_set_cell_style EXPORTING row = 2 col = 22 style = CONV #( alv_style_font_bold + alv_style_align_center_center ). "用于中间试验和产品试制的模具、工艺装备开发及制造费 CALL METHOD cl_alv_grid->z_set_cell_style EXPORTING row = 2 col = 23 style = CONV #( alv_style_font_bold + alv_style_align_center_center ). "用于试制产品的检验费 CALL METHOD cl_alv_grid->z_set_cell_style EXPORTING row = 2 col = 24 style = CONV #( alv_style_font_bold + alv_style_align_center_center ). "用于研发活动的仪器、设备的运行维护、调整、检验、维修等费用 CALL METHOD cl_alv_grid->z_set_cell_style EXPORTING row = 2 col = 25 style = CONV #( alv_style_font_bold + alv_style_align_center_center ). "通过经营租赁方式租入的用于研发活动的仪器、设备租赁费 CALL METHOD cl_alv_grid->z_set_cell_style EXPORTING row = 2 col = 26 style = CONV #( alv_style_font_bold + alv_style_align_center_center ). "用于研发活动的设备的折旧费 CALL METHOD cl_alv_grid->z_set_cell_style EXPORTING row = 2 col = 27 style = CONV #( alv_style_font_bold + alv_style_align_center_center ). "用于研发活动的软件的摊销费用 CALL METHOD cl_alv_grid->z_set_cell_style EXPORTING row = 2 col = 28 style = CONV #( alv_style_font_bold + alv_style_align_center_center ). "新产品设计费 CALL METHOD cl_alv_grid->z_set_cell_style EXPORTING row = 2 col = 29 style = CONV #( alv_style_font_bold + alv_style_align_center_center ). "新产品设计费 CALL METHOD cl_alv_grid->z_set_cell_style EXPORTING row = 2 col = 30 style = CONV #( alv_style_font_bold + alv_style_align_center_center ). "技术图书资料费、资料翻译费、专家咨询费、高新科技研发保险费 CALL METHOD cl_alv_grid->z_set_cell_style EXPORTING row = 2 col = 31 style = CONV #( alv_style_font_bold + alv_style_align_center_center ). "研发成果的检索、分析、评议、论证、鉴定、评审、评估、验收费用 "first cell style CALL METHOD cl_alv_grid->z_set_cell_style EXPORTING row = 2 col = 32 style = CONV #( alv_style_font_bold + alv_style_align_center_center ). "last cell style CALL METHOD cl_alv_grid->z_set_cell_style EXPORTING row = 1 col = 35 style = CONV #( alv_style_font_bold + alv_style_align_center_center ). "知识产权的申请费、注册费、代理费 "first cell style CALL METHOD cl_alv_grid->z_set_cell_style EXPORTING row = 2 col = 36 style = CONV #( alv_style_font_bold + alv_style_align_center_center ). "last cell style CALL METHOD cl_alv_grid->z_set_cell_style EXPORTING row = 2 col = 37 style = CONV #( alv_style_font_bold + alv_style_align_center_center ). "职工福利费、补充养老保险费、补充医疗保险费 "first cell style CALL METHOD cl_alv_grid->z_set_cell_style EXPORTING row = 2 col = 38 style = CONV #( alv_style_font_bold + alv_style_align_center_center ). "last cell style CALL METHOD cl_alv_grid->z_set_cell_style EXPORTING row = 2 col = 43 style = CONV #( alv_style_font_bold + alv_style_align_center_center ). "差旅费、会议费 "first cell style CALL METHOD cl_alv_grid->z_set_cell_style EXPORTING row = 2 col = 44 style = CONV #( alv_style_font_bold + alv_style_align_center_center ). "last cell style CALL METHOD cl_alv_grid->z_set_cell_style EXPORTING row = 2 col = 45 style = CONV #( alv_style_font_bold + alv_style_align_center_center ). "其他费用 "first cell style CALL METHOD cl_alv_grid->z_set_cell_style EXPORTING row = 2 col = 47 style = CONV #( alv_style_font_bold + alv_style_align_center_center ). "last cell style CALL METHOD cl_alv_grid->z_set_cell_style EXPORTING row = 2 col = 82 style = CONV #( alv_style_font_bold + alv_style_align_center_center ). "委托境外机构进行研发活动发生的费用 CALL METHOD cl_alv_grid->z_set_cell_style EXPORTING row = 2 col = 83 style = CONV #( alv_style_font_bold + alv_style_align_center_center ). "委托境内机构或个人进行研发活动所发生的费用 CALL METHOD cl_alv_grid->z_set_cell_style EXPORTING row = 2 col = 84 style = CONV #( alv_style_font_bold + alv_style_align_center_center ). "副产品产出 CALL METHOD cl_alv_grid->z_set_cell_style EXPORTING row = 2 col = 85 style = CONV #( alv_style_font_bold + alv_style_align_center_center ). "结转 CALL METHOD cl_alv_grid->z_set_cell_style EXPORTING row = 2 col = 86 style = CONV #( alv_style_font_bold + alv_style_align_center_center ). DO 81 TIMES. lv_index = sy-index + 6. "------第三行------- "样式设置 粗体/居中对齐 CALL METHOD cl_alv_grid->z_set_cell_style EXPORTING row = 3 col = lv_index style = CONV #( alv_style_font_bold + alv_style_align_center_center ). "------第四行------- "样式设置 粗体/居中对齐 CALL METHOD cl_alv_grid->z_set_cell_style EXPORTING row = 4 col = lv_index style = CONV #( alv_style_font_bold + alv_style_align_center_center ). ENDDO. cl_alv_grid->z_set_fixed_col_row( col = 6 row = 1 ). cl_alv_grid->z_display( ). ENDFORM. *&---------------------------------------------------------------------* *& Form FRM_MODIFY *&---------------------------------------------------------------------* *& text *&---------------------------------------------------------------------* * -->P_E_MODIFIED text * -->P_ET_GOOD_CELLS text *&---------------------------------------------------------------------* FORM frm_modify USING lv_modified TYPE char01 it_good_cells TYPE lvc_t_modi. DATA ls_good_cells TYPE lvc_s_modi. DATA: lv_message TYPE char100, lv_lines TYPE i. FIELD-SYMBOLS <ls_data> LIKE LINE OF gt_alv. DESCRIBE TABLE gt_alv LINES lv_lines. LOOP AT gt_alv INTO gs_alv FROM 5 TO lv_lines. "余额 = 合计 + 结转 gs_alv-zfield87 = gs_alv-zfield86 + gs_alv-zfield85 + gs_alv-zfield84 + gs_alv-zfield83 + gs_alv-zfield82 + gs_alv-zfield81 + gs_alv-zfield80 + gs_alv-zfield79 + gs_alv-zfield78 + gs_alv-zfield77 + gs_alv-zfield76 + gs_alv-zfield75 + gs_alv-zfield74 + gs_alv-zfield73 + gs_alv-zfield72 + gs_alv-zfield71 + gs_alv-zfield70 + gs_alv-zfield69 + gs_alv-zfield68 + gs_alv-zfield67 + gs_alv-zfield66 + gs_alv-zfield65 + gs_alv-zfield64 + gs_alv-zfield63 + gs_alv-zfield62 + gs_alv-zfield61 + gs_alv-zfield60 + gs_alv-zfield59 + gs_alv-zfield58 + gs_alv-zfield57 + gs_alv-zfield56 + gs_alv-zfield55 + gs_alv-zfield54 + gs_alv-zfield53 + gs_alv-zfield52 + gs_alv-zfield51 + gs_alv-zfield50 + gs_alv-zfield49 + gs_alv-zfield48 + gs_alv-zfield47 + gs_alv-zfield46 + gs_alv-zfield45 + gs_alv-zfield44 + gs_alv-zfield43 + gs_alv-zfield42 + gs_alv-zfield41 + gs_alv-zfield40 + gs_alv-zfield39 + gs_alv-zfield38 + gs_alv-zfield37 + gs_alv-zfield36 + gs_alv-zfield35 + gs_alv-zfield34 + gs_alv-zfield33 + gs_alv-zfield32 + gs_alv-zfield31 + gs_alv-zfield30 + gs_alv-zfield29 + gs_alv-zfield28 + gs_alv-zfield27 + gs_alv-zfield26 + gs_alv-zfield25 + gs_alv-zfield24 + gs_alv-zfield23 + gs_alv-zfield22 + gs_alv-zfield21 + gs_alv-zfield20 + gs_alv-zfield19 + gs_alv-zfield18 + gs_alv-zfield17 + gs_alv-zfield16 + gs_alv-zfield15 + gs_alv-zfield14 + gs_alv-zfield13 + gs_alv-zfield12 + gs_alv-zfield11 + gs_alv-zfield10 + gs_alv-zfield09 + gs_alv-zfield08 + gs_alv-zfield07. SHIFT gs_alv-zfield87 LEFT DELETING LEADING space. MODIFY gt_alv FROM gs_alv. CLEAR gs_alv. ENDLOOP. CLEAR lv_lines. ENDFORM. *&---------------------------------------------------------------------* *& Module MD_DISPLAY_ALV_9000 OUTPUT *&---------------------------------------------------------------------* *& *&---------------------------------------------------------------------* MODULE md_display_alv_9000 OUTPUT. DATA cl_alv_grid TYPE REF TO zcl_gui_alv_grid_merge. IF cl_grid_9000 IS INITIAL. CREATE OBJECT cl_container_9000 EXPORTING container_name = 'CL_CONTAINER_9000'. CREATE OBJECT cl_alv_grid EXPORTING i_parent = cl_container_9000. CALL METHOD cl_alv_grid->set_table_for_first_display EXPORTING i_save = 'A' i_buffer_active = 'X' is_variant = gs_variant is_layout = gs_layout CHANGING it_outtab = gt_alv it_fieldcatalog = gt_fieldcat EXCEPTIONS invalid_parameter_combination = 1 program_error = 2 too_many_lines = 3 OTHERS = 4. DATA: cl_event_receiver_9000 TYPE REF TO cl_event_receiver. CREATE OBJECT cl_event_receiver_9000. * SET HANDLER cl_event_receiver_9000->handle_modify FOR cl_grid_9000. SET HANDLER cl_event_receiver_9000->handle_modify FOR cl_alv_grid. ELSE. CALL METHOD cl_alv_grid->refresh_table_display EXPORTING is_stable = gs_stbl i_soft_refresh = 'X'. ENDIF. cl_alv_grid->set_ready_for_input( ). "合并单元格 PERFORM frm_merge_cell USING cl_alv_grid. ENDMODULE. *&---------------------------------------------------------------------* *& Module MD_STATUS_9000 OUTPUT *&---------------------------------------------------------------------* *& *&---------------------------------------------------------------------* MODULE md_status_9000 OUTPUT. SET PF-STATUS 'ST_9000'. SET TITLEBAR 'TI_9000'. ENDMODULE. *&---------------------------------------------------------------------* *& Module MD_USER_COMMAND_9000 INPUT *&---------------------------------------------------------------------* * text *----------------------------------------------------------------------* MODULE md_user_command_9000 INPUT. CASE ok_code_9000. WHEN 'BACK'. LEAVE TO SCREEN 0. WHEN 'CANCEL' OR 'EXIT'. LEAVE PROGRAM. WHEN OTHERS. ENDCASE. CALL METHOD cl_grid_9000->refresh_table_display EXPORTING is_stable = gs_stbl i_soft_refresh = 'X'. ENDMODULE.
No BB 不看广告,看疗效。
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。