‎2008 Jun 02 12:28 PM
Hi All,
I have a Material No. with 10 line items...
when i m executing, it pick only 10th line item but i want that it show all the 10 line items against it..
plz. tell me....
‎2008 Jun 02 12:30 PM
Check if UR using a loop..endloop to display or just reading
the line items ..
‎2008 Jun 02 12:34 PM
Hi All,
Plz check my code....
**************************
TABLES : MARC, "Plant Data for Material
MAPL, "Assignment of Task Lists to Materials
PLPO, "Task list - operation/activity
CRHD, "Work Center Header
CRCA, "Work Center Capacity Allocation
TC24, "Person responsible for the work center
MAKT. "Material Descriptions
TYPE-POOLS : SLIS.
DATA : BEGIN OF ITAB OCCURS 0,
MATNR TYPE MARC-MATNR, "Material Number
WERKS TYPE MARC-WERKS, "Plant
MAKTX TYPE MAKT-MAKTX, "Material Description
PLNNR TYPE MAPL-PLNNR, "Key for Task List Group
PLNAL TYPE MAPL-PLNAL, "Group Counter
VORNR TYPE PLPO-VORNR, "Operation/Activity Number
LTXA1 TYPE PLPO-LTXA1, "Operation short text
STEUS TYPE PLPO-STEUS, "Control key
ARBID TYPE PLPO-ARBID, "Object ID
LAR02 TYPE PLPO-LAR02, "Activity Type
VGE02 TYPE PLPO-VGE02, "Unit of measure for the standard value
VGW02 TYPE PLPO-VGW02, "Standard value
ARBPL TYPE CRHD-ARBPL, "Work Center
VERAN TYPE CRHD-VERAN, "Person responsible for the work center
KTEXT TYPE TC24-KTEXT, "Text, 40 Characters Long
KAPID TYPE CRHD-KAPID, "Capacity ID
ZAEHL TYPE MAPL-ZAEHL,
END OF ITAB.
************************************************************************
DATA : W_CONTAINER TYPE SCRFNAME VALUE 'CL_GRID',
W_CPROG TYPE LVC_S_LAYO,
G_REPID LIKE SY-REPID,
W_SAVE TYPE C,
W_EXIT TYPE C,
CL_GRID TYPE REF TO CL_GUI_ALV_GRID,
CL_CUSTOM_CONTAINER TYPE REF TO CL_GUI_CUSTOM_CONTAINER,
IT_FLD_CATALOG TYPE SLIS_T_FIELDCAT_ALV,
WA_FLD_CATALOG TYPE SLIS_T_FIELDCAT_ALV WITH HEADER LINE ,
LAYOUT TYPE SLIS_LAYOUT_ALV,
COL_POS LIKE SY-CUCOL ,
ALVFC TYPE SLIS_T_FIELDCAT_ALV.
************************************************************************
SELECTION-SCREEN : BEGIN OF BLOCK B1 WITH FRAME TITLE TEXT-001.
SELECT-OPTIONS : MATNR FOR MARC-MATNR,
WERKS FOR MARC-WERKS NO INTERVALS NO-EXTENSION.
SELECTION-SCREEN : END OF BLOCK B1.
************************************************************************
PERFORM FILL_CATALOG1 USING:
'MATNR' 'ITAB' 'Material No.' ,
'WERKS' 'ITAB' 'Plant',
'MAKTX' 'ITAB' 'Mat Desc',
'PLNNR' 'ITAB' 'Group',
'LTXA1' 'ITAB' 'Operation Desc' ,
'STEUS' 'ITAB' 'Control Key',
'ARBID' 'ITAB' 'Object ID' ,
'LAR02' 'ITAB' 'Activity Type',
'VGE02' 'ITAB' 'Unit',
'VGW02' 'ITAB' 'Std Value',
'ARBPL' 'ITAB' 'Work Center',
'VERAN' 'ITAB' 'Person Responsible',
'KTEXT' 'ITAB' 'Description'.
************************************************************************
SELECT MATNR WERKS INTO CORRESPONDING FIELDS OF TABLE ITAB FROM MARC WHERE MATNR IN MATNR
AND WERKS IN WERKS
AND BESKZ EQ 'E'
AND LVORM NE 'X'
AND SOBSL NE 50
AND DISMM EQ 'PD'.
IF SY-SUBRC <> 0.
MESSAGE 'DATA NOT FOUND.' TYPE 'I'.
ENDIF.
************************************************************************
LOOP AT ITAB.
SELECT MAKTX INTO ITAB-MAKTX FROM MAKT WHERE MATNR = ITAB-MATNR.
MODIFY ITAB INDEX SY-TABIX TRANSPORTING MAKTX.
ENDSELECT.
SELECT PLNNR INTO (ITAB-PLNNR) FROM MAPL WHERE MATNR = ITAB-MATNR AND PLNTY = 'N'.
MODIFY ITAB INDEX SY-TABIX TRANSPORTING PLNNR.
SELECT VORNR STEUS LTXA1 LAR02 VGE02 VGW02 ARBID INTO (ITAB-VORNR, ITAB-STEUS, ITAB-LTXA1, ITAB-LAR02, ITAB-VGE02, ITAB-VGW02,
ITAB-ARBID) FROM PLPO
FOR ALL ENTRIES IN ITAB
WHERE PLNNR = ITAB-PLNNR .
MODIFY ITAB INDEX SY-TABIX TRANSPORTING VORNR STEUS LTXA1 LAR02 VGE02 VGW02 ARBID.
SELECT ARBPL VERAN KAPID INTO (ITAB-ARBPL , ITAB-VERAN , ITAB-KAPID) FROM CRHD WHERE OBJID = ITAB-ARBID.
MODIFY ITAB INDEX SY-TABIX TRANSPORTING ARBPL VERAN KAPID.
SELECT KTEXT INTO (ITAB-KTEXT) FROM TC24 WHERE VERAN = ITAB-VERAN.
MODIFY ITAB INDEX SY-TABIX TRANSPORTING ARBPL VERAN KTEXT.
ENDSELECT.
ENDSELECT.
ENDSELECT.
ENDSELECT.
ENDLOOP.
**************************************************************************
LAYOUT-ZEBRA = 'X' .
LAYOUT-COLWIDTH_OPTIMIZE(1) = 'X'.
CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'
EXPORTING
I_CALLBACK_PROGRAM = 'ZPP_WRK'
IS_LAYOUT = LAYOUT
IT_FIELDCAT = IT_FLD_CATALOG
I_DEFAULT = 'X'
I_SAVE = 'A'
TABLES
T_OUTTAB = ITAB
EXCEPTIONS
PROGRAM_ERROR = 1
OTHERS = 2.
IF SY-SUBRC <> 0.
MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
ENDIF.
&----
*& Form FILL_CATALOG1
&----
text
----
-->P_FIELDNAME text
-->P_REF_TABLE text
-->P_SCRTEXT text
----
FORM FILL_CATALOG1 USING P_FIELDNAME TYPE ANY
P_REF_TABLE TYPE ANY
P_SCRTEXT TYPE ANY.
CLEAR : WA_FLD_CATALOG.
WA_FLD_CATALOG-FIELDNAME = P_FIELDNAME.
WA_FLD_CATALOG-TABNAME = P_REF_TABLE.
WA_FLD_CATALOG-SELTEXT_S = P_SCRTEXT.
WA_FLD_CATALOG-SELTEXT_M = P_SCRTEXT.
WA_FLD_CATALOG-SELTEXT_L = P_SCRTEXT.
WA_FLD_CATALOG-OUTPUTLEN = 15.
APPEND WA_FLD_CATALOG TO IT_FLD_CATALOG.
ENDFORM. " fill_catalog1
*****************************
Now Plz. tell...
‎2008 Jun 02 12:38 PM
Dont know exactly what this code is doing...inside the loop there is FOR ALL ENTRIES of same table...
‎2008 Jun 02 12:39 PM
try to place a breakpoint before calling the ALV FM and check if the ITAB has Data. If not then go one level abaove and check where you have data in ITAB and where it is getting deleted.
This should be simple to resolve in debugging.
Cheers
VJ
‎2008 Jun 02 12:44 PM
Change the loop .. endloop as ...
LOOP AT ITAB.
SELECT MAKTX INTO ITAB-MAKTX FROM MAKT WHERE MATNR = ITAB-MATNR.
ENDSELECT.
SELECT PLNNR INTO (ITAB-PLNNR) FROM MAPL WHERE MATNR = ITAB-MATNR AND PLNTY = 'N'.
SELECT VORNR STEUS LTXA1 LAR02 VGE02 VGW02 ARBID INTO (ITAB-VORNR, ITAB-STEUS, ITAB-LTXA1, ITAB-LAR02, ITAB-VGE02, ITAB-VGW02,
ITAB-ARBID) FROM PLPO
FOR ALL ENTRIES IN ITAB
WHERE PLNNR = ITAB-PLNNR .
SELECT ARBPL VERAN KAPID INTO (ITAB-ARBPL , ITAB-VERAN , ITAB-KAPID) FROM CRHD WHERE OBJID = ITAB-ARBID.
SELECT KTEXT INTO (ITAB-KTEXT) FROM TC24 WHERE VERAN = ITAB-VERAN.
MODIFY ITAB INDEX SY-TABIX.
ENDSELECT.
ENDSELECT.
ENDSELECT.
ENDSELECT.
ENDLOOP.
‎2008 Jun 02 12:49 PM
‎2008 Jun 02 12:51 PM
Hey
Just check if SY-SUBRC Eq 0, you want to display the message "DATA NOT FOUND"????????
SELECT MATNR WERKS INTO CORRESPONDING FIELDS OF TABLE ITAB FROM MARC WHERE MATNR IN MATNR
AND WERKS IN WERKS
AND BESKZ EQ 'E'
AND LVORM NE 'X'
AND SOBSL NE 50
AND DISMM EQ 'PD'.
IF SY-SUBRC 0.
MESSAGE 'DATA NOT FOUND.' TYPE 'I'.
ENDIF
I hope it should be
IF SY-SUBRC NE 0
MESSAGE 'DATA NOT FOUND.' TYPE 'I'.
ENDIF.
Try changing and run the program
‎2008 Jun 02 12:51 PM
Hi,
Data is coming in the debugging time...but not append it..
Means data has in the header data and 1 body data, (only 1 body data, it's not appending)..
when we click on F5, it showing all the line item data, but not appending...
Thanks...
Edited by: Prince Kumar on Jun 2, 2008 5:22 PM
Edited by: Prince Kumar on Jun 2, 2008 5:56 PM
‎2008 Jun 02 12:36 PM
Hi,
What do you mean by material noumber with 10 line items? are you refering to material document number or a sales order with line items or a PO with line items?
A material number on its own cannot have items. Pls calrify.
If you are writing a code to pick up data ensure that there is a APPEND statement or a array fetch in you ABAP code to get the line items from where ever you are picking up.
Cheers
VJ
‎2008 Jun 02 12:45 PM
Hi,
It's a report to fetch the details of work center...
tables used:-
MARC
MAPL
PLPO
CRHD
CRCA
TC24
MAKT
Reply..
‎2008 Jun 03 4:13 AM