Stock Open Close Query
Stock Open Close Query
""""""""""""""""""""""""""""""""""""""""
""Added By Leena Adep On 17.12.2024 17:05:55
"Without Batch
TYPES : BEGIN OF ty_final,
mandt TYPE matdoc-mandt,
matnr TYPE matdoc-matbf,
maktx TYPE makt-maktx,
werks TYPE matdoc-werks,
plant_nm TYPE t001w-name1,
lgort TYPE matdoc-lgort,
storage_name TYPE t001l-lgobe,
meins TYPE mara-meins,
matkl TYPE mara-matkl,
mat_grp TYPE t023t-wgbez,
grp_nm TYPE t134t-mtbez,
spart TYPE mara-spart,
extwg TYPE mara-extwg,
labor TYPE mara-labor,
wrkst TYPE mara-wrkst,
medium TYPE mara-medium,
mtart TYPE mara-mtart,
wbs TYPE prps-posid_edit,
salk3 TYPE mbew-salk3,
lbkum TYPE mbew-lbkum,
* lbkum TYPE p DECIMALS 3,
opening TYPE mseg-menge,
receipt TYPE mseg-menge,
issue TYPE mseg-menge,
closing TYPE mseg-menge,
rate TYPE mbew-salk3,
clg_val TYPE mbew-lbkum,
mat_retest TYPE mcha-qndat,
END OF ty_final.
yesterday = s_date-low - 1.
DATA(lv_where) = cl_shdb_seltab=>combine_seltabs(
it_named_seltabs = VALUE #(
( name = 'WERKS' dref = REF #( plt_cd[]
) )
( name = 'MTART' dref = REF #( mat_ty[]
) )
( name = 'LGORT' dref = REF
#( stord[] ) )
) iv_client_field = 'MANDT'
).
IF p_rad1 = 'X'.
CALL METHOD zcl_stk_state=>get_stk_data
EXPORTING
iv_where = lv_where
date1 = s_date-low
date2 = s_date-high
sys_date = sy-datum
yesterday = yesterday
IMPORTING
gt_final = gt_final.
IF gt_final IS INITIAL.
MESSAGE : 'No Data Found' TYPE 'E'.
ENDIF.
IF s_date-high <> sy-datum .
CALL FUNCTION 'FI_PERIOD_DETERMINE'
EXPORTING
i_budat = s_date-high
i_bukrs = '1000'
* I_RLDNR = ' '
i_periv = 'V3'
* I_GJAHR = 0000
* I_MONAT = 00
* X_XMO16 = ' '
IMPORTING
e_gjahr = lv_gjahr
e_monat = lv_monat
* E_POPER =
* EXCEPTIONS
* FISCAL_YEAR = 1
* PERIOD = 2
* PERIOD_VERSION = 3
* POSTING_PERIOD = 4
* SPECIAL_PERIOD = 5
* VERSION = 6
* POSTING_DATE = 7
* OTHERS = 8
.
IF sy-subrc <> 0.
* Implement suitable error handling here
ENDIF.
ENDIF.
ENDIF.
IF p_chk = 'X'.
SELECT *
FROM @gt_final_1 AS parent
WHERE closing > 0
INTO TABLE @gt_final_1.
SORT gt_final_1 BY werks matnr lgort .
ENDIF.
SELECT kbetr,knumh,kschl
FROM konp
INTO TABLE @DATA(it_konp1)
FOR ALL ENTRIES IN @it_a916
WHERE knumh EQ @it_a916-knumh AND kschl EQ 'JOIG'.
ENDIF.
IF sy-subrc EQ 4.
* SELECT SINGLE knumh FROM a908 INTO wa_a916-knumh WHERE steuc = wa_marc-steuc
* AND kschl = 'JOIG'
* AND aland = 'IN'
* AND wkreg = '27'
* AND taxk1 = '0'
* AND taxm1 = '0'.
READ TABLE it_a916_1 INTO DATA(wa_a916_1)
WITH KEY steuc = wa_marc-steuc .
IF sy-subrc EQ 4.
SELECT SINGLE kbetr FROM konp INTO wa_konp1-kbetr WHERE knumh =
wa_a916_1-knumh AND kschl = 'JOIG'.
wa_final_new-kbetr1 = wa_konp1-kbetr." / 10.
TRY.
wa_final_new-kbetr1 = wa_final_new-kbetr1 / 10.
CATCH cx_sy_zerodivide.
ENDTRY.
ENDIF.
ENDIF.
ENDTRY.
IF sy-subrc EQ 4.
SELECT SINGLE kbetr FROM konp INTO wa_konp1-kbetr WHERE knumh =
wa_final_new-knumh1 AND kschl = 'JOIG'.
wa_final_new-kbetr1 = wa_konp1-kbetr." / 10.
TRY.
wa_final_new-kbetr1 = wa_final_new-kbetr1 / 10.
CATCH cx_sy_zerodivide.
ENDTRY.
ENDIF.
TRY.
wa_final_new-tp = wa_final_new-kbetr / ( 100 + wa_final_new-kbetr1 ) *
100.
CATCH cx_sy_zerodivide.
ENDTRY.
IF wa_final_new-kbetr2 = '16.00'.
TRY.
wa_final_new-tp = wa_final_new-tp - ( wa_final_new-tp * 16 / 100 ).
CATCH cx_sy_zerodivide.
ENDTRY.
ENDIF.
ENDIF.
ENDIF.
ENDIF.
ENDIF.
IF wa_final_new-kbetr3 EQ '8.00-'.
TRY.
wa_final_new-sp = wa_final_new-tp - ( wa_final_new-tp * 8 / 100 ).
CATCH cx_sy_zerodivide.
ENDTRY.
ENDIF.
TRY.
wa_final_new-cp = wa_final_new-sp - ( wa_final_new-sp * 10 / 100 ).
CATCH cx_sy_zerodivide.
ENDTRY.
ENDIF.
IF wa_final_new-exp_diff_1 > 0 AND wa_final_new-exp_diff_1 <= 30 .
CLEAR xcolor.
xcolor-fieldname = 'EXP_DATE'.
xcolor-color-col = '3'.
xcolor-color-int = '1'. " Intensified on/off
xcolor-color-inv = '1'.
APPEND xcolor TO wa_final_new-tcolor.
ELSEIF wa_final_new-exp_diff_1 < 0 .
CLEAR xcolor.
xcolor-fieldname = 'EXP_DATE'.
xcolor-color-col = '6'.
xcolor-color-int = '1'. " Intensified on/off
xcolor-color-inv = '1'.
APPEND xcolor TO wa_final_new-tcolor.
ENDIF.
ENDTRY.
ELSE.
wa_final_new-mat_rate = 0 .
ENDIF.
* SUBMIT ZPRICE_LIST_REGISTER.
** SUBMIT ZPRICE_LIST_REGISTER WITH P_WERKS = wa_final_new-WERKS AND p_matnr =
wa_final_new- AND RETURN.
ENDLOOP.
*-- Perform for initializing Fieldcatalog
PERFORM init_fieldcatalog.
*-- Perform to Display the Alv report.
PERFORM call_alv.
ELSE.
CALL METHOD zcl_stk_2=>get_stk_data2
EXPORTING
iv_where = lv_where
date1 = s_date-low
date2 = s_date-high
sys_date = sy-datum
yesterday = yesterday
mandt = sy-mandt
IMPORTING
gwt_final = gwt_final.
IF gwt_final IS INITIAL.
MESSAGE : 'No Data Found' TYPE 'E'.
ENDIF.
ENDIF.
IF p_chk = 'X'.
SELECT *
FROM @gwt_final_1 AS parent
WHERE closing > 0
INTO TABLE @gwt_final_1.
SORT gwt_final_1 BY werks matnr lgort .
ENDIF.
PERFORM build_fcat.
PERFORM display.
ENDIF.
ls_fieldcat-col_pos = p_pos.
ls_fieldcat-fieldname = p_tab_field_name.
ls_fieldcat-tabname = p_ref_field_table.
ls_fieldcat-seltext_m = p_short_text.
ls_fieldcat-seltext_l = p_long_text.
ls_fieldcat-hotspot = p_hotspot. """"""""""""""""""""""USER COMMAND STEP 3
ls_fieldcat-emphasize = p_emphasize.
ls_fieldcat-key = p_key.
ENDFORM.
FORM init_fieldcatalog .
DATA : lv_pos TYPE sy-cucol VALUE 0.
""""""""""""""""""""""USER COMMAND STEP 2
wa_event-name = 'USER_COMMAND'.
wa_event-form = 'UC'.
APPEND wa_event TO it_event.
CLEAR wa_event.
lv_pos = lv_pos + 1.
PERFORM fill_field USING lv_pos 'MATNR' 'GT_FINAL_NEW' 'MAT CD' 'MATERIAL CODE'
'' '' ''.
lv_pos = lv_pos + 1.
PERFORM fill_field USING lv_pos 'MAKTX' 'GT_FINAL_NEW' 'MAT NAME' 'MATERIAL NAME'
'' '' ''.
lv_pos = lv_pos + 1.
PERFORM fill_field USING lv_pos 'CHARG' 'GT_FINAL_NEW' 'BATCH NO' 'BATCH' '' ''
''.
lv_pos = lv_pos + 1.
PERFORM fill_field USING lv_pos 'WERKS' 'GT_FINAL_NEW' 'PLANT CD' 'PLANT' '' ''
''.
lv_pos = lv_pos + 1.
PERFORM fill_field USING lv_pos 'PLANT_NM' 'GT_FINAL_NEW' 'PLANT NAME' 'PLANT
NAME' '' '' ''.
lv_pos = lv_pos + 1.
PERFORM fill_field USING lv_pos 'LGORT' 'GT_FINAL_NEW' 'STORAGE CD' 'SLOC' '' ''
''.
lv_pos = lv_pos + 1.
PERFORM fill_field USING lv_pos 'STORAGE_NAME' 'GT_FINAL_NEW' 'STORAGE NAME'
'SLOC NAME' '' '' ''.
lv_pos = lv_pos + 1.
PERFORM fill_field USING lv_pos 'MEINS' 'GT_FINAL_NEW' 'UNIT' 'UNIT' '' '' ''.
lv_pos = lv_pos + 1.
PERFORM fill_field USING lv_pos 'MATKL' 'GT_FINAL_NEW' 'MAT GRP CD ' 'MATERIAL
GROUP' '' '' ''.
lv_pos = lv_pos + 1.
PERFORM fill_field USING lv_pos 'MAT_GRP' 'GT_FINAL_NEW' 'MAT GRP NAME' 'MATERIAL
GRP NAME' '' '' ''.
lv_pos = lv_pos + 1.
PERFORM fill_field USING lv_pos 'SPART' 'GT_FINAL_NEW' 'DIV CD' 'DIVISION CODE'
'' '' ''.
lv_pos = lv_pos + 1.
PERFORM fill_field USING lv_pos 'DIV_NM' 'GT_FINAL_NEW' 'DIV NAME' 'DIVISION
NAME' '' '' ''.
lv_pos = lv_pos + 1.
PERFORM fill_field USING lv_pos 'EXTWG' 'GT_FINAL_NEW' 'EXT MAT GRP' 'EXTERNAL
MATERIAL GROUP' '' '' ''.
lv_pos = lv_pos + 1.
PERFORM fill_field USING lv_pos 'LABOR' 'GT_FINAL_NEW' 'LABOR' 'LABORATORY/DESIGN
OFFICE' '' '' ''.
lv_pos = lv_pos + 1.
PERFORM fill_field USING lv_pos 'WRKST' 'GT_FINAL_NEW' 'WRKST' 'BASIC MATERIAL'
'' '' ''.
lv_pos = lv_pos + 1.
PERFORM fill_field USING lv_pos 'MEDIUM' 'GT_FINAL_NEW' 'MEDIUM' 'TRANSPORT
MEDIUM' '' '' ''.
lv_pos = lv_pos + 1.
PERFORM fill_field USING lv_pos 'MTART' 'GT_FINAL_NEW' 'MAT TYPE' 'MATERIAL TYPE'
'' '' ''.
lv_pos = lv_pos + 1.
PERFORM fill_field USING lv_pos 'OPENING' 'GT_FINAL_NEW' 'OPENING' 'OPENING' ''
'' ''.
lv_pos = lv_pos + 1.
PERFORM fill_field USING lv_pos 'RECEIPT' 'GT_FINAL_NEW' 'RECEIPT' 'RECEIPT' ''
'' ''.
lv_pos = lv_pos + 1.
PERFORM fill_field USING lv_pos 'ISSUE' 'GT_FINAL_NEW' 'ISSUE' 'ISSUE' '' '' ''.
lv_pos = lv_pos + 1.
PERFORM fill_field USING lv_pos 'CLOSING' 'GT_FINAL_NEW' 'CLOSING' 'CLOSING' ''
'' ''.
lv_pos = lv_pos + 1.
PERFORM fill_field USING lv_pos 'GRN_NO' 'GT_FINAL_NEW' 'GRN NO' 'MATERIAL DOC
NO' '' '' ''.
lv_pos = lv_pos + 1.
PERFORM fill_field USING lv_pos 'GRN_DATE' 'GT_FINAL_NEW' 'GRN DATE' 'MATERIAL
DOC NAME' '' '' ''.
lv_pos = lv_pos + 1.
PERFORM fill_field USING lv_pos 'GRN_DAYS' 'GT_FINAL_NEW' 'AS PER GRN DATE' 'AS
PER GRN DATE' '' '' ''.
lv_pos = lv_pos + 1.
PERFORM fill_field USING lv_pos 'PUR_ORD' 'GT_FINAL_NEW' 'PUR ORDER' 'PO NUMBER'
'' '' ''.
lv_pos = lv_pos + 1.
PERFORM fill_field USING lv_pos 'SUPP_CD' 'GT_FINAL_NEW' 'SUPP CD' 'SUPPLIER' ''
'' ''.
lv_pos = lv_pos + 1.
PERFORM fill_field USING lv_pos 'HOLD_DAYS' 'GT_FINAL_NEW' 'HOLD DAYS' 'HOLD
DAYS' '' '' ''.
lv_pos = lv_pos + 1.
PERFORM fill_field USING lv_pos 'SHELF_LIFE' 'GT_FINAL_NEW' 'SHELF_LIFE' 'SHELF
LIFE' '' '' ''.
lv_pos = lv_pos + 1.
PERFORM fill_field USING lv_pos 'MFG_DATE' 'GT_FINAL_NEW' 'MFG DATE' 'MFG DATE'
'' '' ''.
lv_pos = lv_pos + 1.
PERFORM fill_field USING lv_pos 'MFG_DAYS' 'GT_FINAL_NEW' 'AS PER MFG DATE' 'AS
PER MFG DATE' '' '' ''.
lv_pos = lv_pos + 1.
PERFORM fill_field USING lv_pos 'EXP_DATE' 'GT_FINAL_NEW' 'EXP DATE' 'EXPIRY
DATE' '' '' ''.
lv_pos = lv_pos + 1.
PERFORM fill_field USING lv_pos 'HSN_NO' 'GT_FINAL_NEW' 'HSN NO' 'HSN NO' '' ''
''.
lv_pos = lv_pos + 1.
PERFORM fill_field USING lv_pos 'MOD_STRDESCR' 'GT_FINAL_NEW' 'MOD_STRDESCR' ''
'' '' ''.
lv_pos = lv_pos + 1.
PERFORM fill_field USING lv_pos 'UOM_CD' 'GT_FINAL_NEW' 'UOM_CD' '' '' '' ''.
lv_pos = lv_pos + 1.
PERFORM fill_field USING lv_pos 'UOM_NAME' 'GT_FINAL_NEW' 'UOM_NAME' '' '' ''
''.
lv_pos = lv_pos + 1.
PERFORM fill_field USING lv_pos 'DOSAGE_CD' 'GT_FINAL_NEW' 'DOSAGE_CD' '' '' ''
''.
lv_pos = lv_pos + 1.
PERFORM fill_field USING lv_pos 'DOSAGE_DESCR' 'GT_FINAL_NEW' 'DOSAGE_DESCR' ''
'' '' ''.
lv_pos = lv_pos + 1.
PERFORM fill_field USING lv_pos 'MAT_PH' 'GT_FINAL_NEW' 'MAT_PH' '' '' '' ''.
lv_pos = lv_pos + 1.
PERFORM fill_field USING lv_pos 'MAT_PHDESCR' 'GT_FINAL_NEW' 'MAT_PHDESCR' '' ''
'' ''.
lv_pos = lv_pos + 1.
PERFORM fill_field USING lv_pos 'MAT_OG' 'GT_FINAL_NEW' 'MAT_OG' '' '' '' ''.
lv_pos = lv_pos + 1.
PERFORM fill_field USING lv_pos 'MAT_OGDESCR' 'GT_FINAL_NEW' 'MAT_OGDESCR' '' ''
'' ''.
lv_pos = lv_pos + 1.
PERFORM fill_field USING lv_pos 'GRP_NM' 'GT_FINAL_NEW' 'GRP_NM' '' '' '' ''.
lv_pos = lv_pos + 1.
PERFORM fill_field USING lv_pos 'MAT_RETEST' 'GT_FINAL_NEW' 'MAT_RETEST' '' '' ''
''.
lv_pos = lv_pos + 1.
PERFORM fill_field USING lv_pos 'FROM_DATE' 'GT_FINAL_NEW' 'FROM DATE' '' '' ''
''.
lv_pos = lv_pos + 1.
PERFORM fill_field USING lv_pos 'TO_DATE' 'GT_FINAL_NEW' 'TO DATE' '' '' '' ''.
lv_pos = lv_pos + 1.
PERFORM fill_field USING lv_pos 'RATE' 'GT_FINAL_NEW' 'MAT. RATE' '' '' '' ''.
lv_pos = lv_pos + 1.
PERFORM fill_field USING lv_pos 'MAT_RATE' 'GT_FINAL_NEW' 'MAT. VALUE' '' '' ''
''.
lv_pos = lv_pos + 1.
PERFORM fill_field USING lv_pos 'KBETR' 'GT_FINAL_NEW' 'MRP' '' '' '' ''.
lv_pos = lv_pos + 1.
PERFORM fill_field USING lv_pos 'TP' 'GT_FINAL_NEW' 'TP' '' '' '' ''.
lv_pos = lv_pos + 1.
PERFORM fill_field USING lv_pos 'SP' 'GT_FINAL_NEW' 'SP' '' '' '' ''.
lv_pos = lv_pos + 1.
PERFORM fill_field USING lv_pos 'CP' 'GT_FINAL_NEW' 'CP' '' '' '' ''.
lv_pos = lv_pos + 1.
PERFORM fill_field USING lv_pos 'VALUE_TYPE' 'GT_FINAL_NEW' 'VALUATION TYPE' ''
'' '' ''.
ENDFORM.
FORM call_alv .
gw_layout-colwidth_optimize = 'X'.
CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'
EXPORTING
* I_INTERFACE_CHECK = ' '
* I_BYPASSING_BUFFER = ' '
* I_BUFFER_ACTIVE = ' '
i_callback_program = sy-cprog
* I_CALLBACK_PF_STATUS_SET = ' '
* I_CALLBACK_USER_COMMAND = ' '
* I_CALLBACK_TOP_OF_PAGE = ' '
* I_CALLBACK_HTML_TOP_OF_PAGE = ' '
* I_CALLBACK_HTML_END_OF_LIST = ' '
* I_STRUCTURE_NAME =
* I_BACKGROUND_ID = ' '
* I_GRID_TITLE =
* I_GRID_SETTINGS =
is_layout = gw_layout
it_fieldcat = it_fieldcat
* IT_EXCLUDING =
* IT_SPECIAL_GROUPS =
* IT_SORT =
* IT_FILTER =
* IS_SEL_HIDE =
* I_DEFAULT = 'X'
* I_SAVE = ' '
* IS_VARIANT =
* IT_EVENTS =
* IT_EVENT_EXIT =
* IS_PRINT =
* IS_REPREP_ID =
* I_SCREEN_START_COLUMN = 0
* I_SCREEN_START_LINE = 0
* I_SCREEN_END_COLUMN = 0
* I_SCREEN_END_LINE = 0
* I_HTML_HEIGHT_TOP = 0
* I_HTML_HEIGHT_END = 0
* IT_ALV_GRAPHICS =
* IT_HYPERLINK =
* IT_ADD_FIELDCAT =
* IT_EXCEPT_QINFO =
* IR_SALV_FULLSCREEN_ADAPTER =
* O_PREVIOUS_SRAL_HANDLER =
* IMPORTING
* E_EXIT_CAUSED_BY_CALLER =
* ES_EXIT_CAUSED_BY_USER =
TABLES
t_outtab = gt_final_new
EXCEPTIONS
program_error = 1
OTHERS = 2.
IF sy-subrc <> 0.
* Implement suitable error handling here
ENDIF.
ENDFORM.
*&---------------------------------------------------------------------*
*& Form build_fcat
*&---------------------------------------------------------------------*
*& text
*&---------------------------------------------------------------------*
*& --> p1 text
*& <-- p2 text
*&---------------------------------------------------------------------*
FORM build_fcat .
DATA : lv_pos TYPE sy-cucol VALUE 0.
""""""""""""""""""""""USER COMMAND STEP 2
wa_event-name = 'USER_COMMAND'.
wa_event-form = 'UC'.
APPEND wa_event TO it_event.
CLEAR wa_event.
lv_pos = lv_pos + 1.
PERFORM fill_field USING lv_pos 'MATNR' 'GWT_FINAL_NEW' '' 'Material Code' '' ''
''.
lv_pos = lv_pos + 1.
PERFORM fill_field USING lv_pos 'MAKTX' 'GWT_FINAL_NEW' '' 'Material Name' '' ''
''.
lv_pos = lv_pos + 1.
PERFORM fill_field USING lv_pos 'WERKS' 'GWT_FINAL_NEW' '' 'Plant Code' '' '' ''.
lv_pos = lv_pos + 1.
PERFORM fill_field USING lv_pos 'PLANT_NM' 'GWT_FINAL_NEW' '' 'Plant Name' '' ''
''.
lv_pos = lv_pos + 1.
PERFORM fill_field USING lv_pos 'LGORT' 'GWT_FINAL_NEW' '' 'Sloc' '' '' ''.
lv_pos = lv_pos + 1.
PERFORM fill_field USING lv_pos 'STORAGE_NAME' 'GWT_FINAL_NEW' '' 'Sloc Name' ''
'' ''.
lv_pos = lv_pos + 1.
PERFORM fill_field USING lv_pos 'MEINS' 'GWT_FINAL_NEW' '' 'Unit' '' '' ''.
lv_pos = lv_pos + 1.
PERFORM fill_field USING lv_pos 'MATKL' 'GWT_FINAL_NEW' '' 'Material Group' '' ''
''.
lv_pos = lv_pos + 1.
PERFORM fill_field USING lv_pos 'MAT_GRP' 'GWT_FINAL_NEW' '' 'Mat grp name' '' ''
''.
lv_pos = lv_pos + 1.
PERFORM fill_field USING lv_pos 'GRP_NM' 'GWT_FINAL_NEW' '' 'Material Group name'
'' '' ''.
lv_pos = lv_pos + 1.
PERFORM fill_field USING lv_pos 'SPART' 'GWT_FINAL_NEW' '' 'Division' '' '' ''.
lv_pos = lv_pos + 1.
PERFORM fill_field USING lv_pos 'EXTWG' 'GWT_FINAL_NEW' '' 'External Material
Group' '' '' ''.
lv_pos = lv_pos + 1.
PERFORM fill_field USING lv_pos 'LABOR' 'GWT_FINAL_NEW' '' 'Laboratory/design
office' '' '' ''.
lv_pos = lv_pos + 1.
PERFORM fill_field USING lv_pos 'WRKST' 'GWT_FINAL_NEW' '' 'Basic Material' '' ''
''.
lv_pos = lv_pos + 1.
PERFORM fill_field USING lv_pos 'MEDIUM' 'GWT_FINAL_NEW' '' 'Medium' '' '' ''.
lv_pos = lv_pos + 1.
PERFORM fill_field USING lv_pos 'MTART' 'GWT_FINAL_NEW' '' 'Material Type' '' ''
''.
lv_pos = lv_pos + 1.
PERFORM fill_field USING lv_pos 'WBS' 'GWT_FINAL_NEW' '' 'WBS Element' '' '' ''.
lv_pos = lv_pos + 1.
PERFORM fill_field USING lv_pos 'OPENING' 'GWT_FINAL_NEW' '' 'Opening' '' '' ''.
lv_pos = lv_pos + 1.
PERFORM fill_field USING lv_pos 'RECEIPT' 'GWT_FINAL_NEW' '' 'Receipt' '' '' ''.
lv_pos = lv_pos + 1.
PERFORM fill_field USING lv_pos 'ISSUE' 'GWT_FINAL_NEW' '' 'Issue' '' '' ''.
lv_pos = lv_pos + 1.
PERFORM fill_field USING lv_pos 'CLOSING' 'GWT_FINAL_NEW' '' 'Closing' '' '' ''.
lv_pos = lv_pos + 1.
PERFORM fill_field USING lv_pos 'RATE' 'GWT_FINAL_NEW' '' 'Rate' '' '' ''.
lv_pos = lv_pos + 1.
PERFORM fill_field USING lv_pos 'CLG_VAL' 'GWT_FINAL_NEW' '' 'Closing value' ''
'' ''.
ENDFORM.
*&---------------------------------------------------------------------*
*& Form display
*&---------------------------------------------------------------------*
*& text
*&---------------------------------------------------------------------*
*& --> p1 text
*& <-- p2 text
*&---------------------------------------------------------------------*
FORM display .
gw_layout-colwidth_optimize = 'X'.
CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'
EXPORTING
* I_INTERFACE_CHECK = ' '
* I_BYPASSING_BUFFER = ' '
* I_BUFFER_ACTIVE = ' '
i_callback_program = sy-cprog
* I_CALLBACK_PF_STATUS_SET = ' '
* I_CALLBACK_USER_COMMAND = ' '
* I_CALLBACK_TOP_OF_PAGE = ' '
* I_CALLBACK_HTML_TOP_OF_PAGE = ' '
* I_CALLBACK_HTML_END_OF_LIST = ' '
* I_STRUCTURE_NAME =
* I_BACKGROUND_ID = ' '
* I_GRID_TITLE =
* I_GRID_SETTINGS =
is_layout = gw_layout
it_fieldcat = it_fieldcat
* IT_EXCLUDING =
* IT_SPECIAL_GROUPS =
* IT_SORT =
* IT_FILTER =
* IS_SEL_HIDE =
* I_DEFAULT = 'X'
i_save = 'X'
* IS_VARIANT =
* IT_EVENTS =
* IT_EVENT_EXIT =
* IS_PRINT =
* IS_REPREP_ID =
* I_SCREEN_START_COLUMN = 0
* I_SCREEN_START_LINE = 0
* I_SCREEN_END_COLUMN = 0
* I_SCREEN_END_LINE = 0
* I_HTML_HEIGHT_TOP = 0
* I_HTML_HEIGHT_END = 0
* IT_ALV_GRAPHICS =
* IT_HYPERLINK =
* IT_ADD_FIELDCAT =
* IT_EXCEPT_QINFO =
* IR_SALV_FULLSCREEN_ADAPTER =
* O_PREVIOUS_SRAL_HANDLER =
* IMPORTING
* E_EXIT_CAUSED_BY_CALLER =
* ES_EXIT_CAUSED_BY_USER =
TABLES
t_outtab = gwt_final
EXCEPTIONS
program_error = 1
OTHERS = 2.
IF sy-subrc <> 0.
* Implement suitable error handling here
ENDIF.
ENDFORM.
***********************************************************************************
*****************************************
*******************************************zcl_stk_state=>get_stk_data*************
*****************************************
CLASS zcl_stk_state DEFINITION
PUBLIC
FINAL
CREATE PUBLIC .
PUBLIC SECTION.
INTERFACES :IF_AMDP_MARKER_HDB.
TYPES : BEGIN OF ty_final,
mandt TYPE matdoc-mandt,
MATNR TYPE MATDOC-matbf,
MAKTX TYPE MAKT-maktx,
CHARG TYPE MATDOC-charg,
WERKS TYPE MATDOC-werks,
LGORT TYPE MATDOC-lgort,
MEINS TYPE MARA-meins,
MATKL TYPE MARA-matkl ,
spart TYPE MARA-spart,
extwg TYPE MARA-extwg,
labor TYPE MARA-labor,
wrkst TYPE MARA-wrkst,
medium TYPE MARA-medium,
mtart TYPE MARA-mtart,
OPENING TYPE Mseg-menge,
RECEIPT TYPE Mseg-menge,
ISSUE TYPE Mseg-menge,
CLOSING TYPE Mseg-menge,
PLANT_NM TYPE t001w-name1 ,
GRN_NO TYPE MSEG-mblnr,
GRN_DATE TYPE MSEG-budat_mkpf,
GRN_DAYS TYPE NUM8,
PUR_ORD TYPE MSEG-ebeln,
SUPP_CD TYPE MSEG-lifnr,
LAST_ISSUE_DATE TYPE MATDOC-budat,
HOLD_DAYS TYPE NUM8,
SHELF_LIFE TYPE CHAR20,
MFG_DATE TYPE mch1-hsdat,
MFG_DAYS TYPE NUM8,
EXP_DATE TYPE mch1-vfdat,
HSN_NO TYPE MARC-steuc,
MAT_GRP TYPE t023t-wgbez,
STORAGE_NAME TYPE t001l-lgobe ,
DIV_NM TYPE tspat-vtext,
mod_strdescr TYPE t372m_T-medkxt ,
uom_cd TYPE mvke-mvgr5 ,
uom_name TYPE TVM5T-bezei,
dosage_cd TYPE mvke-mvgr4,
dosage_descr TYPE TVM4T-bezei ,
mat_ph TYPE MVKE-prodh,
mat_phdescr TYPE char50,
mat_og TYPE MBEW-hrkft,
prod_cost_no TYPE MBEW-KALN1,
mat_ogdescr TYPE tkkh2-hrktx,
GRP_NM TYPE t134t-mtbez,
MAT_RETEST TYPE MCHA-qndat ,
from_date TYPE sy-datum ,
to_date TYPE sy-datum,
LINE_COLOR TYPE CHAR4,
rate TYPE mbew-verpr,
END OF ty_final.
CLASS-METHODS get_stk_data
IMPORTING
VALUE(IV_WHERE) TYPE STRING
* VALUE(MAT_TY1) TYPE MARA-MTART
* VALUE(STORD1) TYPE MATDOC-lgort
VALUE(DATE1) TYPE MATDOC-budat
VALUE(DATE2) TYPE MATDOC-budat
VALUE(SYS_DATE) TYPE sy-datum
VALUE(yesterday) TYPE sy-datum
EXPORTING
VALUE(gt_final) TYPE ZTT_STK.
PROTECTED SECTION.
PRIVATE SECTION.
ENDCLASS.
ENDMETHOD.
ENDCLASS.
***********************************************************************************
*****************************************
*******************************************zcl_stk_rate=>get_rate******************
*****************************************
CLASS zcl_stk_rate DEFINITION
PUBLIC
FINAL
CREATE PUBLIC .
PUBLIC SECTION.
INTERFACES :IF_AMDP_MARKER_HDB.
CLASS-METHODS get_RATE
IMPORTING
PROTECTED SECTION.
PRIVATE SECTION.
ENDCLASS.
ENDMETHOD.
ENDCLASS.