版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、ALV_GRID + 动态显示列程序中带有 select * 的代码请见谅,由于并不十分影响此程序性能,因此没有修改. Description: YCOR1004_N 单船收入成本明细表 *-* PROGRAM ID : YCOR1004 * APPLICATION NAME : CO * AUTHOR : Victor.Pan * TRANSACTION : ZCOR06 * PROGRAM TYPE : REPORT * OUTPUT : ALV_TREE DYNAMIC OUTPUT * SAP RELEASE : 4.6C * DESCRIPTION :
2、 单船收入成本明细表 * CREATED TIME : 2006-11-11 *-* LOG DATE REL CHANGE DESCRIPTION WHO *=* 001 2006-12-01 LAST-CHANGED COMMENTARY Victor.Pan *-*REPORT YCOR1004 .include YCOR1004_TOP_N.*Screen elementsSELECTION-SCREEN BEGIN OF BLOCK RAD1WITH FRAME TITLE TEXT-003.PARAMETERS: BUKRS LIKE BSEG-BUKRS OBLIGATORY.&
3、quot;公司代码SELECT-OPTIONS: ABPER FOR BSEG-ABPER OBLIGATORY."期间*PARAMETERS: CGP LIKE GRPDYNP-NAME_COALL DEFAULT 'GD01'.PARAMETERS: VR LIKE ZCO04_B-ZVARIANT DEFAULT '1' MATCHCODE OBJECT ZCOVARIANT.SELECTION-SCREEN END OF BLOCK RAD1.SELECTION-SCREEN BEGIN OF BLOCK RAD2WITH FRAME TITL
4、E TEXT-002.PARAMETERS: H1 RADIOBUTTON GROUP A1 USER-COMMAND SELE DEFAULT 'X' ."半成品PARAMETERS: H2 RADIOBUTTON GROUP A1."产成品SELECT-OPTIONS: PRCTR FOR COAS-PRCTR."利润中心SELECTION-SCREEN END OF BLOCK RAD2.SELECTION-SCREEN BEGIN OF BLOCK RAD3WITH FRAME TITLE TEXT-001.PARAMETERS: M1 R
5、ADIOBUTTON GROUP A2 USER-COMMAND SELE DEFAULT 'X' ."千元PARAMETERS: M2 RADIOBUTTON GROUP A2."元SELECTION-SCREEN END OF BLOCK RAD3.*AT SELECTION-SCREEN ON VALUE-REQUEST FOR PRCTR-LOW.*PERFORM GET_F4 CHANGING PRCTR-LOW.*AT SELECTION-SCREEN ON VALUE-REQUEST FOR PRCTR-HIGH.*PERFORM GET_F4
6、 CHANGING PRCTR-HIGH.AT SELECTION-SCREEN.AUTHORITY-CHECK OBJECT 'ZBUKRS' ID 'BUKRS' FIELD BUKRS.IF SY-SUBRC <> 0. MESSAGE E000(ZFI01) WITH '没有此公司代码权限'.ENDIF.START-OF-SELECTION.PERFORM GET_PRCTR."获得列润中心与订单PERFORM GET_SALE_COST_ELEMENT TABLES SALE_COST_ELEMENT USING
7、VR. "获得销售成本要素CALL SCREEN 100.include YCOR1004_PROCESS_DATA_N.include YCOR1004_FORMS_N.*Text elements*-* 001 单位选择* 002 半成品/产成品* 003 选择条件*Selection texts*-* ABPER 期间* BUKRS 公司代码* CGP 成本要素组* H1 半成品* H2 产成品* M1 千元* M2 元* PRCTR 利润中心* VR 变式*Messages*-* Message class: ZFI01* 000 &1&2&3&
8、;4&5Extracted by Direct Download 46cd version 1.3.1 - E.G.Mellodew. 1998-2005 UK. Sap Release 46C Description: YCOR1004_TOP_N Include YCOR1004_TOP *-* INCLUDE YCOR1004_TOP *-*TABLES: BSIS,AUFK,COSP,BSEG,COAS,COSS,ZCO04_A,BKPF,CSKA.DATA: BEGIN OF ORDER_LIST OCCURS 0, "订单列表 ORDER LIKE A
9、UFK-AUFNR, END OF ORDER_LIST.DATA: BEGIN OF F4_LIST OCCURS 0, ORDER_10 LIKE AUFK-AUFNR, TEXT LIKE pa0002-nachn, ORDER LIKE AUFK-AUFNR, END OF F4_LIST.DATA: BEGIN OF F4_LIST_SHOW OCCURS 0, PRCTR LIKE COAS-PRCTR, TEXT LIKE COAS-KTEXT, END OF F4_LIST_SHOW.DATA: BEGIN OF COST_ELEMENT OCCURS 0,"成本要素
10、列表 ELEMENT LIKE COSP-KSTAR, Z1 LIKE ZCO04_A-Z1,"取数属性 ATTR LIKE ZCO04_A-ATTR,"+/-属性 END OF COST_ELEMENT.DATA: BEGIN OF COST_ELEMENT_GROUP OCCURS 0,"成本要素组列表 ELEMENT_GROUP LIKE GRPDYNP-NAME_COALL, Z1 LIKE ZCO04_A-Z1,"取数属性 ATTR LIKE ZCO04_A-ATTR,"+/-属性 END OF COST_ELEMENT_GROUP.
11、DATA: CG01 LIKE COST_ELEMENT_GROUP OCCURS 0 WITH HEADER LINE.DATA: CE01 LIKE COST_ELEMENT OCCURS 0 WITH HEADER LINE.DATA: SALE_COST_ELEMENT LIKE COST_ELEMENT OCCURS 0 WITH HEADER LINE.DATA: NEW_TABLE TYPE REF TO DATA.DATA: NEW_LINE TYPE REF TO DATA.FIELD-SYMBOLS: TYPE ANY TABLE, TYPE ANY.DATA: gt_fi
12、eldcatalog TYPE lvc_t_fcat.DATA: it_fieldcat TYPE lvc_t_fcat."CREATE TABLE STRUCTUREdata: gt_fieldcat type lvc_t_fcat."display structureDATA: is_fieldcat LIKE LINE OF it_fieldcat."WORK AREADATA: CONTAINER1 TYPE REF TO CL_GUI_CUSTOM_CONTAINER.DATA: GO_GRID TYPE REF TO CL_GUI_ALV_GRID.D
13、ATA: LAST_COMMAND TYPE SY-UCOMM. DATA: TH1 TYPE BSIS-HKONT.Extracted by Direct Download 46cd version 1.3.1 - E.G.Mellodew. 1998-2005 UK. Sap Release 46C Description: YCOR1004_PROCESS_DATA_N Include YCOR1004_PROCESS_DATA *-* INCLUDE YCOR1004_PROCESS_DATA *-*&-*& Form GET_PRCTR*&-* text*-*
14、 -> p1 text* <- p2 text*-*FORM GET_PRCTR. CLEAR ORDER_LIST. CLEAR F4_LIST. CLEAR F4_LIST_SHOW. DATA: T1 TYPE BSEG-ABPER. "成品与半成品 IF H1 = 'X'. TH1 = '1121020100'. ELSEIF H2 = 'X'. TH1 = '1121040100'. ENDIF. SELECT * FROM BSIS WHERE "BLART = 'SB'
15、 "AND BUKRS = BUKRS " AND PRCTR IN PRCTR AND HKONT = TH1. T1 = BSIS-BUDAT(6). IF T1 IN ABPER. CLEAR: BSEG,ORDER_LIST-ORDER.* SELECT SINGLE ZUONR FROM BSEG INTO ORDER_LIST-ORDER* WHERE BELNR = BSIS-BELNR* AND GJAHR = BSIS-GJAHR* AND BUKRS = BUKRS* AND WRBTR <> 0.* IF ORDER_LIST-ORDER
16、<> ''. ORDER_LIST-ORDER = BSIS-ZUONR. APPEND ORDER_LIST. "加入订单列表* ENDIF. ENDIF. ENDSELECT. SORT ORDER_LIST BY ORDER. DELETE ADJACENT DUPLICATES FROM ORDER_LIST."删除冗余 "CREATE F4_LIST LOOP AT ORDER_LIST. SELECT PRCTR FROM COAS INTO F4_LIST_SHOW-PRCTR WHERE AUFNR = ORDER_LI
17、ST-ORDER. PERFORM GET_PRCTR_TEXT USING F4_LIST_SHOW-PRCTR CHANGING F4_LIST_SHOW-TEXT. APPEND F4_LIST_SHOW. "加入F4_列表 ENDSELECT. ENDLOOP. SORT F4_LIST_SHOW BY PRCTR. DELETE ADJACENT DUPLICATES FROM F4_LIST_SHOW."删除冗余ENDFORM. " GET_PRCTR"利润中心*-* FORM GET_PRCTR_TEXT *-* 获得利润中心文本 *-*
18、-> PRCTR * -> TEXT *-*FORM GET_PRCTR_TEXT USING PRCTR CHANGING TEXT. CLEAR TEXT. SELECT SINGLE KTEXT FROM CEPCT INTO TEXT WHERE SPRAS = '1' AND PRCTR = PRCTR AND KOKRS = '2300'.ENDFORM.*-* FORM BUILD_OUT_TABLE *-* create output alv structure *-*FORM BUILD_OUT_TABLE. CLEAR it_fi
19、eldcat. clear is_fieldcat. is_fieldcat-fieldname = 'AUART'. is_fieldcat-ref_field = 'AUART'. is_fieldcat-ref_table = 'COAS'. is_fieldcat-COLTEXT = '工程类型'. APPEND is_fieldcat TO it_fieldcat. clear is_fieldcat. is_fieldcat-fieldname = 'AUART_TEXT'. is_fieldcat-r
20、ef_field = 'KTEXT'. is_fieldcat-ref_table = 'COAS'. is_fieldcat-COLTEXT = '工程类型'. APPEND is_fieldcat TO it_fieldcat. clear is_fieldcat. is_fieldcat-fieldname = 'AUFNR'. is_fieldcat-ref_field = 'AUFNR'. is_fieldcat-ref_table = 'AUFK'. is_fieldcat-COLTEX
21、T = '工程编号'. APPEND is_fieldcat TO it_fieldcat. clear is_fieldcat. is_fieldcat-fieldname = 'AUFNR_TEXT'. is_fieldcat-ref_field = 'KTEXT'. is_fieldcat-ref_table = 'COAS'. is_fieldcat-COLTEXT = '订单名称'. APPEND is_fieldcat TO it_fieldcat. clear is_fieldcat. is_fiel
22、dcat-fieldname = 'ORDER_STATUS'. is_fieldcat-COLTEXT = '订单状态'. APPEND is_fieldcat TO it_fieldcat. clear is_fieldcat. is_fieldcat-fieldname = 'ORDER10'. is_fieldcat-COLTEXT = '订单组'. APPEND is_fieldcat TO it_fieldcat. clear is_fieldcat. is_fieldcat-fieldname = 'IN_A
23、MOUNT'. is_fieldcat-ref_field = 'WTG001'. is_fieldcat-ref_table = 'COSP'. is_fieldcat-COLTEXT = '收入金额'. is_fieldcat-do_sum = 'X'. APPEND is_fieldcat TO it_fieldcat. PERFORM BUILD_COL01. PERFORM BUILD_COL02. clear is_fieldcat. is_fieldcat-fieldname = 'COST_AMOU
24、NT'. is_fieldcat-ref_field = 'WTG001'. is_fieldcat-ref_table = 'COSP'. is_fieldcat-COLTEXT = '成本'. is_fieldcat-do_sum = 'X'. APPEND is_fieldcat TO it_fieldcat. clear is_fieldcat. is_fieldcat-fieldname = 'PROFIT'. is_fieldcat-ref_field = 'WTG001'. i
25、s_fieldcat-ref_table = 'COSP'. is_fieldcat-COLTEXT = '毛利'. is_fieldcat-do_sum = 'X'. APPEND is_fieldcat TO it_fieldcat. clear is_fieldcat. is_fieldcat-fieldname = 'PROFIT_RATE'. is_fieldcat-ref_field = 'WTG001'. is_fieldcat-ref_table = 'COSP'. is_field
26、cat-COLTEXT = '毛利率%'.* is_fieldcat-EDIT_MASK = '_%'. is_fieldcat-NO_ZERO = 'X'. is_fieldcat-LZERO = ''. is_fieldcat-do_sum = ''. APPEND is_fieldcat TO it_fieldcat. clear is_fieldcat. is_fieldcat-fieldname = 'TCOST'. is_fieldcat-ref_field = 'WTG001&
27、#39;. is_fieldcat-ref_table = 'COSP'. is_fieldcat-COLTEXT = '暂估成本'. is_fieldcat-do_sum = 'X'. APPEND is_fieldcat TO it_fieldcat. CALL METHOD cl_alv_table_create=>create_dynamic_table EXPORTING it_fieldcatalog = it_fieldcat IMPORTING ep_table = new_table. ASSIGN new_table-&
28、gt;* TO . CREATE DATA new_line LIKE LINE OF . ASSIGN new_line->* TO . clear .ENDFORM.*-* FORM BUILD_COL02 *-* build cost element cols *-*FORM BUILD_COL02. DATA: CE LIKE COST_ELEMENT OCCURS 0 WITH HEADER LINE. "get cost elements list via group id.* PERFORM GET_COST_ELEMENT_LIST TABLES CE* USI
29、NG 'GD0102'* 0. PERFORM GET_COST_ELEMENT_ME TABLES CE. CE01 = CE. DATA: COST_N(3) TYPE N VALUE '000'. LOOP AT CE. COST_N = SY-TABIX. CLEAR is_fieldcat. CONCATENATE 'ELEMENT' COST_N INTO is_fieldcat-fieldname. is_fieldcat-ref_field = 'WTG001'. is_fieldcat-ref_table = &
30、#39;COSP'. PERFORM GET_COST_ELEMENT_TEXT USING CE-ELEMENT CHANGING is_fieldcat-COLTEXT. is_fieldcat-do_sum = 'X'. APPEND is_fieldcat TO it_fieldcat. ENDLOOP.ENDFORM.*-* FORM BUILD_COL01 *-* build sub element group alv output cols *-*FORM BUILD_COL01. DATA: COST_GROUP LIKE COST_ELEMENT_GR
31、OUP OCCURS 0 WITH HEADER LINE. "get cost subgroup list via group id.* PERFORM GET_COST_ELEMENT_GROUP_LIST* TABLES COST_GROUP* USING 'GD0102'* 1. PERFORM GET_COST_ELEMENT_GROUP_ME TABLES COST_GROUP. CG01 = COST_GROUP. DATA: COST_N(3) TYPE N VALUE '000'. LOOP AT COST_GROUP. COST_N
32、 = SY-TABIX. CLEAR is_fieldcat. CONCATENATE 'GROUP' COST_N INTO is_fieldcat-fieldname. is_fieldcat-ref_field = 'WTG001'. is_fieldcat-ref_table = 'COSP'. PERFORM GET_COST_GROUP_TEXT USING COST_GROUP-ELEMENT_GROUP CHANGING is_fieldcat-COLTEXT. is_fieldcat-do_sum = 'X'.
33、APPEND is_fieldcat TO it_fieldcat. ENDLOOP.ENDFORM.*-* FORM GET_F4 *-* . *-* -> NAME *-*FORM GET_F4 CHANGING NAME. DATA : f4help LIKE TABLE OF ddshretval WITH HEADER LINE. DATA: dynpprog LIKE SY-REPID. dynpprog = SY-REPID. perFORM GET_PRCTR. "获得利润中心 CALL FUNCTION 'F4IF_INT_TABLE_VALUE_RE
34、QUEST' EXPORTING retfield = 'PRCTR' dynpprog = dynpprog dynpnr = sy-dynnr stepl = '1' window_title = '选择值' value_org = 'S' TABLES value_tab = F4_LIST_SHOW return_tab = f4help. NAME = f4help-fieldval.ENDFORM.*&-*& Module STATUS_0100 OUTPUT*&-* text*-*MO
35、DULE STATUS_0100 OUTPUT. SET PF-STATUS 'MAIN'. IF GO_GRID IS INITIAL. CREATE OBJECT container1 EXPORTING container_name = 'C1'. CREATE OBJECT GO_GRID EXPORTING i_parent = container1. PERFORM BUILD_OUT_TABLE. "build output table structure PERFORM GET_OUT_TABLE_DATA."get outp
36、ut data ENDIF. CLEAR GT_FIELDCAT. IF LAST_COMMAND = 'F2'. PERFORM TRANSFER_IT_TO_GT_02. "format output catlog ELSEIF LAST_COMMAND = 'F3'. PERFORM TRANSFER_IT_TO_GT_03. ELSE. PERFORM TRANSFER_IT_TO_GT_01. ENDIF. DATA: SLA TYPE LVC_S_LAYO. SLA-CWIDTH_OPT = 'X'. DATA: IT_SO
37、RT TYPE LVC_T_SORT. DATA: IT_TAB TYPE LVC_S_SORT. CLEAR IT_SORT. IT_TAB-FIELDNAME = 'ORDER_STATUS'. IT_TAB-SPOS = '1'. IT_TAB-UP = 'X'. IT_TAB-DOWN = SPACE. IT_TAB-SUBTOT = 'X'. APPEND IT_TAB TO IT_SORT. IT_TAB-FIELDNAME = 'ORDER10'. IT_TAB-SPOS = '2'.
38、 IT_TAB-UP = 'X'. IT_TAB-DOWN = SPACE. IT_TAB-SUBTOT = 'X'. APPEND IT_TAB TO IT_SORT. CONCATENATE '单船收入成本明细表 ' ABPER-LOW '-' ABPER-HIGH INTO SLA-GRID_TITLE. PERFORM MODIFY_OUTPUT. call method go_grid->set_table_for_first_display exporting* is_variant = LS_VARI i_sa
39、ve = 'X' is_layout = sla changing it_outtab = it_fieldcatalog = gt_fieldcat IT_SORT = IT_SORT exceptions invalid_parameter_combination = 1 program_error = 2 too_many_lines = 3 others = 4.ENDMODULE. " STATUS_0100 OUTPUT*&-*& Module USER_COMMAND_0100 INPUT*&-* text*-*MODULE US
40、ER_COMMAND_0100 INPUT. LAST_COMMAND = SY-UCOMM. CASE SY-UCOMM. WHEN 'BACK'. SET SCREEN 0.LEAVE SCREEN. WHEN 'F1'. WHEN 'F2'. WHEN 'F3'. ENDCASE.ENDMODULE. " USER_COMMAND_0100 INPUT*&-*& Form BUILD_DETAIL_TABLE*&-* text*-* -> p1 text* <- p2 text*-*FORM BUILD_DETAIL_TABLE.ENDFORM. " BUILD_DETAIL_TABLE*&-*& Form TRANSFER_IT_TO_GT_01*&-* text*-* -> p1 text* <- p2 text*-*FORM TRANSFER_IT_TO_GT_01. LOOP AT IT_FIELDCAT INTO is_fieldcat. IF is_fieldca
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 比亚迪秋招面试题及答案
- 校园安全课件制作素材
- 中国有研科技招聘面试题及答案
- 交通安全宣传 课件
- 2025年辐射安全与防护培训考试题库与答案
- 2025年风力发电笔试试题及答案
- 2025年防灾减灾知识竞赛试卷(附答案)
- 山东省日照市2025-2026学年高三上学期校级联合考试地理试题(解析版)
- 2025年工程制图画图题库及答案
- 短骨矿质代谢调控-洞察与解读
- 色浆生产管理制度
- 寺院义工班管理制度
- 国开2023秋《思想道德与法治》专题测验试题1-17参考答案
- 中药煎煮方法ppt
- 职业健康知识培训培训培训课件
- 2023年浙江省宁波余姚市事业单位招聘(93人)(共500题含答案解析)高频考点题库参考模拟练习试卷
- 《数字景观进展》
- 2023版押品考试题库必考点含答案
- 类固醇糖尿病优质课件
- 煤矿安全设施设计验收申报材料汇编
- 公司律师管理办法
评论
0/150
提交评论