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

reading the record and displaying when u select it using checkbox

Former Member
0 Likes
679

hi,

how to read the particilar record and display it in a popup screen when u select it using checkbox and then press 'DISP' button in alv(normal alv not with oops concepts).

like i select a row which is checked (checkbox) it and i have to read that particular record and display (value of keyfield say vbeln) details in a popup screen.

hi,

how to read the particilar record and display it in a popup screen when u select it using checkbox and then press 'DISP' button in alv(normal alv not with oops concepts).

like i select a row which is checked (checkbox) it and i have to read that particular record and display (value of keyfield say vbeln) details in a popup screen.

3 REPLIES 3
Read only

Former Member
0 Likes
648

Hi

In the DO..ENDDO loop read the line and from SY-LISEL select the records when the CHECKBOX = X and put those records into a sepearate int table and with them process the records further

see the sample code

DO.

CLEAR v_chk.

READ LINE sy-index FIELD VALUE v_chk.

IF sy-subrc NE 0.

EXIT.

ENDIF.

IF v_chk = 'X'.

lv_prof = sy-lisel+5(12).

it_itab-role = sy-lisel+85(30).

it_itab-profi = lv_prof.

APPEND it_itab.

CLEAR it_itab.

ENDIF.

ENDDO.

Regards

Anji

Read only

0 Likes
648

hi,

go through the faloowing code.

this for normal popup.


*&---------------------------------------------------------------------*
*& Report  ZGS_ALV_POPUP_2_SELECT
*&
*&---------------------------------------------------------------------*
*&
*&
*&---------------------------------------------------------------------*

REPORT  ZGS_ALV_POPUP_2_SELECT.

TYPE-POOLS: slis.

PARAMETERS: p_title TYPE sy-title default 'Sales Document:item data'.

DATA: itab TYPE vbap OCCURS 0 WITH HEADER LINE,
      selfield TYPE slis_selfield.

START-OF-SELECTION.

  SELECT *
    FROM vbap
    INTO TABLE itab
    UP TO 20 ROWS.


  CALL FUNCTION 'REUSE_ALV_POPUP_TO_SELECT'
       EXPORTING
            i_title                 = p_title
*           I_SELECTION             = 'X'
           I_ZEBRA                 = 'X '
*           I_SCREEN_START_COLUMN   = 0
*           I_SCREEN_START_LINE     = 0
*           I_SCREEN_END_COLUMN     = 0
*           I_SCREEN_END_LINE       = 0
*           I_CHECKBOX_FIELDNAME    =
*           I_LINEMARK_FIELDNAME    =
*           I_SCROLL_TO_SEL_LINE    = 'X'
            i_tabname               = 'ITAB'
            i_structure_name        = 'VBAP'
*           IT_FIELDCAT             =
*           IT_EXCLUDING            =
*           I_CALLBACK_PROGRAM      =
*           I_CALLBACK_USER_COMMAND =
*            is_private              =
     IMPORTING
            es_selfield             = selfield
*            e_exit                  =
       TABLES
            t_outtab                = itab
       EXCEPTIONS
            program_error           = 1
            OTHERS                  = 2.

  IF sy-subrc <> 0.
    MESSAGE i000(8I) WITH sy-subrc.
  ENDIF.

  WRITE:
         /  'Table Index : ', 20 selfield-tabindex,
        /  'Table Name  : ', 15 selfield-tabname,
        /  'Field Name  : ', 15 selfield-fieldname,
        /  'Table-Field : ', 15 selfield-sel_tab_field,
        /  'Field Value : ', 15 selfield-value.

the falowing code is for how to put checkbox and how to display the selected recods.you combine both codes.


*&---------------------------------------------------------------------*
*& Report  ZRP_SALES
*&
*&---------------------------------------------------------------------*
*&
*&
*&---------------------------------------------------------------------*

REPORT  ZRP_SALES NO STANDARD PAGE HEADING.

DATA: TEMP_DATE_STR TYPE STRING.
*DATA: TEMP_NETP LIKE VBAK-NETWR.


DATA: TEMP_NETWR(10).
*DATA: TEMP_VBELN LIKE VBAK-VBELN.

DATA: CHECK TYPE C VALUE ' '.
*DATA: WA_VBELN LIKE VBAK-VBELN.

DATA: TEMP_DATE LIKE VBAK-ERDAT.
*DATA: TEMP_NETP_STR TYPE STRING.

DATA:FNAM(20), FVAL(20).

TYPES: BEGIN OF MY_VBAK,
       VTWEG TYPE VTWEG,
       VKORG TYPE VKORG,
       SPART TYPE SPART,
       NETWR TYPE NETWR_AK,
       VBELN TYPE VBELN_VA,
       ERDAT TYPE ERDAT,
       END OF MY_VBAK.

DATA: IT_VBAK TYPE MY_VBAK OCCURS 0 WITH HEADER LINE.

DATA: WA_VBAK TYPE MY_VBAK.
DATA: V_VBELN TYPE VBELN,
      V_ERDAT TYPE ERDAT.
SELECT-OPTIONS:S_VBELN FOR V_VBELN,
               S_ERDAT FOR V_ERDAT.

AT SELECTION-SCREEN.

*Check for Sales Order number to be non-initial.
  IF  S_VBELN IS INITIAL.

*Checking for Date to be non-nitial.
    IF  S_ERDAT IS INITIAL.
      MESSAGE E003(ZRP_MSG). " Please enter either SO number or Date.

    ELSE.
*Validating the right low values for Date select option
      SELECT SINGLE ERDAT
             FROM VBAK INTO TEMP_DATE
             WHERE VBELN EQ S_VBELN-LOW OR ERDAT EQ S_ERDAT-LOW.

      IF SY-SUBRC NE 0.
        MESSAGE E004(ZRP_MSG).
      ENDIF.

*Validating the right high values for Date select option
      SELECT SINGLE ERDAT
              FROM VBAK INTO TEMP_DATE
              WHERE ERDAT EQ S_ERDAT-HIGH OR VBELN EQ S_VBELN-HIGH.

      IF SY-SUBRC NE 0.
        MESSAGE E005(ZRP_MSG).
      ENDIF.

    ENDIF.

  ELSE.

*Checking for Date to be non-nitial.
    IF  S_ERDAT IS NOT INITIAL.
      MESSAGE E003(ZRP_MSG). " Please enter either SO number or Date.
    ENDIF.

*Validating the right low values
    SELECT SINGLE VBELN
           FROM VBAK INTO S_VBELN
           WHERE VBELN EQ S_VBELN-LOW.

    IF SY-SUBRC NE 0.
      MESSAGE E001(ZRP_MSG).
    ENDIF.


*Validating the right high values
    IF S_VBELN-HIGH IS NOT INITIAL.

      SELECT SINGLE VBELN
              FROM VBAK INTO S_VBELN
              WHERE VBELN EQ S_VBELN-HIGH.

      IF SY-SUBRC NE 0.
        MESSAGE E002(ZRP_MSG).
      ENDIF.

    ENDIF.

  ENDIF.


START-OF-SELECTION.

*First Screen.

  SET PF-STATUS 'DISP'.


  IF S_VBELN IS NOT INITIAL.
    SELECT   VTWEG VKORG SPART NETWR VBELN ERDAT
           FROM VBAK
           INTO TABLE IT_VBAK
           WHERE VBELN IN S_VBELN.
  ENDIF.

  IF S_ERDAT IS NOT INITIAL.
    SELECT  VTWEG VKORG SPART NETWR VBELN ERDAT
           FROM VBAK
           INTO TABLE IT_VBAK
           WHERE ERDAT IN S_ERDAT.
  ENDIF.


  SORT IT_VBAK BY VKORG VTWEG SPART.

END-OF-SELECTION.

  LOOP AT IT_VBAK.

    MOVE IT_VBAK-NETWR TO TEMP_NETWR.
    MOVE IT_VBAK-ERDAT TO TEMP_DATE.

    WRITE:/6 CHECK AS CHECKBOX.

    FORMAT COLOR 1.
    WRITE: IT_VBAK-VBELN UNDER 'SALES ORDER NO.' .
    WRITE: IT_VBAK-ERDAT UNDER 'DATE'.
    FORMAT COLOR OFF.

    FORMAT COLOR 2.
    WRITE: TEMP_NETWR UNDER 'NET PRICE'.
    FORMAT COLOR OFF."TEMP_NETWR,

    FORMAT COLOR 3.
    WRITE:IT_VBAK-VKORG UNDER 'SALES ORG',
          IT_VBAK-VTWEG UNDER 'DIST CHANNEL',
          IT_VBAK-SPART UNDER 'DIVISION'.
    FORMAT COLOR OFF.


    SKIP 1.

*FOR SUBTOTALS
    AT END OF SPART.
      SUM.
      FORMAT COLOR 5.
      WRITE:/6 'SUB TOTOAL OF NET PRICE IS :  '.
      WRITE: 32 IT_VBAK-NETWR CURRENCY 'INR'.
      FORMAT COLOR OFF.
      SKIP 2.
    ENDAT.

*FOR GRAND TOTALS
    AT LAST.
      SUM.
      FORMAT COLOR 6.
      WRITE:/6 'GRAND TOTOAL OF NET PRICE IS :  ',
      32 IT_VBAK-NETWR CURRENCY 'INR'.

      FORMAT COLOR 6.

    ENDAT.
  ENDLOOP.

TOP-OF-PAGE.
  FORMAT COLOR  6.
  WRITE:/8    'SALES ORDER NO.',
       27   'DATE',
       42   'NET PRICE',
       57   'SALES ORG',
       70   'DIST CHANNEL',
       87   'DIVISION'.

  FORMAT COLOR OFF.
  SKIP 1.

*WHEN SALES ORDER IS SELECTED
AT LINE-SELECTION.
  CASE :SY-LSIND.

    WHEN '2'.
      GET CURSOR FIELD FNAM VALUE FVAL.

      IF FNAM <> 'WA_VBAK-VBELN'.
        MESSAGE E006(ZRP_MSG).

      ELSE.
        SET PARAMETER ID 'MAT' FIELD FVAL.
        CALL TRANSACTION 'MM02' AND SKIP FIRST SCREEN.

  ENDIF.
    ENDCASE.

*WHEN CLICKED ON PUSH BUTTON IN THE APPLICATION BAR
AT USER-COMMAND.

  CASE:SY-UCOMM.

    WHEN 'DISP'.
      DO.
        CLEAR CHECK.
        CLEAR: WA_VBAK,TEMP_DATE_STR.


        READ LINE SY-INDEX FIELD VALUE CHECK
           IT_VBAK-VTWEG INTO WA_VBAK-VTWEG
*           IT_VBAK-NETWR INTO TEMP_NETP_STR
           IT_VBAK-VBELN INTO WA_VBAK-VBELN
           IT_VBAK-ERDAT INTO TEMP_DATE_STR
           IT_VBAK-VKORG INTO WA_VBAK-VKORG
           IT_VBAK-SPART INTO WA_VBAK-SPART.

        IF SY-SUBRC <> 0.
          EXIT.

        ELSEIF CHECK = 'X'.

          FORMAT COLOR 1.
          WRITE: 8 WA_VBAK-VBELN HOTSPOT. "UNDER 'SALES ORDER NO'
          WRITE: 25 TEMP_DATE_STR." UNDER 'DATE'.
          FORMAT COLOR OFF.

*       FORMAT COLOR 2.
*                   WRITE: 44 TEMP_NETP_STR." UNDER 'NET PRICE'.
*       FORMAT COLOR OFF.

          FORMAT COLOR 3.
          WRITE:44 WA_VBAK-VKORG," UNDER 'SALES ORG',
         59 WA_VBAK-VTWEG," UNDER 'DIST CHANNEL',
         72  WA_VBAK-SPART." UNDER 'DIVISION'.
          FORMAT COLOR OFF.

          SKIP 1.

        ENDIF.
      ENDDO.
  ENDCASE.


TOP-OF-PAGE DURING LINE-SELECTION.
  CASE:SY-LSIND.
    WHEN 1.
      FORMAT COLOR  6.
      WRITE:/8    'SALES ORDER NO.',
             25   'DATE',
*       44   'NET PRICE',
             44   'SALES ORG',
             58   'DIST CHANNEL',
             72   'DIVISION'.
      SKIP 1.
      FORMAT COLOR  OFF.

<b>if helpful reward some points.</b>

Message was edited by:

suredarreddy pulimamidi

Read only

varma_narayana
Active Contributor
0 Likes
648

hI..

Check this:

1. add one more field checkbox of length 1 to ur final internal tabel

2. in ur fieldcatalg add this line

wa_fcat-fieldname = 'CHECKBOx'.

wa_fcat-checkbox = 'X'.

wa_fcat-outputlen = '1'.

wa_fcat-col_pos = '1'.

append wa_fcat to it_fcat.

3.in ur layout , add this line

wa_layout-box_fieldname = 'CHECKBOX'.

4.In th USER_COMMAND subroutine of ur REUSE_ALV_GRID_DISpLAy FM

FORM USER_COMMAND USING P_UCOMM TYPE SY-UCOMM

P_SELFLD TYPE SLIS_SELFIELD.

case p_ucomm.

when 'DISP'.

  • write ur code her

Endform.

REWARD IF HELPFUL.