abap 双击alv调用事务码
2010-01-27 11:52
447 查看
SELECT-OPTIONS:
MBLNR FOR mkpf-MBLNR , "物料编号
SELECTION-SCREEN END OF BLOCK abgrenzung.
INITIALIZATION.
budat-low = SY-DATUM.
budat-high = SY-DATUM .
append budat.
START-OF-SELECTION.
DATA : BEGIN OF i_tab OCCURS 0 ,
MBLNR like mkpf-mblnr,
END OF i_tab .
DATA : BEGIN OF i_show OCCURS 0 ,
MBLNR like mkpf-mblnr,
END OF i_show .
START-OF-SELECTION.
SELECT
mkpf~mblnr
INTO CORRESPONDING FIELDS OF TABLE i_tab
FROM mkpf join mseg
on mkpf~mblnr = mseg~mblnr join mara on mseg~matnr = mara~matnr
join makt on mara~matnr = makt~matnr and mara~MANDT = makt~MANDT and makt~SPRAS = '1'
join USER_ADDR on mkpf~usnam = user_addr~BNAME
where mkpf~mblnr in mblnr and mkpf~budat in budat and mkpf~usnam in usnam and mseg~bwart ='102'
and mara~MTART in ('ROH','ROH1','ROH2','HAWA','Z001','Z002','Z003','Z004','Z005','Z006','Z007')
and mseg~matnr in matnr and mseg~werks in werks and mseg~lgort in lgort .
loop at i_tab.
case i_tab-bwart .
when '102' .
if i_tab-tcode2 <> 'MBST'.
i_show-mblnr = i_tab-mblnr .
append i_show.
endif.
* when '202'.
* if i_tab-tcode2 <> 'MBST' .
* i_show-mblnr = i_tab-mblnr .
* i_show-ZEILE = i_tab-ZEILE .
* i_show-budat = i_tab-budat.
* i_show-usnam = i_tab-usnam .
* i_show-bwart = i_tab-bwart .
* i_show-matnr = i_tab-matnr .
* i_show-werks = i_tab-werks .
* i_show-lgort = i_tab-lgort.
* i_show-tcode2 = i_tab-tcode2 .
* i_show-maktx = i_tab-maktx .
*
* i_show-NAME_LAST = i_tab-NAME_LAST.
* append i_show.
* endif.
when others .
endcase.
endloop.
ADD 1 TO COL_POS.
FIELDCAT_LN-REF_TABNAME = 'MKPF'.
FIELDCAT_LN-FIELDNAME = 'MBLNR'.
FIELDCAT_LN-KEY = SPACE.
FIELDCAT_LN-DO_SUM = SPACE.
FIELDCAT_LN-COL_POS = COL_POS.
FIELDCAT_LN-NO_OUT = SPACE.
FIELDCAT_LN-QFIELDNAME = SPACE.
FIELDCAT_LN-HOTSPOT = SPACE.
APPEND FIELDCAT_LN TO FIELDCAT.
* DEFINE AN SORT TABLE
* ADD SORT INTO SORT INTERNAL TABLE.
SORTCAT_LN-SPOS = '1'.
* DEFINE AN SORT FIELD
SORTCAT_LN-FIELDNAME = 'MBLNR'.
SORTCAT_LN-UP = 'X'.
SORTCAT_LN-DOWN = SPACE.
SORTCAT_LN-SUBTOT = 'X'.
APPEND SORTCAT_LN TO SORTCAT.
* DEFINE EVENT LIST(Event Catalogs)
EVENTCAT_LN-NAME = 'TOP_OF_PAGE'.
EVENTCAT_LN-form = 'PAGE_HEADER'.
APPEND EVENTCAT_LN TO EVENTCAT.
* DEFINE ALV CALL Function Module
DATA: PGM LIKE SY-REPID.
PGM = SY-REPID.
CALL FUNCTION 'REUSE_ALV_LIST_DISPLAY'
EXPORTING
I_CALLBACK_PROGRAM = PGM
I_CALLBACK_USER_COMMAND = 'USER_COMMAND'
IT_FIELDCAT = FIELDCAT
IT_SORT = SORTCAT
I_SAVE = 'A'
IT_EVENTS = EVENTCAT
TABLES
T_OUTTAB = I_show
EXCEPTIONS
PROGRAM_ERROR = 1
OTHERS = 2.
* DEFINE EVENT OF THE USER CLICKED KEYBOARD.
form USER_COMMAND USING UCOMM LIKE SY-UCOMM
SELFIELD TYPE SLIS_SELFIELD.
READ TABLE I_SHOW INDEX SELFIELD-TABINDEX.
CHECK SY-SUBRC = 0.
CASE UCOMM.
WHEN '&IC1'.
CASE SELFIELD-SEL_TAB_FIELD.
WHEN 'I_SHOW-MBLNR'.
SET PARAMETER ID 'MBN' FIELD I_SHOW-MBLNR.
"CALL TRANSACTION 'MIGO' AND SKIP FIRST SCREEN.
CALL FUNCTION 'MIGO_DIALOG'
EXPORTING
i_action = 'A04'
i_refdoc = 'R02'
i_notree = 'X'
i_skip_first_screen = 'X'
i_okcode = 'OK_GO'
i_mblnr = i_show-mblnr
EXCEPTIONS
illegal_combination = 1
OTHERS = 2.
ENDCASE.
ENDCASE.
ENDform.
MBLNR FOR mkpf-MBLNR , "物料编号
SELECTION-SCREEN END OF BLOCK abgrenzung.
INITIALIZATION.
budat-low = SY-DATUM.
budat-high = SY-DATUM .
append budat.
START-OF-SELECTION.
DATA : BEGIN OF i_tab OCCURS 0 ,
MBLNR like mkpf-mblnr,
END OF i_tab .
DATA : BEGIN OF i_show OCCURS 0 ,
MBLNR like mkpf-mblnr,
END OF i_show .
START-OF-SELECTION.
SELECT
mkpf~mblnr
INTO CORRESPONDING FIELDS OF TABLE i_tab
FROM mkpf join mseg
on mkpf~mblnr = mseg~mblnr join mara on mseg~matnr = mara~matnr
join makt on mara~matnr = makt~matnr and mara~MANDT = makt~MANDT and makt~SPRAS = '1'
join USER_ADDR on mkpf~usnam = user_addr~BNAME
where mkpf~mblnr in mblnr and mkpf~budat in budat and mkpf~usnam in usnam and mseg~bwart ='102'
and mara~MTART in ('ROH','ROH1','ROH2','HAWA','Z001','Z002','Z003','Z004','Z005','Z006','Z007')
and mseg~matnr in matnr and mseg~werks in werks and mseg~lgort in lgort .
loop at i_tab.
case i_tab-bwart .
when '102' .
if i_tab-tcode2 <> 'MBST'.
i_show-mblnr = i_tab-mblnr .
append i_show.
endif.
* when '202'.
* if i_tab-tcode2 <> 'MBST' .
* i_show-mblnr = i_tab-mblnr .
* i_show-ZEILE = i_tab-ZEILE .
* i_show-budat = i_tab-budat.
* i_show-usnam = i_tab-usnam .
* i_show-bwart = i_tab-bwart .
* i_show-matnr = i_tab-matnr .
* i_show-werks = i_tab-werks .
* i_show-lgort = i_tab-lgort.
* i_show-tcode2 = i_tab-tcode2 .
* i_show-maktx = i_tab-maktx .
*
* i_show-NAME_LAST = i_tab-NAME_LAST.
* append i_show.
* endif.
when others .
endcase.
endloop.
ADD 1 TO COL_POS.
FIELDCAT_LN-REF_TABNAME = 'MKPF'.
FIELDCAT_LN-FIELDNAME = 'MBLNR'.
FIELDCAT_LN-KEY = SPACE.
FIELDCAT_LN-DO_SUM = SPACE.
FIELDCAT_LN-COL_POS = COL_POS.
FIELDCAT_LN-NO_OUT = SPACE.
FIELDCAT_LN-QFIELDNAME = SPACE.
FIELDCAT_LN-HOTSPOT = SPACE.
APPEND FIELDCAT_LN TO FIELDCAT.
* DEFINE AN SORT TABLE
* ADD SORT INTO SORT INTERNAL TABLE.
SORTCAT_LN-SPOS = '1'.
* DEFINE AN SORT FIELD
SORTCAT_LN-FIELDNAME = 'MBLNR'.
SORTCAT_LN-UP = 'X'.
SORTCAT_LN-DOWN = SPACE.
SORTCAT_LN-SUBTOT = 'X'.
APPEND SORTCAT_LN TO SORTCAT.
* DEFINE EVENT LIST(Event Catalogs)
EVENTCAT_LN-NAME = 'TOP_OF_PAGE'.
EVENTCAT_LN-form = 'PAGE_HEADER'.
APPEND EVENTCAT_LN TO EVENTCAT.
* DEFINE ALV CALL Function Module
DATA: PGM LIKE SY-REPID.
PGM = SY-REPID.
CALL FUNCTION 'REUSE_ALV_LIST_DISPLAY'
EXPORTING
I_CALLBACK_PROGRAM = PGM
I_CALLBACK_USER_COMMAND = 'USER_COMMAND'
IT_FIELDCAT = FIELDCAT
IT_SORT = SORTCAT
I_SAVE = 'A'
IT_EVENTS = EVENTCAT
TABLES
T_OUTTAB = I_show
EXCEPTIONS
PROGRAM_ERROR = 1
OTHERS = 2.
* DEFINE EVENT OF THE USER CLICKED KEYBOARD.
form USER_COMMAND USING UCOMM LIKE SY-UCOMM
SELFIELD TYPE SLIS_SELFIELD.
READ TABLE I_SHOW INDEX SELFIELD-TABINDEX.
CHECK SY-SUBRC = 0.
CASE UCOMM.
WHEN '&IC1'.
CASE SELFIELD-SEL_TAB_FIELD.
WHEN 'I_SHOW-MBLNR'.
SET PARAMETER ID 'MBN' FIELD I_SHOW-MBLNR.
"CALL TRANSACTION 'MIGO' AND SKIP FIRST SCREEN.
CALL FUNCTION 'MIGO_DIALOG'
EXPORTING
i_action = 'A04'
i_refdoc = 'R02'
i_notree = 'X'
i_skip_first_screen = 'X'
i_okcode = 'OK_GO'
i_mblnr = i_show-mblnr
EXCEPTIONS
illegal_combination = 1
OTHERS = 2.
ENDCASE.
ENDCASE.
ENDform.
相关文章推荐
- 转 双击ALV调用事务代码并传入参数
- 双击ALV调用事务代码并传入参数
- 双击ALV调用事务代码并传入参数
- 关于ALV双击 调用事务的一个例子
- abap中如何通过双击事件调用事务码
- 双击ALV调用事务代码并传入参数
- ABAP--SAP是如何控制REUSE_ALV_GRID_DISPLAY函数嵌套调用的返回控制
- ABAP--处理'REUSE_ALV_GRID_DISPLAY'的双击事件
- ABAP--处理'REUSE_ALV_GRID_DISPLAY'的双击事件
- 通过双击ALV中的字段名判断调用的事物代码和传入的参数
- ALV双击调用屏幕
- ABAP--处理'REUSE_ALV_GRID_DISPLAY'的双击事件
- ABAP--REUSE_ALV_GRID_DISPLAY的i_callback_user_command的调用跟踪摘抄
- ABAP--处理'REUSE_ALV_GRID_DISPLAY'的双击事件
- SAP ABAP/4学习---ALV的简单例子2-单击某行调用事务码
- ABAP--REUSE_ALV_GRID_DISPLAY的i_callback_user_command的调用跟踪摘抄
- 通过双击ALV中的字段名判断调用的事物代码和传入的参数
- ABAP--处理'REUSE_ALV_GRID_DISPLAY'的双击事件
- SAP ABAP/4学习---ALV的简单例子3-单击某行调用事务码
- ABAP--REUSE_ALV_GRID_DISPLAY的i_callback_user_command的调用跟踪摘抄