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

ALV list problem

Former Member
0 Likes
1,177

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

12 REPLIES 12
Read only

Former Member
0 Likes
1,112

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

Read only

Former Member
0 Likes
1,112

Hi,

the date you are trying to enter should be in YYYY.MM.DD format.

Regards,

Aswin

Read only

Former Member
0 Likes
1,112

Hi,

store date has yyyymmdd. that is 20041104.

Read only

0 Likes
1,112

Hello Manoj,

I didn't understand what you are trying to explain me. Can you please explain me clearly.

Regards,

Gupta

Read only

0 Likes
1,112

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

Read only

Former Member
0 Likes
1,112

Hi,

try to send the date in this format<b> yyyymmdd</b> format, then it will display properly.

Regards

vijay

Read only

former_member186741
Active Contributor
0 Likes
1,112

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.

Read only

0 Likes
1,112

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

Read only

0 Likes
1,112

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

Read only

0 Likes
1,112

Hi Lisa,

Can you please send your code, may be I can suggest you what do be done.

vreddy15@yahoo.com

Thanks

Vinay

Read only

Former Member
0 Likes
1,112

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

Read only

Former Member
0 Likes
1,112

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.