‎2006 May 30 9:30 AM
Hi all,
I am facing a strange problem in ALV. i have two internal tables one is for alv header and another is alv line items. i have a proper data in in both internal tables.
when i pass the data of these two internal tables to the function REUSE_ALV_HIERSEQ_LIST_DISPLAY i found in the output that line items date changes.
actually date is in format 04112005 but when i see the output its showing like this 05.20.0411 .
please help me to solve the problem.
Regards,
Lisa
‎2006 May 30 9:32 AM
Hii
use this func module
<b>CONVERT_DATE_TO_INTERN_FORMAT</b>
<b>CONVERSION_EXIT_PDATE_INPUT</b>
Thsi will give the dtae in YYYY.MM.DD format
check this program for reference
REPORT Z_50657_ALV_EX1
MESSAGE-ID ZZ .
************************************************************************
Type Pools *
************************************************************************
TYPE-POOLS: SLIS.
************************************************************************
Tables *
************************************************************************
TABLES: LFA1, "Vendor Master
LFB1, "Vendor Master (Company Code)
LFM1. "purchasing organization data
************************************************************************
Internal Tables *
************************************************************************
TABLE TO HOLD DATA FROM VENDOR MASTER
DATA: BEGIN OF IT_LFA1 OCCURS 0,
LIFNR LIKE LFA1-LIFNR, "Account Number of Vendor
KTOKK LIKE LFA1-KTOKK, "Vendor account group
NAME1 LIKE LFA1-NAME1, "Name
STRAS LIKE LFA1-STRAS, "House Number and Street
ORT01 LIKE LFA1-ORT01, "City
REGIO LIKE LFA1-REGIO, "Region
PFORT LIKE LFA1-PFORT, "PO Box City
PSTLZ LIKE LFA1-PSTLZ, "Postal Code
PSTL2 LIKE LFA1-PSTL2, "P.O. Box
TELF1 LIKE LFA1-TELF1, "First telephone number
END OF IT_LFA1.
TABLE TO HOLD DATA ABOUT COMPANY
DATA: BEGIN OF IT_LFB1 OCCURS 0,
LIFNR LIKE LFB1-LIFNR, "Account Number of Vendor
BUKRS LIKE LFB1-BUKRS, "COMP CODE
END OF IT_LFB1.
TABLE TO HOLD DATA ABOUT PURCHASING ORG
DATA: BEGIN OF IT_LFM1 OCCURS 0,
LIFNR LIKE LFM1-LIFNR, "Account Number of Vendor
EKORG LIKE LFM1-EKORG, "Purchasing Organization
END OF IT_LFM1.
TABLE TO HOLD DATA FOR FINAL DISPLAY
DATA: BEGIN OF IT_FINAL OCCURS 0,
LIFNR LIKE LFB1-LIFNR, "Account Number of Vendor
BUKRS LIKE LFB1-BUKRS, "COMP CODE
EKORG LIKE LFM1-EKORG, "Purchasing Organization
KTOKK LIKE LFA1-KTOKK, "Vendor account group
NAME1 LIKE LFA1-NAME1, "Name
STRAS LIKE LFA1-STRAS, "House Number and Street
ORT01 LIKE LFA1-ORT01, "City
REGIO LIKE LFA1-REGIO, "Region
PFORT LIKE LFA1-PFORT, "PO Box City
PSTLZ LIKE LFA1-PSTLZ, "Postal Code
PSTL2 LIKE LFA1-PSTL2, "P.O. Box
TELF1 LIKE LFA1-TELF1, "First telephone number
END OF IT_FINAL.
DATA: V_INDEX TYPE SY-TABIX.
************************************************************************
Work Areas *
************************************************************************
*WORK AREAS DEFINED FOR ALV'S
DATA: X_FIELDCAT TYPE SLIS_FIELDCAT_ALV,
IT_FIELDCAT TYPE SLIS_T_FIELDCAT_ALV,
L_LAYOUT TYPE SLIS_LAYOUT_ALV.
************************************************************************
Selection-Screen *
************************************************************************
SELECTION-SCREEN BEGIN OF BLOCK B1 WITH FRAME TITLE TEXT-001.
SELECT-OPTIONS: S_LIFNR FOR LFA1-LIFNR, "ACCOUNT NUMBER
S_BUKRS FOR LFB1-BUKRS, "COMPANY CODE
S_EKORG FOR LFM1-EKORG, "PURCHASING ORG
S_KTOKK FOR LFA1-KTOKK. "ACCOUNT GROUP
SELECTION-SCREEN END OF BLOCK B1.
SELECTION-SCREEN BEGIN OF BLOCK B2 WITH FRAME TITLE TEXT-002.
PARAMETERS: LIST RADIOBUTTON GROUP G1, "ALV LIST DISPLAY
GRID RADIOBUTTON GROUP G1. "ALV GRID DISPLAY
SELECTION-SCREEN END OF BLOCK B2.
************************************************************************
At Selection-Screen *
************************************************************************
AT SELECTION-SCREEN.
PERFORM VALIDATION.
************************************************************************
Start of Selection *
************************************************************************
START-OF-SELECTION.
*POPULATE DATA INTO ITAB_FINAL USING INNER JOINS OF IT_LFA1 IT_LFB1
*IT_LFM1
PERFORM GET_DATA.
*CHECK FOR RADIO BUTTON SELECTION AND ACCORDINGLY DISPLAY ALV GRID/LIST
PERFORM CHECK_SEL.
&----
*& Form VALIDATION
&----
text
----
FORM VALIDATION.
IF S_LIFNR IS NOT INITIAL.
SELECT SINGLE LIFNR FROM LFA1 INTO IT_LFA1 WHERE LIFNR IN S_LIFNR.
IF SY-SUBRC <> 0.
MESSAGE I000 WITH 'THIS IS NOT A VALID VENDOR NUMBER'.
STOP.
ELSE.
IF S_BUKRS IS NOT INITIAL.
SELECT SINGLE BUKRS FROM LFB1 INTO IT_LFB1-BUKRS WHERE BUKRS IN
S_BUKRS.
IF SY-SUBRC <> 0.
MESSAGE I000 WITH 'THIS IS NOT A VALID COMPANY CODE'.
STOP.
ENDIF.
ENDIF.
ENDIF.
ENDIF.
CLEAR IT_LFA1.
CLEAR IT_LFB1.
ENDFORM. "VALIDATION
&----
*& Form GET_DATA
&----
text
----
FORM GET_DATA.
SELECT LIFNR
KTOKK
NAME1
STRAS
ORT01
REGIO
PFORT
PSTLZ
PSTL2
TELF1
FROM LFA1
INTO TABLE IT_LFA1
WHERE LIFNR IN S_LIFNR AND KTOKK IN S_KTOKK.
SORT IT_LFA1 BY LIFNR.
IF NOT IT_LFA1[] IS INITIAL.
SELECT LIFNR
BUKRS
FROM LFB1
INTO TABLE IT_LFB1
FOR ALL ENTRIES IN IT_LFA1 WHERE LIFNR = IT_LFA1-LIFNR AND
BUKRS IN S_BUKRS.
SORT IT_LFB1 BY LIFNR BUKRS.
SELECT LIFNR
EKORG
FROM LFM1
INTO TABLE IT_LFM1
FOR ALL ENTRIES IN IT_LFA1 WHERE LIFNR = IT_LFA1-LIFNR.
SORT IT_LFM1 BY LIFNR.
ENDIF.
IT_FINAL[] = IT_LFB1[].
LOOP AT IT_FINAL.
V_INDEX = SY-TABIX.
READ TABLE IT_LFA1 WITH KEY LIFNR = IT_FINAL-LIFNR BINARY SEARCH.
IF SY-SUBRC = 0.
MOVE: IT_LFA1-KTOKK TO IT_FINAL-KTOKK,
IT_LFA1-NAME1 TO IT_FINAL-NAME1,
IT_LFA1-STRAS TO IT_FINAL-STRAS,
IT_LFA1-ORT01 TO IT_FINAL-ORT01,
IT_LFA1-REGIO TO IT_FINAL-REGIO,
IT_LFA1-PFORT TO IT_FINAL-PFORT,
IT_LFA1-PSTLZ TO IT_FINAL-PSTLZ,
IT_LFA1-PSTL2 TO IT_FINAL-PSTL2,
IT_LFA1-TELF1 TO IT_FINAL-TELF1.
ENDIF.
READ TABLE IT_LFM1 WITH KEY LIFNR = IT_FINAL-LIFNR BINARY SEARCH.
IF SY-SUBRC = 0.
MOVE IT_LFM1-EKORG TO IT_FINAL-EKORG.
ENDIF.
MODIFY IT_FINAL INDEX V_INDEX.
ENDLOOP.
LOOP AT IT_LFA1.
****
LOOP AT IT_FINAL WHERE LIFNR = IT_LFA1-LIFNR.
****
MOVE IT_LFA1-KTOKK TO IT_FINAL-KTOKK.
MODIFY IT_FINAL INDEX SY-TABIX.
****
MOVE IT_LFA1-NAME1 TO IT_FINAL-NAME1.
MODIFY IT_FINAL INDEX SY-TABIX.
****
MOVE IT_LFA1-STRAS TO IT_FINAL-STRAS.
MODIFY IT_FINAL INDEX SY-TABIX.
****
MOVE IT_LFA1-ORT01 TO IT_FINAL-ORT01.
MODIFY IT_FINAL INDEX SY-TABIX.
****
MOVE IT_LFA1-REGIO TO IT_FINAL-REGIO.
MODIFY IT_FINAL INDEX SY-TABIX.
****
MOVE IT_LFA1-PFORT TO IT_FINAL-PFORT.
MODIFY IT_FINAL INDEX SY-TABIX.
****
MOVE IT_LFA1-PSTLZ TO IT_FINAL-PSTLZ.
MODIFY IT_FINAL INDEX SY-TABIX.
****
MOVE IT_LFA1-PSTL2 TO IT_FINAL-PSTL2.
MODIFY IT_FINAL INDEX SY-TABIX.
****
MOVE IT_LFA1-TELF1 TO IT_FINAL-TELF1.
MODIFY IT_FINAL INDEX SY-TABIX.
****
ENDLOOP.
****
ENDLOOP.
LOOP AT IT_LFM1.
****
LOOP AT IT_FINAL WHERE LIFNR = IT_LFM1-LIFNR.
****
MOVE IT_LFM1-EKORG TO IT_FINAL-EKORG.
MODIFY IT_FINAL INDEX SY-TABIX.
****
ENDLOOP.
****
ENDLOOP.
****
SORT IT_FINAL BY LIFNR BUKRS EKORG.
ENDFORM. "GET_DATA
&----
*& Form CHECK_SEL
&----
text
----
FORM CHECK_SEL.
X_FIELDCAT-FIELDNAME = 'LIFNR'.
X_FIELDCAT-TABNAME = 'IT_FINAL'.
X_FIELDCAT-SELTEXT_L = 'VENDOR'.
X_FIELDCAT-NO_ZERO = 'X'.
X_FIELDCAT-OUTPUTLEN = 10.
X_FIELDCAT-COL_POS = 1.
APPEND X_FIELDCAT TO IT_FIELDCAT.
CLEAR X_FIELDCAT.
*
X_FIELDCAT-FIELDNAME = 'BUKRS'.
X_FIELDCAT-TABNAME = 'IT_FINAL'.
X_FIELDCAT-SELTEXT_L = 'COMPANY'.
X_FIELDCAT-NO_ZERO = 'X'.
X_FIELDCAT-OUTPUTLEN = 4.
X_FIELDCAT-COL_POS = 2.
APPEND X_FIELDCAT TO IT_FIELDCAT.
CLEAR X_FIELDCAT.
*
X_FIELDCAT-FIELDNAME = 'EKORG'.
X_FIELDCAT-TABNAME = 'IT_FINAL'.
X_FIELDCAT-SELTEXT_L = 'PURCHASING ORGANISATION'.
X_FIELDCAT-NO_ZERO = 'X'.
X_FIELDCAT-OUTPUTLEN = 4.
X_FIELDCAT-COL_POS = 3.
APPEND X_FIELDCAT TO IT_FIELDCAT.
CLEAR X_FIELDCAT.
*
X_FIELDCAT-FIELDNAME = 'KTOKK'.
X_FIELDCAT-TABNAME = 'IT_FINAL'.
X_FIELDCAT-SELTEXT_L = 'ACCOUNT GROUP'.
X_FIELDCAT-NO_ZERO = 'X'.
X_FIELDCAT-OUTPUTLEN = 4.
X_FIELDCAT-COL_POS = 4.
APPEND X_FIELDCAT TO IT_FIELDCAT.
CLEAR X_FIELDCAT.
*
X_FIELDCAT-FIELDNAME = 'NAME1'.
X_FIELDCAT-TABNAME = 'IT_FINAL'.
X_FIELDCAT-SELTEXT_L = 'VENDOR NAME'.
X_FIELDCAT-NO_ZERO = 'X'.
X_FIELDCAT-OUTPUTLEN = 35.
X_FIELDCAT-COL_POS = 5.
APPEND X_FIELDCAT TO IT_FIELDCAT.
CLEAR X_FIELDCAT.
*
X_FIELDCAT-FIELDNAME = 'STRAS'.
X_FIELDCAT-TABNAME = 'IT_FINAL'.
X_FIELDCAT-SELTEXT_L = 'STREET'.
X_FIELDCAT-NO_ZERO = 'X'.
X_FIELDCAT-OUTPUTLEN = 10.
X_FIELDCAT-COL_POS = 6.
APPEND X_FIELDCAT TO IT_FIELDCAT.
CLEAR X_FIELDCAT.
*
X_FIELDCAT-FIELDNAME = 'ORT01'.
X_FIELDCAT-TABNAME = 'IT_FINAL'.
X_FIELDCAT-SELTEXT_L = 'CITY NAME'.
X_FIELDCAT-NO_ZERO = 'X'.
X_FIELDCAT-OUTPUTLEN = 20.
X_FIELDCAT-COL_POS = 7.
APPEND X_FIELDCAT TO IT_FIELDCAT.
CLEAR X_FIELDCAT.
*
X_FIELDCAT-FIELDNAME = 'REGIO'.
X_FIELDCAT-TABNAME = 'IT_FINAL'.
X_FIELDCAT-SELTEXT_L = 'REGION NAME'.
X_FIELDCAT-NO_ZERO = 'X'.
X_FIELDCAT-OUTPUTLEN = 2.
X_FIELDCAT-COL_POS = 8.
APPEND X_FIELDCAT TO IT_FIELDCAT.
CLEAR X_FIELDCAT.
*
IF LIST = 'X'.
CALL FUNCTION 'REUSE_ALV_FIELDCATALOG_MERGE'
EXPORTING
I_PROGRAM_NAME = SY-REPID
I_INTERNAL_TABNAME = 'IT_FINAL'
I_INCLNAME = SY-REPID
CHANGING
CT_FIELDCAT = IT_FIELDCAT
EXCEPTIONS
INCONSISTENT_INTERFACE = 1
PROGRAM_ERROR = 2
OTHERS = 3.
IF SY-SUBRC <> 0.
MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
ENDIF.
L_LAYOUT-ZEBRA = 'X'.
CALL FUNCTION 'REUSE_ALV_LIST_DISPLAY'
EXPORTING
I_CALLBACK_PROGRAM = SY-REPID
IS_LAYOUT = L_LAYOUT
IT_FIELDCAT = IT_FIELDCAT
TABLES
T_OUTTAB = IT_FINAL
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.
ELSE.
CALL FUNCTION 'REUSE_ALV_FIELDCATALOG_MERGE'
EXPORTING
I_PROGRAM_NAME = SY-REPID
I_INTERNAL_TABNAME = 'IT_FINAL'
I_INCLNAME = SY-REPID
CHANGING
CT_FIELDCAT = IT_FIELDCAT
EXCEPTIONS
INCONSISTENT_INTERFACE = 1
PROGRAM_ERROR = 2
OTHERS = 3.
IF SY-SUBRC <> 0.
MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
ENDIF.
L_LAYOUT-ZEBRA = 'X'.
CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'
EXPORTING
I_CALLBACK_PROGRAM = SY-REPID
IS_LAYOUT = L_LAYOUT
IT_FIELDCAT = IT_FIELDCAT
TABLES
T_OUTTAB = IT_FINAL
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.
ENDIF.
Regards
Naresh
‎2006 May 30 9:32 AM
Hi,
the date you are trying to enter should be in YYYY.MM.DD format.
Regards,
Aswin
‎2006 May 30 9:35 AM
‎2006 May 30 9:36 AM
Hello Manoj,
I didn't understand what you are trying to explain me. Can you please explain me clearly.
Regards,
Gupta
‎2006 May 30 9:53 AM
Hi Lisa,
SAP stores date internally in the YYYYMMDD format.
So,when you passed the date in MMDDYYYY format it
viewed it as YYYYMMDD so 04112005 was internally converted
to year 0411 Month 05 an Day 20.
Please check your date format by
Go to System->User Profile->Owndata->Defaults("System" is
found in the standard menu of all SAP screens.
The date format in your case would be MM.DD.YYYY.
SAP considers this format and converts the date to 05.20.0411 while displaying it in the report.
Solution: Convert the date field to YYYYMMDD format.
So you should send the above date as 20051104(i am not sure whether 04 is day or month)
Thanks,
Vinay Reddy
‎2006 May 30 9:35 AM
Hi,
try to send the date in this format<b> yyyymmdd</b> format, then it will display properly.
Regards
vijay
‎2006 May 30 9:38 AM
this is because your date field is formatted wrongly. Abap expects it to be formatted internally as YYYMMDD, it then formats it externally so we can read it. Your data is already like that so it's mixing it up. I think you need to define your data as char 8 rather than DATS or ensure it is formatted as sap expects.
‎2006 May 30 9:45 AM
Hello Neil,
i found the line items internal tables is of type one structure. when i saw the data element of that date its in format YYYY.MM.DD only what i have to do now.
Regards,
Lisa
‎2006 May 30 9:54 AM
Hi lisa,
did you mentioned like this..
X_FIELDCAT-COLTEXT = 'Prom Date'(016).
X_FIELDCAT-FIELDNAME = 'ZZDATE'.
X_FIELDCAT-TABNAME = 'IT_FINAL'.
X_FIELDCAT-COL_POS = L_POS.
X_FIELDCAT-OUTPUTLEN = '10'.
X_FIELDCAT-DATATYPE = 'DATS'.
X_FIELDCAT-INTTYPE = 'D'.
X_FIELDCAT-REF_TABLE = 'LIKP'.
X_FIELDCAT-REF_FIELD = 'LFDAT'.
APPEND X_FIELDCAT TO IT_FIELDCAT.
CLEAR X_FIELDCAT.what is the date format in your itab.
Regards
vijay
‎2006 May 30 9:56 AM
Hi Lisa,
Can you please send your code, may be I can suggest you what do be done.
vreddy15@yahoo.com
Thanks
Vinay
‎2006 May 30 9:44 AM
Hi Lisa,
While you fill the data for output, fill it as yyyymmdd format.
In your case, populate it as 20051104.
I think this is useful. if its solved, award points pls.
Regards,
Bharadwaj
‎2006 May 30 9:52 AM
Hi lisa,
1. All dates in variables and database table
are stored in YYYYMMDD format only.
2. Hence, take care of the data in internal table field.
3. Make sure, the data in the data field,
is in the format YYYYMMDD only.
(other wise, in output, it will show wrong information)
regards,
amit m.