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 Grid Display

Former Member
0 Likes
1,364

I have a requirement where the output is a simple ALV grid Display. The challenge that I am facing is that the report should have a header as shown below which I am not sure whether the same is possible through ALV.

Mind you the ALV is a simple one. But in the header one of the columns should be like shown below with the SEX column as one merged column with M & F as sub columns.

ex.

_______________________________________________________

SEX |

-


M | F |

________________________________________________________

If someone could help me on this regard, I would highly appreciate that.

Thanks & Rgds

SDR

1 ACCEPTED SOLUTION
Read only

Former Member
0 Likes
1,335

It is not possible in ALV Grid.

YOu have to go for normal reports(Without ALV).

Regards,

Ravi

It is not possible in ALV Grid.

YOu have to go for normal reports(Without ALV).

Regards,

Ravi

11 REPLIES 11
Read only

Former Member
0 Likes
1,336

It is not possible in ALV Grid.

YOu have to go for normal reports(Without ALV).

Regards,

Ravi

Read only

0 Likes
1,335

You can not have more than one detail column under one header in the ALV grid.

Regards,

Rich Heilman

Read only

0 Likes
1,335

hi,

You cannot Dispaly in that way in ALV's.i.e, it is not possible to have more than one coulmn. But that is possible with Normal Reports.

Regards,

Santosh

Read only

Former Member
0 Likes
1,335

hii

DO it inthe TOP OF PAGE EVENT

Read only

0 Likes
1,335

Can you elaborate kindly on that please.

Thanks & Rgds

SDR

Read only

0 Likes
1,335

Hi Soumya,

You can do that, you need to put lot of effort.

Yes with the help of top_of_page it is possible but lot of trial and errors required to align the columns. and also you will loose certain alv Functionalities like change layout and save layout , choose layout options.

if you ready for it. you can go for it. or else use Normal report

Regards

vijay

Read only

0 Likes
1,335

got it.

Thanks though for all of your efforts.

SDR

Read only

0 Likes
1,335

Hi,

just check this code..., i did a small program...

have a look at this...(copy and run it).

REPORT  ZTEST_ALV_CHECK     message-id zz  .


TYPE-POOLS: SLIS.
DATA: X_FIELDCAT TYPE SLIS_FIELDCAT_ALV,
      IT_FIELDCAT TYPE SLIS_T_FIELDCAT_ALV,
      L_LAYOUT type slis_layout_alv,
      x_events type slis_alv_event,
      it_events type SLIS_T_EVENT.

DATA: BEGIN OF ITAB OCCURS 0,
      VBELN LIKE VBAK-VBELN,
      POSNR LIKE VBAP-POSNR,
      MALE type i,
      female type i,
     END OF ITAB.

SELECT VBELN
       POSNR
       FROM VBAP
       UP TO 20 ROWS
       INTO TABLE ITAB.


X_FIELDCAT-FIELDNAME = 'VBELN'.
X_FIELDCAT-SELTEXT_L = 'VBELN'.
X_FIELDCAT-TABNAME = 'ITAB'.
X_FIELDCAT-COL_POS = 1.
APPEND X_FIELDCAT TO IT_FIELDCAT.
CLEAR X_FIELDCAT.

X_FIELDCAT-FIELDNAME = 'POSNR'.
X_FIELDCAT-SELTEXT_L = 'POSNR'.
X_FIELDCAT-TABNAME = 'ITAB'.
X_FIELDCAT-COL_POS = 2.
APPEND X_FIELDCAT TO IT_FIELDCAT.
CLEAR X_FIELDCAT.
X_FIELDCAT-FIELDNAME = 'MALE'.
X_FIELDCAT-SELTEXT_L = 'MALE'.
X_FIELDCAT-TABNAME = 'ITAB'.
X_FIELDCAT-COL_POS = 3.
APPEND X_FIELDCAT TO IT_FIELDCAT.
CLEAR X_FIELDCAT.
X_FIELDCAT-FIELDNAME = 'FEMALE'.
X_FIELDCAT-SELTEXT_L = 'FEMALE'.
X_FIELDCAT-TABNAME = 'ITAB'.
X_FIELDCAT-COL_POS = 3.
APPEND X_FIELDCAT TO IT_FIELDCAT.
CLEAR X_FIELDCAT.
  x_events-NAME = SLIS_EV_TOP_OF_PAGE.
  x_events-FORM = 'TOP_OF_PAGE'.
  APPEND x_events  TO iT_EVENTS.
  CLEAR x_events .

  L_LAYOUT-NO_COLHEAD = 'X'.

CALL FUNCTION 'REUSE_ALV_LIST_DISPLAY'
  EXPORTING
    I_CALLBACK_PROGRAM       = SY-REPID
    IS_LAYOUT                = L_LAYOUT
    IT_FIELDCAT              = IT_FIELDCAT
    it_events                = it_events
  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 TOP_OF_PAGE.

*-To display the headers for main list
    FORMAT COLOR COL_HEADING.
        WRITE: / SY-ULINE(103).
    WRITE: /   SY-VLINE,
          (8) ' ' ,
               SY-VLINE,
          (8)  ' ' ,
               SY-VLINE,
          (19) 'SEX'(015) centered,
               sy-vline.

    WRITE: /   SY-VLINE,
          (8) 'VBELN'(013) ,
               SY-VLINE,
          (8) 'POSNR'(014) ,
               SY-VLINE,
          (8) 'MALE'(016) ,
               sy-vline,
           (8)  'FMALE'(017) ,
               sy-vline.

    FORMAT COLOR OFF.

ENDFORM.

Regards

vijay

Read only

0 Likes
1,335

Vijay,

I tried the below code. The report appears fine however no column header appears and neither does the top of page work.

Any comments.

Thanks & Rgds

Soumya

Read only

0 Likes
1,335

Hi Soumya,

i don't know how you did it, i checked it and it is working for me , check it, i am uploading the image also.

try to copy paste the whole code and see....

any way check this also...

http://img100.imageshack.us/img100/3846/output6ef.th.gif

Regards

vijay

Read only

Former Member
0 Likes
1,335

Hii Soumya ,

it would be easy with normal report..

if you want to stick to alv grid then this is the basic concept..improve upon it..

*Table declaration.

TABLES:ZEMP_MST,ZDEPT_MST,ZDESG_MST,ZSL_TXN.

*Varriable declaration.

TYPE-POOLS SLIS.

DATA : POS TYPE I.

DATA REPID LIKE SY-REPID.

DATA : F1 TYPE SLIS_T_FIELDCAT_ALV,

F2 TYPE SLIS_FIELDCAT_ALV,

L_LAYOUT TYPE SLIS_LAYOUT_ALV.

DATA L_POS TYPE I VALUE 1. "position of the column

DATA GT_FIELDCAT TYPE SLIS_T_FIELDCAT_ALV.

*DATA GT_SORT TYPE SLIS_T_SORTINFO_ALV.

data: GT_EVENTS TYPE SLIS_T_EVENT,

FS_EVENTCAT LIKE LINE OF GT_EVENTs.

*Internal table declaration.

*DATA BEGIN OF IT_SORT OCCURS 5.

  • INCLUDE TYPE SLIS_SORTINFO_ALV.

*DATA END OF IT_SORT.

DATA:BEGIN OF ITAB OCCURS 0,

ZEMPNO LIKE ZEMP_MST-ZEMPNO,

ZEMPNAME LIKE ZEMP_MST-ZEMPNAME,

ZDEPTCD LIKE ZEMP_MST-ZDEPTCD,

ZDEPTNAME LIKE ZDEPT_MST-ZDEPTNAME,

ZDESGCD LIKE ZEMP_MST-ZDESGCD,

ZDESGNAME LIKE ZDESG_MST-ZDESGNAME,

END OF ITAB.

REFRESH ITAB.CLEAR ITAB.

START-OF-SELECTION.

SELECT AZEMPNO AZEMPNAME AZDEPTCD BZDEPTNAME AZDESGCD CZDESGNAME

FROM ZEMP_MST AS A

INNER JOIN ZDEPT_MST AS B

ON AZDEPTCD EQ BZDEPTCD

INNER JOIN ZDESG_MST AS C

ON AZDESGCD EQ CZDESGCD

INTO CORRESPONDING FIELDS OF TABLE ITAB.

IF SY-SUBRC <> 0.

MESSAGE E899(M3) WITH 'No records'.

ENDIF.

perform f_build_eventcat.

PERFORM LAYOUT.

END-OF-SELECTION.

&----


*& Form LAYOUT

&----


FORM LAYOUT .

PERFORM FCAT USING 'ZEMPNO' 'ITAB' '' 'Emp.No.' 'ZEMPNO' 'ZEMP_MST' ''.

PERFORM FCAT USING 'ZEMPNAME' 'ITAB' '' 'Emp. Name' 'ZEMPNAME' 'ZEMP_MST' ''.

PERFORM FCAT USING 'ZDEPTCD' 'ITAB' '' 'Dept.Code' 'ZDEPTCD' 'ZEMP_MST' ''.

PERFORM FCAT USING 'ZDEPTNAME' 'ITAB' '' 'Dept.Name' 'ZDEPTNAME' 'ZDEPT_MST' ''.

PERFORM FCAT USING 'ZDESGCD' 'ITAB' '' 'Desg.Code' 'ZDESGCD' 'ZEMP_MST' ''.

PERFORM FCAT USING 'ZDESGNAME' 'ITAB' '' 'Desg.Name' 'ZDESGNAME' 'ZDESG_MST' ''.

  • PERFORM LSORT USING 'ZEMPNO' 'IDATA' ''.

  • PERFORM LSORT USING 'ZEMPNAME' 'IDATA' ''.

  • MOVE IT_SORT[] TO GT_SORT[].

REPID = SY-REPID.

CALL FUNCTION 'REUSE_ALV_LIST_DISPLAY'

EXPORTING

I_CALLBACK_PROGRAM = REPID

IT_FIELDCAT = F1

  • IT_SORT = GT_SORT

I_SAVE = 'X'

IT_EVENTS = GT_EVENTS[]

TABLES

T_OUTTAB = ITAB.

IF SY-SUBRC <> 0.

MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO

WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.

ENDIF.

ENDFORM. " LAYOUT

&----


*& Form FCAT

&----


FORM FCAT USING P_FIELD P_TABLE P_SUM P_TEXT P_RFIELD P_RTABLE P_DISP.

ADD 1 TO POS.

F2-COL_POS = POS.

F2-FIELDNAME = P_FIELD.

F2-TABNAME = P_TABLE.

F2-SELTEXT_L = P_TEXT.

F2-REF_FIELDNAME = P_RFIELD.

F2-REF_TABNAME = P_RTABLE.

F2-DO_SUM = P_SUM.

F2-NO_OUT = P_DISP.

APPEND F2 TO F1.

CLEAR F2.

ENDFORM. " FCAT

&----


*& Form LSORT

&----


*FORM LSORT USING P_FIELD P_TABLE P_UP.

  • ADD 1 TO L_POS.

  • IT_SORT-SPOS = L_POS.

  • IT_SORT-FIELDNAME = P_FIELD.

  • IT_SORT-TABNAME = P_TABLE.

  • IT_SORT-UP = P_UP.

  • APPEND IT_SORT.

*ENDFORM. " LSORT

*----


FORM F_BUILD_EVENTCAT .

CLEAR: GT_EVENTS. REFRESH: GT_EVENTS.

CLEAR: FS_EVENTCAT.

FS_EVENTCAT-NAME = 'TOP_OF_PAGE'.

FS_EVENTCAT-FORM = 'F_REPORT_HEADER_ALV'.

APPEND FS_EVENTCAT TO GT_EVENTS.

CLEAR: FS_EVENTCAT.

FS_EVENTCAT-NAME = 'END_OF_LIST'.

FS_EVENTCAT-FORM = 'F_WRITE_SUMMARY'.

APPEND FS_EVENTCAT TO GT_EVENTS.

ENDFORM. " F_BUILD_EVENTCAT

FORM F_REPORT_HEADER_ALV.

CALL FUNCTION 'Z_YHEAD_PRINT'

EXPORTING

TITLE1 = 'XYZ Limited'

TITLE2 = 'Employee Master'

TITLE3 = 'Created on '

COLOR = 'X'

.

ENDFORM.

&----


*& Form F_WRITE_SUMMARY

&----


  • Write summary before exit

----


FORM F_WRITE_SUMMARY .

write:/ 'Welcome to SDN'.

write:/ 'This is a basic idea for your question . Good Luck'.

ENDFORM.

Reward points if helpful

n revert back for more help

Regards

Naresh