Application Development and Automation Discussions
Join the discussions or start your own on all things application development, including tools and APIs, programming models, and keeping your skills sharp.
cancel
Showing results for 
Search instead for 
Did you mean: 
Read only

issues with method cl_alv_table_create=>create_dynamic_table

Former Member
0 Likes
3,249

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>.

9 REPLIES 9
Read only

Former Member
0 Likes
1,925

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.

Read only

Former Member
0 Likes
1,925

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

Read only

former_member422460
Discoverer
0 Likes
1,925

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

Read only

former_member422460
Discoverer
0 Likes
1,925

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

Read only

0 Likes
1,925

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

Read only

Former Member
0 Likes
1,925

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.


Read only

Former Member
0 Likes
1,925

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

Read only

uwe_schieferstein
Active Contributor
0 Likes
1,925

Hello Yogesh

You may have a look at my answer in

Regards

Uwe

Read only

Former Member
0 Likes
1,925

answered