* Title : Stock Query Report *
* Date Created: 21 mar 2005 *
* Requested By: Ulrike (Novasoft) *
* Created By : mara (Novasoft) *
* Description : For the Replenishment Process, the user need to know *
* the current available stock. The report should shows *
* the Article, Vendor, Vendor Article Number, Description*
* , Color, Dimension/Size, Available Stock, Booked Stock,*
* Quality Inspection Stock, Blocked Stock, Total and Site*
* . The Selection Screen should be for: *
* 1. Article *
* 2. Site *
* *
*----------------------------------------------------------------------*
* Modification Log *
*----------------------------------------------------------------------*
* 01 Date : *
* Changed by : *
* Transport No: *
* Description : *
* *
************************************************************************
REPORT ZSC_STOCK_00 LINE-COUNT 65 "定义报表的基本格式,宽度、长度、文件头
LINE-SIZE 200
NO STANDARD PAGE HEADING
.
************************************************************************
* Tables
************************************************************************
tables:mara,t001w. "程序所要引用的表
type-pools:slis. "标准格式 定义一个包含的包
data: i_cat type slis_t_fieldcat_alv. "定义一个标准的结构
data:GS_LAYOUT TYPE SLIS_LAYOUT_ALV.
data:gt_fieldcat type lvc_t_fcat,
wa_fieldcat like line of gt_fieldcat.
DATA: g_custom_container TYPE REF TO cl_gui_custom_container,
sap_grid TYPE REF TO cl_gui_alv_grid .
data: save_code like sy-tcode ,OK_key like sy-tcode,rds type i.
*定义按钮 SAVE、OK,定义变量 rds
************************************************************************
* TYPES
************************************************************************
* Sales Requirement Totals Record & Purchasing Info Record
TYPES: BEGIN OF t_vbbs,
matnr LIKE vbbs-matnr,
werks LIKE vbbs-werks,
mbdat LIKE vbbs-mbdat,
lgort LIKE vbbs-lgort,
charg LIKE vbbs-charg,
vbtyp LIKE vbbs-vbtyp,
bdart LIKE vbbs-bdart,
plart LIKE vbbs-plart,
omeng LIKE vbbs-omeng,
meins LIKE vbbs-meins,
END OF t_vbbs.
* 定义类型 t_vbbs, 注 对于定义类型可以从系统表中直接引用表中的字段定义
* Current Stock & Purchasing Info Record
TYPES: BEGIN OF t_mard,
matnr LIKE mard-matnr,
werks LIKE mard-werks,
labst LIKE mard-labst,
insme LIKE mard-insme,
speme LIKE mard-speme,
END OF t_mard.
* 定义类型 t_mard
* Article Text
TYPES: BEGIN OF t_makt,
matnr LIKE makt-matnr,
spras LIKE makt-spras,
maktx LIKE makt-maktx,
END OF t_makt.
* 定义类型 t_makt
* Article Master.
TYPES: BEGIN OF t_mara,
matnr LIKE mara-matnr,
meins LIKE mara-meins,
groes LIKE mara-groes,
satnr LIKE mara-satnr,
attyp LIKE mara-attyp,
mstae like mara-mstae,
END OF t_mara.
* 定义类型 t_mara
* Open PO Stock
TYPES: BEGIN OF t_mdbs,
eblen LIKE mdbs-ebeln,
ebelp LIKE mdbs-ebelp,
etenr LIKE mdbs-etenr,
pstyp LIKE mdbs-pstyp,
matnr LIKE mdbs-matnr,
werks LIKE mdbs-werks,
menge LIKE mdbs-menge,
wemng LIKE mdbs-wemng,
retpo LIKE mdbs-retpo,
END OF t_mdbs.
* 定义类型 t_mdbs
* Output
TYPES: BEGIN OF t_output,
matnr LIKE mard-matnr,
werks LIKE mard-werks,
labst LIKE vbbe-omeng,
omeng LIKE vbbe-omeng,
insme LIKE vbbe-omeng,
speme LIKE vbbe-omeng,
menge like vbbe-omeng,
total LIKE vbbe-omeng,
groes LIKE mara-groes,
END OF t_output .
* 定义类型 t_output
data: BEGIN OF gates occurs 0,
matnr LIKE mard-matnr,
labst LIKE vbbe-omeng,
werks LIKE mard-werks,
avail LIKE vbbe-omeng,
omeng LIKE vbbe-omeng,
insme LIKE vbbe-omeng,
speme LIKE vbbe-omeng,
menge like vbbe-omeng,
total LIKE vbbe-omeng,
groes LIKE mara-groes,
maktx LIKE makt-maktx,
END OF gates.
* 定义类型 gates
types:begin of i_vbaps ,
vbeln like vbap-vbeln,
POSNR like vbap-POSNR,
matnr like vbap-matnr,
werks like vbap-werks,
wmeng like vbep-wmeng,
bmeng like vbep-bmeng,
erdat like vbap-erdat,
edatu like vbep-edatu,
kzwi6 like vbap-kzwi6,
end of i_vbaps.
* 定义类型 i_vbaps
types:begin of i_VAPMAs,
vbeln like VAPMA-vbeln,
posnr like VAPMA-posnr,
end of i_VAPMAs.
* 定义类型 i_vapmas
************************************************************************
* INTERNAL TABLES
************************************************************************
data: i_vbap type standard table of i_vbaps , "用类型 i_vbaps 定义 i_vbap
get_sorder type standard table of i_vbaps, "用类型 i_vbaps 定义 get_sorder
i_VAPMA type standard table of i_VAPMAs with header line. "用类型 i_vapmas 定义 ivapma
************************************************************************
* data
************************************************************************
DATA:
* Sales Requirement Total Records
i_vbbs TYPE STANDARD TABLE OF t_vbbs WITH HEADER LINE,
* Current Stock
i_mard TYPE STANDARD TABLE OF t_mard WITH HEADER LINE,
i_mards TYPE STANDARD TABLE OF t_mard WITH HEADER LINE,
* Article Master
i_mara TYPE STANDARD TABLE OF t_mara WITH HEADER LINE,
i_maras TYPE STANDARD TABLE OF t_mara WITH HEADER LINE,
* Article Text
i_makt TYPE STANDARD TABLE OF t_makt WITH HEADER LINE,
* Open PO
i_mdbs TYPE STANDARD TABLE OF t_mdbs WITH HEADER LINE,
* Output
i_output TYPE STANDARD TABLE OF t_output WITH HEADER LINE.
************************************************************************
* CONSTANTS
************************************************************************
CONSTANTS:
c_order LIKE vbbs-vbtyp VALUE 'C',
c_delv LIKE vbbs-vbtyp VALUE 'J'.
* 定义变量并赋值
************************************************************************
* MACROS 类说明
************************************************************************
class lcl_isl definition.
public section.
methods on_dbclick for event double_click
of cl_gui_alv_grid importing e_row.
endclass.
*---------------------------------------------------------------------*
* CLASS lcl_isl IMPLEMENTATION 类定义
*---------------------------------------------------------------------*
* ........ *
*---------------------------------------------------------------------*
class lcl_isl implementation.
method on_dbclick.
data:i_vbapp type i_vbaps.
read table i_vbap into i_vbapp index e_row-index.
if sy-subrc = 0.
Set parameter id 'AUN' field i_vbapp-vbeln.
call transaction 'VA03' and skip first screen.
endif.
endmethod.
endclass.
data: sap_dbclick type ref to lcl_isl. "定义一个类变量
************************************************************************
* SELECTION SCREEN
************************************************************************
* Block B01, 'Stock Query' "建立查询屏幕
SELECTION-SCREEN BEGIN OF BLOCK b01 WITH FRAME TITLE text-b01.
SELECT-OPTIONS:
* Article
s_matnr FOR mara-matnr OBLIGATORY,
* plant
s_werks FOR t001w-werks OBLIGATORY.
SELECTION-SCREEN END OF BLOCK b01.
************************************************************************
* AT SELECTION-SCREEN
************************************************************************
*AT SELECTION-SCREEN ON s_matnr.
** Validate Article Number
* PERFORM f_validate_article_number.
*
*AT SELECTION-SCREEN ON s_werks.
** Validate Site
* PERFORM f_validate_site.
************************************************************************
* START-OF-SELECTION
************************************************************************
START-OF-SELECTION .
create object sap_dbclick.
* Get article Details
perform get_article.
* Get Current Stock.
PERFORM f_get_current_stock.
* Get Sales Requirement
PERFORM f_get_sales_requirement.
** Get Open PO Quantity.
PERFORM f_get_open_po_quantity.
** Calculate Stock
PERFORM f_calculate_stock.
** Get Article Text.
PERFORM f_get_article_text.
END-OF-SELECTION .
************************************************************************
* END-OF-SELECTION
************************************************************************
SORT i_output.
* Write the report.
PERFORM f_write_report.
*---------------------------------------------------------------------*
* FORM get_article *
*---------------------------------------------------------------------*
* ........ *
*---------------------------------------------------------------------*
form get_article.
SELECT matnr
meins
groes
satnr
attyp
mstae
INTO TABLE i_mara
FROM mara
WHERE matnr IN s_matnr.
SORT i_mara BY matnr.
DELETE ADJACENT DUPLICATES FROM i_mara
COMPARING matnr.
* i_mara_3[] = i_mara[].
endform.
*&---------------------------------------------------------------------*
*& Form f_get_current_stock
*&---------------------------------------------------------------------*
* Get current stock
*----------------------------------------------------------------------*
FORM f_get_current_stock.
CLEAR: i_mard, i_mard[].
CLEAR: i_mards, i_mards[].
CLEAR: i_mard, i_mard[].
CHECK NOT i_mara[] IS INITIAL.
* Get the stock
*<=yjiang start
SELECT matnr
werks
labst
insme
speme
INTO TABLE i_mards
FROM mard
FOR ALL ENTRIES IN i_mara
WHERE mard~matnr eq i_mara-matnr
AND werks IN s_werks.
sort i_mards by werks matnr .
loop at i_mards .
i_mard-matnr = i_mards-matnr.
i_mard-werks = i_mards-werks.
i_mard-labst = i_mards-labst.
i_mard-insme = i_mards-insme.
i_mard-speme = i_mards-speme.
collect i_mard.
endloop.
refresh i_mards.
endform.
*&---------------------------------------------------------------------*
*& Form f_get_sales_requirement
*&---------------------------------------------------------------------*
* Get Sales Requirement
*----------------------------------------------------------------------*
FORM f_get_sales_requirement.
CLEAR: i_vbbs, i_vbbs[].
CHECK NOT i_mara[] IS INITIAL.
* Get Sales Requirement Total Records
SELECT matnr
werks
mbdat
lgort
charg
vbtyp
bdart
plart
omeng
meins
INTO TABLE i_vbbs
FROM vbbs
FOR ALL ENTRIES IN i_mara
WHERE matnr EQ i_mara-matnr
AND werks IN s_werks
AND ( vbtyp EQ c_order
OR vbtyp EQ c_delv )
AND omeng GT 0.
ENDFORM. " f_get_sales_requirement
*&---------------------------------------------------------------------*
*& Form f_get_open_po_quantity
*&---------------------------------------------------------------------*
* Get the Open PO Quantity
*----------------------------------------------------------------------*
FORM f_get_open_po_quantity.
CLEAR: i_mdbs, i_mdbs[].
* Output list must exist.
* CHECK NOT i_output[] IS INITIAL.
CHECK NOT i_mara[] IS INITIAL.
* Get the Open PO Quantity
SELECT ebeln
ebelp
etenr
pstyp
matnr
werks
menge
wemng
retpo
INTO TABLE i_mdbs
FROM mdbs
FOR ALL ENTRIES IN i_mara
WHERE matnr EQ i_mara-matnr
AND werks IN s_werks
AND bstyp EQ 'F' "Purchase Order
AND loekz EQ space
AND elikz EQ space
AND wepos EQ 'X'.
ENDFORM. " f_get_open_po_quantity
*&---------------------------------------------------------------------*
*& Form f_calculate_stock
*&---------------------------------------------------------------------*
* Calcuate Total stock
*----------------------------------------------------------------------*
FORM f_calculate_stock.
* data lv_menge LIKE vbbe-omeng.
CLEAR: i_output.
SORT i_mara BY matnr.
CLEAR i_mard.
loop at i_mard .
clear i_mara.
READ TABLE i_mara WITH KEY matnr = i_mard-matnr
BINARY SEARCH.
MOVE:
i_mard-matnr TO i_output-matnr,
i_mard-werks TO i_output-werks,
i_mard-labst TO i_output-labst,
i_mard-insme TO i_output-insme,
i_mard-speme TO i_output-speme.
* i_eina-netpr to i_output-netpr.
i_output-total = i_mard-labst +
i_mard-insme +
i_mard-speme.
COLLECT i_output.
CLEAR: i_mard, i_output.
ENDLOOP. "I_MARD
refresh i_mard.
* Sales Requirement Total Records.
CLEAR: i_vbbs, i_output.
LOOP AT i_vbbs.
MOVE:
i_vbbs-matnr TO i_output-matnr,
i_vbbs-werks TO i_output-werks,
i_vbbs-omeng TO i_output-omeng.
COLLECT i_output.
CLEAR: i_vbbs, i_output.
ENDLOOP. "I_VBBS
refresh i_vbbs.
* Sales Requirement Individual Records
CLEAR: i_mdbs.
LOOP AT i_mdbs .
IF i_mdbs-retpo = 'X'.
i_mdbs-menge = i_mdbs-menge * -1.
ENDIF.
MOVE:
i_mdbs-matnr TO i_output-matnr,
i_mdbs-werks TO i_output-werks,
i_mdbs-menge TO i_output-menge.
COLLECT i_output.
CLEAR: i_mdbs, i_output.
ENDLOOP. "I_MDBS
refresh i_mdbs.
ENDFORM. " f_calculate_stock
*&---------------------------------------------------------------------*
*& Form f_get_article_text
*&---------------------------------------------------------------------*
* Get Article Text
*----------------------------------------------------------------------*
FORM f_get_article_text.
CLEAR: i_makt, i_makt[].
CHECK NOT i_mara[] IS INITIAL.
* Get Article Descriptions.
SELECT matnr
spras
maktx
INTO TABLE i_makt
FROM makt
FOR ALL ENTRIES IN i_mara
WHERE matnr EQ i_mara-matnr
AND spras EQ sy-langu.
ENDFORM. " f_get_article_text
*&---------------------------------------------------------------------*
*& Form f_write_report
*&---------------------------------------------------------------------*
* Write Report
*----------------------------------------------------------------------*
FORM f_write_report.
DATA:
lv_avail LIKE s094-gsbest.
CLEAR i_output.
LOOP AT i_output.
* Get Article text.
CLEAR i_makt.
READ TABLE i_makt WITH KEY matnr = i_output-matnr
BINARY SEARCH.
lv_avail = i_output-labst - i_output-omeng.
move :
i_output-werks to gates-werks,
I_output-labst to gates-labst,
lv_avail to gates-avail,
i_output-omeng to gates-omeng,
i_output-insme to gates-insme,
i_output-speme to gates-speme,
i_output-menge to gates-menge,
i_output-total to gates-total,
i_output-matnr to gates-matnr,
i_makt-maktx to gates-maktx,
i_output-groes to gates-groes.
append gates.
CLEAR i_output.
ENDLOOP. "I_OUTPUT
refresh i_output.
IF sy-subrc NE 0.
perform messages.
ELSE.
perform write_for_grid.
ENDIF.
ENDFORM. " f_write_report
*************************************
*form messages
************************************
form messages.
call function 'POPUP_WITH_WARNING'
EXPORTING
TEXTLINE1 = 'no select date,please set again!'.
if sy-subrc eq 0.
stop.
endif.
endform.
*********************************************
*form write_date
********************************************
form write_for_grid.
data : lv_pgm like sy-repid.
lv_pgm = sy-repid.
perform f_generate_field_catalogu using i_cat[].
gs_layout-f2code = '&ETA'.
gs_layout-zebra = 'X'.
call function 'REUSE_ALV_GRID_DISPLAY'
EXPORTING
i_callback_program = lv_pgm
i_bypassing_buffer = 'X'
i_grid_title = 'material query stock'
I_SAVE = 'U'
* IS_LAYOUT = GS_LAYOUT
i_callback_user_command = 'PROCESS_USER_COMMAND'
it_fieldcat = i_cat[]
i_default = 'X'
tables
t_outtab = gates
exceptions
program_error = 1
other = 2
.
if sy-subrc <> 0.
message id sy-msgid type sy-msgty number sy-msgno
with sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4.
endif.
endform.
*************************************
*form process_user_command
*************************************
form process_user_command using in_ucomm like sy-ucomm
in_selfield type slis_selfield.
if in_selfield-fieldname cs 'menge' . "no receipt po
read table gates index in_selfield-tabindex .
check sy-subrc = 0.
check gates-menge > 0.
submit RM06EM00 with em_matnr = gates-matnr
with em_werks = gates-werks
* with datum in sptag
with listu = 'BEST'
with selpa = 'WE101'
and return.
*"obtain no issue sale order quantity
elseif in_selfield-fieldname cs 'OMENG' .
read table gates index in_selfield-tabindex .
check sy-subrc = 0.
check gates-omeng > 0.
refresh:get_sorder,i_vbap.
****not created issue order of sale order
**obtain all sales order for the article
select vbeln posnr
into table i_VAPMA
from VAPMA
where matnr = gates-matnr and
werks = gates-werks .
*incomplete so and delivery order
select vbap~vbeln vbap~POSNR vbap~MATNR VBAP~werks vbep~wmeng
vbep~bmeng vbap~ERDAT vbep~edatu VBAP~kzwi6
into table i_vbap
from vbap inner join vbup
on vbap~vbeln = vbup~vbeln and
vbap~posnr = vbup~posnr
join vbep
on vbap~vbeln = vbep~vbeln and
vbap~posnr = vbep~posnr
for all entries in i_vapma
where vbap~vbeln = i_vapma-vbeln and
vbap~posnr = i_vapma-posnr and
vbup~GBSTA ne 'C' AND
( vbep~bmeng > 0 or vbep~wmeng > 0 ) and
vbap~PSTYV = 'TAN' .
select vbap~vbeln vbap~POSNR vbap~MATNR VBAP~werks vbep~wmeng
vbep~bmeng vbap~ERDAT vbep~edatu VBAP~kzwi6
appending table i_vbap
from vbap inner join vbfa
on vbap~vbeln = vbfa~vbelv
and vbap~posnr = vbfa~posnv
join vbuk
on vbfa~vbeln = vbuk~vbeln
join vbep
on vbap~vbeln = vbep~vbeln and
vbap~posnr = vbep~posnr
for all entries in i_vapma
where vbap~vbeln = i_vapma-vbeln and
vbap~posnr = i_vapma-posnr and
vbfa~VBTYP_N = 'J' and
vbuk~WBSTK ne 'C' AND
( vbep~bmeng > 0 or vbep~wmeng > 0 ) and
vbap~PSTYV = 'TAN' .
sort i_vbap by vbeln posnr erdat edatu.
delete adjacent duplicates from i_vbap.
* sort get_sorder by vbeln posnr erdat edatu.
* delete adjacent duplicates from get_sorder.
clear rds.
describe table i_vbap lines rds .
if rds > 0 .
call screen 100.
endif.
endif.
endform.
************************************
*end form process_user_command
************************************
*************************************
*form f_generate_field_catalogu
*************************************
form f_generate_field_catalogu using pi_cat type slis_t_fieldcat_alv .
DATA: lwa_fieldcat TYPE slis_fieldcat_alv.
clear lwa_fieldcat.
lwa_fieldcat-col_pos = 1.
lwa_fieldcat-fieldname = 'WERKS'.
lwa_fieldcat-seltext_l = 'PLANT'(h01).
append lwa_fieldcat to pi_cat.
clear lwa_fieldcat.
lwa_fieldcat-col_pos = 2.
lwa_fieldcat-fieldname = 'LABST'.
lwa_fieldcat-seltext_l = 'Unrestrict'(h02).
append lwa_fieldcat to pi_cat.
clear lwa_fieldcat.
lwa_fieldcat-col_pos = 3.
lwa_fieldcat-fieldname = 'AVAIL'.
lwa_fieldcat-seltext_l = 'AVAIL'(h03).
append lwa_fieldcat to pi_cat.
clear lwa_fieldcat.
lwa_fieldcat-col_pos = 4.
lwa_fieldcat-fieldname = 'OMENG'.
lwa_fieldcat-seltext_l = 'Order num'(h04).
append lwa_fieldcat to pi_cat.
clear lwa_fieldcat.
lwa_fieldcat-col_pos = 5.
lwa_fieldcat-fieldname = 'INSME'.
lwa_fieldcat-seltext_l = 'Qual num'(h05).
append lwa_fieldcat to pi_cat.
clear lwa_fieldcat.
lwa_fieldcat-col_pos = 6.
lwa_fieldcat-fieldname = 'SPEME'.
lwa_fieldcat-seltext_l = 'Block num'(h06).
append lwa_fieldcat to pi_cat.
clear lwa_fieldcat.
lwa_fieldcat-col_pos = 7.
lwa_fieldcat-fieldname = 'MENGE'.
lwa_fieldcat-seltext_l = 'Po num'(h07).
append lwa_fieldcat to pi_cat.
clear lwa_fieldcat.
lwa_fieldcat-col_pos = 8.
lwa_fieldcat-fieldname = 'TOTAL'.
lwa_fieldcat-seltext_l = 'TOTAL stoc'(h08).
append lwa_fieldcat to pi_cat.
clear lwa_fieldcat.
lwa_fieldcat-col_pos = 9.
lwa_fieldcat-fieldname = 'MATNR'.
lwa_fieldcat-seltext_l = 'Material no'(h09).
append lwa_fieldcat to pi_cat.
clear lwa_fieldcat.
lwa_fieldcat-col_pos = 10.
lwa_fieldcat-fieldname = 'MAKTX'.
lwa_fieldcat-seltext_l = 'MAKTX'(h10).
append lwa_fieldcat to pi_cat.
* clear lwa_fieldcat.
* lwa_fieldcat-col_pos = 11.
* lwa_fieldcat-fieldname = 'GROES'.
* lwa_fieldcat-seltext_l = 'GROES'(h11).
* append lwa_fieldcat to pi_cat.
endform. "f_generate_field_catalogu
*&---------------------------------------------------------------------*
*& Module STATUS_0100 OUTPUT
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
MODULE STATUS_0100 OUTPUT.
SET PF-STATUS 'OPENSALES'.
SET TITLEBAR 'ORDERS'.
ENDMODULE. " STATUS_0100 OUTPUT
*&---------------------------------------------------------------------*
*& Module create_objects OUTPUT
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
MODULE create_objects OUTPUT.
create object g_custom_container
exporting container_name = 'MY_CONTROL_AREA' .
create object sap_grid
exporting i_parent = g_custom_container.
ENDMODULE. " create_objects OUTPUT
*&---------------------------------------------------------------------*
*& Module TRANSFER_date OUTPUT
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
MODULE TRANSFER_date OUTPUT.
if gt_fieldcat is initial.
perform set_fields.
endif.
call method sap_grid->set_table_for_first_display
changing it_outtab = i_vbap "get_sorder "
it_fieldcatalog = gt_fieldcat .
set handler sap_dbclick->on_dbclick for sap_grid.
ENDMODULE. " TRANSFER_date OUTPUT
*---------------------------------------------------------------------*
* FORM set_fields *
*---------------------------------------------------------------------*
* ........ *
*---------------------------------------------------------------------*
form set_fields.
clear wa_fieldcat.
wa_fieldcat-fieldname = 'VBELN'.
wa_fieldcat-coltext = 'ORDER NUMBER'.
wa_fieldcat-seltext = 'ORDER NUMBER'.
append wa_fieldcat to gt_fieldcat.
clear wa_fieldcat.
wa_fieldcat-fieldname = 'POSNR'.
wa_fieldcat-coltext = 'ITEM NO'.
wa_fieldcat-seltext = 'ITEM NO'.
append wa_fieldcat to gt_fieldcat.
clear wa_fieldcat.
wa_fieldcat-fieldname = 'MATNR'.
wa_fieldcat-coltext = 'MATERIAL NO'.
wa_fieldcat-seltext = 'MATERIAL NO'.
append wa_fieldcat to gt_fieldcat.
clear wa_fieldcat.
wa_fieldcat-fieldname = 'WERKS'.
wa_fieldcat-coltext = 'PLANT'.
wa_fieldcat-seltext = 'PLANT'.
append wa_fieldcat to gt_fieldcat.
clear wa_fieldcat.
wa_fieldcat-fieldname = 'WMENG'.
wa_fieldcat-coltext = 'ORDER QTY'.
wa_fieldcat-seltext = 'ORDER QTY'.
append wa_fieldcat to gt_fieldcat.
clear wa_fieldcat.
wa_fieldcat-fieldname = 'BMENG'.
wa_fieldcat-coltext = 'DELIVERY QTY'.
wa_fieldcat-seltext = 'DELIVERY QTY'.
append wa_fieldcat to gt_fieldcat.
clear wa_fieldcat.
wa_fieldcat-fieldname = 'ERDAT'.
wa_fieldcat-coltext = 'ORDER DATE'.
wa_fieldcat-seltext = 'ORDER DATE'.
append wa_fieldcat to gt_fieldcat.
clear wa_fieldcat.
wa_fieldcat-fieldname = 'EDATU'.
wa_fieldcat-coltext = 'DELIVERY DATE'.
wa_fieldcat-seltext = 'DELIVERY DATE'.
append wa_fieldcat to gt_fieldcat.
clear wa_fieldcat.
wa_fieldcat-fieldname = 'KZWI6'.
wa_fieldcat-coltext = 'SALE SUM'.
wa_fieldcat-seltext = 'SALE SUM'.
append wa_fieldcat to gt_fieldcat.
endform.
*&---------------------------------------------------------------------*
*& Module USER_COMMAND_0100 INPUT
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
MODULE USER_COMMAND_0100 INPUT.
save_code = ok_key.
clear ok_key.
case save_code.
when 'BACK'.
* CALL METHOD g_custom_container->free.
* call method sap_grid->free.
CALL METHOD g_custom_container->free.
LEAVE TO SCREEN 0.
WHEN 'EXIT'.
CALL METHOD g_custom_container->free.
LEAVE TO SCREEN 0.
ENDCASE.
ENDMODULE. " USER_COMMAND_0100 INPUT