ALV_GRID+動態(tài)顯示列_第1頁
ALV_GRID+動態(tài)顯示列_第2頁
ALV_GRID+動態(tài)顯示列_第3頁
ALV_GRID+動態(tài)顯示列_第4頁
ALV_GRID+動態(tài)顯示列_第5頁
已閱讀5頁,還剩46頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領

文檔簡介

1、ALV_GRID + 動態(tài)顯示列程序中帶有 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."產(chǎn)成品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 '沒有此公司代碼權(quán)限'.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 半成品/產(chǎn)成品* 003 選擇條件*Selection texts*-* ABPER 期間* BUKRS 公司代碼* CGP 成本要素組* H1 半成品* H2 產(chǎn)成品* 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,"取數(shù)屬性 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,"取數(shù)屬性 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 = '訂單狀態(tài)'. 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. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
  • 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

最新文檔

評論

0/150

提交評論