‎2008 Aug 14 3:39 AM
Hello experts,
I facing a strange issue with the above method it works fine upto 40 times in a loop but after that it doesn't create the dynamic internal table dy_table,
the value of sy-subrc is 2, Could you please suggext how can i avoid this error. I think there is some subroutine pool which loads upto 40 times after that it gives dump.
CLEAR it_fcat.
refresh it_fcat.
LOOP AT it_tdetails.
it_fcat-fieldname = it_tdetails-fieldname.
it_fcat-datatype = it_tdetails-datatype.
it_fcat-inttype = it_tdetails-inttype.
it_fcat-intlen = it_tdetails-leng.
it_fcat-decimals = it_tdetails-decimals.
APPEND it_fcat.
CLEAR it_fcat.
ENDLOOP.
CALL METHOD cl_alv_table_create=>create_dynamic_table
EXPORTING
it_fieldcatalog = it_fcat[]
IMPORTING
ep_table = dy_table
EXCEPTIONS
OTHERS = 2.
Create dynamic internal table
ASSIGN dy_table->* TO <dyn_table>.
Create dynamic work area and assign to FS
CREATE DATA dy_line LIKE LINE OF <dyn_table>.
ASSIGN dy_line->* TO <wa_src>.
‎2008 Aug 14 4:38 AM
Check out this code...I've created table with 50 fields...
REPORT ztest_sourav13 MESSAGE-ID 00. " FISK999999
tables: pa0001.
TYPE-POOLS: slis.
DATA: itab1 TYPE STANDARD TABLE OF pa0001 INITIAL SIZE 0,
i_lvc_t_fcat TYPE lvc_t_fcat,
l_columns TYPE i,
l_col TYPE char20,
fieldname TYPE slis_fieldname,
heading TYPE scrtext_l,
i_table TYPE REF TO data,
l_wa_ref TYPE REF TO data,
l_wa_lvc_t_fcat LIKE LINE OF i_lvc_t_fcat.
FIELD-SYMBOLS:
<itab2> TYPE STANDARD TABLE,
<wa_itab2> TYPE ANY.
select-OPTIONS: s_pernr for pa0001-pernr MATCHCODE OBJECT prem.
SELECT * FROM pa0001 INTO TABLE itab1
UP TO 50 ROWS.
IF sy-subrc = 0.
ENDIF.
l_columns = LINES( itab1 ). " Get the number of rows
l_columns = l_columns + 1. " Add 1 for fields "PERNR,ORGEH etc"
CLEAR l_col.
DO l_columns TIMES.
l_col = l_col + 1.
CONDENSE l_col NO-GAPS.
CONCATENATE 'FIELD' l_col INTO fieldname.
heading = fieldname.
*...Clear Workarea
CLEAR l_wa_lvc_t_fcat.
l_wa_lvc_t_fcat-fieldname = fieldname. " Field name
l_wa_lvc_t_fcat-seltext = heading. " Column heading
l_wa_lvc_t_fcat-rollname = 'CHAR20'. " Data element
* Append the data into field catalog table
APPEND l_wa_lvc_t_fcat TO i_lvc_t_fcat .
ENDDO.
* Create internal table
CALL METHOD cl_alv_table_create=>create_dynamic_table
EXPORTING
it_fieldcatalog = i_lvc_t_fcat
IMPORTING
ep_table = i_table.
*Create a table
ASSIGN i_table->* TO <itab2>.
CHECK sy-subrc = 0.
*Create a data
CREATE DATA l_wa_ref LIKE LINE OF <itab2>.
*Assign the work area
ASSIGN l_wa_ref->* TO <wa_itab2>.
CHECK sy-subrc = 0.
BREAK-POINT.
‎2008 Aug 14 4:50 AM
Hi ,
It would be better if u give dump details. Mean while Check out this code.
DATA : gr_drefc TYPE REF TO data,
g_wac TYPE REF TO data .
*--Dynamically creating internal table based on the structure entered
Get the structure of the table.
ref_table_des ?=
cl_abap_typedescr=>describe_by_name( sst ). "SST is the structure name
idetails[] = ref_table_des->components[].
LOOP AT idetails INTO xdetails.
CLEAR xfc.
xfc-fieldname = xdetails-name .
xfc-datatype = xdetails-type_kind.
xfc-inttype = xdetails-type_kind.
xfc-intlen = '40'."xdetails-length.
xfc-decimals = xdetails-decimals.
APPEND xfc TO ifc.
ENDLOOP.
Create dynamic internal table and assign to FS
CALL METHOD cl_alv_table_create=>create_dynamic_table
EXPORTING
it_fieldcatalog = ifc
IMPORTING
ep_table = dy_table.
ASSIGN dy_table->* TO <dyn_table>.
Create dynamic work area and assign to FS
CREATE DATA dy_line LIKE LINE OF <dyn_table>.
ASSIGN dy_line->* TO <dyn_wa>.
Edited by: A kumar on Aug 14, 2008 5:50 AM
‎2008 Aug 14 5:21 AM
Hi ,
Please check this code ....
&----
*& Report ZCRPT_PP_WIPFLOOR_DYNAMIC
*&
&----
*&
*&
&----
REPORT ZCRPT_PP_WIPGROUP_DYNAMIC LINE-SIZE 1023.
----
Dev. Class : ZPP *
Report Name : ZRPT_PP_010_1 *
Program Type : Report *
Created by : *
Created on : 11.02.2008 *
Transaction Code : *
Module Name : Production Planning *
Object ID : REPT *
Description : W.I.P report for floor *
SAP Release : 6.0 *
Change Request : *
Change History : Modify by Vasudeo as on 17.04.2008 due to *
: WIP Stock Update in Z-Table ZCTA_PP_PRS_STK *
----
INCLUDE ZALVHEADER.
TYPE-POOLS: SLIS .
----
1 : Tables Defination *
----
TABLES : AFKO,
AFPO,
AUFK,
MARA,
MAKT,
T001W,
CRHD,
CRTX,
VBAK,
VBAP,
MSEG,
MBEW,
T023T,
AFRU,
MAST,
KNA1,
VBKD,
STPO,
ZCTA_PP_PRS_STK,
JEST,
ZCTA_PP_WRK_GRP.
----
2 : Selection Screen *
----
SELECTION-SCREEN BEGIN OF BLOCK B1 WITH FRAME TITLE TEXT-001.
SELECT-OPTIONS: S_AUFNR FOR AUFK-AUFNR,
S_AUART FOR AUFK-AUART NO INTERVALS,
S_BUDAT FOR AFRU-BUDAT DEFAULT SY-DATUM,
S_WERKS FOR AUFK-WERKS ,
S_ARBPL FOR CRHD-ARBPL MATCHCODE OBJECT ZARBPL ,
S_GRP3 FOR ZCTA_PP_WRK_GRP-GRP3,
S_GRP2 FOR ZCTA_PP_WRK_GRP-GRP2,
S_GRP1 FOR ZCTA_PP_WRK_GRP-GRP1,
S_MATNR FOR MARA-MATNR,
S_VBELN FOR VBAP-VBELN,
S_KUNNR FOR KNA1-KUNNR,
S_FTRMI FOR AFKO-FTRMI,
S_HMATNR FOR MARA-MATNR.
SELECTION-SCREEN END OF BLOCK B1.
SELECTION-SCREEN BEGIN OF BLOCK B2 WITH FRAME TITLE TEXT-002.
PARAMETERS : R_GRP1 RADIOBUTTON GROUP G1,
R_GRP2 RADIOBUTTON GROUP G1,
R_GRP3 RADIOBUTTON GROUP G1.
SELECTION-SCREEN END OF BLOCK B2.
***SELECTION-SCREEN BEGIN OF BLOCK B2 WITH FRAME TITLE TEXT-002.
***
***PARAMETERS: PCS RADIOBUTTON GROUP G1,
WGT RADIOBUTTON GROUP G1 .
***
***SELECTION-SCREEN END OF BLOCK B2.
----
3 : Types & Structure Definition *
----
TYPES BEGIN OF T_T023T .
INCLUDE STRUCTURE T023T .
TYPES END OF T_T023T .
TYPES : BEGIN OF T_MBEW .
INCLUDE STRUCTURE MBEW .
TYPES : END OF T_MBEW .
TYPES : BEGIN OF T_DISPLAY ,
POSITION TYPE I ,
FIELDNAME LIKE LVC_S_FCAT-FIELDNAME ,
HTEXT(40) TYPE C ,
OUTLEN TYPE I ,
END OF T_DISPLAY .
----
4 : Internal Table Declaration *
----
DATA : LT_DISPLAY TYPE T_DISPLAY OCCURS 10
WITH HEADER LINE .
DATA: A TYPE I . " Changed by sureshgoud.b.
DATA: B TYPE P DECIMALS 3. " changed by sureshgoud.b
DATA : BEGIN OF I_WRKCNT OCCURS 0,
ARBPL TYPE CRHD-ARBPL,
WERKS TYPE AUFK-WERKS, "Plant
VORNR TYPE AFRU-VORNR,
END OF I_WRKCNT.
DATA : I_GRP TYPE ZCTA_PP_WRK_GRP OCCURS 0 WITH HEADER LINE.
DATA: BEGIN OF L_OUT OCCURS 0,
LEAD_AUFNR TYPE AUFK-AUFNR,
KTEXT(20)," type crtx-ktext,
AUFNR TYPE AUFK-AUFNR, "Production order no.
AUART(11)," TYPE aufk-auart, "Prd ord. typ
KDAUF TYPE AUFK-KDAUF, "SO #
KDPOS TYPE AUFK-KDPOS, "SO line item
BUKRS TYPE AUFK-BUKRS, "Company code
WERKS TYPE AUFK-WERKS, "Plant
OBJNR TYPE AUFK-OBJNR,
GLTRP TYPE AFKO-GLTRP, "Basic finish date
FTRMI TYPE AFKO-FTRMI, "Order release date
STLBEZ TYPE AFKO-STLBEZ, "Material #
PSMNG TYPE AFPO-PSMNG, "PRD QTY
LEAD_AUFNR TYPE AUFK-AUFNR,
MAKTX(30)," TYPE makt-maktx, "Materioal Desc.
GAMNG LIKE A , "Total order qty. "changed by sursehgoud.b
STLTY TYPE AFKO-STLTY, "BOM Category
STLNR TYPE AFKO-STLNR, "BOM #
ARBID TYPE AFRU-ARBID,
ARBPL TYPE CRHD-ARBPL, "Work center
APRIO TYPE AFKO-APRIO,
PRI_TXT TYPE ZCTA_PP_PRIORITY-PRI_TXT,
VORNR TYPE AFRU-VORNR, "Operation no.
ISM02 LIKE B , "IN Wgt "changed by sursehgoud.b
ISM03 LIKE B , "Out Wgt "changed by sursehgoud.b
TSWGT LIKE B, " Intransit WGt (IN ZAUTO_CONFIRM TABLE)
ISM04 LIKE A , "IN PCS "changed by sursehgoud.b
ISM05 LIKE A , "OUT PCS "changed by sursehgoud.b
TSPCS LIKE A, " Intransit Pcs (IN ZAUTO_CONFIRM TABLE)
"changed by sursehgoud.b
WIPPC LIKE A , "WIP PCS "changed by sursehgoud.b
WIPWT LIKE B , "WIP WTg" changed by sursehgoud.b
XMNGA LIKE A , "Scrap Qtry. "changed by sursehgoud.b
RMNGA LIKE A , "Rework QTy "changed by sursehgoud.b
LTXA1 TYPE AFRU-LTXA1, "Confirmation text
KUNNR TYPE KNA1-KUNNR, "Customer
LPOST TYPE MSEG-MENGE, "Loss Posted
NAME1(20), "Customer name
BUDAT TYPE MKPF-BUDAT, "Diamond GR Date
LABOR LIKE MARA-LABOR, "Metal KT
KOSCH LIKE MARA-KOSCH,
MATKL LIKE MARA-MATKL,
WGBEZ LIKE T023T-WGBEZ,
MENGE TYPE STPO-MENGE, "Pure gold Qty in %
24KTS TYPE STPO-MENGE,
BISMT TYPE MARA-BISMT, "Grade
MVGR3 TYPE MVKE-MVGR3, "Prd Cat
MVGR4 TYPE MVKE-MVGR4, "Sales Cat
VKORG TYPE MVKE-VKORG, "Sales Org
VTWEG TYPE MVKE-VTWEG, "Dist. Channel
BSTKD TYPE VBKD-BSTKD, "PO Number
BSTDK TYPE VBKD-BSTDK, "Item Number
ZNOPCS TYPE STPO-ZNOPCS, "No of Pcs
ZZ_KONDM TYPE STPO-ZZ_KONDM, "SETTING MODE
KWMENG TYPE VBAP-KWMENG, "sales order qty
CRT_TXT(40),
LCK_TXT(40),
ZTEST2 TYPE MARA-ZTEST2,
STKTX TYPE STKO-STKTX,
WSQTY(15) TYPE N,
HSQTY(15) TYPE N,
INVQTY(15) TYPE N,
FTRMS TYPE D,
GRP1 TYPE ZCTA_PP_WRK_GRP-GRP1,
GRP2 TYPE ZCTA_PP_WRK_GRP-GRP2,
GRP3 TYPE ZCTA_PP_WRK_GRP-GRP3,
ZTEST1 TYPE MARA-ZTEST1,
GRADE(50),
REJPC LIKE A,
ZPRDCAT TYPE MVKE-ZPRDCAT,
EXDLDT TYPE VBAK-EXDLDT,
WSHS(20),
ORDQTY TYPE AFPO-PSMNG,
IGMNG TYPE AFKO-IGMNG,
BSARK TYPE VBKD-BSARK,
ORDBAL TYPE LIPS-LFIMG,
NETPR TYPE VBAP-NETPR,
HMATNR TYPE AFKO-STLBEZ,
END OF L_OUT.
DATA : DAYS TYPE I.
DATA : BEGIN OF GT_LIPS OCCURS 0,
VBELV TYPE LIPS-VBELV,
POSNV TYPE LIPS-POSNV,
LFIMG TYPE LIPS-LFIMG,
END OF GT_LIPS.
DATA: I_OUT LIKE L_OUT OCCURS 0 WITH HEADER LINE.
DATA : BEGIN OF I_OUT1 OCCURS 0,
LEAD_AUFNR TYPE AUFK-AUFNR,
AUFNR TYPE AUFK-AUFNR, "Production order no.
ARBPL TYPE CRHD-ARBPL, "Work center
ISM04 LIKE A , "IN PCS "changed by sursehgoud.b
ISM05 LIKE A , "OUT PCS "changed by sursehgoud.b
WIPPC LIKE A , "WIP PCS "changed by sursehgoud.b
WIPWT LIKE B , "WIP WTg" changed by sursehgoud.b
AUART(11),
KDAUF TYPE AUFK-KDAUF, "SO #
KDPOS TYPE AUFK-KDPOS, "SO line item
BUKRS TYPE AUFK-BUKRS, "Company code
WERKS TYPE AUFK-WERKS, "Plant
FTRMI TYPE AFKO-FTRMI, "Order release date
STLBEZ TYPE AFKO-STLBEZ, "Material #
PSMNG TYPE AFPO-PSMNG, "PRD QTY
MAKTX(30)," TYPE makt-maktx, "Materioal Desc.
GAMNG LIKE A , "Total order qty.
BSTKD TYPE VBKD-BSTKD, "PO Number
BSTDK TYPE VBKD-BSTDK, "Item Number
LABOR LIKE MARA-LABOR, "Metal KT
KOSCH(6),
KUNNR TYPE KNA1-KUNNR,
NAME1(20), "Customer name
KWMENG TYPE VBAP-KWMENG, "sales order qty
NETPR TYPE VBAP-NETPR,
HMATNR TYPE AFKO-STLBEZ,
VORNR TYPE AFRU-VORNR, "Operation no.
PRI_TXT(40) TYPE C,
CRT_TXT(40),
LCK_TXT(40),
ZTEST2 TYPE MARA-ZTEST2,
STKTX TYPE STKO-STKTX,
MATKL LIKE MARA-MATKL,
WSQTY(15) TYPE N,
WSHS(20),
HSQTY(15) TYPE N,
INVQTY(15) TYPE N,
STLTY TYPE AFKO-STLTY, "BOM Category
STLNR TYPE AFKO-STLNR, "BOM #
FTRMS TYPE D,
GRP1 TYPE ZCTA_PP_WRK_GRP-GRP1,
GRP2 TYPE ZCTA_PP_WRK_GRP-GRP2,
GRP3 TYPE ZCTA_PP_WRK_GRP-GRP3,
ZTEST1 TYPE MARA-ZTEST1,
BUDAT TYPE MKPF-BUDAT, "Diamond GR Date
GRADE(50),
GLTRP TYPE AFKO-GLTRP,
REJPC LIKE A,
ZPRDCAT TYPE MVKE-ZPRDCAT,
EXDLDT TYPE VBAK-EXDLDT,
ORDQTY TYPE AFPO-PSMNG,
IGMNG TYPE AFKO-IGMNG,
BSARK TYPE VBKD-BSARK,
ORDBAL TYPE LIPS-LFIMG,
END OF I_OUT1.
DATA: I_DATA LIKE L_OUT OCCURS 0 WITH HEADER LINE.
DATA: I_DATA1 LIKE L_OUT OCCURS 0 WITH HEADER LINE.
DATA: I_CONF LIKE ZAUTO_CONFIRM OCCURS 0 WITH HEADER LINE.
DATA: I_CONF1 LIKE I_CONF OCCURS 0 WITH HEADER LINE.
DATA : L_IST_JEST LIKE STANDARD TABLE OF JEST WITH HEADER LINE.
DATA: KTEXT(20), MYTAB TYPE I.
DATA : BEGIN OF I_AUFNR OCCURS 0,
AUFNR TYPE AFKO-AUFNR,
LEAD_AUFNR TYPE AFKO-AUFNR,
END OF I_AUFNR.
DATA : BEGIN OF I_GRADE OCCURS 0,
AUFNR TYPE AFKO-AUFNR,
BEZEI TYPE TVEGRT-BEZEI,
END OF I_GRADE.
DATA : BEGIN OF ITAB_SET OCCURS 0,
STYPE TYPE ZCTA_PP_SETTYP-STYPE,
END OF ITAB_SET.
DATA: I_AUFNR1 LIKE I_AUFNR OCCURS 0 WITH HEADER LINE.
DATA: I_AUFNR2 LIKE I_AUFNR OCCURS 0 WITH HEADER LINE.
DATA: BEGIN OF L_PRINT OCCURS 0,
KTEXT(20)," type crtx-ktext,
AUFNR TYPE AUFK-AUFNR, "Production order no.
FTRMI TYPE AFKO-FTRMI, "Order release date
AUART(11)," TYPE aufk-auart, "Prd ord. typ
KDAUF TYPE AUFK-KDAUF, "SO #
KDPOS TYPE AUFK-KDPOS, "SO line item
BUKRS TYPE AUFK-BUKRS, "Company code
WERKS TYPE AUFK-WERKS, "Plant
GLTRP TYPE AFKO-GLTRP, "Basic finish date
STLBEZ TYPE AFKO-STLBEZ, "Material #
MAKTX(30)," TYPE makt-maktx, "Materioal Desc.
GAMNG(9)," TYPE afko-gamng, "Total order qty.
ARBID TYPE AFRU-ARBID,
ARBPL TYPE CRHD-ARBPL, "Work center
VORNR TYPE AFRU-VORNR, "Operation no.
ISM02(9),"TYPE afru-ism02, "IN Wgt
ISM03(9)," TYPE afru-ism03, "Out Wgt
TSWGT(9)," TYPE afru-ism04, " Intransit WGt (IN ZAUTO_CONFIRM
*TABLE)
ISM04(9)," TYPE afru-ism04, "IN PCS
ISM05(9)," TYPE afru-ism05, "OUT PCS
TSPCS(9)," type afru-ism05, " Intransit Pcs (IN ZAUTO_CONFIRM
*TABLE)
WIPPC(9)," TYPE afru-ism04, "WIP PCS
WIPWT(9)," TYPE afru-ism04, "WIP WTg
XMNGA(9)," TYPE afru-xmnga, "Scrap Qtry.
RMNGA(9)," TYPE afru-rmnga, "Rework QTy
LTXA1 TYPE AFRU-LTXA1, "Confirmation text
KUNNR TYPE KNA1-KUNNR, "Customer
LPOST TYPE MSEG-MENGE, "Loss Posted
NAME1(20), "Customer name
BUDAT TYPE MKPF-BUDAT, "Diamond GR Date Diamond GR
KTTYP(10)," TYPE mara-labor, "Metal KT
MENGE(9),
24KTS(9),
END OF L_PRINT.
DATA:I_SUM LIKE L_PRINT OCCURS 0 WITH HEADER LINE.
DATA: MYTABIX TYPE SY-TABIX.
DATA: TSWGT TYPE AFRU-ISM03,TSPCS TYPE AFRU-ISM05.
DATA: X LIKE SY-ULINE ,Y LIKE SY-VLINE,C TYPE N.
DATA: LEN TYPE I.
DATA: BEGIN OF I_SUMM OCCURS 0,
KTEXT(20),
KTTYP(7),
WIPWT TYPE AFRU-ISM05,
24KTS TYPE STPO-MENGE,
END OF I_SUMM.
DATA : BEGIN OF GRP1 OCCURS 0,
GRP1 TYPE ZCTA_PP_WRK_GRP-GRP1,
END OF GRP1.
DATA : BEGIN OF GRP2 OCCURS 0,
GRP2 TYPE ZCTA_PP_WRK_GRP-GRP2,
END OF GRP2.
DATA : BEGIN OF GRP3 OCCURS 0,
GRP3 TYPE ZCTA_PP_WRK_GRP-GRP3,
END OF GRP3.
DATA: I_MAST LIKE MAST OCCURS 0 WITH HEADER LINE.
*DATA: J_MAST LIKE MAST OCCURS 0 WITH HEADER LINE.
DATA: A_STPO LIKE STPO OCCURS 0 WITH HEADER LINE.
*DATA: B_STPO LIKE STPO OCCURS 0 WITH HEADER LINE.
c_stpo like stpo occurs 0 with header line.
DATA: I_MSEG LIKE MSEG OCCURS 0 WITH HEADER LINE.
DATA: FLINE(300),FVAL(20),FNAME(20).
DATA: BEGIN OF POST_DATA OCCURS 0,
AUFNR TYPE AUFK-AUFNR,
ARBID TYPE AFRU-ARBID,
BUDAT TYPE AFRU-BUDAT,
END OF POST_DATA.
FIELD-SYMBOLS : <TABLE> TYPE TABLE , " Main Internal Table
<STRUC> , " Header Struct for <table>
<FIELD> ,
<COMPONENT> .
----
5 : Data Declaration *
----
DATA : ALV_FIELDCAT TYPE SLIS_T_FIELDCAT_ALV ,
LT_ALV_CAT TYPE TABLE OF LVC_S_FCAT ,
IT_FIELDCAT LIKE LINE OF LT_ALV_CAT .
DATA : I_TABLE TYPE REF TO DATA ,
I_STRUCT TYPE REF TO DATA .
DATA : TABIX LIKE SY-TABIX,
LINE_SIZE TYPE I VALUE 225 .
----
Unassign field
----
DEFINE UNASSIGN_FIELD .
IF &1 IS ASSIGNED .
UNASSIGN &1 .
ENDIF .
END-OF-DEFINITION .
Assign Component of .....
DEFINE ASSIGN_COMPONENT .
ASSIGN &1 TO <COMPONENT> .
ASSIGN COMPONENT <COMPONENT> OF STRUCTURE <STRUC>
TO <FIELD> .
END-OF-DEFINITION .
----
6 : At Selection Screen *
----
7 : Start of Selection *
----
START-OF-SELECTION .
PERFORM GET_DATA .
PERFORM GET_PUR_GOLD.
PERFORM GET_WRKCNT.
PERFORM INITIALIZE_FIELDCAT .
PERFORM CREATE_DYNAMIC .
PERFORM FILL_ITABLE .
PERFORM INIT_DISPLAY_FCAT TABLES GT_FIELDCAT[].
CHECK NOT <TABLE> IS INITIAL .
PERFORM EVENTTAB_BUILD USING GT_EVENTS[] .
PERFORM BUILD_COMMENT USING GT_LIST_TOP_OF_PAGE[].
PERFORM DISPLAY_LIST TABLES <TABLE> .
***********************************GROUP1
AT SELECTION-SCREEN ON VALUE-REQUEST FOR S_GRP1-LOW.
SELECT DISTINCT GRP1 FROM ZCTA_PP_WRK_GRP INTO CORRESPONDING FIELDS OF TABLE GRP1.
SORT GRP1.
DELETE ADJACENT DUPLICATES FROM GRP.
CALL FUNCTION 'F4IF_INT_TABLE_VALUE_REQUEST'
EXPORTING
RETFIELD = 'GRP1'
DYNPPROG = SY-REPID
DYNPNR = SY-DYNNR
DYNPROFIELD = 'S_GRP1-LOW'
VALUE_ORG = 'S'
TABLES
VALUE_TAB = GRP1.
AT SELECTION-SCREEN ON VALUE-REQUEST FOR S_GRP1-HIGH.
SELECT DISTINCT GRP1 FROM ZCTA_PP_WRK_GRP INTO CORRESPONDING FIELDS OF TABLE GRP1.
SORT GRP1.
DELETE ADJACENT DUPLICATES FROM GRP.
CALL FUNCTION 'F4IF_INT_TABLE_VALUE_REQUEST'
EXPORTING
RETFIELD = 'GRP1'
DYNPPROG = SY-REPID
DYNPNR = SY-DYNNR
DYNPROFIELD = 'S_GRP1-HIGH'
VALUE_ORG = 'S'
TABLES
VALUE_TAB = GRP1.
***********************************GROUP2
AT SELECTION-SCREEN ON VALUE-REQUEST FOR S_GRP2-LOW.
SELECT DISTINCT GRP2 FROM ZCTA_PP_WRK_GRP INTO CORRESPONDING FIELDS OF TABLE GRP2.
SORT GRP2.
DELETE ADJACENT DUPLICATES FROM GRP.
CALL FUNCTION 'F4IF_INT_TABLE_VALUE_REQUEST'
EXPORTING
RETFIELD = 'GRP2'
DYNPPROG = SY-REPID
DYNPNR = SY-DYNNR
DYNPROFIELD = 'S_GRP2-LOW'
VALUE_ORG = 'S'
TABLES
VALUE_TAB = GRP2.
AT SELECTION-SCREEN ON VALUE-REQUEST FOR S_GRP2-HIGH.
SELECT DISTINCT GRP2 FROM ZCTA_PP_WRK_GRP INTO CORRESPONDING FIELDS OF TABLE GRP2.
SORT GRP2.
DELETE ADJACENT DUPLICATES FROM GRP.
CALL FUNCTION 'F4IF_INT_TABLE_VALUE_REQUEST'
EXPORTING
RETFIELD = 'GRP2'
DYNPPROG = SY-REPID
DYNPNR = SY-DYNNR
DYNPROFIELD = 'S_GRP2-HIGH'
VALUE_ORG = 'S'
TABLES
VALUE_TAB = GRP2.
***********************************GROUP3
AT SELECTION-SCREEN ON VALUE-REQUEST FOR S_GRP3-LOW.
SELECT DISTINCT GRP3 FROM ZCTA_PP_WRK_GRP INTO CORRESPONDING FIELDS OF TABLE GRP3.
SORT GRP3.
DELETE ADJACENT DUPLICATES FROM GRP.
CALL FUNCTION 'F4IF_INT_TABLE_VALUE_REQUEST'
EXPORTING
RETFIELD = 'GRP3'
DYNPPROG = SY-REPID
DYNPNR = SY-DYNNR
DYNPROFIELD = 'S_GRP3-LOW'
VALUE_ORG = 'S'
TABLES
VALUE_TAB = GRP3.
AT SELECTION-SCREEN ON VALUE-REQUEST FOR S_GRP3-HIGH.
SELECT DISTINCT GRP3 FROM ZCTA_PP_WRK_GRP INTO CORRESPONDING FIELDS OF TABLE GRP3.
SORT GRP3.
DELETE ADJACENT DUPLICATES FROM GRP.
CALL FUNCTION 'F4IF_INT_TABLE_VALUE_REQUEST'
EXPORTING
RETFIELD = 'GRP3'
DYNPPROG = SY-REPID
DYNPNR = SY-DYNNR
DYNPROFIELD = 'S_GRP3-HIGH'
VALUE_ORG = 'S'
TABLES
VALUE_TAB = GRP3.
----
: End of Selection *
----
: Top of Page *
----
**TOP-OF-PAGE .
PERFORM TOP_OF_PAGE.
**
----
: At Line Selection *
----
************************************************************************
*
F o r m R o u t i n e s S t a r t s H e r e *
*
************************************************************************
&----
*& Form GET_DATA
&----
FORM GET_DATA .
IF SY-TCODE = 'ZWIPGR' AND R_GRP3 = 'X'.
MESSAGE 'No Authorization for Group 3 access.' TYPE 'E'.
ENDIF.
SELECT * FROM AFKO
INTO CORRESPONDING FIELDS OF TABLE I_AUFNR
WHERE AUFNR IN S_AUFNR.
I_AUFNR2[] = I_AUFNR[].
DELETE I_AUFNR2 WHERE LEAD_AUFNR = ''.
IF I_AUFNR2[] IS NOT INITIAL.
SELECT * FROM AFKO
INTO CORRESPONDING FIELDS OF TABLE I_AUFNR1
FOR ALL ENTRIES IN I_AUFNR2
WHERE LEAD_AUFNR EQ I_AUFNR2-LEAD_AUFNR.
LOOP AT I_AUFNR1.
MOVE-CORRESPONDING I_AUFNR1 TO I_AUFNR.
APPEND I_AUFNR.
ENDLOOP.
ENDIF.
SORT I_AUFNR BY AUFNR.
DELETE ADJACENT DUPLICATES FROM I_AUFNR COMPARING AUFNR.
SELECT A~AUFNR A~AUART A~KDAUF A~KDPOS
A~BUKRS A~WERKS A~OBJNR
B~GLTRP B~STLBEZ B~STLTY B~STLNR
B~FTRMI B~APRIO B~LEAD_AUFNR B~IGMNG
C~VORNR C~LTXA1
C~ARBID C~ISM02 C~ISM03 C~ISM04
C~ISM05 C~XMNGA C~RMNGA
D~MAKTX
G~PRI_TXT
H~GRP1 H~GRP2 H~GRP3
I~ZTEST1 I~ZTEST2 I~MATKL I~KOSCH I~LABOR
J~STKTX
FROM AUFK AS A
INNER JOIN AFKO AS B
ON B~AUFNR EQ A~AUFNR
INNER JOIN AFRU AS C
ON C~AUFNR EQ A~AUFNR
LEFT JOIN MAKT AS D
ON D~MATNR EQ B~STLBEZ AND SPRAS EQ 'EN'
INNER JOIN CRHD AS E
ON E~OBJID EQ C~ARBID
LEFT JOIN ZCTA_PP_PRIORITY AS G
ON G~APRIO EQ B~APRIO
INNER JOIN ZCTA_PP_WRK_GRP AS H
ON H~ARBPL EQ E~ARBPL
AND H~WERKS EQ A~WERKS
INNER JOIN MARA AS I
ON I~MATNR EQ D~MATNR
INNER JOIN STKO AS J
ON J~STLTY EQ B~STLTY
AND J~STLNR EQ B~STLNR
INTO CORRESPONDING FIELDS OF TABLE I_DATA
FOR ALL ENTRIES IN I_AUFNR
WHERE A~LOEKZ EQ ''
AND A~AUFNR EQ I_AUFNR-AUFNR "S_AUFNR
AND A~AUART IN S_AUART
AND A~WERKS IN S_WERKS
AND B~STLBEZ IN S_MATNR
AND B~FTRMI IN S_FTRMI
AND C~STOKZ EQ ''
AND C~STZHL EQ ''
AND E~ARBPL IN S_ARBPL
AND H~GRP1 IN S_GRP1
AND H~GRP2 IN S_GRP2
AND H~GRP3 IN S_GRP3.
IF I_DATA[] IS INITIAL.
MESSAGE 'Data is not available for given Production No.' TYPE 'E'.
ENDIF.
IF S_KUNNR IS NOT INITIAL.
DELETE I_DATA WHERE KUNNR NOT IN S_KUNNR.
ENDIF.
IF S_VBELN IS NOT INITIAL.
DELETE I_DATA WHERE KDAUF NOT IN S_VBELN.
ENDIF.
SELECT * FROM ZCTA_PP_WRK_GRP
INTO TABLE I_GRP.
SELECT * FROM ZAUTO_CONFIRM
INTO TABLE I_CONF
FOR ALL ENTRIES IN I_DATA
WHERE AUFNR EQ I_DATA-AUFNR
AND VORNR EQ I_DATA-VORNR
AND PDONE EQ ''
AND REJCT NE 'X'.
AND NXOPR NE ZAUTO_CONFIRM~VORNR..
LOOP AT I_DATA.
IF I_DATA-KDAUF IS NOT INITIAL.
SELECT SINGLE KUNNR VKORG VTWEG EXDLDT FROM VBAK
INTO (I_DATA-KUNNR,I_DATA-VKORG,I_DATA-VTWEG,I_DATA-EXDLDT)
WHERE VBELN = I_DATA-KDAUF
AND VBELN IN S_VBELN.
SELECT SINGLE MVGR3 MVGR4 ZPRDCAT
FROM MVKE
INTO (I_DATA-MVGR3,I_DATA-MVGR4,I_DATA-ZPRDCAT)
WHERE MATNR = I_DATA-STLBEZ
AND VKORG = I_DATA-VKORG
AND VTWEG = I_DATA-VTWEG.
SELECT SINGLE ABSTKD_E ABSTDK_E B~VTEXT
FROM VBKD AS A
LEFT JOIN T176T AS B
ON BBSARK EQ ABSARK
INTO (I_DATA-BSTKD,I_DATA-BSTDK,I_DATA-PRI_TXT)
WHERE VBELN = I_DATA-KDAUF
AND POSNR = I_DATA-KDPOS.
IF I_DATA-BSTKD IS INITIAL.
SELECT SINGLE ABSTKD_E ABSTDK_E B~VTEXT
FROM VBKD AS A
LEFT JOIN T176T AS B
ON BBSARK EQ ABSARK
INTO (I_DATA-BSTKD,I_DATA-BSTDK,I_DATA-PRI_TXT)
WHERE VBELN = I_DATA-KDAUF.
ENDIF.
MODIFY I_DATA TRANSPORTING KUNNR VKORG VTWEG MVGR3 MVGR4 BSTKD EXDLDT BSTDK ZPRDCAT PRI_TXT.
ENDIF.
ENDLOOP.
IF S_KUNNR IS NOT INITIAL.
DELETE I_DATA WHERE KUNNR NOT IN S_KUNNR.
ENDIF.
SORT I_DATA BY AUFNR VORNR.
LOOP AT I_DATA.
MOVE-CORRESPONDING I_DATA TO I_OUT.
SELECT ISM03 ISM05 FROM ZAUTO_CONFIRM
INTO (TSWGT,TSPCS)
WHERE AUFNR EQ I_OUT-AUFNR
AND VORNR EQ I_OUT-VORNR
AND PDONE EQ ''
AND SRFLG EQ ''
AND LTXA1 EQ I_OUT-LTXA1.
AND ERSDA IN S_BUDAT.
I_OUT-TSWGT = I_OUT-TSWGT + TSWGT.
I_OUT-TSPCS = I_OUT-TSPCS + TSPCS.
ENDSELECT.
CLEAR: I_OUT-LTXA1.
COLLECT I_OUT.
CLEAR: I_OUT,TSWGT,TSPCS.
ENDLOOP.
Change by Denish Patel for ZOUT next Opr.
LOOP AT I_CONF.
LOOP AT I_OUT WHERE AUFNR = I_CONF-AUFNR
AND VORNR = I_CONF-NXOPR.
I_OUT-ISM04 = I_OUT-ISM04 + I_CONF-ISM05.
MODIFY I_OUT.
ENDLOOP.
LOOP AT I_OUT WHERE AUFNR = I_CONF-AUFNR
AND VORNR = I_CONF-VORNR.
I_OUT-ISM05 = I_OUT-ISM05 + I_CONF-ISM05.
MODIFY I_OUT.
ENDLOOP.
ENDLOOP.
LOOP AT I_CONF.
READ TABLE I_OUT WITH KEY AUFNR = I_CONF-AUFNR
VORNR = I_CONF-NXOPR.
IF SY-SUBRC = 0.
DELETE I_CONF.
ELSE.
I_OUT-VORNR = I_CONF-NXOPR.
I_OUT-ARBPL = I_CONF-NXWCT.
I_OUT-ISM04 = I_CONF-ISM05.
APPEND I_OUT.
ENDIF.
ENDLOOP.
*******************End Of Change
SELECT * FROM LIPS
INTO CORRESPONDING FIELDS OF GT_LIPS
FOR ALL ENTRIES IN I_OUT
WHERE VBELV EQ I_OUT-KDAUF
AND POSNV EQ I_OUT-KDPOS.
COLLECT GT_LIPS.
ENDSELECT.
SELECT * FROM JEST INTO TABLE L_IST_JEST
FOR ALL ENTRIES IN I_OUT
WHERE OBJNR EQ I_OUT-OBJNR
AND INACT EQ ''
AND STAT IN ('I0001' , 'I0002', 'I0043', 'I0045'). .
SELECT DAUFNR ABEZEI
FROM AFKO AS D
INNER JOIN STPO AS C
ON CSTLNR EQ DSTLNR
AND C~STLTY EQ 'M'
INNER JOIN MARA AS B
ON BMATNR EQ CIDNRK
INNER JOIN TVEGRT AS A
ON AMAGRV EQ BMAGRV
AND A~SPRAS EQ 'EN'
INTO CORRESPONDING FIELDS OF TABLE I_GRADE
FOR ALL ENTRIES IN I_OUT
WHERE AUFNR EQ I_OUT-AUFNR.
SORT I_GRADE BY AUFNR BEZEI.
DELETE ADJACENT DUPLICATES FROM I_GRADE.
LOOP AT I_OUT.
SELECT C~STYPE
FROM AFKO AS A
INNER JOIN STPO AS B
ON BSTLNR EQ ASTLNR
AND B~STLTY EQ 'M'
LEFT JOIN ZCTA_PP_SETTYP AS C
ON CSCODE EQ BSCODE
INTO CORRESPONDING FIELDS OF TABLE ITAB_SET
WHERE AUFNR EQ I_OUT-AUFNR.
I_OUT-WSHS = ''.
IF ITAB_SET[] IS NOT INITIAL.
SORT ITAB_SET DESCENDING.
DELETE ITAB_SET WHERE STYPE = ''.
DELETE ADJACENT DUPLICATES FROM ITAB_SET.
LOOP AT ITAB_SET.
IF STRLEN( I_OUT-WSHS ) > 0.
CONCATENATE I_OUT-WSHS '/' INTO I_OUT-WSHS SEPARATED BY ' '.
ENDIF.
IF ITAB_SET-STYPE = 'MS' OR ITAB_SET-STYPE = 'PT'.
CONCATENATE I_OUT-WSHS 'HS' INTO I_OUT-WSHS SEPARATED BY ' '.
ELSEIF ITAB_SET-STYPE = 'WS'.
CONCATENATE I_OUT-WSHS 'WS' INTO I_OUT-WSHS SEPARATED BY ' '.
ENDIF.
ENDLOOP.
ENDIF.
MYTAB = SY-TABIX.
READ TABLE L_IST_JEST WITH KEY STAT = 'I0002' OBJNR = I_OUT-OBJNR .
IF SY-SUBRC = 0.
I_OUT-CRT_TXT = 'RELEASED'.
ELSE.
READ TABLE L_IST_JEST WITH KEY STAT = 'I0001' OBJNR = I_OUT-OBJNR.
IF SY-SUBRC = 0.
I_OUT-CRT_TXT = 'CREATED'.
ELSE.
I_OUT-CRT_TXT = ''.
ENDIF.
ENDIF.
READ TABLE L_IST_JEST WITH KEY STAT = 'I0045' OBJNR = I_OUT-OBJNR.
IF SY-SUBRC = 0.
I_OUT-LCK_TXT = 'TECO'.
ELSE.
READ TABLE L_IST_JEST WITH KEY STAT = 'I0043' OBJNR = I_OUT-OBJNR.
IF SY-SUBRC = 0.
I_OUT-LCK_TXT = 'LOCKED'.
ELSE.
I_OUT-LCK_TXT = ''.
ENDIF.
ENDIF.
I_OUT-WIPWT = I_OUT-ISM02 - I_OUT-ISM03.
I_OUT-WIPPC = I_OUT-ISM04 - I_OUT-ISM05.
***Delete if wip is 0
IF PCS EQ 'X'.
IF I_OUT-WIPPC IS INITIAL.
DELETE I_OUT.
CONTINUE.
ENDIF.
ELSEIF WGT EQ 'X'.
IF I_OUT-WIPPC IS INITIAL AND I_OUT-WIPWT IS INITIAL.
DELETE I_OUT.
CONTINUE.
ENDIF.
ENDIF.
SELECT SINGLE NAME1 FROM KNA1 INTO I_OUT-NAME1
WHERE KUNNR EQ I_OUT-KUNNR.
SELECT SINGLE GAMNG INTO I_OUT-GAMNG FROM AFKO
WHERE AUFNR EQ I_OUT-AUFNR.
SELECT SINGLE KWMENG NETPR FROM VBAP INTO (I_OUT-KWMENG, I_OUT-NETPR)
WHERE VBELN EQ I_OUT-KDAUF
AND POSNR EQ I_OUT-KDPOS.
I_OUT-IGMNG = I_OUT-KWMENG - I_OUT-IGMNG.
SELECT SINGLE PSMNG FROM AFPO INTO I_OUT-PSMNG
WHERE AUFNR EQ I_OUT-AUFNR.
SELECT SINGLE kttyp FROM t024x INTO i_out-kttyp
WHERE labor EQ i_out-labor AND spras EQ 'EN'.
****Get latest Diamond GR Date
SELECT MAX( BUDAT ) FROM MKPF AS A
INNER JOIN MSEG AS B
ON BMBLNR EQ AMBLNR
AND BMJAHR EQ AMJAHR
INTO I_OUT-BUDAT
WHERE BWART EQ '561'
AND SOBKZ EQ 'E'
AND MAT_KDAUF EQ I_OUT-KDAUF
AND MAT_KDPOS EQ I_OUT-KDPOS.
Get Loss posted for given production order.
SELECT * FROM MSEG AS A
INNER JOIN MKPF AS B ON BMBLNR EQ AMBLNR AND BMJAHR EQ AMJAHR
INNER JOIN ZSTORAGE_LOC AS C
ON CDS_SLOC EQ ALGORT
INTO CORRESPONDING FIELDS OF I_MSEG
WHERE AUFNR EQ I_OUT-AUFNR
AND C~ARBPL EQ I_OUT-ARBPL
AND B~BUDAT IN S_BUDAT
AND ( ABWART EQ '837' OR ABWART EQ '838' ).
**
**
IF I_MSEG-BWART EQ '837'.
I_MSEG-MENGE = I_MSEG-MENGE * -1.
ENDIF.
**
I_OUT-LPOST = I_OUT-LPOST + I_MSEG-MENGE.
**
ENDSELECT.
I_OUT-WIPWT = I_OUT-WIPWT + I_OUT-LPOST.
I_OUT-GRADE = ''.
LOOP AT I_GRADE WHERE AUFNR EQ I_OUT-AUFNR.
IF I_OUT-GRADE IS INITIAL.
CONCATENATE I_OUT-GRADE I_GRADE-BEZEI INTO I_OUT-GRADE.
ELSE.
CONCATENATE I_OUT-GRADE I_GRADE-BEZEI INTO I_OUT-GRADE SEPARATED BY '/'.
ENDIF.
ENDLOOP.
SELECT SUM( XMNGA ) FROM AFRU INTO I_OUT-REJPC WHERE AUFNR EQ I_OUT-AUFNR.
MODIFY I_OUT." INDEX SY-TABIX.
CLEAR: I_OUT,MSEG.
ENDLOOP.
I_CONF1[] = I_CONF[].
CLEAR : I_CONF[], I_CONF.
LOOP AT I_CONF1.
MOVE-CORRESPONDING I_CONF1 TO I_CONF.
CLEAR : I_CONF-DOCNO, I_CONF-DOCIT, I_CONF-BATNO, I_CONF-SPLIT, I_CONF-LTXA1,I_CONF-CRTIM,I_CONF-ERNAM, I_CONF-LGPER,I_CONF-ERSDA,I_CONF-BUDAT,I_CONF-ISM01,I_CONF-LGWGT.
COLLECT I_CONF.
ENDLOOP.
LOOP AT I_CONF.
READ TABLE I_OUT WITH KEY AUFNR = I_CONF-AUFNR
VORNR = I_CONF-NXOPR.
IF SY-SUBRC = 0.
DELETE I_CONF.
ELSE.
READ TABLE I_OUT WITH KEY AUFNR = I_CONF-AUFNR.
IF SY-SUBRC = 0 .
I_OUT-VORNR = I_CONF-NXOPR.
I_OUT-ARBPL = I_CONF-NXWCT.
I_OUT-ISM04 = I_CONF-ISM05.
READ TABLE I_GRP WITH KEY ARBPL = I_CONF-NXWCT.
I_OUT-GRP1 = I_GRP-GRP1.
I_OUT-GRP2 = I_GRP-GRP2.
I_OUT-GRP3 = I_GRP-GRP3.
I_OUT-WIPPC = 0. "I_OUT-WIPpc + I_CONF-ISM05.
APPEND I_OUT.
ENDIF.
ENDIF.
ENDLOOP.
SORT I_OUT BY VORNR.
LOOP AT I_OUT.
READ TABLE I_CONF WITH KEY AUFNR = I_OUT-AUFNR
NXOPR = I_OUT-VORNR.
IF SY-SUBRC = 0.
I_OUT-WIPPC = I_OUT-WIPPC + I_CONF-ISM05.
MODIFY I_OUT.
ENDIF.
IF I_OUT-WIPPC IS INITIAL.
DELETE I_OUT.
CONTINUE.
ENDIF.
ENDLOOP.
SORT I_OUT BY AUFNR.
DATA : CNT TYPE I,
QTTY TYPE I.
LOOP AT I_OUT.
MYTAB = SY-TABIX.
IF I_OUT-LEAD_AUFNR NE 0.
ON CHANGE OF I_OUT-LEAD_AUFNR.
CNT = 0.
ENDON.
CNT = CNT + 1.
SELECT SINGLE STLBEZ FROM AFKO
INTO I_OUT-HMATNR
WHERE AUFNR EQ I_OUT-LEAD_AUFNR.
IF CNT = 1.
READ TABLE GT_LIPS WITH KEY VBELV = I_OUT-KDAUF POSNV = I_OUT-KDPOS.
IF SY-SUBRC = 0.
I_OUT-ORDBAL = I_OUT-KWMENG - GT_LIPS-LFIMG.
ELSE.
I_OUT-ORDBAL = I_OUT-KWMENG.
ENDIF.
SELECT SINGLE PSMNG
FROM AFPO INTO I_OUT-ORDQTY
WHERE AUFNR EQ I_OUT-LEAD_AUFNR .
I_OUT-IGMNG = I_OUT-KWMENG - I_OUT-IGMNG.
ELSE.
I_OUT-KWMENG = 0.
I_OUT-NETPR = 0.
I_OUT-ORDQTY = ''.
I_OUT-IGMNG = 0.
ENDIF.
ELSE.
READ TABLE GT_LIPS WITH KEY VBELV = I_OUT-KDAUF POSNV = I_OUT-KDPOS.
IF SY-SUBRC = 0.
I_OUT-ORDBAL = I_OUT-KWMENG - GT_LIPS-LFIMG.
ELSE.
I_OUT-ORDBAL = I_OUT-KWMENG.
ENDIF.
I_OUT-ORDQTY = I_OUT-PSMNG.
I_OUT-IGMNG = I_OUT-KWMENG - I_OUT-IGMNG.
I_OUT-LEAD_AUFNR = I_OUT-AUFNR.
ENDIF.
MODIFY I_OUT INDEX MYTAB TRANSPORTING ORDQTY IGMNG ORDBAL HMATNR KWMENG NETPR LEAD_AUFNR.
ENDLOOP.
IF R_GRP1 = 'X'.
SORT I_OUT BY AUFNR GRP1.
ELSEIF R_GRP2 = 'X'.
SORT I_OUT BY AUFNR GRP2.
ELSEIF R_GRP3 = 'X'.
SORT I_OUT BY AUFNR GRP3.
ENDIF.
LOOP AT I_OUT.
MOVE-CORRESPONDING I_OUT TO I_OUT1.
IF R_GRP1 = 'X'.
CLEAR : I_OUT1-GRP2,I_OUT1-GRP3.
ELSEIF R_GRP2 = 'X'.
CLEAR : I_OUT1-GRP1,I_OUT1-GRP3.
ELSEIF R_GRP3 = 'X'.
CLEAR : I_OUT1-GRP2,I_OUT1-GRP1.
ENDIF.
CLEAR I_OUT1-VORNR.
COLLECT I_OUT1.
ENDLOOP.
CLEAR: I_OUT, I_OUT[].
LOOP AT I_OUT1.
MOVE-CORRESPONDING I_OUT1 TO I_OUT.
COLLECT I_OUT.
ENDLOOP.
DELETE I_OUT WHERE WIPPC EQ 0.
IF S_HMATNR IS NOT INITIAL.
DELETE I_OUT WHERE HMATNR NOT IN S_HMATNR.
ENDIF.
IF I_OUT[] IS INITIAL.
DATA : TEXT1(100).
CONCATENATE 'All Operation for' S_AUFNR-LOW 'is over.'
INTO TEXT1 SEPARATED BY ' '.
MESSAGE TEXT1 TYPE 'E'.
ENDIF.
ENDFORM. " GET_DATA
&----
*& Form GET_WRKCNT
&----
FORM GET_WRKCNT .
IF I_OUT[] IS NOT INITIAL.
LOOP AT I_OUT.
MOVE I_OUT-WERKS TO I_WRKCNT-WERKS.
IF R_GRP1 EQ 'X'.
MOVE I_OUT-GRP1 TO I_WRKCNT-ARBPL.
ELSEIF R_GRP2 EQ 'X'.
MOVE I_OUT-GRP2 TO I_WRKCNT-ARBPL.
ELSEIF R_GRP3 EQ 'X'.
MOVE I_OUT-GRP3 TO I_WRKCNT-ARBPL.
ENDIF.
MOVE I_OUT-VORNR TO I_WRKCNT-VORNR.
APPEND I_WRKCNT.
ENDLOOP.
SORT I_WRKCNT BY ARBPL.
DELETE ADJACENT DUPLICATES FROM I_WRKCNT COMPARING ARBPL.
SORT I_WRKCNT BY VORNR ARBPL.
DELETE ADJACENT DUPLICATES FROM I_WRKCNT COMPARING ARBPL WERKS.
DELETE I_WRKCNT WHERE ARBPL = ''.
ENDIF.
ENDFORM. " GET_WRKCNT
&----
*& Form INITIALIZE_FIELDCAT
&----
FORM INITIALIZE_FIELDCAT .
SORT I_SUBM BY WERKS .
TABIX = 1.
LOOP AT I_WRKCNT .
AT FIRST .
PERFORM AT_FIRST .
ENDAT .
To create dynamic table & structure
PERFORM GET_LT_FIELDCAT USING I_WRKCNT-ARBPL .
Alv Fieldcat .
PERFORM GET_ALV_FIELDCAT .
AT LAST .
PERFORM at_last .
ENDAT .
ENDLOOP .
ENDFORM. " INITIALIZE_FIELDCAT
&----
*& Form get_lt_fieldcat
&----
FORM GET_LT_FIELDCAT USING P_ARBPL.
IT_FIELDCAT-FIELDNAME = P_ARBPL .
IT_FIELDCAT-REF_FIELD = 'ISM02' .
IT_FIELDCAT-REF_TABLE = 'AFRU'.
IT_FIELDCAT-SELTEXT = P_ARBPL.
IT_FIELDCAT-NO_ZERO = 'X'.
IT_FIELDCAT-OUTPUTLEN = 20 .
APPEND IT_FIELDCAT TO LT_ALV_CAT .
CLEAR IT_FIELDCAT .
ENDFORM. " Get_lt_fieldcat
&----
*& Form get_alv_fieldcat
&----
FORM GET_ALV_FIELDCAT.
DATA: FIELDCAT TYPE SLIS_FIELDCAT_ALV,
TEXT2(100).
CLEAR TEXT2.
CONCATENATE I_WRKCNT-WERKS I_WRKCNT-ARBPL INTO TEXT2.
FIELDCAT-COL_POS = TABIX .
FIELDCAT-FIELDNAME = TEXT2. "I_WRKCNT-ARBPL .
FIELDCAT-TABNAME = '<TABLE>' .
FIELDCAT-REF_FIELDNAME = 'ARBPL' . "ISM02
FIELDCAT-REF_TABNAME = 'CRHD'. "AFRU
FIELDCAT-SELTEXT_M = I_WRKCNT-ARBPL.
FILEDCAT-NO_ZERO = 'X'.
APPEND FIELDCAT TO ALV_FIELDCAT.
CLEAR FIELDCAT.
TABIX = TABIX + 1 .
ENDFORM. " Get_alv_fieldcat
&----
*& Form create_dynamic
&----
FORM CREATE_DYNAMIC.
IF NOT LT_ALV_CAT[] IS INITIAL .
Create Dynamic structure -> i_struct
CALL METHOD ZCL_ALV_STRUCT_CREATE1=>CREATE_DYNAMMIC_STRU
EXPORTING
IT_FIELDCATALOG = LT_ALV_CAT
IMPORTING
EP_TABLE = I_STRUCT.
ASSIGN I_STRUCT->* TO <STRUC> . " Header Structure for <table>
Create Dynamic Table -> i_table
CALL METHOD CL_ALV_TABLE_CREATE=>CREATE_DYNAMIC_TABLE
EXPORTING
IT_FIELDCATALOG = LT_ALV_CAT
IMPORTING
EP_TABLE = I_TABLE.
ASSIGN I_TABLE->* TO <TABLE> .
ENDIF .
ENDFORM. "create_dynamic
&----
*& Form Display_list
&----
FORM DISPLAY_LIST TABLES P_TAB.
NEW-PAGE LINE-SIZE LINE_SIZE .
IF <TABLE> IS ASSIGNED .
*******
UNASSIGN_FIELD <STRUC> .
LOOP AT <TABLE> ASSIGNING <STRUC> .
*******
NEW-LINE .
ASSIGN_COMPONENT 'INDEX' .
IF <FIELD> NE 4 .
PERFORM ON_CHANGE_OF_MAT_GRP .
ELSEIF <FIELD> EQ 4 .
WRITE:/ SY-ULINE .
FORMAT COLOR COL_KEY INTENSIFIED ON .
ENDIF .
*******
LOOP AT LT_DISPLAY .
AT FIRST .
PERFORM AT_FIRST_LT_DISPLAY .
ENDAT .
ASSIGN_COMPONENT LT_DISPLAY-FIELDNAME .
WRITE: SY-VLINE , <FIELD> ."NO-GAP .
WRITE: SY-VLINE NO-GAP , <FIELD> ."NO-GAP .
ENDLOOP .
*******
PERFORM HIDE_DATA .
*******
WRITE: SY-VLINE ."NO-GAP .
SET LEFT SCROLL-BOUNDARY COLUMN 25 .
ENDLOOP .
*******
IF LINE_SIZE LE '225' .
WRITE:/ SY-ULINE(LINE_SIZE) .
ELSE .
WRITE:/ SY-ULINE .
ENDIF .
*******
ENDIF .
Zebra & Width Optimize
GS_LAYOUT-ZEBRA = 'X'.
GS_LAYOUT-COLWIDTH_OPTIMIZE = 'X'.
G_SAVE = 'A'.
GT_EVENTS-NAME = 'TOP_OF_PAGE'.
GT_EVENTS-FORM = 'TOP_OF_PAGE'.
APPEND GT_EVENTS.
CHECK NOT P_TAB[] IS INITIAL .
*-Modify by Vasudeo as on 17.04.2008 due to WIP Stock
*-Update in Z-Table ZCTA_PP_PRS_STK
*-Start Here
IF SY-TCODE = 'ZWIPSTK_UPD'.
IF SY-UZEIT >= '23:00:00'.
DATA ITAB TYPE ZCTA_PP_PRS_STK.
CLEAR ITAB.
IF NOT I_OUT[] IS INITIAL.
LOOP AT I_OUT WHERE WIPPC <> 0.
CLEAR ITAB.
ITAB-STKDATE = S_BUDAT-LOW.
ITAB-AUFNR = I_OUT-AUFNR.
ITAB-WERKS = I_OUT-WERKS.
ITAB-ARBPL = I_OUT-ARBPL.
ITAB-KDAUF = I_OUT-KDAUF.
ITAB-KDPOS = I_OUT-KDPOS.
ITAB-LMNGA = I_OUT-WIPPC.
INSERT ZCTA_PP_PRS_STK FROM ITAB.
ENDLOOP .
ENDIF.
ENDIF.
*-End 17.04.2008
IF SY-UZEIT EQ '11:30:00' OR SY-UZEIT EQ '11:35:00'
CALL TRANSACTION SM35
update ZCTA_PP_TRGLDREQ FROM P_TAB.
ELSE
CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'
EXPORTING
I_CALLBACK_PROGRAM = SY-REPID
IT_FIELDCAT = GT_FIELDCAT "LT_DISPLAY
I_SAVE = G_SAVE
IS_VARIANT = G_VARIANT
IS_LAYOUT = GS_LAYOUT
IT_EVENTS = GT_EVENTS[]
TABLES
T_OUTTAB = P_TAB.
ENDFORM. " Display_list
&----
*& Form Fill_itable
&----
FORM FILL_ITABLE.
IF NOT I_OUT[] IS INITIAL .
SORT I_OUT BY AUFNR VORNR.
LOOP AT I_OUT .
ON CHANGE OF I_OUT-AUFNR.
PERFORM GET_PO.
COLLECT <STRUC> INTO <TABLE> .
ENDON.
CLEAR <STRUC> .
ENDLOOP .
SORT <TABLE> .
ENDIF .
ENDFORM. " Fill_itable
&----
*& Form GET_PO
&----
FORM GET_PO .
DATA : AFR TYPE AFRU-AUFNR.
ASSIGN_COMPONENT 'AUFNR' .
IF SY-SUBRC EQ 0 .
<FIELD> = I_OUT-AUFNR .
AFR = <FIELD>.
UNASSIGN_FIELD : <COMPONENT> , <FIELD> .
ASSIGN_COMPONENT 'LEAD_AUFNR' .
IF SY-SUBRC EQ 0 .
<FIELD> = I_OUT-LEAD_AUFNR.
UNASSIGN_FIELD : <COMPONENT> , <FIELD> .
ENDIF.
ASSIGN_COMPONENT 'WERKS' .
IF SY-SUBRC EQ 0 .
<FIELD> = I_OUT-WERKS.
UNASSIGN_FIELD : <COMPONENT> , <FIELD> .
ENDIF.
ASSIGN_COMPONENT 'ORDQTY' .
IF SY-SUBRC EQ 0 .
<FIELD> = I_OUT-ORDQTY.
UNASSIGN_FIELD : <COMPONENT> , <FIELD> .
ENDIF.
ASSIGN_COMPONENT 'PSMNG' .
IF SY-SUBRC EQ 0 .
<FIELD> = I_OUT-PSMNG.
UNASSIGN_FIELD : <COMPONENT> , <FIELD> .
ENDIF.
ASSIGN_COMPONENT 'KUNNR' .
IF SY-SUBRC EQ 0 .
<FIELD> = I_OUT-KUNNR.
UNASSIGN_FIELD : <COMPONENT> , <FIELD> .
ENDIF.
ASSIGN_COMPONENT 'NAME1' .
IF SY-SUBRC EQ 0 .
<FIELD> = I_OUT-NAME1.
UNASSIGN_FIELD : <COMPONENT> , <FIELD> .
ENDIF.
ASSIGN_COMPONENT 'ZTEST1' .
IF SY-SUBRC EQ 0 .
<FIELD> = I_OUT-ZTEST1.
UNASSIGN_FIELD : <COMPONENT> , <FIELD> .
ENDIF.
ASSIGN_COMPONENT 'GRADE' .
IF SY-SUBRC EQ 0 .
<FIELD> = I_OUT-GRADE.
UNASSIGN_FIELD : <COMPONENT> , <FIELD> .
ENDIF.
ASSIGN_COMPONENT 'KDAUF' .
IF SY-SUBRC EQ 0 .
<FIELD> = I_OUT-KDAUF.
UNASSIGN_FIELD : <COMPONENT> , <FIELD> .
ENDIF.
ASSIGN_COMPONENT 'KOSCH' .
IF SY-SUBRC EQ 0 .
<FIELD> = I_OUT-KOSCH.
UNASSIGN_FIELD : <COMPONENT> , <FIELD> .
ENDIF.
ASSIGN_COMPONENT 'HMATNR' .
IF SY-SUBRC EQ 0 .
<FIELD> = I_OUT-HMATNR.
UNASSIGN_FIELD : <COMPONENT> , <FIELD> .
ENDIF.
ASSIGN_COMPONENT 'LABOR' .
IF SY-SUBRC EQ 0 .
<FIELD> = I_OUT-LABOR.
UNASSIGN_FIELD : <COMPONENT> , <FIELD> .
ENDIF.
ASSIGN_COMPONENT 'KWMENG' .
IF SY-SUBRC EQ 0 .
<FIELD> = I_OUT-KWMENG.
UNASSIGN_FIELD : <COMPONENT> , <FIELD> .
ENDIF.
ASSIGN_COMPONENT 'AUART' .
IF SY-SUBRC EQ 0 .
<FIELD> = I_OUT-AUART.
UNASSIGN_FIELD : <COMPONENT> , <FIELD> .
ENDIF.
ASSIGN_COMPONENT 'FTRMI' .
IF SY-SUBRC EQ 0 .
<FIELD> = I_OUT-FTRMI.
UNASSIGN_FIELD : <COMPONENT> , <FIELD> .
ENDIF.
ASSIGN_COMPONENT 'STLBEZ' .
IF SY-SUBRC EQ 0 .
<FIELD> = I_OUT-STLBEZ.
UNASSIGN_FIELD : <COMPONENT> , <FIELD> .
ENDIF.
ASSIGN_COMPONENT 'MAKTX' .
IF SY-SUBRC EQ 0 .
<FIELD> = I_OUT-MAKTX.
UNASSIGN_FIELD : <COMPONENT> , <FIELD> .
ENDIF.
ASSIGN_COMPONENT 'MATKL' .
IF SY-SUBRC EQ 0 .
<FIELD> = I_OUT-MATKL.
UNASSIGN_FIELD : <COMPONENT> , <FIELD> .
ENDIF.
ASSIGN_COMPONENT 'EXDLDT' .
IF SY-SUBRC EQ 0 .
<FIELD> = I_OUT-EXDLDT.
UNASSIGN_FIELD : <COMPONENT> , <FIELD> .
ENDIF.
ASSIGN_COMPONENT 'NETPR' .
IF SY-SUBRC EQ 0 .
<FIELD> = I_OUT-NETPR.
UNASSIGN_FIELD : <COMPONENT> , <FIELD> .
ENDIF.
ASSIGN_COMPONENT 'ZPRDCAT' .
IF SY-SUBRC EQ 0 .
<FIELD> = I_OUT-ZPRDCAT.
UNASSIGN_FIELD : <COMPONENT> , <FIELD> .
ENDIF.
ASSIGN_COMPONENT 'ZTEST2' .
IF SY-SUBRC EQ 0 .
<FIELD> = I_OUT-ZTEST2.
UNASSIGN_FIELD : <COMPONENT> , <FIELD> .
ENDIF.
ASSIGN_COMPONENT 'GLTRP' .
IF SY-SUBRC EQ 0 .
<FIELD> = I_OUT-GLTRP.
UNASSIGN_FIELD : <COMPONENT> , <FIELD> .
ENDIF.
ASSIGN_COMPONENT 'IGMNG' .
IF SY-SUBRC EQ 0 .
<FIELD> = I_OUT-IGMNG.
UNASSIGN_FIELD : <COMPONENT> , <FIELD> .
ENDIF.
ASSIGN_COMPONENT 'ORDBAL' .
IF SY-SUBRC EQ 0 .
<FIELD> = I_OUT-ORDBAL.
UNASSIGN_FIELD : <COMPONENT> , <FIELD> .
ENDIF.
ASSIGN_COMPONENT 'BUDAT' .
IF SY-SUBRC EQ 0 .
<FIELD> = I_OUT-BUDAT.
UNASSIGN_FIELD : <COMPONENT> , <FIELD> .
ENDIF.
ASSIGN_COMPONENT 'PRI_TXT' .
IF SY-SUBRC EQ 0 .
<FIELD> = I_OUT-PRI_TXT.
UNASSIGN_FIELD : <COMPONENT> , <FIELD> .
ENDIF.
ASSIGN_COMPONENT 'WSHS' .
IF SY-SUBRC EQ 0 .
<FIELD> = I_OUT-WSHS.
UNASSIGN_FIELD : <COMPONENT> , <FIELD> .
ENDIF.
ASSIGN_COMPONENT 'LCK_TXT' .
IF SY-SUBRC EQ 0 .
<FIELD> = I_OUT-LCK_TXT.
UNASSIGN_FIELD : <COMPONENT> , <FIELD> .
ENDIF.
ASSIGN_COMPONENT 'BSTKD' .
IF SY-SUBRC EQ 0 .
<FIELD> = I_OUT-BSTKD.
UNASSIGN_FIELD : <COMPONENT> , <FIELD> .
ENDIF.
ASSIGN_COMPONENT 'BSTDK' .
IF SY-SUBRC EQ 0 .
<FIELD> = I_OUT-BSTDK.
UNASSIGN_FIELD : <COMPONENT> , <FIELD> .
ENDIF.
ASSIGN_COMPONENT 'REJPC' .
IF SY-SUBRC EQ 0 .
<FIELD> = I_OUT-REJPC.
UNASSIGN_FIELD : <COMPONENT> , <FIELD> .
ENDIF.
ASSIGN_COMPONENT 'WSQTY' .
IF SY-SUBRC EQ 0 .
SELECT SUM( NOPCS )
FROM STPO AS A
INNER JOIN ZCTA_PP_SETTYP AS B
ON BSCODE EQ ASCODE
INTO <FIELD>
WHERE A~SCODE NOT IN ('AGINP','AGINR','GLINP','GLINR','PDINP','PDINR','PGINR','PTINP','PTINR','WXINR')
AND B~STYPE EQ 'WS'
AND A~STLTY = 'M'
AND A~STLNR = I_OUT-STLNR.
UNASSIGN_FIELD : <COMPONENT> , <FIELD> .
ENDIF.
ASSIGN_COMPONENT 'HSQTY' .
IF SY-SUBRC EQ 0 .
SELECT SUM( NOPCS )
FROM STPO AS A
INNER JOIN ZCTA_PP_SETTYP AS B
ON BSCODE EQ ASCODE
INTO <FIELD>
WHERE A~SCODE NOT IN ('AGINP','AGINR','GLINP','GLINR','PDINP','PDINR','PGINR','PTINP','PTINR','WXINR')
AND B~STYPE IN ('MS','PT')
AND A~STLTY = 'M'
AND A~STLNR = I_OUT-STLNR.
UNASSIGN_FIELD : <COMPONENT> , <FIELD> .
ENDIF.
ASSIGN_COMPONENT 'INVQTY' .
IF SY-SUBRC EQ 0 .
SELECT SUM( NOPCS )
FROM STPO AS A
INNER JOIN ZCTA_PP_SETTYP AS B
ON BSCODE EQ ASCODE
INTO <FIELD>
WHERE A~SCODE IN ('AGINP','AGINR','GLINP','GLINR','PDINP','PDINR','PGINR','PTINP','PTINR','WXINR')
AND A~STLTY = 'M'
AND A~STLNR = I_OUT-STLNR.
UNASSIGN_FIELD : <COMPONENT> , <FIELD> .
ENDIF.
DAYS = 0.
ASSIGN_COMPONENT 'DUE_FG' .
IF SY-SUBRC EQ 0 .
DAYS = SY-DATUM - I_OUT-FTRMS.
IF DAYS >= 0 AND DAYS <= 6.
<FIELD> = 'B'.
ELSEIF DAYS >= 7 AND DAYS <= 14.
<FIELD> = 'C'.
ELSEIF DAYS >= 15 AND DAYS <= 20.
<FIELD> = 'D'.
ELSEIF DAYS >= 21 AND DAYS <= 27.
<FIELD> = 'E'.
ELSEIF DAYS >= 28 AND DAYS <= 34.
<FIELD> = 'F'.
ELSEIF DAYS >= 35.
<FIELD> = 'A'.
ENDIF.
UNASSIGN_FIELD : <COMPONENT> , <FIELD> .
ENDIF.
LOOP AT I_WRKCNT.
IF R_GRP1 EQ 'X'.
READ TABLE I_OUT WITH KEY AUFNR = AFR GRP1 = I_WRKCNT-ARBPL.
ELSEIF R_GRP2 EQ 'X'.
READ TABLE I_OUT WITH KEY AUFNR = AFR GRP2 = I_WRKCNT-ARBPL.
ELSEIF R_GRP3 EQ 'X'.
READ TABLE I_OUT WITH KEY AUFNR = AFR GRP3 = I_WRKCNT-ARBPL.
ENDIF.
READ TABLE I_OUT WITH KEY AUFNR = AFR ARBPL = I_WRKCNT-ARBPL.
IF SY-SUBRC = 0.
ASSIGN_COMPONENT I_WRKCNT-ARBPL.
IF SY-SUBRC EQ 0 .
<FIELD> = I_OUT-WIPPC .
UNASSIGN_FIELD : <COMPONENT> , <FIELD> .
ENDIF .
ENDIF.
ENDLOOP.
ENDIF.
ENDFORM. " GET_PO
&----
*& Form AT_FIRST
&----
FORM AT_FIRST .
IF SY-UNAME = 'SD_USER'.
PERFORM FILL_LT_ALV_CAT USING 'WERKS' 'WERKS' 'T001W'
'Plant' '20'.
PERFORM FILL_LT_ALV_CAT USING 'STLBEZ' 'STLBEZ' 'AFKO'
'Material No.' '20'.
PERFORM FILL_LT_ALV_CAT USING 'MAKTX' 'MAKTX' 'MAKT'
'Description' '20'.
PERFORM FILL_LT_ALV_CAT USING 'ZTEST1' 'ZTEST1' 'MARA'
'Ring Size' '20'.
PERFORM FILL_LT_ALV_CAT USING 'LABOR' 'LABOR' 'MARA'
'Karat' '20'.
PERFORM FILL_LT_ALV_CAT USING 'KOSCH' 'KOSCH' 'MARA'
'Colour' '20'.
PERFORM FILL_LT_ALV_CAT USING 'GRADE' 'NAME1' 'KNA1'
'Grade' '20'.
PERFORM FILL_LT_ALV_CAT USING 'BSTKD' 'BSTKD_E' 'VBKD'
'Customer PO' '20'.
PERFORM FILL_LT_ALV_CAT USING 'LEAD_AUFNR' 'LEAD_AUFNR' 'AFKO'
'Header Order' '20'.
PERFORM FILL_LT_ALV_CAT USING 'HMATNR' 'STLBEZ' 'AFKO'
'Header Material' '20'.
PERFORM FILL_LT_ALV_CAT USING 'PSMNG' 'PSMNG' 'AFPO'
'Prod. Ord Qty.' '20'.
PERFORM FILL_LT_ALV_CAT USING 'ORDQTY' 'PSMNG' 'AFPO'
'Actual Ord Qty.' '20'.
PERFORM FILL_LT_ALV_CAT USING 'KUNNR' 'KUNNR' 'KNA1'
'Customer Code' '20'.
PERFORM FILL_LT_ALV_CAT USING 'GLTRP' 'GLTRP' 'AFKO'
'Finish Date' '20'.
PERFORM FILL_LT_ALV_CAT USING 'FTRMI' 'FTRMI' 'AFKO'
'Ord Release Dt.' '20'.
PERFORM FILL_LT_ALV_CAT USING 'BUDAT' 'BUDAT' 'MKPF'
'Diamond GR Dt' '20'.
PERFORM FILL_LT_ALV_CAT USING 'KDAUF' 'KDAUF' 'AUFK'
'Sales Order' '20'.
PERFORM FILL_LT_ALV_CAT USING 'AUFNR' 'AUFNR' 'AUFK'
'Production Order' '20'.
PERFORM FILL_LT_ALV_CAT USING 'KWMENG' 'KWMENG' 'VBAP'
'Sales Qty' '20'.
PERFORM FILL_LT_ALV_CAT USING 'BSTDK' 'BSTDK_E' 'VBKD'
'Cust. PO Dt.' '20'.
PERFORM FILL_LT_ALV_CAT USING 'AUART' 'AUART' 'AUFK'
'Prod Ord Type' '20'.
PERFORM FILL_LT_ALV_CAT USING 'IGMNG' 'IGMNG' 'AFKO'
'GR Balance' '20'.
PERFORM FILL_LT_ALV_CAT USING 'ORDBAL' 'LFIMG' 'LIPS'
'Ord Bal' '20'.
PERFORM FILL_LT_ALV_CAT USING 'PRI_TXT' 'PRI_TXT' 'ZCTA_PP_PRIORITY'
'Priority' '40'.
PERFORM FILL_LT_ALV_CAT USING 'WSHS' 'TXT30' 'TJ02T'
'WSHS' '20'.
PERFORM FILL_LT_ALV_CAT USING 'LCK_TXT' 'TXT30' 'TJ02T'
'LCK/TECO' '20'.
PERFORM FILL_LT_ALV_CAT USING 'MATKL' 'MATKL' 'MARA'
'Material Group' '20'.
IF R_GRP3 = 'X'.
PERFORM FILL_LT_ALV_CAT USING 'EXDLDT' 'EXDLDT' 'VBAK'
'Cust. Due Dt..' '20'.
PERFORM FILL_LT_ALV_CAT USING 'NETPR' 'NETPR' 'VBAP'
'Net Price' '20'.
ENDIF.
PERFORM FILL_LT_ALV_CAT USING 'ZPRDCAT' 'ZPRDCAT' 'MVKE'
'Prod. Cat.' '20'.
PERFORM FILL_LT_ALV_CAT USING 'ZTEST2' 'ZTEST2' 'MARA'
'Model No' '20'.
PERFORM FILL_LT_ALV_CAT USING 'WSQTY' 'NOPCS' 'STPO'
'WsQty' '20'.
PERFORM FILL_LT_ALV_CAT USING 'MSQTY' 'NOPCS' 'STPO'
'HsQty' '20'.
PERFORM FILL_LT_ALV_CAT USING 'INVQTY' 'NOPCS' 'STPO'
'InvQty' '20'.
PERFORM FILL_LT_ALV_CAT USING 'DUE_FG' 'NETAU' 'STPO'
'Due Flag' '10'.
PERFORM FILL_LT_ALV_CAT USING 'REJPC' 'PSMNG' 'AFPO'
'Rejecation Pcs' '10'.
PERFORM FILL_ALV_FIELDCAT USING 'ISM02' '<TABLE>' 'ISM02' 'AFRU'
'' '' '' '' '20'.
ELSE.
PERFORM FILL_LT_ALV_CAT USING 'WERKS' 'WERKS' 'T001W'
'Plant' '20'.
PERFORM FILL_LT_ALV_CAT USING 'AUFNR' 'AUFNR' 'AUFK'
'Production Order' '20'.
PERFORM FILL_LT_ALV_CAT USING 'LEAD_AUFNR' 'LEAD_AUFNR' 'AFKO'
'Header Order' '20'.
PERFORM FILL_LT_ALV_CAT USING 'HMATNR' 'STLBEZ' 'AFKO'
'Header Material' '20'.
PERFORM FILL_LT_ALV_CAT USING 'PSMNG' 'PSMNG' 'AFPO'
'Prod. Ord Qty.' '20'.
PERFORM FILL_LT_ALV_CAT USING 'ORDQTY' 'PSMNG' 'AFPO'
'Actual Ord Qty.' '20'.
PERFORM FILL_LT_ALV_CAT USING 'KUNNR' 'KUNNR' 'KNA1'
'Customer Code' '20'.
PERFORM FILL_LT_ALV_CAT USING 'GLTRP' 'GLTRP' 'AFKO'
'Finish Date' '20'.
PERFORM FILL_LT_ALV_CAT USING 'BUDAT' 'BUDAT' 'MKPF'
'Diamond GR Dt' '20'.
PERFORM FILL_LT_ALV_CAT USING 'GRADE' 'NAME1' 'KNA1'
'Grade' '20'.
PERFORM FILL_LT_ALV_CAT USING 'ZTEST1' 'ZTEST1' 'MARA'
'Ring Size' '20'.
PERFORM FILL_LT_ALV_CAT USING 'KDAUF' 'KDAUF' 'AUFK'
'Sales Order' '20'.
PERFORM FILL_LT_ALV_CAT USING 'KWMENG' 'KWMENG' 'VBAP'
'Sales Qty' '20'.
PERFORM FILL_LT_ALV_CAT USING 'BSTKD' 'BSTKD_E' 'VBKD'
'Customer PO' '20'.
PERFORM FILL_LT_ALV_CAT USING 'BSTDK' 'BSTDK_E' 'VBKD'
'Cust. PO Dt.' '20'.
PERFORM FILL_LT_ALV_CAT USING 'AUART' 'AUART' 'AUFK'
'Prod Ord Type' '20'.
PERFORM FILL_LT_ALV_CAT USING 'IGMNG' 'IGMNG' 'AFKO'
'GR Balance' '20'.
PERFORM FILL_LT_ALV_CAT USING 'ORDBAL' 'LFIMG' 'LIPS'
'Ord Bal' '20'.
PERFORM FILL_LT_ALV_CAT USING 'FTRMI' 'FTRMI' 'AFKO'
'Ord Release Dt.' '20'.
PERFORM FILL_LT_ALV_CAT USING 'STLBEZ' 'STLBEZ' 'AFKO'
'Material No.' '20'.
PERFORM FILL_LT_ALV_CAT USING 'MAKTX' 'MAKTX' 'MAKT'
'Description' '20'.
PERFORM FILL_LT_ALV_CAT USING 'PRI_TXT' 'PRI_TXT' 'ZCTA_PP_PRIORITY'
'Priority' '40'.
PERFORM FILL_LT_ALV_CAT USING 'WSHS' 'TXT30' 'TJ02T'
'WSHS' '20'.
PERFORM FILL_LT_ALV_CAT USING 'LCK_TXT' 'TXT30' 'TJ02T'
'LCK/TECO' '20'.
PERFORM FILL_LT_ALV_CAT USING 'MATKL' 'MATKL' 'MARA'
'Material Group' '20'.
PERFORM FILL_LT_ALV_CAT USING 'KOSCH' 'KOSCH' 'MARA'
'Colour' '20'.
PERFORM FILL_LT_ALV_CAT USING 'LABOR' 'LABOR' 'MARA'
'Karat' '20'.
IF R_GRP3 = 'X'.
PERFORM FILL_LT_ALV_CAT USING 'EXDLDT' 'EXDLDT' 'VBAK'
'Cust. Due Dt..' '20'.
PERFORM FILL_LT_ALV_CAT USING 'NETPR' 'NETPR' 'VBAP'
'Net Price' '20'.
ENDIF.
PERFORM FILL_LT_ALV_CAT USING 'ZPRDCAT' 'ZPRDCAT' 'MVKE'
'Prod. Cat.' '20'.
PERFORM FILL_LT_ALV_CAT USING 'ZTEST2' 'ZTEST2' 'MARA'
'Model No' '20'.
PERFORM FILL_LT_ALV_CAT USING 'WSQTY' 'NOPCS' 'STPO'
'WsQty' '20'.
PERFORM FILL_LT_ALV_CAT USING 'HSQTY' 'NOPCS' 'STPO'
'HsQty' '20'.
PERFORM FILL_LT_ALV_CAT USING 'INVQTY' 'NOPCS' 'STPO'
'InvQty' '20'.
PERFORM FILL_LT_ALV_CAT USING 'DUE_FG' 'NETAU' 'STPO'
'Due Flag' '10'.
PERFORM FILL_LT_ALV_CAT USING 'REJPC' 'PSMNG' 'AFPO'
'Rejecation Pcs' '10'.
PERFORM FILL_ALV_FIELDCAT USING 'ISM02' '<TABLE>' 'ISM02' 'AFRU'
'' '' '' '' '20'.
ENDIF.
ENDFORM. " AT_FIRST
&----
*& Form fill_lt_alv_cat
&----
FORM FILL_LT_ALV_CAT USING P_FIELDNAME LIKE IT_FIELDCAT-FIELDNAME
P_REF_FIELD LIKE IT_FIELDCAT-REF_FIELD
P_REF_TABLE LIKE IT_FIELDCAT-REF_TABLE
P_SELTEXT LIKE IT_FIELDCAT-SELTEXT
P_OUTPUTLEN LIKE IT_FIELDCAT-OUTPUTLEN.
IT_FIELDCAT-FIELDNAME = P_FIELDNAME .
IT_FIELDCAT-REF_FIELD = P_REF_FIELD .
IT_FIELDCAT-REF_TABLE = P_REF_TABLE .
IT_FIELDCAT-SELTEXT = P_SELTEXT .
IT_FIELDCAT-OUTPUTLEN = P_OUTPUTLEN .
APPEND IT_FIELDCAT TO LT_ALV_CAT .
CLEAR IT_FIELDCAT .
ENDFORM. " Fill_lt_alv_cat
&----
*& Form init_display_fcat
&----
FORM INIT_DISPLAY_FCAT TABLES GT_FIELDCAT1
TYPE SLIS_T_FIELDCAT_ALV.
DATA : TEXT(100).
LOOP AT LT_ALV_CAT INTO IT_FIELDCAT.
CLEAR: TEXT.
TEXT = IT_FIELDCAT-FIELDNAME.
TRANSLATE TEXT TO UPPER CASE.
IF SY-TABIX LE 1.
GT_FIELDCAT1-KEY = 1.
GT_FIELDCAT1-FIX_COLUMN = 'X'.
ENDIF.
GT_FIELDCAT1-DDICTXT = 'M'.
GT_FIELDCAT1-FIELDNAME = TEXT.
GT_FIELDCAT1-TABNAME = '<TABLE>' .
GT_FIELDCAT1-REF_FIELDNAME = IT_FIELDCAT-REF_FIELD.
GT_FIELDCAT1-REF_TABNAME = IT_FIELDCAT-REF_TABLE.
GT_FIELDCAT1-SELTEXT_L = IT_FIELDCAT-SELTEXT.
GT_FIELDCAT1-REPTEXT_DDIC = TEXT.
GT_FIELDCAT1-SELTEXT_M = IT_FIELDCAT-SELTEXT.
GT_FIELDCAT1-SELTEXT_S = IT_FIELDCAT-SELTEXT.
GT_FIELDCAT1-NO_ZERO = 'X'.
IF SY-TABIX >= 10.
GT_FIELDCAT1-DO_SUM = 'X'.
ENDIF.
APPEND GT_FIELDCAT1 .
CLEAR GT_FIELDCAT1.
ENDLOOP.
ENDFORM. " Init_display_fcat
&----
*& Form fill_alv_fieldcat
&----
FORM FILL_ALV_FIELDCAT USING P_FIELDNAME
P_TABNAME
P_REF_FIELD
P_REF_TABNAME
P_NO_OUT
P_STEXT
P_MTEXT
P_LTEXT
P_OUTLEN .
DATA FIELDCAT TYPE SLIS_FIELDCAT_ALV.
FIELDCAT-COL_POS = TABIX .
FIELDCAT-FIELDNAME = P_FIELDNAME .
FIELDCAT-TABNAME = P_TABNAME .
FIELDCAT-REF_FIELDNAME = P_REF_FIELD .
FIELDCAT-REF_TABNAME = P_REF_TABNAME .
FIELDCAT-NO_OUT = P_NO_OUT .
FIELDCAT-OUTPUTLEN = P_OUTLEN .
FIELDCAT-SELTEXT_M = P_MTEXT .
FIELDCAT-SELTEXT_L = P_LTEXT .
FIELDCAT-SELTEXT_S = P_STEXT .
FIELDCAT-DO_SUM = 'X' .
APPEND FIELDCAT TO ALV_FIELDCAT.
CLEAR FIELDCAT.
TABIX = TABIX + 1 .
ENDFORM. " Fill_alv_fieldcat
&----
*& Form build_comment
&----
text
----
-->P_HEADING text
----
FORM BUILD_COMMENT USING P_HEADING TYPE SLIS_T_LISTHEADER.
DATA: HLINE TYPE SLIS_LISTHEADER,
TEXT(100) TYPE C,
SEP(20) TYPE C.
CLEAR: HLINE, TEXT.
GX_VARIANT-TEXT = 'What is Where...'.
HLINE-TYP = 'H'.
HLINE-INFO = GX_VARIANT-TEXT.
APPEND HLINE TO P_HEADING.
CLEAR TEXT.
WRITE: 'Date:' TO TEXT,
SY-DATUM TO TEXT9 , 'Time:' TO TEXT22,SY-UZEIT TO TEXT+27.
HLINE-TYP = 'S'.
HLINE-INFO = TEXT.
APPEND HLINE TO P_HEADING.
CLEAR TEXT.
write : 'Time:' to text ,.
*
*hline-info = text.
APPEND hline TO p_heading.
CLEAR text.
IF NOT S_AEDAT[] IS INITIAL.
READ TABLE S_AEDAT INDEX 1.
WRITE: 'Period ' TO TEXT.
IF NOT S_AEDAT-LOW IS INITIAL.
WRITE S_AEDAT-LOW TO TEXT+9.
WRITE 'To' TO TEXT+20.
ELSE.
WRITE ' UpTo ' TO TEXT+9 .
ENDIF.
IF NOT S_AEDAT-HIGH IS INITIAL.
WRITE S_AEDAT-HIGH TO TEXT+23 .
ELSE.
WRITE S_AEDAT-LOW TO TEXT+23.
ENDIF.
HLINE-INFO = TEXT.
APPEND HLINE TO P_HEADING.
CLEAR TEXT.
ENDIF.
**
ENDFORM. " build_comment
&----
*& Form eventtab_build
&----
text
----
-->LT_EVENTS text
----
FORM EVENTTAB_BUILD USING LT_EVENTS TYPE SLIS_T_EVENT.
CONSTANTS:
GC_FORMNAME_TOP_OF_PAGE TYPE SLIS_FORMNAME VALUE 'TOP_OF_PAGE'.
DATA: LS_EVENT TYPE SLIS_ALV_EVENT.
CALL FUNCTION 'REUSE_ALV_EVENTS_GET'
EXPORTING
I_LIST_TYPE = 0
IMPORTING
ET_EVENTS = LT_EVENTS.
READ TABLE LT_EVENTS WITH KEY NAME = SLIS_EV_TOP_OF_PAGE
INTO LS_EVENT.
IF SY-SUBRC = 0.
MOVE GC_FORMNAME_TOP_OF_PAGE TO LS_EVENT-FORM.
APPEND LS_EVENT TO LT_EVENTS.
ENDIF.
ENDFORM. "eventtab_build
&----
*& Form top_of_page
&----
text
----
FORM TOP_OF_PAGE.
CALL FUNCTION 'REUSE_ALV_COMMENTARY_WRITE'
EXPORTING
IT_LIST_COMMENTARY = GT_LIST_TOP_OF_PAGE.
ENDFORM. "top_of_page
‎2008 Aug 14 5:23 AM
U can create a dynamic structure for the same and then u can move that to the table i have sent the code for the same please check for that .
Regards
Shankar
‎2008 Aug 16 11:50 AM
U can create a dynamic structure for the same and then u can move that to the table i have sent the code for the same please check for that .
u can create your own dynamic structure class for that . Please find the same below
IF NOT LT_ALV_CAT[] IS INITIAL .
Create Dynamic structure -> i_struct
CALL METHOD ZCL_ALV_STRUCT_CREATE1=>CREATE_DYNAMMIC_STRU
EXPORTING
IT_FIELDCATALOG = LT_ALV_CAT
IMPORTING
EP_TABLE = I_STRUCT.
ASSIGN I_STRUCT->* TO <STRUC> . " Header Structure for <table>
Create Dynamic Table -> i_table
CALL METHOD CL_ALV_TABLE_CREATE=>CREATE_DYNAMIC_TABLE
EXPORTING
IT_FIELDCATALOG = LT_ALV_CAT
IMPORTING
EP_TABLE = I_TABLE.
ASSIGN I_TABLE->* TO <TABLE> .
ENDIF .
I am sure that your problem will be resolved .
Regards
Shankar
‎2008 Aug 14 5:29 AM
Hi Yogesh,
Please see the sample code for the Dynamic Internal table.
*&---------------------------------------------------------------------*
*& Report Z7CC_DYNAMIC_INTERNAL_TABLE
*&
*&---------------------------------------------------------------------*
*&
*&
*&---------------------------------------------------------------------*
REPORT Z7CC_DYNAMIC_INTERNAL_TABLE.
*Data definitions
*** Tables
DATA: LT_DATA type ref to DATA.
DATA: LT_FIELDCATALOG type LVC_T_FCAT.
*** Structure
DATA: LS_FIELDCATALOG type LVC_S_FCAT.
*** Data References
DATA: NEW_LINE type ref to data,
FS_DATA type ref to data.
*** Field Symbols
FIELD-SYMBOLS: <FS_DATA> type ref to DATA,
<FS_1> type any table,
<FS_2>,
<FS_3>.
*Populating the internal table with fieldnames required for our dynamic
*internal table
LS_FIELDCATALOG-FIELDNAME = 'MANDT'.
append LS_FIELDCATALOG to LT_FIELDCATALOG.
LS_FIELDCATALOG-FIELDNAME = 'CARRID'. "Fieldname
LS_FIELDCATALOG-INTTYPE = 'C'. "Internal Type C-> Character
append LS_FIELDCATALOG to LT_FIELDCATALOG.
LS_FIELDCATALOG-FIELDNAME = 'CONNID'.
LS_FIELDCATALOG-INTTYPE = 'N'.
append LS_FIELDCATALOG to LT_FIELDCATALOG.
LS_FIELDCATALOG-FIELDNAME = 'FLDATE'.
LS_FIELDCATALOG-INTTYPE = 'D'.
append LS_FIELDCATALOG to LT_FIELDCATALOG.
LS_FIELDCATALOG-FIELDNAME = 'PRICE'.
LS_FIELDCATALOG-INTTYPE = 'P'.
append LS_FIELDCATALOG to LT_FIELDCATALOG.
LS_FIELDCATALOG-FIELDNAME = 'CURRENCY'.
LS_FIELDCATALOG-INTTYPE = 'C'.
append LS_FIELDCATALOG to LT_FIELDCATALOG.
*Calling the method CREATE_DYNAMIC_TABLE
call method cl_alv_table_create=>create_dynamic_table
exporting
it_fieldcatalog = LT_FIELDCATALOG
importing
ep_table = FS_DATA
exceptions
generate_subpool_dir_full = 1
others = 2
.
if sy-subrc <> 0.
endif.
*Assigning Field-Symbol to our dynamic internal table
assign LT_DATA to <FS_DATA>.
*Internal Table is ready, now to put data in that table
*** So <FS_1> now points to our dynamic internal table.
assign FS_DATA->* to <FS_1>.
*** Next step is to create a work area for our dynamic internal table.
create data NEW_LINE like line of <FS_1>.
*** A field-symbol to access that work area
assign NEW_LINE->* to <FS_2>.
*** And to put the data in the internal table
select
MANDT
CARRID
CONNID
FLDATE
PRICE
CURRENCY
from SFLIGHT
into corresponding fields of table <FS_1>.
*** Access contents of internal table
loop at <FS_1> assigning <FS_2>.
do 5 times.
assign component sy-index of structure <FS_2> to <FS_3>.
write: <FS_3>.
enddo.
skip 1.
endloop.
‎2008 Aug 14 6:29 AM
Dear Friends,
I have create dynamic table, its working
and i created dynamic work area too like
DATA : WA_REF TYPE REF TO DATA.
CREATE DATA WA_REF LIKE LINE OF <IT_TABLE>.
ASSIGN WA_REF->* TO <WA_TABLE>.
so i wanna pass values to the Itab true work area.
i mean normal work area and itab
wa-data = 'ABC'.
append wa to itab.
like that
please help me to work with dynamic table
how can i pass values to dynamic itab.
Thanks in Advance
‎2008 Aug 14 6:33 AM
‎2008 Dec 17 11:31 PM