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

Interactive List based on column selection but not row

Former Member
0 Likes
829

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

1 ACCEPTED SOLUTION
Read only

Former Member
0 Likes
632
****************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

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

3 REPLIES 3
Read only

Former Member
0 Likes
633
****************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
Read only

Former Member
0 Likes
632

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

Read only

0 Likes
632

Thank you so much for your help...I think i could manage to do it now by "get cursor field".