【实用】SAP修改记录表开发
生活随笔
收集整理的這篇文章主要介紹了
【实用】SAP修改记录表开发
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
首先我們看一下運行效果圖:
大部分都是CDHDR表的查詢字段。
雙擊某一行可以查看具體的修改明細字段。
源代碼:
REPORT Z_ALV_CDHDR_CDPOS. TYPE-POOLS SLIS. DATA : CDHDR TYPE CDHDR. SELECT-OPTIONS :S_OBJCLS FOR CDHDR-OBJECTCLAS OBLIGATORY,S_OBJTID FOR CDHDR-OBJECTID,S_CHNGNR FOR CDHDR-CHANGENR,S_USRNAM FOR CDHDR-USERNAME,S_UDATE FOR CDHDR-UDATE,S_TIME FOR CDHDR-UTIME,S_TCODE FOR CDHDR-TCODE,S_PLNCNR FOR CDHDR-PLANCHNGNR,S_CHNGNO FOR CDHDR-ACT_CHNGNO,S_WSPLND FOR CDHDR-WAS_PLANND,S_CHNGID FOR CDHDR-CHANGE_IND. SELECTION-SCREEN SKIP. PARAMETERS P_MAX TYPE NUMC3 OBLIGATORY DEFAULT '200'.*---------------------------------------------------------------------* TYPES : BEGIN OF TY_S_CDHDR.INCLUDE STRUCTURE CDHDR. TYPES : CHECKBOX,END OF TY_S_CDHDR,BEGIN OF TY_S_CDPOS.INCLUDE STRUCTURE CDPOS. TYPES : CHECKBOX, END OF TY_S_CDPOS.*---------------------------------------------------------------------* DATA : * Layout for ALVGS_LAYOUT TYPE SLIS_LAYOUT_ALV, * Change document headerT_CDHDR TYPE TABLE OF TY_S_CDHDR.*---------------------------------------------------------------------* START-OF-SELECTION.* Read Change document headerSELECT * INTO TABLE T_CDHDRUP TO P_MAX ROWSFROM CDHDRWHERE OBJECTCLAS IN S_OBJCLSAND OBJECTID IN S_OBJTIDAND CHANGENR IN S_CHNGNRAND USERNAME IN S_USRNAMAND UDATE IN S_UDATEAND UTIME IN S_TIMEAND TCODE IN S_TCODEAND PLANCHNGNR IN S_PLNCNRAND ACT_CHNGNO IN S_CHNGNOAND WAS_PLANND IN S_WSPLNDAND CHANGE_IND IN S_CHNGID.GS_LAYOUT-ZEBRA = 'X'.GS_LAYOUT-COLWIDTH_OPTIMIZE = 'X'.GS_LAYOUT-BOX_FIELDNAME = 'CHECKBOX'.* Display ALVCALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'EXPORTINGI_CALLBACK_PROGRAM = SY-CPROGI_CALLBACK_USER_COMMAND = 'USER_COMMAND'I_STRUCTURE_NAME = 'CDHDR'IS_LAYOUT = GS_LAYOUTTABLEST_OUTTAB = T_CDHDR.*---------------------------------------------------------------------* * FORM USER_COMMAND * *---------------------------------------------------------------------* FORM USER_COMMAND USING U_UCOMM TYPE SYUCOMMUS_SELFIELD TYPE SLIS_SELFIELD. "#EC CALLED* Macro definitionDEFINE M_SORT.ADD 1 TO ls_sort-spos.ls_sort-fieldname = &1.ls_sort-UP = 'X'.APPEND ls_sort TO lt_sort.END-OF-DEFINITION.DATA :LS_CDHDR TYPE TY_S_CDHDR,LS_SORT TYPE SLIS_SORTINFO_ALV,LT_SORT TYPE SLIS_T_SORTINFO_ALV, * Change document itemsLT_CDPOS TYPE TABLE OF TY_S_CDPOS.CASE U_UCOMM.WHEN '&IC1'.PERFORM CHECK_MARKED USING US_SELFIELD.* Read Change document itemsLOOP AT T_CDHDR INTO LS_CDHDR WHERE CHECKBOX = 'X'.SELECT * APPENDING TABLE LT_CDPOSFROM CDPOSWHERE OBJECTCLAS = LS_CDHDR-OBJECTCLASAND OBJECTID = LS_CDHDR-OBJECTIDAND CHANGENR = LS_CDHDR-CHANGENR.ENDLOOP.M_SORT 'CHANGENR'.* Display ALVCALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'EXPORTINGI_STRUCTURE_NAME = 'CDPOS'IS_LAYOUT = GS_LAYOUTIT_SORT = LT_SORTTABLEST_OUTTAB = LT_CDPOS.ENDCASE.ENDFORM. " USER_COMMAND *---------------------------------------------------------------------* * Form CHECK_MARKED *---------------------------------------------------------------------* * What has been marked in t_cdhdr *---------------------------------------------------------------------* FORM CHECK_MARKED USING US_SELFIELD TYPE SLIS_SELFIELD.FIELD-SYMBOLS : <FS>TYPE TY_S_CDHDR.READ TABLE T_CDHDR TRANSPORTING NO FIELDS WITH KEY CHECKBOX = 'X'.IF NOT SY-SUBRC IS INITIAL ANDNOT US_SELFIELD-TABINDEX IS INITIAL.READ TABLE T_CDHDR INDEX US_SELFIELD-TABINDEX ASSIGNING <FS>.<FS>-CHECKBOX = 'X'.ENDIF.ENDFORM. " CHECK_MARKED總結
以上是生活随笔為你收集整理的【实用】SAP修改记录表开发的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 企业主要财务指标有哪些
- 下一篇: SAP空格无法带出历史记录的解决办法