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

classical report display

Former Member
0 Likes
2,737

BEGIN OF t_final,

ebeln TYPE ebeln,

ebelp TYPE ebelp,

segal TYPE segal,

aedat TYPE erdat,

mblnr TYPE mblnr,

END OF t_final.

i_final is my final internal table.

Heading for those fields in the output screen should be:

1.PO number(ebeln).

2.PO Line item.(ebelp).

3.Ex/Non Ex.(segal).

4.Date in.(aedat)

5.MM document.

Above is my final structure.

How can display data in classical report display format.

kindly guide pelase.My program is done. I want to display data of i_final[] using classical report format.

1 ACCEPTED SOLUTION
Read only

Former Member
0 Likes
1,761

Hi,

Use below code it will solve your problem.

if not t_final[] is initial.

uline.

format color col_heading on.

write:/01 sy-vline,

04 'PO number',

24 sy-vline,

26 'PO Line item',

44 sy-vline,

46 'Ex/Non Ex.',

56 sy-vline,

57 'Date in',

75 sy-vline,

79 'MM document',

112 sy-vline.

uline.

format color off.

loop at t_final.

format color col_normal on.

write:/01 sy-vline,

04 t_final-ebeln,

24 sy-vline,

26 t_final-ebelp,

44 sy-vline,

46 t_final-segal,

56 sy-vline,

57 t_final-erdat,

75 sy-vline,

79 t_final-mblnr,

112 sy-vline.

format color off.

endloop.

uline.

else.

message i000 with text-i05.

endif.

Regards,

Koti reddy.

10 REPLIES 10
Read only

Former Member
0 Likes
1,761

Hello Ganguly babu..

Use statement

Loop at <table>.

write: <Field1>, <Field 2> , <Field 2> etc...

endloop.

Read only

Former Member
0 Likes
1,761

hi,

Put the Data inside the Inrternal TAble.

Use Write Statement.

try.

Loop at i_table into t_table.

write:/ t_table-vbeln,

t_table-<field>

endloop.

Regards

Sumit Agarwal

Read only

Former Member
0 Likes
1,761

hiiii

you can use select query for your fields..and use it like below code for displaying with header

SELECT sbook~carrid                    "CARRIER ID
       sbook~connid                    "CONNECTION ID
       sbook~fldate                    "FLIGHT DATE
       sbook~customid                  "CUSTOM ID
       scustom~name                    "NAME OF THE CUSTOMER
       sbook~wunit                     "UNIT
   INTO table t_table
FROM scustom LEFT OUTER JOIN sbook
         ON scustom~id = sbook~customid.

write :/2 'carrid',
       14 'connid',
       22 'fldate',
       35 'custonid',
       50 'name',
       75 'wunit'.

skip.

w_carrid = p_carrid.
w_connid = p_connid.
loop at t_table into fs_table where carrid = w_carrid and connid =
w_connid.
write:/2 fs_table-carrid,
       14 fs_table-connid,
       22 fs_table-fldate,
       35 fs_table-customerid,
       50 fs_table-name,
       75 fs_table-wunit.
endloop.                               "LOOP END

regards

twinkal

Read only

Former Member
0 Likes
1,761

Friend,

take a help from this:

REPORT yfven001 .

* Program Description
* List vendor activity for cleared/non cleared items from specific
* activity date.

TABLES: lfa1,                          "Vendor Master
        lfb1,                          "Vendor Company Master
        lfm1,                          "Vendor Purchase Master
        bsik,   "Accounting Secondary Index - By Vendor
        bsak.   "Accounting Secondary Index - By Vendor - Cleared Items
DATA: creation_date TYPE d.
DATA: i_lfb1_i LIKE lfb1 OCCURS 0 WITH HEADER LINE.
DATA: i_lfb1_e LIKE lfb1 OCCURS 0 WITH HEADER LINE.
DATA: BEGIN OF i_lfb1 OCCURS 0,
        bukrs LIKE lfb1-bukrs,
        END OF i_lfb1,
        BEGIN OF i_bsik OCCURS 0,
          bukrs LIKE bsik-bukrs,
          END OF i_bsik.
DATA: BEGIN OF itab_lfa1 OCCURS 0,
        lifnr LIKE lfa1-lifnr,         " Vendor Number
        name1 LIKE lfa1-name1,         " Name
        land1 LIKE lfa1-land1,         " Country
        erdat LIKE lfa1-erdat,
        belnr LIKE bsak-belnr,         " Last Document #
        bukrs LIKE bsak-bukrs,         " Company
        budat LIKE bsak-budat,         " Last Posting Date
        loevm LIKE lfa1-loevm,         "deletion flag
        sperr LIKE lfa1-sperr,         "block flag
        sperm LIKE lfa1-sperm,         "block flag for Purchase
        marked(1)            ,         "Marked for del and blcked
        remark(50),
      END OF itab_lfa1.

*----------------------------------------------------------------------*
*  Parameter and Select-Options                                        *
*----------------------------------------------------------------------*
SELECTION-SCREEN: SKIP,
                  BEGIN OF BLOCK b01 WITH FRAME TITLE text-t01.
SELECT-OPTIONS:  i_lifnr FOR lfa1-lifnr .

PARAMETERS: i_actdt LIKE bsik-budat.

SELECT-OPTIONS:  i_land1 FOR lfa1-land1.
*SELECT-OPTIONS:  s_bukrs FOR lfb1-bukrs.
SELECTION-SCREEN: END OF BLOCK b01.
SELECTION-SCREEN: SKIP,
                  BEGIN OF BLOCK b02 WITH FRAME TITLE text-t02.
SELECTION-SCREEN: SKIP.
PARAMETERS: i_vend RADIOBUTTON GROUP srt,
            i_vctry RADIOBUTTON GROUP srt.
SELECTION-SCREEN: END OF BLOCK b02.

SELECTION-SCREEN: SKIP,
                  BEGIN OF BLOCK ven WITH FRAME TITLE text-t03.
PARAMETERS: ven AS CHECKBOX DEFAULT 'X'.
SELECTION-SCREEN: END OF BLOCK ven.

START-OF-SELECTION.
  PERFORM fill_itab_lfa1.
*&---------------------------------------------------------------------*
*&      Form  fill_itab_lfa1
*&---------------------------------------------------------------------*
*       text
*----------------------------------------------------------------------*
*  -->  p1        text
*  <--  p2        text
*----------------------------------------------------------------------*
FORM fill_itab_lfa1.

  CLEAR itab_lfa1. REFRESH itab_lfa1.
*  creation_date = sy-datum - p_exdays.

  SELECT *
      FROM   lfa1
      INTO   CORRESPONDING FIELDS OF TABLE itab_lfa1
      WHERE  lifnr IN i_lifnr AND
             land1 IN i_land1 AND
             erdat <  i_actdt.

* select only those vendors which exist in selected company codes
  IF  NOT itab_lfa1[] IS INITIAL.
    CLEAR i_lfb1_i.
    REFRESH i_lfb1_i.
    SELECT *
    FROM   lfb1
    INTO   CORRESPONDING FIELDS OF TABLE i_lfb1_i
    FOR    ALL ENTRIES IN itab_lfa1
    WHERE  lifnr EQ itab_lfa1-lifnr.
*  and    bukrs in s_bukrs.

    SORT i_lfb1_i.
* remove vendors which do not exist in selected company codes
    LOOP AT itab_lfa1.
      READ TABLE i_lfb1_i WITH KEY lifnr = itab_lfa1-lifnr
                                   BINARY SEARCH.
      IF sy-subrc <> 0.
        DELETE itab_lfa1.
      ENDIF.
    ENDLOOP.


    IF  NOT itab_lfa1[] IS INITIAL.
      CLEAR i_lfb1_e.
      REFRESH i_lfb1_e.
      SELECT *
      FROM   lfb1
      INTO   CORRESPONDING FIELDS OF TABLE i_lfb1_e
      FOR    ALL ENTRIES IN itab_lfa1
      WHERE  lifnr EQ itab_lfa1-lifnr.
*    and    bukrs not in s_bukrs.
      SORT i_lfb1_e.
    ENDIF.
  ENDIF.
  SORT itab_lfa1 BY lifnr.

  LOOP AT itab_lfa1.

    PERFORM get_last_activity.
  ENDLOOP.

ENDFORM.                    " fill_itab_lfa1

END-OF-SELECTION.

  PERFORM print_itab_lfa1.

TOP-OF-PAGE.

  WRITE: / 'Vendor',
         12  'Vendor Name',
         48  'Ctry',
         52  'Cr Date',
         63  'Document',
         74  'CoCd',
         79  'Last Act.Dte',
         100  text-003.

  ULINE.

*&---------------------------------------------------------------------*
*&      Form  get_last_activity
*&---------------------------------------------------------------------*
*       text
*----------------------------------------------------------------------*
*  -->  p1        text
*  <--  p2        text
*----------------------------------------------------------------------*
FORM get_last_activity.

  DATA: latest_date1 TYPE d,
        latest_date2 TYPE d.

  CLEAR: latest_date1, latest_date2.
  SELECT MAX( budat ) INTO latest_date1 FROM bsik WHERE
         lifnr = itab_lfa1-lifnr.

  SELECT MAX( augdt ) INTO latest_date2 FROM bsak WHERE
         lifnr = itab_lfa1-lifnr.

  IF latest_date1 > latest_date2.
    IF latest_date1 < i_actdt.

      DELETE itab_lfa1.
    ELSE.
      SELECT SINGLE budat belnr bukrs        INTO
                   (itab_lfa1-budat ,itab_lfa1-belnr ,itab_lfa1-bukrs )
           FROM bsik WHERE
           lifnr = itab_lfa1-lifnr AND
           budat = latest_date1.
      MODIFY itab_lfa1.
    ENDIF.
  ELSEIF NOT latest_date2 IS INITIAL.
    IF latest_date2 < i_actdt.
      DELETE itab_lfa1.
    ELSE.
      SELECT SINGLE budat            belnr            bukrs INTO
                   (itab_lfa1-budat ,itab_lfa1-belnr ,itab_lfa1-bukrs)
           FROM bsak WHERE
           lifnr = itab_lfa1-lifnr AND
           augdt = latest_date2.
      MODIFY itab_lfa1.
    ENDIF.
  ELSEIF latest_date1 EQ '00000000' AND
         latest_date2 EQ '00000000'.
    DELETE itab_lfa1.

  ENDIF.



ENDFORM.                    " get_last_activity
*&---------------------------------------------------------------------*
*&      Form  print_itab_LFA1
*&---------------------------------------------------------------------*
*       text
*----------------------------------------------------------------------*
*  -->  p1        text
*  <--  p2        text
*----------------------------------------------------------------------*
FORM print_itab_lfa1.
  DATA : total TYPE p.
  IF i_vend = 'X'.
    SORT itab_lfa1 BY lifnr land1.
  ELSE.
    i_vctry = 'X'.
    SORT itab_lfa1 BY land1 lifnr.
  ENDIF.
  CLEAR total.

  LOOP AT itab_lfa1.
    IF ven = ''.
      SELECT bukrs FROM lfb1 INTO TABLE i_lfb1 WHERE lifnr = itab_lfa1-lifnr.
      SELECT bukrs FROM bsik INTO TABLE i_bsik FOR ALL ENTRIES IN i_lfb1
                                                WHERE bukrs = i_lfb1-bukrs AND
                                                  lifnr =  itab_lfa1-lifnr.
      IF sy-subrc = 0.
        itab_lfa1-remark = text-004.
      ENDIF.
      IF sy-subrc NE 0.
        SELECT SINGLE * FROM lfa1 INTO lfa1 WHERE lifnr = itab_lfa1-lifnr.
        lfa1-sperr = 'X'.
        lfa1-sperq = '99'.
        UPDATE lfa1 FROM lfa1.
        COMMIT WORK.
        itab_lfa1-remark = text-005.
      ENDIF.
    ENDIF.
    MODIFY itab_lfa1 TRANSPORTING remark.
    IF itab_lfa1-loevm NE 'x' OR itab_lfa1-loevm NE 'X'.
      total = total + 1.
      WRITE: / itab_lfa1-lifnr,         " Vendor Number
              itab_lfa1-name1,         " Name
              itab_lfa1-land1,         " Country
              itab_lfa1-erdat,
              itab_lfa1-belnr,         " Last Document #
              itab_lfa1-bukrs,         " Company
              itab_lfa1-budat,         " Last Posting Date
              itab_lfa1-loevm,         "deletion flag
              itab_lfa1-sperr,         "block flag
              itab_lfa1-sperm,         "block flag for Purchase
              itab_lfa1-remark UNDER text-003.
    ENDIF.

  ENDLOOP.
* BOC by Bhavina ...
  SKIP 1.
  WRITE :/ sy-uline.
  WRITE : / ' Total Number of Vendors       ' , total RIGHT-JUSTIFIED .
  WRITE :/ sy-uline.
* EOC ........
ENDFORM.                    " print_itab_LFA1

Amit.

Read only

Former Member
0 Likes
1,761

Hi,

U can do like this..

END-OF-SELECTION.

Write : /2(20) 'PO Number' , (20) 'PO Line Item' , (20) 'Ex/Non Ex' , (20) 'Date In' , (20) 'MM document'.

loop at i_final.

write : /2(20) i_final-ebeln , (20) i_final-ebelp , (20) i_final-segal , (20) i_final-aedat , (20) i_final-mblnr.

endloop.

Read only

Former Member
0 Likes
1,761
Loop at i_final .

  At first.
    Write: / '1.PO number(ebeln).',
               '2.PO Line item.(ebelp).',
               '3.Ex/Non Ex.(segal).',
               '4.Date in.(aedat)',
               '5.MM document.'.

  Endat.
  Write: / i_final-ebeln,
              i_final-ebelp, 
              i_final-segal, 
              i_finalaedat,
              i_final-mblnr.
Endloop.

With luck,

Pritam.

Read only

Former Member
0 Likes
1,761

Hi Friend,

You can use the keyword UNDER.

Define text elements with the required headings and write the fields under those text elements.

check this code snippet.

WRITE:/ 25 'Ordered Quan'(005),
             40 'Received Quan'(006).
      
loop at itab. 
WRITE:/t_eket-menge UNDER text-005,
              t_eket-wemng UNDER text-006.
endloop.

Here text-005 is 'Ordered Quan'.

Here text-006 is 'Received Quan'.

Regards,

Chandra Sekhar

Read only

Former Member
0 Likes
1,762

Hi,

Use below code it will solve your problem.

if not t_final[] is initial.

uline.

format color col_heading on.

write:/01 sy-vline,

04 'PO number',

24 sy-vline,

26 'PO Line item',

44 sy-vline,

46 'Ex/Non Ex.',

56 sy-vline,

57 'Date in',

75 sy-vline,

79 'MM document',

112 sy-vline.

uline.

format color off.

loop at t_final.

format color col_normal on.

write:/01 sy-vline,

04 t_final-ebeln,

24 sy-vline,

26 t_final-ebelp,

44 sy-vline,

46 t_final-segal,

56 sy-vline,

57 t_final-erdat,

75 sy-vline,

79 t_final-mblnr,

112 sy-vline.

format color off.

endloop.

uline.

else.

message i000 with text-i05.

endif.

Regards,

Koti reddy.

Read only

Former Member
0 Likes
1,761

got the idea how to do.thanks all.

requirement is to use use uline, vline also so that it'll look like alv grid.

Read only

Former Member
0 Likes
1,761

Hi,

Check out following code :

WRITE AT: /1(10) 'PO Number',

12(20) 'PO Line item',

34(15) 'Ex/Non Ex.',

51(18) 'Date in.',

71(15) 'MM document'.

loop at i_final into w_final.

WRITE AT: /1(10) w_final-ebeln,

12(20) w_final-ebelp,

34(15) w_final-segal,

51(18) w_final-aedat,

71(15) w_final-mblnr.

endloop.