on 07-04-2007 6:07 AM
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?
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.
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.
my que is not answered
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.
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
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.