cancel
Showing results for 
Search instead for 
Did you mean: 

reports

0 Kudos

if i hav 100 of records in output list (basic list) along with check box. i want to see few of them say 10 in secondary listhow to do that? what code i hav to write? and where?

Accepted Solutions (0)

Answers (2)

Answers (2)

Former Member
0 Kudos

try with this code.This will List out some purchase order details in the first screen and in secondary screen the item details will be displayed for the selected header records

REPORT CASESTUDY LINE-SIZE 1023

NO STANDARD PAGE HEADING.

  • ****************************************

*This program is to generate the report for purchase order details using

*intractive report

----


*TABLES USED TO IN REPORTS

TABLES : ekko,

ekpo,

mara,

makt.

*data type declaration for check box calculation

DATA : LINES TYPE I VALUE 0,

b(1) type c,

index type c,

i type c.

*INTERNAL TABLE STRUCTURE FOR EKKO

TYPES : BEGIN OF t_ekko,

ebeln TYPE ekko-ebeln,

bukrs TYPE ekko-bukrs,

bsart TYPE ekko-bsart,

lifnr TYPE ekko-lifnr,

zterm TYPE ekko-zterm,

llief TYPE ekko-llief,

END OF t_ekko.

*INTERNAL TABLE STRUCTURE FOR EKPO

TYPES : BEGIN OF t_ekpo,

konnr TYPE ekpo-konnr,

matnr TYPE ekpo-matnr,

ebeln TYPE ekpo-ebeln,

banfn TYPE ekpo-banfn,

ktmng TYPE ekpo-ktmng,

werks TYPE ekpo-werks,

lgort TYPE ekpo-lgort,

END OF t_ekpo.

*INTERNAL TABLE STRUCTURE FOR MARA TABLE

TYPES : BEGIN OF t_mara,

mtart TYPE mara-mtart,

matnr TYPE mara-matnr,

END OF t_mara.

*INTERNAL TABLE STRUCTURE FOR MAKT TABLE

TYPES : BEGIN OF t_makt,

maktx LIKE makt-maktx,

matnr TYPE makt-matnr,

END OF t_makt.

*INTERNAL TABLE USED TO STORE THE RESULT FIELD

TYPES : BEGIN OF t_result,

konnr TYPE ekpo-konnr,

matnr TYPE ekpo-matnr,

banfn TYPE ekpo-banfn,

ktmng TYPE ekpo-ktmng,

werks TYPE ekpo-werks,

lgort TYPE ekpo-lgort,

mtart TYPE mara-mtart,

maktx LIKE makt-maktx,

ebeln TYPE ekpo-ebeln,

END OF t_result.

*CREATION OF WORK AREA FOR ALL THE INTERNAL TABLE

DATA : ekko1 TYPE STANDARD TABLE OF t_ekko,

ekpo1 TYPE STANDARD TABLE OF t_ekpo,

mara1 TYPE STANDARD TABLE OF t_mara,

makt1 TYPE STANDARD TABLE OF t_makt,

result1 TYPE STANDARD TABLE OF t_result,

wa_ekko1 LIKE LINE OF ekko1,

wa_ekpo1 LIKE LINE OF ekpo1,

wa_mara1 LIKE LINE OF mara1,

wa_makt1 LIKE LINE OF makt1,

wa_result1 LIKE LINE OF result1.

*DESIGN OF SELECTION SCREEN ACCODING TO THE REQUIREMENTS

SELECTION-SCREEN BEGIN OF BLOCK purch WITH FRAME TITLE TEXT-001.

SELECT-OPTIONS:

S_EBELN FOR ekko-ebeln,

S_BEDAT FOR ekko-bedat,

S_BSART FOR ekko-bsart,

S_LLIEF FOR ekko-llief,

S_EKGRP FOR ekko-ekgrp,

S_ZTERM FOR ekko-zterm.

PARAMETERS : S_BSTYP TYPE ekko-bstyp DEFAULT 'F',

S_EKORG TYPE ekko-ekorg OBLIGATORY.

SELECTION-SCREEN END OF BLOCK purch.

*QUEARY USED TO FEATCH THE DETAILS FROM ekko TABLE AND PUT INTO THE

*CORRESPONDING FIELDS OF THAT INTERNAL TABLE

SELECT ebeln

bukrs

bsart

lifnr

zterm

llief FROM ekko

INTO CORRESPONDING FIELDS OF TABLE ekko1

WHERE ebeln IN s_ebeln.

*AND bedat IN s_bedat AND bsart IN s_bsart AND llief IN s_llief AND

*ekgrp in s_ekgrp AND zterm IN s_zterm AND

  • bstyp = s_bstyp AND ekorg = s_ekorg.

IF SY-SUBRC <> 0.

MESSAGE TEXT-007 TYPE 'I'.

EXIT.

ENDIF.

*DISPLAY THE REPORT from the first table ekko IN FIRST SCREEN

FORMAT COLOR 4 ON.

ULINE.

WRITE : /4 'PURCHASE ORDER NO.',sy-vline,

25 'COMPANY CODE',sy-vline,

42 'PUR DOC TYPE',sy-vline,

60 'ACCNO OF VENDOR',sy-vline,

80 'PAYMENT TERMS',sy-vline,

95 'SUPPLYING VENDOR',sy-vline.

FORMAT COLOR OFF.

ULINE.

LOOP AT EKKO1 INTO WA_EKKO1.

WRITE : /1 b AS CHECKBOX ,

12 WA_EKKO1-EBELN,sy-vline,

33 WA_EKKO1-BUKRS,sy-vline,

50 WA_EKKO1-BSART,sy-vline,

65 WA_EKKO1-LIFNR,sy-vline,

89 WA_EKKO1-ZTERM,sy-vline,

101 WA_EKKO1-LLIEF,sy-vline.

HIDE : wa_EKKO1-ebeln.

ENDLOOP.

format color 4 on.

WRITE : / , 'DATE : ' ,sy-datum.

  • CHECK BOX SELECTION ITEM DISPLAYED IN EKPO , MARA , MAKT

LINES = SY-LINNO.

SET PF-STATUS 'ENTER'.

AT USER-COMMAND.

CASE sy-ucomm.

WHEN 'ENTER'.

b = space.

DO lines TIMES.

READ LINE sy-index FIELD VALUE b.

IF b = 'X'.

*QUEARY USED TO FEATCH THE DETAILS FROM ekpo TABLE AND PUT INTO THE

*CORRESPONDING FIELDS OF THAT INTERNAL TABLE

SELECT konnr

matnr

ebeln

banfn

ktmng

werks

lgort FROM ekpo

INTO CORRESPONDING FIELDS OF TABLE ekpo1

WHERE ebeln = WA_EKKO1-ebeln.

*QUEARY USED TO FEATCH THE DETAILS FROM mara TABLE AND PUT INTO THE

*CORRESPONDING FIELDS OF THAT INTERNAL TABLE

SELECT mtart

matnr FROM mara

INTO CORRESPONDING FIELDS OF TABLE mara1

FOR ALL ENTRIES IN ekpo1

WHERE matnr = ekpo1-matnr.

*QUEARY USED TO FEATCH THE DETAILS FROM makt TABLE AND PUT INTO THE

*CORRESPONDING FIELDS OF THAT INTERNAL TABLE

SELECT maktx

matnr FROM makt

INTO CORRESPONDING FIELDS OF TABLE makt1

FOR ALL ENTRIES IN mara1

WHERE matnr = mara1-matnr.

*TO DISPLAY THE HEADING LINES

index = index + 1.

format color 7 on.

write:/ index,'.','PURCHASE ORDER :',40 wa_ekko1-ebeln

,

/5 '1 . CONTRACT/SCHEDULING AGREEMENT :',40

wa_result1-konnr,

/5 '2 . PURCHASE REQUISITION :',40

WA_RESULT1-banfn.

skip 2.

uline.

FORMAT COLOR OFF.

FORMAT COLOR 3 ON.

WRITE: /1 SY-VLINE,

10 'MATERIAL ',SY-VLINE,

26 'MATERIAL TYPE',SY-VLINE,

60 'MATERIAL DESCRIPTION ',SY-VLINE,

93 'PLANT ',SY-VLINE,

104 'STORAGE LOCATION',SY-VLINE,

125 'QUANTITY ',SY-VLINE.

ULINE.

FORMAT COLOR OFF.

*moving the data from the internal table to the result internal table

LOOP AT EKPO1 INTO WA_EKPO1.

MOVE WA_EKPO1-KONNR TO WA_RESULT1-KONNR.

MOVE WA_EKPO1-BANFN TO WA_RESULT1-BANFN.

MOVE WA_EKPO1-MATNR TO WA_RESULT1-MATNR.

MOVE WA_EKPO1-KTMNG TO WA_RESULT1-KTMNG.

MOVE WA_EKPO1-WERKS TO WA_RESULT1-WERKS.

MOVE WA_EKPO1-LGORT TO WA_RESULT1-LGORT.

READ TABLE MARA1 WITH KEY MATNR =

WA_EKPO1-MATNR INTO WA_MARA1.

MOVE WA_MARA1-MTART TO WA_RESULT1-MTART.

READ TABLE MAKT1 WITH KEY MATNR =

WA_MARA1-MATNR INTO WA_MAKT1.

MOVE WA_MAKT1-MAKTX TO WA_RESULT1-MAKTX.

APPEND WA_RESULT1 TO RESULT1.

*DISPLAY THE REPORT IN THE SECOND SCREEN

i = i + 1.

WRITE : /1 i,

6 WA_RESULT1-MATNR,SY-VLINE,

35 WA_RESULT1-mtart,SY-VLINE,

50 WA_RESULT1-MAKTX,SY-VLINE,

95 WA_RESULT1-werks,SY-VLINE,

116 WA_RESULT1-lgort,SY-VLINE,

122 wa_result1-ktmng,SY-VLINE.

HIDE : WA_RESULT1-konnr,WA_RESULT1-banfn.

ENDLOOP.

uline.

i = 0.

ENDIF.

ENDDO.

format color 4 on.

WRITE : / , 'DATE : ' ,sy-datum.

index = 0.

ENDCASE.

TOP-OF-PAGE.

WRITE : / 'PURCHASE DOCUMENT HEADER DETAILS'.

ULINE.

TOP-OF-PAGE DURING LINE-SELECTION.

CASE sy-lsind.

WHEN 1.

WRITE : / 'PURCHASE DOCUMENT ITEM DETAILS'.

ULINE.

ENDCASE.

0 Kudos

my que is not answered

Former Member
0 Kudos

Hi

Try with this report

This report is mean to print the alv grid in different colors. I have defined a check box with a default value '50'. So u can select only particular number of lines through this report.

*&---------------------------------------------------------------------*
*& Report  ZALVCOLOR                                                   *
*&                                                                     *
*&---------------------------------------------------------------------*
*&                                                                     *
*&                                                                     *
*&---------------------------------------------------------------------*

REPORT  ZALVCOLOR                               .

DATA : mara TYPE mara.                 " General Material Data

TYPE-POOLS: slis.                      " ALV Global types

FIELD-SYMBOLS :
  <data> TYPE table.                   " Data to display

SELECT-OPTIONS :
  s_matnr FOR mara-matnr.              " Material number

SELECTION-SCREEN :
  SKIP, BEGIN OF LINE,COMMENT 5(27) v_1 FOR FIELD p_max.    "#EC NEEDED
PARAMETERS p_max(2) TYPE n DEFAULT '50' OBLIGATORY.
SELECTION-SCREEN END OF LINE.

*---------------------------------------------------------------------*
INITIALIZATION.

  v_1 = 'Maximum of lines to display'.

*---------------------------------------------------------------------*
START-OF-SELECTION.

  PERFORM f_read_data.

  PERFORM f_display_data.

*---------------------------------------------------------------------*
*      Form  f_read_data
*---------------------------------------------------------------------*
FORM f_read_data.

  FIELD-SYMBOLS :
    <field>    TYPE ANY,
    <field2>   TYPE ANY,
    <header>   TYPE ANY,
    <header2>  TYPE ANY,
    <lt_data>  TYPE table.             " Data read from DB

  DATA:
    lp_struct  TYPE REF TO data,
    lp_struct2 TYPE REF TO data,
    lp_table   TYPE REF TO data,       " Pointer to dynamic table
    lp_table2  TYPE REF TO data,       " Pointer to dynamic table
    ls_lvc_cat TYPE lvc_s_fcat,
    lt_lvc_cat TYPE lvc_t_fcat.        " Field catalog

* First column
  CLEAR ls_lvc_cat.
  ls_lvc_cat-fieldname = 'MATNR'.
  ls_lvc_cat-ref_table = 'MARA'.
  APPEND ls_lvc_cat TO lt_lvc_cat.

* 2nd column
  CLEAR ls_lvc_cat.
  ls_lvc_cat-fieldname = 'MAKTX'.
  ls_lvc_cat-ref_table = 'MAKT'.
  APPEND ls_lvc_cat TO lt_lvc_cat.

* 3rd column
  CLEAR ls_lvc_cat.
  ls_lvc_cat-fieldname = 'MATKL'.
  ls_lvc_cat-ref_table = 'MARA'.
  APPEND ls_lvc_cat TO lt_lvc_cat.

* Create 1st internal table
  CALL METHOD cl_alv_table_create=>create_dynamic_table
    EXPORTING it_fieldcatalog = lt_lvc_cat
    IMPORTING ep_table = lp_table.

  ASSIGN lp_table->* TO <lt_data>.

* Read data into 1st internal table
  SELECT matnr maktx matkl
    INTO TABLE <lt_data>
    FROM v_matnr
      UP TO p_max ROWS
   WHERE matnr IN s_matnr.

* Create 2nd internal table
* Checkbox
  CLEAR ls_lvc_cat.
  ls_lvc_cat-fieldname = 'CHECKBOX'.
  APPEND ls_lvc_cat TO lt_lvc_cat.

* Table color
  CLEAR ls_lvc_cat.
  ls_lvc_cat-fieldname = 'TABCOLOR'.
  ls_lvc_cat-ref_table = 'CALENDAR_TYPE'.
  ls_lvc_cat-ref_field = 'COLTAB'.
  APPEND ls_lvc_cat TO lt_lvc_cat.

* Create 2nd internal table
  CALL METHOD cl_alv_table_create=>create_dynamic_table
    EXPORTING it_fieldcatalog = lt_lvc_cat
    IMPORTING ep_table = lp_table2.

  ASSIGN lp_table2->* TO <data>.

* Create structure = structure of the 1st internal table
  CREATE DATA lp_struct LIKE LINE OF <lt_data>.
  ASSIGN lp_struct->* TO <header>.

* Create structure = structure of the 2nd internal table
  CREATE DATA lp_struct2 LIKE LINE OF <data>.
  ASSIGN lp_struct2->* TO <header2>.

* Move data from 1st internal table --> 2nd internal table
  LOOP AT <lt_data> ASSIGNING <header>.

    DESCRIBE TABLE lt_lvc_cat.
    CLEAR <header2>.

*   Fill the internal to display <data>
    DO sy-tfill TIMES.
      READ TABLE lt_lvc_cat INTO ls_lvc_cat INDEX sy-index.
*     For each field of lt_lvc_cat.
      ASSIGN COMPONENT ls_lvc_cat-fieldname OF STRUCTURE <header>
                    TO <field>.
      IF sy-subrc NE 0. EXIT .ENDIF.
      ASSIGN COMPONENT ls_lvc_cat-fieldname OF STRUCTURE <header2>
                    TO <field2>.
      IF sy-subrc NE 0. EXIT .ENDIF.
      <field2> = <field>.
    ENDDO.

*   Modify color
    ASSIGN COMPONENT 'TABCOLOR' OF STRUCTURE <header2>
                  TO <field2>.
    IF sy-subrc EQ 0.
      PERFORM f_modify_color USING 'MAKTX' <field2>.
      PERFORM f_modify_color USING 'MATKL' <field2>.
    ENDIF.

    APPEND <header2> TO <data> .
  ENDLOOP.

ENDFORM.                    " f_read_data
*---------------------------------------------------------------------*
*      Form  F_DISPLAY_DATA
*---------------------------------------------------------------------*
FORM f_display_data.

* Macro definition
  DEFINE m_sort.
    add 1 to ls_sort-spos.
    ls_sort-fieldname = &1.
    ls_sort-down      = 'X'.
    append ls_sort to lt_sort.
  END-OF-DEFINITION.

  DATA:
    ls_layout   TYPE slis_layout_alv,
    lt_sort     TYPE slis_t_sortinfo_alv,
    ls_sort     TYPE slis_sortinfo_alv,
    ls_fieldcat TYPE slis_fieldcat_alv,
    lt_fieldcat TYPE slis_t_fieldcat_alv.  " Field catalog

* Build Fieldcatalog - First column
  CLEAR ls_fieldcat.
  ls_fieldcat-fieldname   = 'MATNR'.
  ls_fieldcat-ref_tabname = 'MARA'.
  ls_fieldcat-key  = 'X'.
  APPEND ls_fieldcat TO lt_fieldcat.

* Build Fieldcatalog - 2nd column
  CLEAR ls_fieldcat.
  ls_fieldcat-fieldname   = 'MAKTX'.
  ls_fieldcat-ref_tabname = 'MAKT'.
  APPEND ls_fieldcat TO lt_fieldcat.

* Build Fieldcatalog - 3rd column
  CLEAR ls_fieldcat.
  ls_fieldcat-fieldname   = 'MATKL'.
  ls_fieldcat-ref_tabname = 'MARA'.
  APPEND ls_fieldcat TO lt_fieldcat.

* Layout
  ls_layout-zebra = 'X'.
  ls_layout-colwidth_optimize = 'X'.
  ls_layout-box_fieldname = 'CHECKBOX'.
  ls_layout-coltab_fieldname = 'TABCOLOR'.

  m_sort 'MATNR'.                      " Sort by creation date

* Display data
  CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'
       EXPORTING
            is_layout   = ls_layout
            it_fieldcat = lt_fieldcat
            it_sort     = lt_sort
       TABLES
            t_outtab    = <data>.

ENDFORM.                               " F_DISPLAY_DATA
*---------------------------------------------------------------------*
*      Form  F_modify_color
*---------------------------------------------------------------------*
FORM f_modify_color USING u_fieldname TYPE lvc_fname
                          ut_tabcolor TYPE table.

  DATA:
    l_rnd_value TYPE datatype-integer2,
    ls_tabcolor TYPE lvc_s_scol.

* Random value
  CALL FUNCTION 'RANDOM_I2'
       EXPORTING
            rnd_min   = 0
            rnd_max   = 3
       IMPORTING
            rnd_value = l_rnd_value.

  CLEAR ls_tabcolor.
  ls_tabcolor-fname = u_fieldname.

  CASE l_rnd_value.
    WHEN 0.
      ls_tabcolor-color-col = 1.       " Blue.
      ls_tabcolor-color-int = 0.
      ls_tabcolor-color-inv = 0.
    WHEN 1.
      ls_tabcolor-color-col = 3.       " Yellow.
      ls_tabcolor-color-int = 0.
      ls_tabcolor-color-inv = 0.
    WHEN 2.
      ls_tabcolor-color-col = 5.       " Green.
      ls_tabcolor-color-int = 0.
      ls_tabcolor-color-inv = 0.
    WHEN 3.
      ls_tabcolor-color-col = 6.       " Red.
      ls_tabcolor-color-int = 0.
      ls_tabcolor-color-inv = 0.
  ENDCASE.

  INSERT ls_tabcolor INTO TABLE ut_tabcolor.

ENDFORM.                               " F_MODIFY_COLOR

I think it definetly solve your problem

Reward all helpfull answers

Regards

Pavan