Application Development 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: 

table display.

Former Member
0 Kudos

HI experts,

after execution of the program i want to display the output in a table format with horizontal and vertical lines.

how can i do it.

Plz help me.

Advance thanks.

1 ACCEPTED SOLUTION

Former Member
0 Kudos

Hi

Check this sample report

*&---------------------------------------------------------------------*
*& Report  ZSMALL_INTERACTIVE_REPORT                                   *
*&                                                                     *
*&---------------------------------------------------------------------*
*&                                                                     *
*&                                                                     *
*&---------------------------------------------------------------------*

REPORT  ZSMALL_INTERACTIVE_REPORT MESSAGE-ID ZPA1 LINE-SIZE 255
LINE-COUNT 10(2).

Tables: zemp_details1, zcomp_details.

Data: itab like zemp_details1 occurs 0 with header line.
Data: Jtab like zCOMP_details occurs 0 with header line.

SELECT-OPTIONS: EMP_NO FOR ZEMP_DETAILS1-EMPNO.

INITIALIZATION.

EMP_NO-LOW = '1000'.
EMP_NO-HIGH = '4000'.
EMP_NO-SIGN = 'I'.
EMP_NO-OPTION = 'BT'.
APPEND EMP_NO.
CLEAR EMP_NO.

AT SELECTION-SCREEN.

IF EMP_NO-LOW < '1000'.
MESSAGE S000(ZPA1).
ELSEIF EMP_NO-HIGH > '4000'.
MESSAGE S001.
ENDIF.

START-OF-SELECTION.
SELECT * FROM ZEMP_DETAILS1 INTO TABLE ITAB WHERE EMPNO IN EMP_NO.
WRITE:/5 SY-ULINE(35).



LOOP AT ITAB.
WRITE:/5 SY-VLINE, 6 ITAB-EMPNO, 17 SY-VLINE,18 ITAB-EMPNAME,28 SY-VLINE
, 39 SY-VLINE.

ENDLOOP.

TOP-OF-PAGE.
WRITE:/5 SY-ULINE(35).
WRITE:/5 SY-VLINE,6 'EMPNO',17 SY-VLINE,18 'EMPNAME',28 SY-VLINE,
39 SY-VLINE.
WRITE:/5 SY-ULINE(35).

END-OF-PAGE.
WRITE:/5 SY-ULINE(35).
WRITE:/ 'THE PAGE NO IS',SY-PAGNO.
END-OF-SELECTION.
WRITE:/ 'THE RECORD IS CLOSED'.


AT LINE-SELECTION.
IF SY-LSIND = 1.
SELECT * FROM ZEMP_DETAILS1 INTO TABLE ITAB WHERE EMPNO = ITAB-EMPNO.
LOOP AT ITAB.
WRITE:/5 SY-VLINE,6 ITAB-EMPNO,17 SY-VLINE,18 ITAB-EMPNAME,28 SY-VLINE,
39 SY-VLINE.
ENDLOOP.
WRITE:/5 SY-ULINE(35).
ELSEIF SY-LSIND = 2.
SELECT * FROM ZCOMP_DETAILS INTO TABLE JTAB.
LOOP AT JTAB.
WRITE:/5 SY-VLINE,6 JTAB-COMP_NO,17 SY-VLINE,18 JTAB-COMP_NAME,28
SY-VLINE,
39 SY-VLINE.
ENDLOOP.
WRITE:/5 SY-ULINE(35).
ENDIF.

or else if u want it through alv use the following code

*&---------------------------------------------------------------------*
*& Report  ZPAVAN_ALV_BLOCK_LIST
*&
*&---------------------------------------------------------------------*
*& Developer
*& Date:   &DATE
*&---------------------------------------------------------------------*

REPORT  ZPAVAN_ALV_BLOCK_LIST.


                      .
Type-pools : slis.

TABLES : LFA1,KNA1.


data : FIELDCAT type slis_t_fieldcat_alv.
data : LAYOUT type slis_layout_alv.
data : EVENT type slis_t_event .

*---------------------------------


DATA : BEGIN OF ITAB1 OCCURS 0,
       KUNNR LIKE KNA1-KUNNR,
       LAND1 LIKE KNA1-LAND1,
       NAME1 LIKE KNA1-NAME1,
       END OF ITAB1.

DATA : BEGIN OF ITAB2 OCCURS 0,
       LIFNR LIKE LFA1-LIFNR,
       LAND1 LIKE LFA1-LAND1,
       NAME1 LIKE LFA1-NAME1,
       END OF ITAB2.

*DATA : BEGIN OF ITAB3 OCCURS 0,
*       MATNR LIKE MARA-MATNR,
*       MTART LIKE MARA-MTART,
*       END OF ITAB3.
*

*---------------------------------

SELECT-OPTIONS : CUST FOR KNA1-KUNNR.
SELECT-OPTIONS : VEND FOR LFA1-LIFNR.
*---------------------------------
start-of-selection.


*--------------- SELECT DATA

SELECT KUNNR LAND1 NAME1 FROM KNA1 INTO CORRESPONDING FIELDS OF TABLE
ITAB1 WHERE KUNNR IN CUST.
SELECT LIFNR LAND1 NAME1 FROM LFA1 INTO CORRESPONDING FIELDS OF TABLE
ITAB2 WHERE LIFNR IN VEND.
*SELECT MATNR MTART FROM MARA INTO CORRESPONDING FIELDS OF TABLE
*ITAB3.
* WHERE LIFNR IN VEND.



*--------------- INIT BLOCK ALV


CALL FUNCTION 'REUSE_ALV_BLOCK_LIST_INIT'
EXPORTING
i_callback_program = sy-repid.

*--------------- ADD INTERNAL TABLE ITAB1


CALL FUNCTION 'REUSE_ALV_FIELDCATALOG_MERGE'
EXPORTING
I_PROGRAM_NAME = SY-REPID
I_INTERNAL_TABNAME = 'ITAB1'
I_INCLNAME = SY-REPID
CHANGING
CT_FIELDCAT = FIELDCAT.

CALL FUNCTION 'REUSE_ALV_BLOCK_LIST_APPEND'
EXPORTING
is_layout = LAYOUT
it_fieldcat = FIELDCAT
i_tabname = 'ITAB1'
it_events = EVENT
TABLES
t_outtab = ITAB1
EXCEPTIONS
program_error = 1
maximum_of_appends_reached = 2
OTHERS = 3.



*------------------- ADD INTERNAL TABLE ITAB2

REFRESH FIELDCAT[].

CALL FUNCTION 'REUSE_ALV_FIELDCATALOG_MERGE'
EXPORTING
I_PROGRAM_NAME = SY-REPID
I_INTERNAL_TABNAME = 'ITAB2'
I_INCLNAME = SY-REPID
CHANGING
CT_FIELDCAT = FIELDCAT.

CALL FUNCTION 'REUSE_ALV_BLOCK_LIST_APPEND'
EXPORTING
is_layout = LAYOUT
it_fieldcat = FIELDCAT
i_tabname = 'ITAB2'
it_events = EVENT
TABLES
t_outtab = ITAB2
EXCEPTIONS
program_error = 1
maximum_of_appends_reached = 2
OTHERS = 3.

REFRESH FIELDCAT[].

*CALL FUNCTION 'REUSE_ALV_FIELDCATALOG_MERGE'
*EXPORTING
*I_PROGRAM_NAME = SY-REPID
*I_INTERNAL_TABNAME = 'ITAB3'
*I_INCLNAME = SY-REPID
*CHANGING
*CT_FIELDCAT = FIELDCAT.
*
*CALL FUNCTION 'REUSE_ALV_BLOCK_LIST_APPEND'
*EXPORTING
*is_layout = al
*it_fieldcat = alvfc
*i_tabname = 'ITAB3'
*it_events = alvev
*TABLES
*t_outtab = ITAB3
*EXCEPTIONS
*program_error = 1
*maximum_of_appends_reached = 2
*OTHERS = 3.



*--------------- DISPLAY

CALL FUNCTION 'REUSE_ALV_BLOCK_LIST_DISPLAY'
EXCEPTIONS
program_error = 1
OTHERS = 2.

Regards

Pavan

11 REPLIES 11

Mohamed_Mukhtar
Active Contributor
0 Kudos

hi ,

Make use of system vairables

Sy-Vline , sy-uline..

Example Code

REPORT  zulinevline.
ULINE /2(97).
WRITE : /6 'program name',24 sy-cprog , 70 'page no', 90 sy-pagno, 2 sy-vline , 22 sy-vline , 68 sy-vline , 98 sy-vline.
WRITE : /6'Date',24 sy-datum ,    70 'user name', 90 sy-uname, 2 sy-vline , 22 sy-vline , 68 sy-vline , 98 sy-vline.
ULINE /2(97).

Regards

0 Kudos

Hi thanks for ur reply.If i want to display

the mentioned information into table format.plz can u help me using sy-uline and sy-vline.

LOOP AT it_zekes1 INTO wa_zekes1.

WRITE: / wa_zekes1-ebeln, wa_zekes1-ebelp,wa_zekes1-erdat, wa_zekes1-dabmg.

The size i have given below.

ebeln-char 10,

ebelp-numc 5,

erdat - dats 8,

dabmg - quan 13.

Correct answer will be appriciated.

Thank u.

Edited by: chitty d on Sep 15, 2008 1:00 PM

Former Member
0 Kudos

ThomasZloch
Active Contributor
0 Kudos

use ALV classes or function modules.

Thomas

Former Member
0 Kudos

U CAN USE

SY-ULINE,

SY-VLINE.

OR BY FUNCTION MODULES

REUSE_ALV_GRID_DISPLAY

REUSE_ALV_LIST_DISPLAY.

JUST PASS UR NTERNAL TABLE NAME TO THE FMODULE

Former Member
0 Kudos

Hi use sy-vline for vertical and sy-uline for horizontal line.

for example. you need to print A B in table.

write :1(10) sy-uline.

write:/ 1 sy-vline.

write: 2(2) 'A'.

write:5 sy-vline.

write:6(3) ' B'.

Former Member
0 Kudos

Hi

Check this sample report

*&---------------------------------------------------------------------*
*& Report  ZSMALL_INTERACTIVE_REPORT                                   *
*&                                                                     *
*&---------------------------------------------------------------------*
*&                                                                     *
*&                                                                     *
*&---------------------------------------------------------------------*

REPORT  ZSMALL_INTERACTIVE_REPORT MESSAGE-ID ZPA1 LINE-SIZE 255
LINE-COUNT 10(2).

Tables: zemp_details1, zcomp_details.

Data: itab like zemp_details1 occurs 0 with header line.
Data: Jtab like zCOMP_details occurs 0 with header line.

SELECT-OPTIONS: EMP_NO FOR ZEMP_DETAILS1-EMPNO.

INITIALIZATION.

EMP_NO-LOW = '1000'.
EMP_NO-HIGH = '4000'.
EMP_NO-SIGN = 'I'.
EMP_NO-OPTION = 'BT'.
APPEND EMP_NO.
CLEAR EMP_NO.

AT SELECTION-SCREEN.

IF EMP_NO-LOW < '1000'.
MESSAGE S000(ZPA1).
ELSEIF EMP_NO-HIGH > '4000'.
MESSAGE S001.
ENDIF.

START-OF-SELECTION.
SELECT * FROM ZEMP_DETAILS1 INTO TABLE ITAB WHERE EMPNO IN EMP_NO.
WRITE:/5 SY-ULINE(35).



LOOP AT ITAB.
WRITE:/5 SY-VLINE, 6 ITAB-EMPNO, 17 SY-VLINE,18 ITAB-EMPNAME,28 SY-VLINE
, 39 SY-VLINE.

ENDLOOP.

TOP-OF-PAGE.
WRITE:/5 SY-ULINE(35).
WRITE:/5 SY-VLINE,6 'EMPNO',17 SY-VLINE,18 'EMPNAME',28 SY-VLINE,
39 SY-VLINE.
WRITE:/5 SY-ULINE(35).

END-OF-PAGE.
WRITE:/5 SY-ULINE(35).
WRITE:/ 'THE PAGE NO IS',SY-PAGNO.
END-OF-SELECTION.
WRITE:/ 'THE RECORD IS CLOSED'.


AT LINE-SELECTION.
IF SY-LSIND = 1.
SELECT * FROM ZEMP_DETAILS1 INTO TABLE ITAB WHERE EMPNO = ITAB-EMPNO.
LOOP AT ITAB.
WRITE:/5 SY-VLINE,6 ITAB-EMPNO,17 SY-VLINE,18 ITAB-EMPNAME,28 SY-VLINE,
39 SY-VLINE.
ENDLOOP.
WRITE:/5 SY-ULINE(35).
ELSEIF SY-LSIND = 2.
SELECT * FROM ZCOMP_DETAILS INTO TABLE JTAB.
LOOP AT JTAB.
WRITE:/5 SY-VLINE,6 JTAB-COMP_NO,17 SY-VLINE,18 JTAB-COMP_NAME,28
SY-VLINE,
39 SY-VLINE.
ENDLOOP.
WRITE:/5 SY-ULINE(35).
ENDIF.

or else if u want it through alv use the following code

*&---------------------------------------------------------------------*
*& Report  ZPAVAN_ALV_BLOCK_LIST
*&
*&---------------------------------------------------------------------*
*& Developer
*& Date:   &DATE
*&---------------------------------------------------------------------*

REPORT  ZPAVAN_ALV_BLOCK_LIST.


                      .
Type-pools : slis.

TABLES : LFA1,KNA1.


data : FIELDCAT type slis_t_fieldcat_alv.
data : LAYOUT type slis_layout_alv.
data : EVENT type slis_t_event .

*---------------------------------


DATA : BEGIN OF ITAB1 OCCURS 0,
       KUNNR LIKE KNA1-KUNNR,
       LAND1 LIKE KNA1-LAND1,
       NAME1 LIKE KNA1-NAME1,
       END OF ITAB1.

DATA : BEGIN OF ITAB2 OCCURS 0,
       LIFNR LIKE LFA1-LIFNR,
       LAND1 LIKE LFA1-LAND1,
       NAME1 LIKE LFA1-NAME1,
       END OF ITAB2.

*DATA : BEGIN OF ITAB3 OCCURS 0,
*       MATNR LIKE MARA-MATNR,
*       MTART LIKE MARA-MTART,
*       END OF ITAB3.
*

*---------------------------------

SELECT-OPTIONS : CUST FOR KNA1-KUNNR.
SELECT-OPTIONS : VEND FOR LFA1-LIFNR.
*---------------------------------
start-of-selection.


*--------------- SELECT DATA

SELECT KUNNR LAND1 NAME1 FROM KNA1 INTO CORRESPONDING FIELDS OF TABLE
ITAB1 WHERE KUNNR IN CUST.
SELECT LIFNR LAND1 NAME1 FROM LFA1 INTO CORRESPONDING FIELDS OF TABLE
ITAB2 WHERE LIFNR IN VEND.
*SELECT MATNR MTART FROM MARA INTO CORRESPONDING FIELDS OF TABLE
*ITAB3.
* WHERE LIFNR IN VEND.



*--------------- INIT BLOCK ALV


CALL FUNCTION 'REUSE_ALV_BLOCK_LIST_INIT'
EXPORTING
i_callback_program = sy-repid.

*--------------- ADD INTERNAL TABLE ITAB1


CALL FUNCTION 'REUSE_ALV_FIELDCATALOG_MERGE'
EXPORTING
I_PROGRAM_NAME = SY-REPID
I_INTERNAL_TABNAME = 'ITAB1'
I_INCLNAME = SY-REPID
CHANGING
CT_FIELDCAT = FIELDCAT.

CALL FUNCTION 'REUSE_ALV_BLOCK_LIST_APPEND'
EXPORTING
is_layout = LAYOUT
it_fieldcat = FIELDCAT
i_tabname = 'ITAB1'
it_events = EVENT
TABLES
t_outtab = ITAB1
EXCEPTIONS
program_error = 1
maximum_of_appends_reached = 2
OTHERS = 3.



*------------------- ADD INTERNAL TABLE ITAB2

REFRESH FIELDCAT[].

CALL FUNCTION 'REUSE_ALV_FIELDCATALOG_MERGE'
EXPORTING
I_PROGRAM_NAME = SY-REPID
I_INTERNAL_TABNAME = 'ITAB2'
I_INCLNAME = SY-REPID
CHANGING
CT_FIELDCAT = FIELDCAT.

CALL FUNCTION 'REUSE_ALV_BLOCK_LIST_APPEND'
EXPORTING
is_layout = LAYOUT
it_fieldcat = FIELDCAT
i_tabname = 'ITAB2'
it_events = EVENT
TABLES
t_outtab = ITAB2
EXCEPTIONS
program_error = 1
maximum_of_appends_reached = 2
OTHERS = 3.

REFRESH FIELDCAT[].

*CALL FUNCTION 'REUSE_ALV_FIELDCATALOG_MERGE'
*EXPORTING
*I_PROGRAM_NAME = SY-REPID
*I_INTERNAL_TABNAME = 'ITAB3'
*I_INCLNAME = SY-REPID
*CHANGING
*CT_FIELDCAT = FIELDCAT.
*
*CALL FUNCTION 'REUSE_ALV_BLOCK_LIST_APPEND'
*EXPORTING
*is_layout = al
*it_fieldcat = alvfc
*i_tabname = 'ITAB3'
*it_events = alvev
*TABLES
*t_outtab = ITAB3
*EXCEPTIONS
*program_error = 1
*maximum_of_appends_reached = 2
*OTHERS = 3.



*--------------- DISPLAY

CALL FUNCTION 'REUSE_ALV_BLOCK_LIST_DISPLAY'
EXCEPTIONS
program_error = 1
OTHERS = 2.

Regards

Pavan

Former Member
0 Kudos

Hi,

Try like this....

WRITE: / 2 sy-vline,3 wa_zekes1-ebeln,14 sy-vline,15 wa_zekes1-ebelp,21 sy-vline,23 wa_zekes1-erdat, 32 sy-vline,33 wa_zekes1-dabmg,37 sy-vline.

write : / 2 sy-uline(37).

Former Member
0 Kudos

LOOP AT it_zekes1 INTO wa_zekes1.

WRITE: / wa_zekes1-ebeln, 25 sy-vline, wa_zekes1-ebelp,45 sy-vline,wa_zekes1-erdat,65 sy-vline, wa_zekes1-dabmg,100 sy-vline.

write:/ sy-uline.

endloop

hi try this

hope it will work

the numbers are of ur requirement

it is edited by you accoding to ur needs

s.janagar

0 Kudos

Hi thanks for ur reply.

I got the out put in d table format.but the table is not having the open vertical line and closed vertical line.

First and last the lines for the table is missed.

can u suggest me.

Thank you.

Former Member
0 Kudos

Hi,

Put sy-vline front and last of the write statement.