2007 Jan 23 9:28 PM
Hi ,
Iam working on a report where the output is a alv grid when i select a few records from the grid and run atp check the error/success tables should be displayed as a normal report output ( not ALV) .Here when i run the ATP check iam assuming that the output would display in std screen( like secondary list) .But even after running the ATP ckeck its on the same screen instead ( no output displayed) .My question is whether we can diaplay the output as normal report after ALV report output( in the same program). Below is my code.Please help.
REPORT y21316_atp_check_rel NO STANDARD PAGE HEADING
MESSAGE-ID ysd.
----
T A B L E S
----
TABLES: vbak, "Sales Document: Header Data
knvp,
kna1,
vbap,
vbpa,
vbep. " Sales Document: Schedule Line Data
----
T Y P E - P O O L S
----
TYPE-POOLS: slis. "Global Type pool for ALV display
----
INTERNAL TABLES
----
DATA: ls_fieldcat TYPE slis_fieldcat_alv, "Field Catalog list
tb_orders_cat TYPE slis_t_fieldcat_alv, "Field Catalog
tb_outputcat type slis_t_fieldcat_alv,
tb_events type slis_t_event,
ref_grid TYPE REF TO cl_gui_alv_grid,
t_events LIKE LINE OF tb_events.
*...MARKED TABLE
data: begin of marked_so occurs 0,
vbeln like vbak-vbeln,
posnr like vbap-posnr,
erdat like vbap-erdat,
lprio like vbap-lprio,
matnr like vbap-matnr,
werks like vbap-werks,
end of marked_so.
data: s_sel , g_answer, g_total_vbeln type i.
*-- Sort criteria
DATA: tb_sort TYPE fieldname OCCURS 0 WITH HEADER LINE.
DATA: BEGIN OF tb_sort_seq OCCURS 0,
value LIKE f4uhlp-value,
END OF tb_sort_seq.
*-- Order details
DATA: BEGIN OF tb_orders OCCURS 0,
checkbox TYPE CHECKBOX,
vbeln LIKE vbak-vbeln, "Sales document
posnr LIKE vbap-posnr, "Sales document item
auart LIKE vbak-auart, "Doc type
erdat LIKE vbap-erdat, "Date on which the record was created
lprio LIKE vbap-lprio, "Delivery priority
matnr LIKE vbap-matnr, "Material number
werks LIKE vbap-werks, "Plant
shdat LIKE sy-datum, "Estimated Shipping date.
END OF tb_orders.
customer details.
DATA: BEGIN OF tb_customers OCCURS 0,
kunnr LIKE knvp-kunnr,
name1 LIKE kna1-kunnr,
END OF tb_customers.
DATA: BEGIN OF tb_cust1 OCCURS 0,
kunnr LIKE kna1-kunnr,
END OF tb_cust1.
*-- Schedule line details
DATA: BEGIN OF tb_vbep OCCURS 0,
vbeln LIKE vbep-vbeln, "Sales document
posnr LIKE vbep-posnr, "Sales document item
wadat LIKE vbep-wadat, "Goods issue date
mbdat LIKE vbep-mbdat, "Material Avail date
END OF tb_vbep.
*-- ATP Error table
DATA: BEGIN OF tb_atp_error_tab OCCURS 0,
vbeln LIKE vbak-vbeln,"Sales document
posnr LIKE vbap-posnr,
message(100),
END OF tb_atp_error_tab.
*-- ATP Success table
DATA: BEGIN OF tb_atp_succ_tab OCCURS 0,
vbeln LIKE vbak-vbeln,
posnr LIKE vbap-posnr,
message(100) TYPE c,
END OF tb_atp_succ_tab.
*-- BAPI Error table
DATA: BEGIN OF tb_bapi_error_tab OCCURS 0,
vbeln LIKE vbak-vbeln,"Sales document
message(100),
END OF tb_bapi_error_tab.
*-- BAPI Success table
DATA: BEGIN OF tb_bapi_succ_tab OCCURS 0,
vbeln LIKE vbak-vbeln,
message(50) TYPE c,
END OF tb_bapi_succ_tab.
DATA: x_order_header_in TYPE bapisdh1,
x_order_header_inx TYPE bapisdh1x,
tb_return TYPE bapiret2 OCCURS 0 WITH HEADER LINE.
----
V A R I A B L E S
----
DATA: g_repid LIKE sy-repid.
DATA: gs_layout TYPE slis_layout_alv.
DATA: g_okcode like sy-ucomm.
----
S E L E C T I O N S C R E E N
----
Selection criteria.
SELECTION-SCREEN BEGIN OF BLOCK blk1 WITH FRAME TITLE text-s01.
SELECTION-SCREEN SKIP.
SELECT-OPTIONS: s_auart FOR vbak-auart OBLIGATORY, " Document type
s_vkorg FOR vbak-vkorg OBLIGATORY, " Sales Organisation
s_vtweg FOR vbak-vtweg, " Dist Channel
s_spart FOR vbak-spart, " Division
s_audat FOR vbak-audat, " Document date
s_mbdat FOR vbep-mbdat, " Material Availability date
s_kukla FOR kna1-kukla, " customer Classification
s_lprio FOR vbap-lprio, " Delivery Priority
s_kunnr FOR kna1-kunnr, " Customer(Sold To/Ship To)
s_lifsk FOR vbak-lifsk . " Delivery Block
SELECTION-SCREEN SKIP.
SELECTION-SCREEN END OF BLOCK blk1.
Sort criteria.
SELECTION-SCREEN BEGIN OF BLOCK blk2 WITH FRAME TITLE text-s02.
PARAMETERS: p_saudat(02) TYPE n, " Sort-Order Creation Date
p_sshdat(02) TYPE n, " Sort-Estimated Shipping Date
p_slprio(02) TYPE n. " Sort-Delivery Priority
SELECTION-SCREEN SKIP.
SELECTION-SCREEN END OF BLOCK blk2.
INITIALIZATION.
v_repid = sy-repid.
PERFORM bulid_fieldcatlog.
PERFORM event_call.
PERFORM populate_event.
START-OF-SELECTION.
START-OF-SELECTION.
Get Data
PERFORM get_data.
PERFORM fill_field_catalog_vbap USING tb_orders_cat.
PERFORM build_events.
PERFORM display_data.
FORM user_command USING ucomm LIKE sy-ucomm
selfield TYPE slis_selfield .
CASE ucomm.
WHEN '&SEL' .
LOOP AT TB_ORDERS .
MOVE 'X' TO TB_ORDERS-CHECKBOX.
MODIFY TB_ORDERS.
ENDLOOP.
SELFIELD-REFRESH = 'X'.
PERFORM display_data.
WHEN '&BAK'.
CALL SELECTION-SCREEN 1000.
WHEN 'DESEL'.
LOOP AT TB_ORDERS.
MOVE ' ' TO TB_ORDERS-CHECKBOX.
MODIFY TB_ORDERS.
ENDLOOP.
PERFORM display_data.
WHEN '&ATP'.
data temp type ref to cl_gui_alv_grid.
CALL FUNCTION 'GET_GLOBALS_FROM_SLVC_FULLSCR'
EXPORTING
IR_SALV_FULLSCREEN_ADAPTER =
IMPORTING
ET_EXCLUDING =
E_REPID = g_repid
E_CALLBACK_PROGRAM = g_repid
E_CALLBACK_ROUTINE =
E_GRID = temp
ET_FIELDCAT_LVC =
ER_TRACE =
E_FLG_NO_HTML =
ES_LAYOUT_KKBLO =
ES_SEL_HIDE =
ET_EVENT_EXIT =
ER_FORM_TOL =
ER_FORM_EOL =
.
call method temp->check_changed_data.
perform get_marked_salesorders.
IF NOT MARKED_SO IS INITIAL.
perform redetermine_atp.
perform calling_bapi.
perform write_report.
FORM write_report.
perform fill_field_catalog_output using tb_outputcat.
SORT tb_atp_error_tab BY vbeln.
SORT tb_atp_succ_tab BY vbeln.
SORT tb_bapi_error_tab BY vbeln.
SORT tb_bapi_succ_tab BY vbeln.
write : sy-vline.
LOOP AT tb_atp_error_tab.
WRITE:/001(01) sy-vline,
002(15) tb_atp_error_tab-vbeln,
017(01) sy-vline,
018(15) tb_atp_error_tab-posnr,
033(01) sy-vline,
034(90) tb_atp_error_tab-message,
124(01) sy-vline.
ENDLOOP.
IF sy-subrc = 0.
ULINE /001(124).
NEW-PAGE.
ENDIF.
LOOP AT tb_atp_succ_tab.
WRITE:/001(01) sy-vline,
002(15) tb_atp_succ_tab-vbeln,
017(01) sy-vline,
018(15) tb_atp_succ_tab-posnr,
033(01) sy-vline,
034(90) tb_atp_succ_tab-message,
124(01) sy-vline.
ENDLOOP.
IF sy-subrc = 0.
ULINE /001(124).
NEW-PAGE.
ENDIF.
LOOP AT tb_bapi_error_tab.
WRITE:/001(01) sy-vline,
002(15) tb_bapi_error_tab-vbeln,
017(01) sy-vline,
034(90) tb_bapi_error_tab-message,
124(01) sy-vline.
ENDLOOP.
IF sy-subrc = 0.
ULINE /001(124).
NEW-PAGE.
ENDIF.
LOOP AT tb_bapi_succ_tab.
WRITE:/001(01) sy-vline,
002(15) tb_bapi_succ_tab-vbeln,
017(01) sy-vline,
034(90) tb_bapi_succ_tab-message,
124(01) sy-vline.
ENDLOOP.
IF sy-subrc = 0.
ULINE /001(124).
ENDIF.
ENDFORM. " WRITE_REPORT
ENDIF.
ENDCASE.
ENDFORM. "user_command
Hi ,
Iam working on a report where the output is a alv grid when i select a few records from the grid and run atp check the error/success tables should be displayed as a normal report output ( not ALV) .Here when i run the ATP check iam assuming that the output would display in std screen( like secondary list) .But even after running the ATP ckeck its on the same screen instead ( no output displayed) .My question is whether we can diaplay the output as normal report after ALV report output( in the same program). Below is my code.Please help.
REPORT y21316_atp_check_rel NO STANDARD PAGE HEADING
MESSAGE-ID ysd.
----
T A B L E S
----
TABLES: vbak, "Sales Document: Header Data
knvp,
kna1,
vbap,
vbpa,
vbep. " Sales Document: Schedule Line Data
----
T Y P E - P O O L S
----
TYPE-POOLS: slis. "Global Type pool for ALV display
----
INTERNAL TABLES
----
DATA: ls_fieldcat TYPE slis_fieldcat_alv, "Field Catalog list
tb_orders_cat TYPE slis_t_fieldcat_alv, "Field Catalog
tb_outputcat type slis_t_fieldcat_alv,
tb_events type slis_t_event,
ref_grid TYPE REF TO cl_gui_alv_grid,
t_events LIKE LINE OF tb_events.
*...MARKED TABLE
data: begin of marked_so occurs 0,
vbeln like vbak-vbeln,
posnr like vbap-posnr,
erdat like vbap-erdat,
lprio like vbap-lprio,
matnr like vbap-matnr,
werks like vbap-werks,
end of marked_so.
data: s_sel , g_answer, g_total_vbeln type i.
*-- Sort criteria
DATA: tb_sort TYPE fieldname OCCURS 0 WITH HEADER LINE.
DATA: BEGIN OF tb_sort_seq OCCURS 0,
value LIKE f4uhlp-value,
END OF tb_sort_seq.
*-- Order details
DATA: BEGIN OF tb_orders OCCURS 0,
checkbox TYPE CHECKBOX,
vbeln LIKE vbak-vbeln, "Sales document
posnr LIKE vbap-posnr, "Sales document item
auart LIKE vbak-auart, "Doc type
erdat LIKE vbap-erdat, "Date on which the record was created
lprio LIKE vbap-lprio, "Delivery priority
matnr LIKE vbap-matnr, "Material number
werks LIKE vbap-werks, "Plant
shdat LIKE sy-datum, "Estimated Shipping date.
END OF tb_orders.
customer details.
DATA: BEGIN OF tb_customers OCCURS 0,
kunnr LIKE knvp-kunnr,
name1 LIKE kna1-kunnr,
END OF tb_customers.
DATA: BEGIN OF tb_cust1 OCCURS 0,
kunnr LIKE kna1-kunnr,
END OF tb_cust1.
*-- Schedule line details
DATA: BEGIN OF tb_vbep OCCURS 0,
vbeln LIKE vbep-vbeln, "Sales document
posnr LIKE vbep-posnr, "Sales document item
wadat LIKE vbep-wadat, "Goods issue date
mbdat LIKE vbep-mbdat, "Material Avail date
END OF tb_vbep.
*-- ATP Error table
DATA: BEGIN OF tb_atp_error_tab OCCURS 0,
vbeln LIKE vbak-vbeln,"Sales document
posnr LIKE vbap-posnr,
message(100),
END OF tb_atp_error_tab.
*-- ATP Success table
DATA: BEGIN OF tb_atp_succ_tab OCCURS 0,
vbeln LIKE vbak-vbeln,
posnr LIKE vbap-posnr,
message(100) TYPE c,
END OF tb_atp_succ_tab.
*-- BAPI Error table
DATA: BEGIN OF tb_bapi_error_tab OCCURS 0,
vbeln LIKE vbak-vbeln,"Sales document
message(100),
END OF tb_bapi_error_tab.
*-- BAPI Success table
DATA: BEGIN OF tb_bapi_succ_tab OCCURS 0,
vbeln LIKE vbak-vbeln,
message(50) TYPE c,
END OF tb_bapi_succ_tab.
DATA: x_order_header_in TYPE bapisdh1,
x_order_header_inx TYPE bapisdh1x,
tb_return TYPE bapiret2 OCCURS 0 WITH HEADER LINE.
----
V A R I A B L E S
----
DATA: g_repid LIKE sy-repid.
DATA: gs_layout TYPE slis_layout_alv.
DATA: g_okcode like sy-ucomm.
----
S E L E C T I O N S C R E E N
----
Selection criteria.
SELECTION-SCREEN BEGIN OF BLOCK blk1 WITH FRAME TITLE text-s01.
SELECTION-SCREEN SKIP.
SELECT-OPTIONS: s_auart FOR vbak-auart OBLIGATORY, " Document type
s_vkorg FOR vbak-vkorg OBLIGATORY, " Sales Organisation
s_vtweg FOR vbak-vtweg, " Dist Channel
s_spart FOR vbak-spart, " Division
s_audat FOR vbak-audat, " Document date
s_mbdat FOR vbep-mbdat, " Material Availability date
s_kukla FOR kna1-kukla, " customer Classification
s_lprio FOR vbap-lprio, " Delivery Priority
s_kunnr FOR kna1-kunnr, " Customer(Sold To/Ship To)
s_lifsk FOR vbak-lifsk . " Delivery Block
SELECTION-SCREEN SKIP.
SELECTION-SCREEN END OF BLOCK blk1.
Sort criteria.
SELECTION-SCREEN BEGIN OF BLOCK blk2 WITH FRAME TITLE text-s02.
PARAMETERS: p_saudat(02) TYPE n, " Sort-Order Creation Date
p_sshdat(02) TYPE n, " Sort-Estimated Shipping Date
p_slprio(02) TYPE n. " Sort-Delivery Priority
SELECTION-SCREEN SKIP.
SELECTION-SCREEN END OF BLOCK blk2.
INITIALIZATION.
v_repid = sy-repid.
PERFORM bulid_fieldcatlog.
PERFORM event_call.
PERFORM populate_event.
START-OF-SELECTION.
START-OF-SELECTION.
Get Data
PERFORM get_data.
PERFORM fill_field_catalog_vbap USING tb_orders_cat.
PERFORM build_events.
PERFORM display_data.
FORM user_command USING ucomm LIKE sy-ucomm
selfield TYPE slis_selfield .
CASE ucomm.
WHEN '&SEL' .
LOOP AT TB_ORDERS .
MOVE 'X' TO TB_ORDERS-CHECKBOX.
MODIFY TB_ORDERS.
ENDLOOP.
SELFIELD-REFRESH = 'X'.
PERFORM display_data.
WHEN '&BAK'.
CALL SELECTION-SCREEN 1000.
WHEN 'DESEL'.
LOOP AT TB_ORDERS.
MOVE ' ' TO TB_ORDERS-CHECKBOX.
MODIFY TB_ORDERS.
ENDLOOP.
PERFORM display_data.
WHEN '&ATP'.
data temp type ref to cl_gui_alv_grid.
CALL FUNCTION 'GET_GLOBALS_FROM_SLVC_FULLSCR'
EXPORTING
IR_SALV_FULLSCREEN_ADAPTER =
IMPORTING
ET_EXCLUDING =
E_REPID = g_repid
E_CALLBACK_PROGRAM = g_repid
E_CALLBACK_ROUTINE =
E_GRID = temp
ET_FIELDCAT_LVC =
ER_TRACE =
E_FLG_NO_HTML =
ES_LAYOUT_KKBLO =
ES_SEL_HIDE =
ET_EVENT_EXIT =
ER_FORM_TOL =
ER_FORM_EOL =
.
call method temp->check_changed_data.
perform get_marked_salesorders.
IF NOT MARKED_SO IS INITIAL.
perform redetermine_atp.
perform calling_bapi.
perform write_report.
FORM write_report.
perform fill_field_catalog_output using tb_outputcat.
SORT tb_atp_error_tab BY vbeln.
SORT tb_atp_succ_tab BY vbeln.
SORT tb_bapi_error_tab BY vbeln.
SORT tb_bapi_succ_tab BY vbeln.
write : sy-vline.
LOOP AT tb_atp_error_tab.
WRITE:/001(01) sy-vline,
002(15) tb_atp_error_tab-vbeln,
017(01) sy-vline,
018(15) tb_atp_error_tab-posnr,
033(01) sy-vline,
034(90) tb_atp_error_tab-message,
124(01) sy-vline.
ENDLOOP.
IF sy-subrc = 0.
ULINE /001(124).
NEW-PAGE.
ENDIF.
LOOP AT tb_atp_succ_tab.
WRITE:/001(01) sy-vline,
002(15) tb_atp_succ_tab-vbeln,
017(01) sy-vline,
018(15) tb_atp_succ_tab-posnr,
033(01) sy-vline,
034(90) tb_atp_succ_tab-message,
124(01) sy-vline.
ENDLOOP.
IF sy-subrc = 0.
ULINE /001(124).
NEW-PAGE.
ENDIF.
LOOP AT tb_bapi_error_tab.
WRITE:/001(01) sy-vline,
002(15) tb_bapi_error_tab-vbeln,
017(01) sy-vline,
034(90) tb_bapi_error_tab-message,
124(01) sy-vline.
ENDLOOP.
IF sy-subrc = 0.
ULINE /001(124).
NEW-PAGE.
ENDIF.
LOOP AT tb_bapi_succ_tab.
WRITE:/001(01) sy-vline,
002(15) tb_bapi_succ_tab-vbeln,
017(01) sy-vline,
034(90) tb_bapi_succ_tab-message,
124(01) sy-vline.
ENDLOOP.
IF sy-subrc = 0.
ULINE /001(124).
ENDIF.
ENDFORM. " WRITE_REPORT
ENDIF.
ENDCASE.
ENDFORM. "user_command
2007 Jan 23 9:41 PM
Hi,
Try giving..
LEAVE TO LIST-PROCESSING.
before the write statements...
Thanks,
Naren
2007 Jan 23 10:18 PM
| User | Count |
|---|---|
| 3 | |
| 2 | |
| 2 | |
| 1 | |
| 1 | |
| 1 | |
| 1 | |
| 1 | |
| 1 | |
| 1 |