2009 Feb 13 10:06 AM
Hi Experts,
I have requirement in interactive report that the selection of next list should be based on column selction but not on line selection. For exapmle I have a basic List wich shows data from EKPO table where for example i have displayed 3-4 fields (e.g. MATNR, WERKS...). Now only when user will duble click on any MATNR column/field then I would have to display the details of this material (which is from MARA table). But if user will double click other than this MTNR field/column then it should not work.
In simple I need selection criteria based on column but not on ROW where we used HIDE statement while displaying content.
Please help me give sample code for above logic OR help me to explain how can i achieve this?
Thanks in advance..<<text removed>>
Edited by: Matt on Feb 16, 2009 10:09 AM - do not offer points
2009 Feb 13 10:11 AM
****************DEFINGING TABLES*******************
TABLES : kna1.
************DEFINING TYPES***********************
TYPES : BEGIN OF ty_kna1,
kunnr TYPE kna1-kunnr, "Customer Number
land1 TYPE kna1-land1, "Country Key
name1 TYPE kna1-name1, "Name
ort01 TYPE kna1-ort01, "City
telf1 TYPE kna1-telf1, "First telephone number
END OF ty_kna1.
TYPES : BEGIN OF ty_vbak,
ernam TYPE vbak-ernam, "Name of Person who Created the Object
kunnr TYPE vbak-kunnr, "Sold-to party
vbeln TYPE vbak-vbeln, "Sales Document
auart TYPE vbak-auart, "Sales Document Type
netwr TYPE vbak-netwr, "Net Value of the Sales Order
vkorg TYPE vbak-vkorg, "Sales Organization
END OF ty_vbak.
*************DEFINING WORK AREAS AND ITs*************
DATA : wa_kna1 TYPE ty_kna1,
it_kna1 TYPE STANDARD TABLE OF ty_kna1.
DATA : wa_vbak TYPE ty_vbak,
it_vbak TYPE STANDARD TABLE OF ty_vbak.
DATA : w_field1(20) TYPE c,
w_value1(25) TYPE c.
DATA : w_field2(20) TYPE c,
w_value2(10) TYPE c.
**************SELECTION SCREEN*************
SELECTION-SCREEN : BEGIN OF BLOCK b1 WITH FRAME TITLE text-001.
SELECT-OPTIONS : so_kunnr FOR kna1-kunnr.
SELECTION-SCREEN : END OF BLOCK b1.
****************INITIALIZATION EVENT**************
INITIALIZATION.
so_kunnr-sign = 'I'.
so_kunnr-option = 'BT'.
so_kunnr-low = '1'.
so_kunnr-high = '2000'.
APPEND so_kunnr.
***************START-OF-SELECTION EVENT*************
START-OF-SELECTION.
PERFORM data_kna1.
**************DISPLAY DATA**************************
END-OF-SELECTION.
PERFORM display_kna1.
****************TOP-OF-PAGE EVENT*******************
TOP-OF-PAGE.
PERFORM p_top.
************TOP-OF-PAGE DURING LINE-SELECTION********
TOP-OF-PAGE DURING LINE-SELECTION.
PERFORM p_top1.
****************END-OF-PAGE EVENT*********************
END-OF-PAGE.
PERFORM p_endofpage.
***************AT LINE-SELECTION EVENT**************
AT LINE-SELECTION.
CASE sy-lsind.
WHEN '1'.
SET PF-STATUS 'ZIBM_MENU_VBAK'.
PERFORM p_heading_vbak.
PERFORM data_vbak.
GET CURSOR FIELD w_field1 VALUE w_value1.
IF w_field1 = 'WA_KNA1-KUNNR'.
PERFORM display_vbak.
ELSE.
MESSAGE e004(zhnc).
ENDIF.
ENDCASE.
*&---------------------------------------------------------------------*
*& Form DATA_KNA1
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
* --> p1 text
* <-- p2 text
*----------------------------------------------------------------------*
FORM data_kna1 .
SELECT kunnr
land1
name1
ort01
telf1
FROM kna1
INTO TABLE it_kna1
WHERE kunnr IN so_kunnr.
ENDFORM. " DATA_KNA1
*&---------------------------------------------------------------------*
*& Form DISPLAY_KNA1
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
* --> p1 text
* <-- p2 text
*----------------------------------------------------------------------*
FORM display_kna1 .
LOOP AT it_kna1 INTO wa_kna1.
WRITE : /1 wa_kna1-kunnr,
15 wa_kna1-land1,
25 wa_kna1-name1,
55 wa_kna1-ort01,
80 wa_kna1-telf1.
HIDE wa_kna1-kunnr.
ENDLOOP.
DATA : lin TYPE i.
lin = sy-linct - sy-linno.
RESERVE lin LINES.
ENDFORM. " DISPLAY_KNA1
*&---------------------------------------------------------------------*
*& Form P_TOP
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
* --> p1 text
* <-- p2 text
*----------------------------------------------------------------------*
FORM p_top .
ULINE.
FORMAT COLOR 3 INTENSIFIED.
WRITE : /1 'CUSTOMER NO.',
15 'COUNTRY',
25 'NAME',
55 'CITY',
80 'TELEPHONE'.
FORMAT COLOR OFF.
ULINE.
ENDFORM. " P_TOP
*&---------------------------------------------------------------------*
*& Form P_TOP1
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
* --> p1 text
* <-- p2 text
*----------------------------------------------------------------------*
FORM p_top1 .
WRITE : /30 'CUSTOMER WISE SALES REPORT'.
ULINE.
ENDFORM. " P_TOP1
*&---------------------------------------------------------------------*
*& Form P_ENDOFPAGE
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
* --> p1 text
* <-- p2 text
*----------------------------------------------------------------------*
FORM p_endofpage .
ULINE.
WRITE : /30 'PAGE NO:', sy-pagno.
ULINE.
ENDFORM. " P_ENDOFPAGE
*&---------------------------------------------------------------------*
*& Form P_HEADING_VBAK
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
* --> p1 text
* <-- p2 text
*----------------------------------------------------------------------*
FORM p_heading_vbak .
WRITE : /1 'ORDER NO',
15 'NAME',
30 'DOC. TYPE',
50 'NET VALUE',
65 'SALES ORGANIZATION'.
ULINE.
ENDFORM. " P_HEADING_VBAK
*&---------------------------------------------------------------------*
*& Form DATA_VBAK
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
* --> p1 text
* <-- p2 text
*----------------------------------------------------------------------*
FORM data_vbak .
SELECT ernam
kunnr
vbeln
auart
netwr
vkorg
FROM vbak
INTO TABLE it_vbak
WHERE kunnr = wa_kna1-kunnr.
SORT it_vbak.
ENDFORM. " DATA_VBAK
*&---------------------------------------------------------------------*
*& Form DISPLAY_VBAK
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
* --> p1 text
* <-- p2 text
*----------------------------------------------------------------------*
FORM display_vbak .
IF it_vbak IS INITIAL.
MESSAGE e001(zhnc).
ELSE.
LOOP AT it_vbak INTO wa_vbak.
AT FIRST.
WRITE :/ 'SALES ORDER HEADER DETAILS FOR CUSTOMER :', wa_kna1-kunnr.
ULINE.
ENDAT.
AT NEW ernam.
WRITE : /15 wa_vbak-ernam.
ENDAT.
WRITE : /1 wa_vbak-vbeln,
30 wa_vbak-auart,
40 wa_vbak-netwr,
65 wa_vbak-vkorg.
AT END OF ernam.
SUM.
FORMAT COLOR 3 INTENSIFIED.
WRITE : /26 'SUBTOTAL IS :', wa_vbak-netwr.
FORMAT COLOR OFF.
ENDAT.
AT LAST.
SUM.
FORMAT COLOR 5 INTENSIFIED.
WRITE : /23 'GRAND TOTAL IS :', wa_vbak-netwr.
FORMAT COLOR OFF.
ENDAT.
HIDE wa_vbak-vbeln.
ENDLOOP.
ENDIF.
ENDFORM. " DISPLAY_VBAK
2009 Feb 13 10:11 AM
****************DEFINGING TABLES*******************
TABLES : kna1.
************DEFINING TYPES***********************
TYPES : BEGIN OF ty_kna1,
kunnr TYPE kna1-kunnr, "Customer Number
land1 TYPE kna1-land1, "Country Key
name1 TYPE kna1-name1, "Name
ort01 TYPE kna1-ort01, "City
telf1 TYPE kna1-telf1, "First telephone number
END OF ty_kna1.
TYPES : BEGIN OF ty_vbak,
ernam TYPE vbak-ernam, "Name of Person who Created the Object
kunnr TYPE vbak-kunnr, "Sold-to party
vbeln TYPE vbak-vbeln, "Sales Document
auart TYPE vbak-auart, "Sales Document Type
netwr TYPE vbak-netwr, "Net Value of the Sales Order
vkorg TYPE vbak-vkorg, "Sales Organization
END OF ty_vbak.
*************DEFINING WORK AREAS AND ITs*************
DATA : wa_kna1 TYPE ty_kna1,
it_kna1 TYPE STANDARD TABLE OF ty_kna1.
DATA : wa_vbak TYPE ty_vbak,
it_vbak TYPE STANDARD TABLE OF ty_vbak.
DATA : w_field1(20) TYPE c,
w_value1(25) TYPE c.
DATA : w_field2(20) TYPE c,
w_value2(10) TYPE c.
**************SELECTION SCREEN*************
SELECTION-SCREEN : BEGIN OF BLOCK b1 WITH FRAME TITLE text-001.
SELECT-OPTIONS : so_kunnr FOR kna1-kunnr.
SELECTION-SCREEN : END OF BLOCK b1.
****************INITIALIZATION EVENT**************
INITIALIZATION.
so_kunnr-sign = 'I'.
so_kunnr-option = 'BT'.
so_kunnr-low = '1'.
so_kunnr-high = '2000'.
APPEND so_kunnr.
***************START-OF-SELECTION EVENT*************
START-OF-SELECTION.
PERFORM data_kna1.
**************DISPLAY DATA**************************
END-OF-SELECTION.
PERFORM display_kna1.
****************TOP-OF-PAGE EVENT*******************
TOP-OF-PAGE.
PERFORM p_top.
************TOP-OF-PAGE DURING LINE-SELECTION********
TOP-OF-PAGE DURING LINE-SELECTION.
PERFORM p_top1.
****************END-OF-PAGE EVENT*********************
END-OF-PAGE.
PERFORM p_endofpage.
***************AT LINE-SELECTION EVENT**************
AT LINE-SELECTION.
CASE sy-lsind.
WHEN '1'.
SET PF-STATUS 'ZIBM_MENU_VBAK'.
PERFORM p_heading_vbak.
PERFORM data_vbak.
GET CURSOR FIELD w_field1 VALUE w_value1.
IF w_field1 = 'WA_KNA1-KUNNR'.
PERFORM display_vbak.
ELSE.
MESSAGE e004(zhnc).
ENDIF.
ENDCASE.
*&---------------------------------------------------------------------*
*& Form DATA_KNA1
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
* --> p1 text
* <-- p2 text
*----------------------------------------------------------------------*
FORM data_kna1 .
SELECT kunnr
land1
name1
ort01
telf1
FROM kna1
INTO TABLE it_kna1
WHERE kunnr IN so_kunnr.
ENDFORM. " DATA_KNA1
*&---------------------------------------------------------------------*
*& Form DISPLAY_KNA1
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
* --> p1 text
* <-- p2 text
*----------------------------------------------------------------------*
FORM display_kna1 .
LOOP AT it_kna1 INTO wa_kna1.
WRITE : /1 wa_kna1-kunnr,
15 wa_kna1-land1,
25 wa_kna1-name1,
55 wa_kna1-ort01,
80 wa_kna1-telf1.
HIDE wa_kna1-kunnr.
ENDLOOP.
DATA : lin TYPE i.
lin = sy-linct - sy-linno.
RESERVE lin LINES.
ENDFORM. " DISPLAY_KNA1
*&---------------------------------------------------------------------*
*& Form P_TOP
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
* --> p1 text
* <-- p2 text
*----------------------------------------------------------------------*
FORM p_top .
ULINE.
FORMAT COLOR 3 INTENSIFIED.
WRITE : /1 'CUSTOMER NO.',
15 'COUNTRY',
25 'NAME',
55 'CITY',
80 'TELEPHONE'.
FORMAT COLOR OFF.
ULINE.
ENDFORM. " P_TOP
*&---------------------------------------------------------------------*
*& Form P_TOP1
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
* --> p1 text
* <-- p2 text
*----------------------------------------------------------------------*
FORM p_top1 .
WRITE : /30 'CUSTOMER WISE SALES REPORT'.
ULINE.
ENDFORM. " P_TOP1
*&---------------------------------------------------------------------*
*& Form P_ENDOFPAGE
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
* --> p1 text
* <-- p2 text
*----------------------------------------------------------------------*
FORM p_endofpage .
ULINE.
WRITE : /30 'PAGE NO:', sy-pagno.
ULINE.
ENDFORM. " P_ENDOFPAGE
*&---------------------------------------------------------------------*
*& Form P_HEADING_VBAK
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
* --> p1 text
* <-- p2 text
*----------------------------------------------------------------------*
FORM p_heading_vbak .
WRITE : /1 'ORDER NO',
15 'NAME',
30 'DOC. TYPE',
50 'NET VALUE',
65 'SALES ORGANIZATION'.
ULINE.
ENDFORM. " P_HEADING_VBAK
*&---------------------------------------------------------------------*
*& Form DATA_VBAK
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
* --> p1 text
* <-- p2 text
*----------------------------------------------------------------------*
FORM data_vbak .
SELECT ernam
kunnr
vbeln
auart
netwr
vkorg
FROM vbak
INTO TABLE it_vbak
WHERE kunnr = wa_kna1-kunnr.
SORT it_vbak.
ENDFORM. " DATA_VBAK
*&---------------------------------------------------------------------*
*& Form DISPLAY_VBAK
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
* --> p1 text
* <-- p2 text
*----------------------------------------------------------------------*
FORM display_vbak .
IF it_vbak IS INITIAL.
MESSAGE e001(zhnc).
ELSE.
LOOP AT it_vbak INTO wa_vbak.
AT FIRST.
WRITE :/ 'SALES ORDER HEADER DETAILS FOR CUSTOMER :', wa_kna1-kunnr.
ULINE.
ENDAT.
AT NEW ernam.
WRITE : /15 wa_vbak-ernam.
ENDAT.
WRITE : /1 wa_vbak-vbeln,
30 wa_vbak-auart,
40 wa_vbak-netwr,
65 wa_vbak-vkorg.
AT END OF ernam.
SUM.
FORMAT COLOR 3 INTENSIFIED.
WRITE : /26 'SUBTOTAL IS :', wa_vbak-netwr.
FORMAT COLOR OFF.
ENDAT.
AT LAST.
SUM.
FORMAT COLOR 5 INTENSIFIED.
WRITE : /23 'GRAND TOTAL IS :', wa_vbak-netwr.
FORMAT COLOR OFF.
ENDAT.
HIDE wa_vbak-vbeln.
ENDLOOP.
ENDIF.
ENDFORM. " DISPLAY_VBAK
2009 Feb 13 10:16 AM
Hi Prashant,
You can use SET CURSOR FIELD (Fieldname) statement to set the cursor on that particular field,
Then with GET CURSOR FIELD statement, on any particular condition you can make your report interactive by using:
CASE Fieldname.
{your code
}
ENDCASE.
Hope it helps
Regrds
Mansi
2009 Feb 13 11:40 AM
Thank you so much for your help...I think i could manage to do it now by "get cursor field".
| User | Count |
|---|---|
| 4 | |
| 2 | |
| 2 | |
| 1 | |
| 1 | |
| 1 | |
| 1 | |
| 1 | |
| 1 | |
| 1 |