Check boxes in ALV report

Can any one please give me any test program for displaying checkboxes in the ALV Report Layout .
Points will be rewarded even for helpfull answers.
Thanks ,
Veerendranath Maddula.

Hi Veerendranath,
below is the sample code for that,
TYPES:
       BEGIN OF TY_VB_AKAP,
         VBELN      TYPE VBELN_VA,                       "Sales Document
         KUNNR      TYPE KUNAG,                          "Sold-to party
         POSNR      TYPE POSNR_VA,                       "Item Number
         MATNR      TYPE MATNR,                          "Material Number
         PMATN      TYPE PMATN,                          "Pricing Reference Material/Newly Created Material
         KWMENG     TYPE KWMENG,                         "Cumulative Order Qty. in Sales Units
         VRKME      TYPE VRKME,                          "Sales Unit
         KZWI1      TYPE KZWI1,                          "Sub Total 1 from pricing procedure for condition
         VKAUS      TYPE ABRVW,                          "Usage Indicator
         WAERK      TYPE WAERK,                          "SD Document Currency
       END   OF TY_VB_AKAP,
       BEGIN OF TY_MARA,
         MATNR      TYPE MATNR,                          "Material Number
         ZZTECHSPEC TYPE ZTECHSPEC,                      "Technical Specification
       END   OF TY_MARA,
       BEGIN OF TY_MVKE,
         MATNR      TYPE MATNR,                          "Material Number
         VKORG      TYPE VKORG,                          "Sales Organization
         VTWEG      TYPE VTWEG,                          "Distribution Channel
         KONDM      TYPE KONDM,                          "Material Pricing Group
*--Begin of changes for the change request 2007096--26th July 2007--
         VRKME      TYPE VRKME,                          "Sales Unit according to the Material Master
*--End   of changes for the change request 2007096--26th July 2007--
       END   OF TY_MVKE,
       BEGIN OF TY_VBKD,
         VBELN      TYPE VBELN_VA,                       "Sales Document
         POSNR      TYPE POSNR_VA,                       "Item Number
         BSTKD_E    TYPE BSTKD_E,                        "Used to capture New Material Number
       END   OF TY_VBKD,
       BEGIN OF TY_IHEADER,
         SELECT(1)  TYPE C,                              "Check Box
         VBELN      TYPE VBELN,                          "Sales Document
         KUNNR      TYPE KUNAG,                          "Sold-to Party
       END   OF TY_IHEADER,
       BEGIN OF TY_MESSAGE1,
        VKORG     TYPE VKORG,                            "Sales Organization
        VTWEG     TYPE VTWEG,                            "Distribution Channel
        KUNNR     TYPE KUNAG,                            "Customer number
        KONDM     TYPE KONDM,                            "Material pricing group
        ZCOUNT(2) TYPE N,                                "Zcount
        MSGTYP(1) TYPE C,                                "Message type
        TEXT      TYPE STRING,                           "Message text
       END   OF TY_MESSAGE1,
*--Begin of changes for the change request 2007106--25th July 2007--
       BEGIN OF TY_MESSAGE1_2,
        VKORG     TYPE VKORG,                            "Sales Organization
        VTWEG     TYPE VTWEG,                            "Distribution Channel
        KUNNR     TYPE KUNAG,                            "Customer number
        KONDM     TYPE KONDM,                            "Material pricin
        MSGTYP(1) TYPE C,                                "Message type
        TEXT      TYPE STRING,                           "Message text
       END   OF TY_MESSAGE1_2,
*--End   of changes for the change request 2007106--25th July 2007--
       BEGIN OF TY_MESSAGE2,
        VKORG     TYPE VKORG,                            "Sales Organization
        VTWEG     TYPE VTWEG,                            "Distribution Channel
        KUNNR     TYPE KUNAG,                            "Customer number
        MATNR     TYPE MATNR,                            "Material Number
        MSGTYP(1) TYPE C,                                "Message type
        TEXT      TYPE STRING,                           "Message text
       END   OF TY_MESSAGE2,
       BEGIN OF TY_IFINAL,
         VBELN      TYPE VBELN_VA,                       "Sales Document
         KWMENG     TYPE KWMENG,                         "Cumulative Order Qty. in Sales Units
         POSNR      TYPE POSNR_VA,                       "Item Number
         KUNNR      TYPE KUNAG,                          "Sold-to party
         MATNR      TYPE MATNR,                          "Material Number
         VRKME      TYPE VRKME,                          "Sales Unit
         KZWI1      TYPE KZWI1,                          "Sub Total 1 from pricing procedure for condition
         VKAUS      TYPE ABRVW,                          "Usage Indicator
         ZZTECHSPEC TYPE ZTECHSPEC,                      "Technical Specification
         PMATN      TYPE PMATN,                          "Pricing Reference Material/Newly Created Material
         KONDM      TYPE KONDM,                          "Material Pricing Group
*--Begin of changes for the change request 2007096--26th July 2007--
         WAERK      TYPE WAERK,                          "SD Document Currency
*--End   of changes for the change request 2007096--26th July 2007--
       END   OF TY_IFINAL,
       BEGIN OF TY_ACC1,
         VBELN      TYPE VBELN_VA,                       "Sales Document
         KUNNR      TYPE KUNAG,                          "Sold-to party
         KONDM      TYPE KONDM,                          "Material Pricing Group
         ZCOUNT(2)  TYPE N,                              "ZCount indicator
         KSTBM      TYPE KSTBM,                          "Quantity
         VRKME      TYPE VRKME,                          "Sales Unit
         ZZTECHSPEC TYPE ZTECHSPEC,                      "Technical Specification
         KZWI1      TYPE KZWI1,                          "Sub Total 1 from pricing procedure for condition
         ERROR(1)   TYPE N,                              "Error Field
*--Begin of changes for the change request 2007096--26th July 2007--
         WAERK      TYPE WAERK,                          "SD Document Currency
*--End   of changes for the change request 2007096--26th July 2007--
       END   OF TY_ACC1,
Important Note : Earlier there were only three accesses and hence this below type was coded as TY_ACC2 depicting
the type for internal table as a holder of data for second access sequence, but later a new access sequence was
introduced and was introduced as the second access by itself and hence the sequence which was previously considered
as second access is going to be third access sequence in reality. The naming standards that are going to be followed
for the newly introduced access sequence would be XXX_1_2. (For Change request 2007106)
       BEGIN OF TY_ACC2,
         VBELN      TYPE VBELN_VA,                       "Sales Document
         KUNNR      TYPE KUNAG,                          "Sold-to party
         MATNR      TYPE MATNR,                          "Material Number
         KSTBM      TYPE KSTBM,                          "Cumulative Order Qty. in Sales Units
         ZZTECHSPEC TYPE ZTECHSPEC,                      "Technical Specification
         VRKME      TYPE VRKME,                          "Sales Unit
         KZWI1      TYPE KZWI1,                          "Sub Total 1 from pricing procedure for condition
         ERROR(1)   TYPE N,                              "Error field
*--Begin of changes for the change request 2007096--26th July 2007--
         WAERK      TYPE WAERK,                          "SD Document Currency
*--End   of changes for the change request 2007096--26th July 2007--
       END   OF TY_ACC2,
*--Begin of changes for the change request 2007106--24th July 2007--
       BEGIN OF TY_ACC1_2,
         VBELN      TYPE VBELN_VA,                       "Sales Document
         KUNNR      TYPE KUNAG,                          "Sold-to party
         KONDM      TYPE KONDM,                          "Material Pricing Group
         KSTBM      TYPE KSTBM,                          "Quantity
         VRKME      TYPE VRKME,                          "Sales Unit
         ZZTECHSPEC TYPE ZTECHSPEC,                      "Technical Specification
         KZWI1      TYPE KZWI1,                          "Sub Total 1 from pricing procedure for condition
         ERROR(1)   TYPE N,                              "Error field
*--Begin of changes for the change request 2007096--26th July 2007--
         WAERK      TYPE WAERK,                          "SD Document Currency
*--End   of changes for the change request 2007096--26th July 2007--
       END   OF TY_ACC1_2,
*--End   of changes for the change request 2007106--24th July 2007--
*--Begin of changes for the change request 2007096--26th July 2007--
       BEGIN OF TY_T006,
         MSEHI      TYPE MSEHI,                          "Unit of Measurement
         ZAEHL      TYPE DZAEHL,                         "Numerator for conversion to SI unit
         NENNR      TYPE NENNR,                          "Denominator for conversion into SI unit
       END   OF TY_T006,
*--End   of changes for the change request 2007096--26th July 2007--
*--Begin of changes for the change request xxx--2nd Aug 2007--
*Types of MARM table
       BEGIN OF TY_MARM,
         MATNR TYPE MATNR,                               " Material Number
         MEINH TYPE LRMEI,                               " Alternative Unit of Measure
         UMREZ TYPE UMREZ,                               " Numerator for Conversion to Base UOM
         UMREN TYPE UMREN,                               " Denominator for Conversion to Base UOM
       END   OF TY_MARM.
*--End   of changes for the change request xxx--2nd Aug 2007--
   D A T A                                                           *
Internal Table Declarations
DATA: T_FIELDCATALOG TYPE SLIS_T_FIELDCAT_ALV,           "Fieldcatalog IT
      T_EVENTS       TYPE SLIS_T_EVENT,                  "Event IT
      T_HEADER       TYPE SLIS_T_LISTHEADER,             "Header IT
      T_VB_AKAP      TYPE STANDARD TABLE OF TY_VB_AKAP,  "To hold records from VBAK & VBAP Table
      T_MARA         TYPE STANDARD TABLE OF TY_MARA,     "To hold records from MARA Table
      T_MVKE         TYPE STANDARD TABLE OF TY_MVKE,     "To hold records from MVKE Table
      T_VBKD         TYPE STANDARD TABLE OF TY_VBKD,     "To hold records from VBKD Table
      T_IHEADER      TYPE STANDARD TABLE OF TY_IHEADER,  "To hold records from VBAK Table
      T_IFINAL       TYPE STANDARD TABLE OF TY_IFINAL,   "To hold cumulative data for ALV
      T_BDCDATA      TYPE STANDARD TABLE OF BDCDATA,     "IT for bdcdata
      T_BDCMSGCOLL   TYPE STANDARD TABLE OF BDCMSGCOLL,  "IT for error messages
      T_MESSAGE1     TYPE STANDARD TABLE OF TY_MESSAGE1, "IT for conditions1 messages
*--Begin of changes for the change request 2007106--25th July 2007--
      T_MESSAGE1_2   TYPE STANDARD TABLE OF TY_MESSAGE1_2,"ITfor conditions1_2 messages
*--End   of changes for the change request 2007106--25th July 2007--
      T_MESSAGE2     TYPE STANDARD TABLE OF TY_MESSAGE2, "IT for conditions2 messages
      T_ACC2         TYPE STANDARD TABLE OF TY_ACC2,     "IT for holding data for Second Access Sequence Processing
      T_ACC1         TYPE STANDARD TABLE OF TY_ACC1,     "IT for holding data for First Access Sequence Processing
      T_SELECT       TYPE STANDARD TABLE OF RSPARAMS,    "IT for holding data related to the selection screen
*--Begin of changes for the change request 2007106--24th July 2007--
      T_ACC1_2       TYPE STANDARD TABLE OF TY_ACC1_2,   "IT for holding data for new intermediate Access Sequence
*--End   of changes for the change request 2007106--24th July 2007--
*--Begin of changes for the change request 2007096--26th July 2007--
      T_T006         TYPE STANDARD TABLE OF TY_T006,     "IT for holding T006 Entries
*--End   of changes for the change request 2007096--26th July 2007--
*--Begin of changes for the change request xxx--2nd Aug 2007--
      T_MARM         TYPE STANDARD TABLE OF TY_MARM,     "IT for holding entries from MARM
*--End   of changes for the change request xxx--2nd Aug 2007--
Work area Declarations
      W_FIELDCATALOG TYPE SLIS_FIELDCAT_ALV,             "Fieldcatalog WA
      W_EVENT        TYPE SLIS_ALV_EVENT,                "Event WA
      W_HEADER       TYPE SLIS_LISTHEADER,               "Header WA
      W_LAYOUT       TYPE SLIS_LAYOUT_ALV,               "Layout WA
      W_KEYINFO      TYPE SLIS_KEYINFO_ALV,              "Key Information WA
      W_VB_AKAP      TYPE TY_VB_AKAP,                    "To hold records from T_VB_AKAP
      W_MARA         TYPE TY_MARA,                       "To hold records from T_MARA
      W_MVKE         TYPE TY_MVKE,                       "To hold records from T_MVKE
      W_VBKD         TYPE TY_VBKD,                       "To hold records from T_VBKD
      W_IHEADER      TYPE TY_IHEADER,                    "To hold records from T_IHEADER
      W_IFINAL       TYPE TY_IFINAL,                     "To hold records from T_IFINAL
      W_PARAMS       TYPE CTU_PARAMS,                    "CTU Params
      W_BDCDATA      TYPE BDCDATA,                       "Work Area for BDCDATA
      W_BDCMSGCOLL   TYPE BDCMSGCOLL,                    "Work Area to collect BDC Messages
      W_MESSAGE1     TYPE TY_MESSAGE1,                   "WA for price conditions1 messages
*--Begin of changes for the change request 2007106--25th July 2007--
      W_MESSAGE1_2   TYPE TY_MESSAGE1_2,                 "WA for price conditions1_2 messages
*--End   of changes for the change request 2007106--25th July 2007--
      W_MESSAGE2     TYPE TY_MESSAGE2,                   "WA for price conditions2 messages
      W_ACC2         TYPE TY_ACC2,                       "WA for holding records from T_ACC2
      W_ACC1         TYPE TY_ACC1,                       "WA for holding records from T_ACC1
*--Begin of changes for the change request 2007106--24th July 2007--
      W_ACC1_2       TYPE TY_ACC1_2,                     "WA for holding records from T_ACC1_2
*--End   of changes for the change request 2007106--24th July 2007--
*--Begin of changes for the change request 2007096--26th July 2007--
      W_T006         TYPE TY_T006,                       "WA for holding T_T006 Entries
*--End   of changes for the change request 2007096--26th July 2007--
*--Begin of changes for the change request xxx--2nd Aug 2007--
      W_MARM         TYPE TY_MARM,                       "WA for holding entries of T_MARM
*--End   of changes for the change request xxx--2nd Aug 2007--
Variable declarations
      G_VKORG       TYPE VKORG,                          "Sales Organization
      G_VTWEG       TYPE VTWEG,                          "Distribution Channel
      G_AUDAT       TYPE AUDAT,                          "Document Date (Date Received/Sent)
      G_VBELN       TYPE VBELN_VA,                       "Sales Document
      G_KUNNR       TYPE KUNAG,                          "Sold-to party
      G_MATNR       TYPE MATNR,                          "Material Number
      G_REPID       TYPE SY-REPID,                       "Program Name
      G_MESSAGE(73) TYPE C,                              "To Capture Message
      G_FLAG1(1)    TYPE C,                              "Flag
      G_ANSWER(1)   TYPE C,                              "Optional Button
*--Begin of changes for the change request 2007096--26th July 2007--
      G_NUM_SOURCE  TYPE DZAEHL,                         "Holds Numerator value for Source Unit of Measure
      G_NUM_TARGET  TYPE DZAEHL,                         "Holds Numerator value for Target Unit of Measure
      G_DEN_SOURCE  TYPE NENNR,                          "Holds Denominator value for Source Unit of Measure
      G_DEN_TARGET  TYPE NENNR.                          "Holds Denominator value for Target Unit of Measure
*--End   of changes for the change request 2007096--26th July 2007--
Constant declarations
CONSTANTS:
      C_A(1)         TYPE C VALUE 'A',                    "Constant Value A
      C_S(1)         TYPE C VALUE 'S',                    "Constant Value S
      C_U(1)         TYPE C VALUE 'U',                    "Constant Value U
      C_X(1)         TYPE C VALUE 'X',                    "Constant Value X
      C_E(1)         TYPE C VALUE 'E',                    "Constant Value E
      C_I(1)         TYPE C VALUE 'I',                    "Constant Value I
      C_R(1)         TYPE C VALUE 'R',                    "Constant Value R
      C_B(1)         TYPE C VALUE 'B',                    "Document Category is Quotation
      C_HTNAME(10)   TYPE C VALUE 'T_IHEADER',            "Internal table for Header Data
      C_ITNAME(10)   TYPE C VALUE 'T_IFINAL',             "Internal Table with processed data
      C_Q2(2)        TYPE C VALUE 'Q2',                   "Constant Order Reason Q2
      C_100(3)       TYPE C VALUE '100',                  "Popup screen
      C_25(2)        TYPE C VALUE '25',                   "Popup screen
      C_5(1)         TYPE C VALUE '5',                    "Popup screen
      C_1            TYPE I VALUE  1,                     "Value 1 for Error Denotion
      C_2            TYPE I VALUE  2,                     "Value 2 for Error Denotion
      C_3            TYPE I VALUE  3,                     "Value 3 for BDC Error Denotion
      C_1000(4)      TYPE N VALUE 1000,                     "Value 1000
      C_01(2)        TYPE N VALUE '01',                   "Value 01 for Zcount
      C_VK11(4)      TYPE C VALUE 'VK11',                 "Transaction VK11
      C_DYNBEGIN(1)  TYPE C VALUE 'X',                    "Indicator
      C_UPDATE(1)    TYPE C VALUE 'S',                    "Update
      C_DISMODE(1)   TYPE C VALUE 'N',                    "Display
      C_Q3(2)        TYPE C VALUE 'Q3',                   "Quotation Approved
      C_ZBPR(4)      TYPE C VALUE 'ZBPR',                 "Condition Type ZBPR
*--Begin of changes for the change request xxx--2nd Aug 2007--
      C_ZBPN(4)      TYPE C VALUE 'ZBPN',                 "Condition Type ZBPN
*--End   of changes for the change request xxx--2nd Aug 2007--
      C_ERROR(5)     TYPE C VALUE 'ERROR'.                "Error screen title
   S E L E C T   O P T I O N S  &  P A R A M E T E R S               *
Selection-screen Block 1
SELECTION-SCREEN BEGIN OF BLOCK BLK1 WITH FRAME TITLE TEXT-001.
PARAMETERS:     P_VKORG TYPE VKORG OBLIGATORY,           "Sales Organization
                P_VTWEG TYPE VTWEG OBLIGATORY,           "Distribution Channel
                P_SPART TYPE SPART DEFAULT '00'.         "Division
SELECTION-SCREEN END OF BLOCK BLK1.
SELECTION-SCREEN BEGIN OF BLOCK BLK2 WITH FRAME TITLE TEXT-002.
SELECT-OPTIONS: S_AUDAT FOR G_AUDAT,                     "Document Date (Date Received/Sent)
                S_VBELN FOR G_VBELN,                     "Sales Document
                S_KUNNR FOR G_KUNNR,                     "Sold-to party
                S_MATNR FOR G_MATNR.                     "Material Number
PARAMETERS:     P_VKAUS(2) TYPE N.                       "Usage Indicator
SELECTION-SCREEN END OF BLOCK BLK2.
  I N I T I A L I Z A T I O N                                        *
INITIALIZATION.
  CLEAR : G_REPID.                                       "Program Name
  G_REPID = SY-REPID.                                    "Program Name
  A T   S E L E C T I O N   S C R E E N                              *
  CLEAR: G_VKORG,
         G_VTWEG.
AT SELECTION-SCREEN ON P_VKORG.
  SELECT SINGLE VKORG INTO G_VKORG
                      FROM TVKO
                      WHERE VKORG EQ P_VKORG.
  IF SY-SUBRC NE 0.
    MESSAGE E000(ZS) WITH TEXT-021.
  ENDIF.
AT SELECTION-SCREEN ON P_VTWEG.
  SELECT SINGLE VTWEG INTO G_VTWEG
                      FROM TVKOV
                      WHERE VKORG EQ P_VKORG
                        AND VTWEG EQ P_VTWEG.
  IF SY-SUBRC NE 0.
    MESSAGE E000(ZS) WITH TEXT-022.
  ENDIF.
  CLEAR: G_VKORG,
         G_VTWEG.
  S T A R T   O F   S E L E C T I O N                                *
START-OF-SELECTION.
Data Selection
  PERFORM DATA_RETRIEVAL.
Build Field Catalog
  PERFORM BUILD_FIELDCATALOG.
Bulid layout
  PERFORM BUILD_LAYOUT.
Build Events
  PERFORM BUILD_EVENTS.
Captures the Values of Selection Screen
  PERFORM CAPTURE_SCREEN.
  E N D   O F   S E L E C T I O N                                    *
END-OF-SELECTION.
Display List
  PERFORM DISPLAY_ALV_REPORT.
  F O R M S                                                          *
*&      Form  DATA_RETRIEVAL
      Retrieves Data for ALV Display
*--Begin of changes for the change request 2007106--25th July 2007--
*--End   of changes for the change request 2007106--25th July 2007--
FORM DATA_RETRIEVAL .
  DATA : L_VKAUS   TYPE VKAUS.            "Variable to hold Usage Indicator
  CLEAR L_VKAUS.
  SELECT VBELN
         KUNNR
    INTO CORRESPONDING FIELDS OF TABLE T_IHEADER
    FROM VBAK
    WHERE VBELN IN S_VBELN
      AND KUNNR IN S_KUNNR
      AND VKORG EQ P_VKORG
      AND AUDAT IN S_AUDAT
      AND VTWEG EQ P_VTWEG
      AND SPART EQ P_SPART
      AND AUGRU EQ C_Q2
      AND VBTYP EQ C_B.
  IF NOT T_IHEADER IS INITIAL.
    IF NOT P_VKAUS IS INITIAL.
*--Begin of changes for the change request 2007106--25th July 2007--COMMENTED FROM HERE---
     IF P_VKAUS EQ C_1.    "IF Zcount is given as 1 then quotation without zcount should be picked
       "for whom Material Pricing Group should be given.
       SELECT A~VBELN
              A~KUNNR
              B~POSNR
              B~MATNR
              B~PMATN
              B~KWMENG
              B~VRKME
              B~KZWI1
              B~VKAUS
        INTO  TABLE T_VB_AKAP
        FROM  VBAK AS A
        JOIN  VBAP AS B
          ON  AVBELN EQ BVBELN
        FOR ALL ENTRIES IN T_IHEADER
        WHERE A~VBELN EQ T_IHEADER-VBELN
          AND B~MATNR IN S_MATNR.
     ELSE.
*--End   of changes for the change request 2007106--25th July 2007--COMMENTED TILL HERE---
      CONCATENATE 'C' P_VKAUS INTO L_VKAUS.
      SELECT A~VBELN
             A~KUNNR
             B~POSNR
             B~MATNR
             B~PMATN
             B~KWMENG
             B~VRKME
             B~KZWI1
             B~VKAUS
*--Begin of changes for the change request 2007096--26th July 2007--
             A~WAERK
*--End   of changes for the change request 2007096--26th July 2007--
       INTO  TABLE T_VB_AKAP
       FROM  VBAK AS A
       JOIN  VBAP AS B
         ON  AVBELN EQ BVBELN
       FOR ALL ENTRIES IN T_IHEADER
        WHERE A~VBELN EQ T_IHEADER-VBELN
          AND B~MATNR IN S_MATNR
          AND B~VKAUS EQ L_VKAUS.
     ENDIF.
    ELSE.
      SELECT A~VBELN
             A~KUNNR
             B~POSNR
             B~MATNR
             B~PMATN
             B~KWMENG
             B~VRKME
             B~KZWI1
             B~VKAUS
*--Begin of changes for the change request 2007096--26th July 2007--
             A~WAERK
*--End   of changes for the change request 2007096--26th July 2007--
       INTO  TABLE T_VB_AKAP
       FROM  VBAK AS A
       JOIN  VBAP AS B
         ON  AVBELN EQ BVBELN
       FOR ALL ENTRIES IN T_IHEADER
       WHERE A~VBELN EQ T_IHEADER-VBELN
         AND B~MATNR IN S_MATNR.
    ENDIF.
    IF NOT T_VB_AKAP IS INITIAL.
      SELECT  VBELN
              POSNR
              BSTKD_E
         INTO TABLE T_VBKD
         FROM VBKD
         FOR ALL ENTRIES IN T_VB_AKAP
         WHERE VBELN EQ T_VB_AKAP-VBELN
           AND POSNR EQ T_VB_AKAP-POSNR.
    ENDIF.
    SORT T_VBKD BY VBELN POSNR.
    CLEAR W_VB_AKAP.
  After much of coding was completed, Usage of PMATN was dropped and
  the first eighteen characters of the field BSTKD was proposed for usage
  Hence PMATN is overwritten by BSTKD value in the below loop
    LOOP AT T_VB_AKAP INTO W_VB_AKAP.
      CLEAR: W_VBKD,
             W_VB_AKAP-PMATN.
      READ TABLE T_VBKD INTO W_VBKD
                        WITH KEY VBELN = W_VB_AKAP-VBELN
                                 POSNR = W_VB_AKAP-POSNR
                        BINARY SEARCH.
      IF SY-SUBRC EQ 0.
        W_VB_AKAP-PMATN = W_VBKD-BSTKD_E+0(18).
      ENDIF.
      MODIFY T_VB_AKAP FROM W_VB_AKAP TRANSPORTING PMATN.
      CLEAR W_VB_AKAP.
    ENDLOOP.
    IF NOT T_VB_AKAP IS INITIAL.
    Collecting all Material Numbers along with their Technical Spec data for all the materials available in T_VB_AKAP.
      SELECT    MATNR
                ZZTECHSPEC
        INTO    TABLE T_MARA
        FROM    MARA
        FOR ALL ENTRIES IN T_VB_AKAP
        WHERE   MATNR EQ T_VB_AKAP-MATNR.
      IF SY-SUBRC EQ 0.
        SORT T_MARA BY MATNR.
      ENDIF.                     "Checking SY-SUBRC for T_MARA
      SELECT    MATNR
                ZZTECHSPEC
        APPENDING TABLE T_MARA
        FROM    MARA
        FOR ALL ENTRIES IN T_VB_AKAP
        WHERE   MATNR EQ T_VB_AKAP-PMATN.
      IF SY-SUBRC EQ 0.
        SORT T_MARA BY MATNR.
      ENDIF.                     "Checking SY-SUBRC for T_MARA
*--Begin of changes for the change request xxx--2nd Aug 2007--
    Collecting information into T_MARM for all the available materials so that it could be used for conversion into Alternate UOM
      SELECT MATNR                          " Material Number
             MEINH                          " Alternate UOM
             UMREZ                          " Numerator for conversion
             UMREN                          " Denominator for conversion
        FROM MARM
        INTO TABLE T_MARM
        FOR ALL ENTRIES IN T_VB_AKAP
        WHERE MATNR EQ T_VB_AKAP-MATNR.
      IF SY-SUBRC = 0.
        SORT T_MARM BY MATNR MEINH.
      ENDIF.                     "Checking SY-SUBRC for T_MARM
      SELECT MATNR                          " Material Number
             MEINH                          " Alternate UOM
             UMREZ                          " Numerator for conversion
             UMREN                          " Denominator for conversion
        FROM MARM
        APPENDING TABLE T_MARM
        FOR ALL ENTRIES IN T_VB_AKAP
        WHERE MATNR EQ T_VB_AKAP-PMATN.
      IF SY-SUBRC = 0.
        SORT T_MARM BY MATNR MEINH.
      ENDIF.                     "Checking SY-SUBRC for T_MARM
*--End   of changes for the change request xxx--2nd Aug 2007--
      SELECT    MATNR
                VKORG
                VTWEG
                KONDM
*--Begin of changes for the change request 2007096--26th July 2007--
                VRKME
*--End   of changes for the change request 2007096--26th July 2007--
        INTO    TABLE T_MVKE
        FROM    MVKE
        FOR ALL ENTRIES IN T_VB_AKAP
        WHERE   MATNR EQ T_VB_AKAP-PMATN.
      IF SY-SUBRC EQ 0.
        SORT T_MVKE BY MATNR VKORG VTWEG.
      ENDIF.                     "Checking SY-SUBRC for T_MVKE
      SELECT    MATNR
                VKORG
                VTWEG
                KONDM
*--Begin of changes for the change request 2007096--26th July 2007--
                VRKME
*--End   of changes for the change request 2007096--26th July 2007--
        APPENDING TABLE T_MVKE
        FROM    MVKE
        FOR ALL ENTRIES IN T_VB_AKAP
        WHERE   MATNR EQ T_VB_AKAP-MATNR.
      IF SY-SUBRC EQ 0.
        SORT T_MVKE BY MATNR VKORG VTWEG.
      ENDIF.                     "Checking SY-SUBRC for T_MVKE
*--Begin of changes for the change request 2007096--26th July 2007--
      SELECT    MSEHI
                ZAEHL
                NENNR
         INTO   TABLE T_T006
         FROM   T006
         FOR ALL ENTRIES IN T_VB_AKAP
         WHERE  MSEHI EQ T_VB_AKAP-VRKME.
      IF SY-SUBRC EQ 0.
        SORT T_T006 BY MSEHI.
      ENDIF.                     "Checking SY-SUBRC for T_T006
      IF NOT T_MVKE IS INITIAL.
        SELECT MSEHI
               ZAEHL
               NENNR
        APPENDING TABLE T_T006
        FROM   T006
        FOR ALL ENTRIES IN T_MVKE
        WHERE MSEHI EQ T_MVKE-VRKME.
        IF SY-SUBRC EQ 0.
          SORT T_T006 BY MSEHI.
        ENDIF.                  "Checking SY-SUBRC for T_T006
      ENDIF.                     "Checking for Initial status of internal table T_MVKE
*--End   of changes for the change request 2007096--26th July 2007--
    ENDIF.                    " FOR T_VB_AKAP NOT INITIAL.
  ENDIF.                    " FOR T_IHEADER NOT INITIAL.
  CLEAR: W_VB_AKAP,
         W_IFINAL.
  LOOP AT T_VB_AKAP INTO W_VB_AKAP.
    W_IFINAL-VBELN  = W_VB_AKAP-VBELN.
    W_IFINAL-KUNNR  = W_VB_AKAP-KUNNR.
    W_IFINAL-POSNR  = W_VB_AKAP-POSNR.
    W_IFINAL-MATNR  = W_VB_AKAP-MATNR.
    W_IFINAL-PMATN  = W_VB_AKAP-PMATN.
    W_IFINAL-KWMENG = W_VB_AKAP-KWMENG.
    W_IFINAL-VRKME  = W_VB_AKAP-VRKME.
    W_IFINAL-KZWI1  = ( W_VB_AKAP-KZWI1 / W_VB_AKAP-KWMENG ) * 1000.
    W_IFINAL-VKAUS  = W_VB_AKAP-VKAUS.
*--Begin of changes for the change request 2007096--26th July 2007--
    W_IFINAL-WAERK  = W_VB_AKAP-WAERK.
*--End   of changes for the change request 2007096--26th July 2007--
  Populating Material Pricing Group from New Material Group, if such Group doesn't exist
  Population of Material Pricing Group from Material Number is tried.
  Similar condition does suit for Tech Spec too.
    SORT: T_MVKE BY MATNR VKORG VTWEG,
          T_MARA BY MATNR.
    IF NOT W_VB_AKAP-PMATN IS INITIAL.
      CLEAR W_MVKE.
      READ TABLE    T_MVKE
           INTO     W_MVKE
           WITH KEY MATNR = W_VB_AKAP-PMATN
                    VKORG = P_VKORG
                    VTWEG = P_VTWEG
           BINARY SEARCH.
      IF SY-SUBRC EQ 0.
        W_IFINAL-KONDM = W_MVKE-KONDM.
*--Begin of changes for the change request 2007096--26th July 2007--
        IF ( W_IFINAL-VRKME NE W_MVKE-VRKME ) AND ( NOT W_MVKE-VRKME IS INITIAL ).
*--Begin of changes for the change request xxx--2nd Aug 2007--
          CLEAR: W_MARM,
                 G_NUM_SOURCE,
                 G_DEN_SOURCE,
                 G_NUM_TARGET,
                 G_DEN_TARGET.
          READ TABLE T_MARM INTO W_MARM
                            WITH KEY MATNR = W_IFINAL-PMATN
                            MEINH = W_IFINAL-VRKME
                            BINARY SEARCH.
          IF SY-SUBRC EQ 0.
            G_NUM_SOURCE = W_MARM-UMREZ.
            G_DEN_SOURCE = W_MARM-UMREN.
            CLEAR W_MARM.
            READ TABLE T_MARM INTO W_MARM
                              WITH KEY MATNR = W_IFINAL-PMATN
                              MEINH = W_MVKE-VRKME
                              BINARY SEARCH.
            IF SY-SUBRC EQ 0.
              G_NUM_TARGET = W_MARM-UMREZ.
              G_DEN_TARGET = W_MARM-UMREN.
              CLEAR W_MARM.
              W_IFINAL-KWMENG = W_IFINAL-KWMENG * ( G_NUM_SOURCE / G_DEN_SOURCE ) * ( G_DEN_TARGET / G_NUM_TARGET ).
              CLEAR W_IFINAL-KZWI1.
              W_IFINAL-KZWI1   = ( W_VB_AKAP-KZWI1 / W_IFINAL-KWMENG ) * 1000.
              W_IFINAL-VRKME = W_MVKE-VRKME.
            ENDIF.              "Check SY-SUBRC for W_MARM using W_MVKE-VRKME (Sales UOM)
          ELSE.
*--End   of changes for the change request xxx--2nd Aug 2007--
            CLEAR: W_T006,
                   G_NUM_SOURCE,
                   G_DEN_SOURCE,
                   G_NUM_TARGET,
                   G_DEN_TARGET.
            READ TABLE T_T006 INTO W_T006 WITH KEY MSEHI = W_IFINAL-VRKME
                                          BINARY SEARCH.
            IF SY-SUBRC EQ 0.
              G_NUM_SOURCE = W_T006-ZAEHL.          "Numerator to convert specified UOM to SI UOM
              G_DEN_SOURCE = W_T006-NENNR.          "Denominator to convert specified UOM to SI UOM
              CLEAR W_T006.
              READ TABLE T_T006 INTO W_T006 WITH KEY MSEHI = W_MVKE-VRKME
                                            BINARY SEARCH.
              IF SY-SUBRC EQ 0.
                G_NUM_TARGET = W_T006-ZAEHL.            "Numerator to convert specified UOM to SI UOM
                G_DEN_TARGET = W_T006-NENNR.            "Denominator to convert specified UOM to SI UOM
                CLEAR W_T006.
                W_IFINAL-KWMENG = W_IFINAL-KWMENG * ( G_NUM_SOURCE / G_DEN_SOURCE ) * ( G_DEN_TARGET / G_NUM_TARGET ).
                CLEAR W_IFINAL-KZWI1.
                W_IFINAL-KZWI1   = ( W_VB_AKAP-KZWI1 / W_IFINAL-KWMENG ) * 1000.
                W_IFINAL-VRKME = W_MVKE-VRKME.
              ENDIF.          "Check for SY-SUBRC for READ TABLE T_T006 using W_MVKE-VRKME (Sales UOM)
            ENDIF.            "Check for SY-SUBRC for READ TABLE T_T006 using W_IFINAL-VRKME (Quotation UOM)
          ENDIF.              "Check SY-SUBRC for W_MARM using W_IFINAL-VRKME (Quotation UOM)
        ENDIF.              "Check for ( W_IFINAL-VRKME NE W_MVKE-VRKME ) AND ( NOT W_MVKE-VRKME IS INITIAL )
*--End   of changes for the change request 2007096--26th July 2007--
      ENDIF.
      READ TABLE     T_MARA
           INTO      W_MARA
           WITH KEY  MATNR = W_VB_AKAP-PMATN
           BINARY SEARCH.
      IF SY-SUBRC EQ 0.
        W_IFINAL-ZZTECHSPEC = W_MARA-ZZTECHSPEC.
      ENDIF.    

Similar Messages

  • How to create check box in ALV Reports?

    how to create check box in ALV Reports?

    Hi
    check the report  BCALV_TEST_GRID_EDITABLE
    or
    check this report
    REPORT ZRFC346_TST.
    TABLES:SFLIGHT,RL034.
    TYPE-POOLS:SLIS.
    INCLUDE:<ICON>,<SYMBOL>.
    DATA: G_REPID          LIKE SY-REPID,
          G_FIELDCAT       TYPE SLIS_T_FIELDCAT_ALV,
          G_IT_SORT        TYPE SLIS_T_SORTINFO_ALV,
          G_LAYOUT         TYPE SLIS_LAYOUT_ALV,
          G_TABNAME_HEADER TYPE SLIS_TABNAME,
          G_TABNAME_ITEM   TYPE SLIS_TABNAME,
          G_KEYINFO        TYPE SLIS_KEYINFO_ALV,
          G_VARIANT        LIKE DISVARIANT,
          G_EXTAB          TYPE SLIS_T_EXTAB,
          I_SLIS_EXIT_BY_USER TYPE SLIS_EXIT_BY_USER.
    DATA: XEVENT         TYPE SLIS_T_EVENT,
          AEVENT         TYPE SLIS_ALV_EVENT,
          VARIANT        LIKE DISVARIANT,
          LAYOUT         TYPE SLIS_LAYOUT_ALV,
          ASP_GROUP      TYPE SLIS_SP_GROUP_ALV,
          GT_SP_GROUP TYPE SLIS_T_SP_GROUP_ALV,
          EXTAB          TYPE SLIS_T_EXTAB WITH HEADER LINE,
          XFIELD         TYPE SLIS_T_FIELDCAT_ALV,
          AFIELD         TYPE SLIS_FIELDCAT_ALV,
          G_SUCOMM      LIKE SY-UCOMM,
          G_SELFLD       TYPE SLIS_SELFIELD.
    DATA: SAV_SY_REPID      LIKE SY-REPID.
    CONSTANTS: CON_SFLIGHT TYPE LVC_FNAME VALUE 'SFLIGHT',
               CON_DISPLAY_FULL TYPE I VALUE 3.
    Data to be displayed
    DATA: BEGIN OF GT_SFLIGHT OCCURS 0.
            INCLUDE STRUCTURE SFLIGHT.
    DATA:ACTIVATE(1).
    DATA: END OF GT_SFLIGHT.
    INITIALIZATION.
    *........Initialisierung...............................................
      PERFORM INITIALIZATION_RL034.
    *........Field cata....................................................
      PERFORM FIELD_CAT.
    *........SPECIAL GROUP.................................................
      PERFORM E07_SP_GROUP_BUILD USING GT_SP_GROUP[].
    START-OF-SELECTION.
    Selection
      SELECT * FROM SFLIGHT INTO TABLE GT_SFLIGHT.
    *........ALV CALL.......................................................
      PERFORM ALV_CALL.
      PERFORM USER_COMMAND_LOCAL USING G_SUCOMM G_SELFLD.
          FORM USER_COMMAND_LOCAL                                       *
    -->  G_UCOMM                                                       *
    -->  G_SELFIELD                                                    *
    FORM USER_COMMAND_LOCAL USING G_UCOMM LIKE SY-UCOMM
                                  G_SELFIELD TYPE SLIS_SELFIELD.
      CASE G_UCOMM.
        WHEN 'ACT'.
      ENDCASE.
    ENDFORM.
          FORM ALV_CALL                                                 *
    FORM ALV_CALL.
    Call ABAP List Viewer (ALV)
    G_LAYOUT-BOX_FIELDNAME = 'ACTIVATE'.
      CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'
                 EXPORTING
                I_BACKGROUND_ID         = 'ALV_BACKGROUND'
                   I_BYPASSING_BUFFER                = SPACE
                   I_BUFFER_ACTIVE                   = SPACE
                    I_CALLBACK_PROGRAM                = SAV_SY_REPID
                    I_CALLBACK_PF_STATUS_SET          = 'STATUS'
                   I_CALLBACK_USER_COMMAND           = 'USER_COMMAND_LOCAL'
                I_CALLBACK_TOP_OF_PAGE            = ' '
                I_CALLBACK_HTML_TOP_OF_PAGE       = ' '
                I_CALLBACK_HTML_END_OF_LIST       = ' '
                 I_STRUCTURE_NAME                  = 'SFLIGHT'
                I_BACKGROUND_ID                   = ' '
                I_GRID_TITLE                      =
                I_GRID_SETTINGS                   =
                  IS_LAYOUT                         = G_LAYOUT
                  IT_FIELDCAT                       = XFIELD[]
                IT_EXCLUDING                      =
                  IT_SPECIAL_GROUPS                 = GT_SP_GROUP[]
                IT_SORT                           =
                IT_FILTER                         =
                 IS_SEL_HIDE                       = 'X'
                I_DEFAULT                         = 'X'
                  I_SAVE                            = 'A'
                IS_VARIANT                        =
                 IT_EVENTS                         = XEVENT
                IT_EVENT_EXIT                     =
                IS_PRINT                          =
                IS_REPREP_ID                      =
                I_SCREEN_START_COLUMN             = 0
                I_SCREEN_START_LINE               = 0
                I_SCREEN_END_COLUMN               = 0
                I_SCREEN_END_LINE                 = 0
                IT_ALV_GRAPHICS                   =
                IT_ADD_FIELDCAT                   =
                IT_HYPERLINK                      =
                I_HTML_HEIGHT_TOP                 =
                I_HTML_HEIGHT_END                 =
                IT_EXCEPT_QINFO                   =
              IMPORTING
                E_EXIT_CAUSED_BY_CALLER           =
                ES_EXIT_CAUSED_BY_USER            =
                  TABLES
                    T_OUTTAB                          = GT_SFLIGHT
              EXCEPTIONS
                PROGRAM_ERROR                     = 1
                OTHERS                            = 2
      IF SY-SUBRC <> 0.
    MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
            WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
      ENDIF.
    ENDFORM.
          FORM status                                                   *
    -->  EXTAB                                                         *
    FORM STATUS USING EXTAB TYPE SLIS_T_EXTAB.
      SET PF-STATUS 'STAT' EXCLUDING EXTAB.
    ENDFORM.                               " STATUS
    *&      Form  INITIALIZATION_RL034
          text
    -->  p1        text
    <--  p2        text
    FORM INITIALIZATION_RL034.
      SAV_SY_REPID = SY-REPID.
    ENDFORM.                    " INITIALIZATION_RL034
    *&      Form  DEFINE_EVENTS_RL034
          text
    -->  p1        text
    <--  p2        text
    FORM DEFINE_EVENTS_RL034.
      CALL FUNCTION 'REUSE_ALV_EVENTS_GET'
           EXPORTING
                I_LIST_TYPE = 0
           IMPORTING
                ET_EVENTS   = XEVENT.
       exceptions
            list_type_wrong = 1
            others          = 2.
    ENDFORM.                    " DEFINE_EVENTS_RL034
    *&      Form  FIELD_CAT
          text
    -->  p1        text
    <--  p2        text
    FORM FIELD_CAT.
      DATA: LS_FCAT TYPE SLIS_FIELDCAT_ALV,
            L_LIN   TYPE I.
      REFRESH XFIELD.
           1. per Default eingeblendete Felder                          *
    *........Ikone/Symbol..................................................
      CLEAR AFIELD.
      DATA: LS1_FCAT TYPE SLIS_FIELDCAT_ALV,
            L_LIN1   TYPE I.
      CALL FUNCTION 'REUSE_ALV_FIELDCATALOG_MERGE'
           EXPORTING
                I_STRUCTURE_NAME       = CON_SFLIGHT
                I_BYPASSING_BUFFER     = SPACE
                I_BUFFER_ACTIVE        = SPACE
           CHANGING
                CT_FIELDCAT            = XFIELD
           EXCEPTIONS
                INCONSISTENT_INTERFACE = 1
                PROGRAM_ERROR          = 2
                OTHERS                 = 3.
      DESCRIBE TABLE XFIELD LINES L_LIN1.
      ADD 1 TO L_LIN1.
      CLEAR LS_FCAT.
      LS1_FCAT-FIELDNAME = 'ACTIVATE'.
      LS1_FCAT-CHECKBOX  = 'X'.
    LS1_FCAT-KEY       = 'X'.
      LS1_FCAT-INPUT     = 'X'.
      LS1_FCAT-EDIT     = 'X'.
      LS1_FCAT-INTTYPE   = 'C'.
      LS1_FCAT-DATATYPE  = 'CHAR'.
      LS1_FCAT-INTLEN    = 1.
      LS1_FCAT-COL_POS   = L_LIN1.
      LS1_FCAT-SELTEXT_S = LS1_FCAT-FIELDNAME.
      LS1_FCAT-SELTEXT_M = LS1_FCAT-FIELDNAME.
      LS1_FCAT-SELTEXT_L = LS1_FCAT-FIELDNAME.
      LS1_FCAT-SP_GROUP = 'A'.
      APPEND LS1_FCAT TO XFIELD.
      ADD 1 TO L_LIN.
    ENDFORM.                    " FIELD_CAT
    FORM E07_SP_GROUP_BUILD USING E07_LT_SP_GROUP TYPE SLIS_T_SP_GROUP_ALV.
      DATA: LS_SP_GROUP TYPE SLIS_SP_GROUP_ALV.
      CLEAR  LS_SP_GROUP.
      LS_SP_GROUP-SP_GROUP = 'A'.
      LS_SP_GROUP-TEXT     = 'SPECIAL'.
      APPEND LS_SP_GROUP TO E07_LT_SP_GROUP.
    ENDFORM.
    Regards
    Shiva

  • Check box in ALV Report

    Hi All,
    I have developed ALV hierarchical report with check boxes for header and item records.
    If i select header checkbox, the corresponding item records checkboxes should be selected automatically, here after selecting header checkbox i have to press some push button(like Refresh) then only item check boxes getting selected,
    but here my req. is without clicking any button item checkboxes should be checked automatically if corresponding header check box is selected.
    If anybody have an idea pls get back to me.
    Regards,
    Ashwin

    Hi,
    Construct a field catalogue as follows:
    DATA: z_fieldcat TYPE slis_fieldcat_alv
    Then set the checkbox related fields fields like:
    z_fieldcat-seltext_l = 'Checkbox'.
    z_fieldcat-checkbox = 'X'. " Display this field as a checkbox
    z_fieldcat-edit = 'X'.    " This option ensures that you can
                                    " edit the checkbox. Else it will
                                    " be protected.
    <REMOVED BY MODERATOR>
    Edited by: Alvaro Tejada Galindo on Jan 30, 2008 5:35 PM

  • Check boxes in ALV Report how to do ?

    ALV report how to keep check box  in the first field?
    thanks in advance..
    chalapathi

    hi,
        Check this small code..  U will get clear idea.
    Report.
    data : begin of it occurs 0,
            MATNR TYPE MATNR,
            c1 ,                  " CHECK BOX FIELDS
            c2,
            end of it.
    type-pools : slis.
    data itlog type slis_t_fieldcat_alv.
    data walog type slis_fieldcat_alv.
    SELECT MATNR
    FROM MARA
    INTO TABLE IT .
    ****INSERTING  CHECKBOX  IN CHANGE MODE
    WALOG-FIELDNAME = 'C1'.
    WALOG-TABNAME = 'IT'.
    WALOG-SELTEXT_M = 'CHECKBOX1'.
    walog-CHECKBOX = 'X'.
    WALOG-EDIT = 'X'.
    APPEND WALOG TO ITLOG.
    ****INSERTING  CHECKBOX  IN DISPLAY MODE
    WALOG-FIELDNAME = 'C2'.
    WALOG-TABNAME = 'IT'.
    WALOG-SELTEXT_M = 'CHECKBOX2'.
    walog-CHECKBOX = 'X'.
    WALOG-EDIT = ''.
    APPEND WALOG TO ITLOG.
    WALOG-FIELDNAME = 'MATNR'.
    WALOG-TABNAME = 'IT'.
    WALOG-SELTEXT_M = 'MATERIAL'.
    walog-CHECKBOX = ''.
    WALOG-EDIT = 'X'.
    WALOG-NO_ZERO = 'X'.              " LEFT ZEROS WILL CUT
    APPEND WALOG TO ITLOG.
    *WALOG-FIELDNAME = 'ICON'.
    *WALOG-TABNAME = 'IT'.
    *WALOG-SELTEXT_M = 'ICON'.               "IN FIELDCATALOG ADDING THAT ICON
    *walog-ICON = 'X'.
    *walog-just = 'R'.                   " RIGHT JUSTIFICATION OR LEFT
    **WALOG-EDIT = ''.
    *APPEND WALOG TO ITLOG.
    CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'
    EXPORTING
      I_INTERFACE_CHECK                 = ' '
      I_BYPASSING_BUFFER                = ' '
      I_BUFFER_ACTIVE                   = ' '
       I_CALLBACK_PROGRAM                = 'ZALV_SIMPLE1'
      I_CALLBACK_PF_STATUS_SET          = ' '
      I_CALLBACK_USER_COMMAND           = ' '
      I_CALLBACK_TOP_OF_PAGE            = ' '
      I_CALLBACK_HTML_TOP_OF_PAGE       = ' '
      I_CALLBACK_HTML_END_OF_LIST       = ' '
      I_STRUCTURE_NAME                  =
      I_BACKGROUND_ID                   = ' '
      I_GRID_TITLE                      =
      I_GRID_SETTINGS                   =
      IS_LAYOUT                         =
       IT_FIELDCAT                       =   ITLOG
      IT_EXCLUDING                      =
      IT_SPECIAL_GROUPS                 =
      IT_SORT                           =
      IT_FILTER                         =
      IS_SEL_HIDE                       =
      I_DEFAULT                         = 'X'
      I_SAVE                            = ' '
      IS_VARIANT                        =
      IT_EVENTS                         =
      IT_EVENT_EXIT                     =
      IS_PRINT                          =
      IS_REPREP_ID                      =
      I_SCREEN_START_COLUMN             = 0
      I_SCREEN_START_LINE               = 0
      I_SCREEN_END_COLUMN               = 0
      I_SCREEN_END_LINE                 = 0
      IT_ALV_GRAPHICS                   =
      IT_HYPERLINK                      =
      IT_ADD_FIELDCAT                   =
      IT_EXCEPT_QINFO                   =
      I_HTML_HEIGHT_TOP                 =
      I_HTML_HEIGHT_END                 =
    IMPORTING
      E_EXIT_CAUSED_BY_CALLER           =
      ES_EXIT_CAUSED_BY_USER            =
      TABLES
        T_OUTTAB                          =  IT
    EXCEPTIONS
      PROGRAM_ERROR                     = 1
      OTHERS                            = 2
    IF SY-SUBRC <> 0.
    MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
            WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
    endif.
    Thanks and Regards,
    surya

  • Reg check boxes in ALV report

    Hi All,
    I am displaying check boxes in my ALV report.I want to capture what all are the values that has been selected in the basic list ALV accordingly I want to write the code for the secondary ALV list .Could you please suggest somebody how to capture this info?
    Regards
    Ramesh

    hi,
    here is the code...
    i havent checkbox but i have first filed of char type and u can select more than one record by pressing control...
    i have created one button DET in pf status and when i press on that i am getting detain info of selected record in secondary list...
    TABLES:     ekko.
    TYPE-POOLS: slis.                                 "ALV Declarations
    TYPES: BEGIN OF t_ekko,
      sel,                         "stores which row user has selected
      ebeln TYPE ekpo-ebeln,
      ebelp TYPE ekpo-ebelp,
      statu TYPE ekpo-statu,
      aedat TYPE ekpo-aedat,
      matnr TYPE ekpo-matnr,
      menge TYPE ekpo-menge,
      meins TYPE ekpo-meins,
      netpr TYPE ekpo-netpr,
      peinh TYPE ekpo-peinh,
    END OF t_ekko.
    DATA: it_ekko TYPE STANDARD TABLE OF t_ekko INITIAL SIZE 0,
          wa_ekko TYPE t_ekko.
    DATA: fieldcatalog TYPE slis_t_fieldcat_alv WITH HEADER LINE,
          fieldcatalog1 TYPE slis_t_fieldcat_alv WITH HEADER LINE,
          gd_tab_group TYPE slis_t_sp_group_alv,
          gd_layout    TYPE slis_layout_alv,
          gd_repid     LIKE sy-repid.
    DATA : BEGIN OF det_tab OCCURS 0,
            ebeln LIKE ekpo-ebeln,
           END OF det_tab.
    START-OF-SELECTION.
      PERFORM data_retrieval.
      PERFORM build_fieldcatalog.
      PERFORM build_layout.
      PERFORM display_alv_report.
    *&      Form  BUILD_FIELDCATALOG
    *       Build Fieldcatalog for ALV Report
    FORM build_fieldcatalog.
      fieldcatalog-fieldname   = 'EBELN'.
      fieldcatalog-seltext_m   = 'Purchase Order'.
      fieldcatalog-outputlen   = 10.
      fieldcatalog-emphasize   = 'X'.
      fieldcatalog-key         = 'X'.
      APPEND fieldcatalog TO fieldcatalog.
      CLEAR  fieldcatalog.
      fieldcatalog-fieldname   = 'EBELP'.
      fieldcatalog-seltext_m   = 'PO Item'.
      APPEND fieldcatalog TO fieldcatalog.
      CLEAR  fieldcatalog.
      fieldcatalog-fieldname   = 'STATU'.
      fieldcatalog-seltext_m   = 'Status'.
      APPEND fieldcatalog TO fieldcatalog.
      CLEAR  fieldcatalog.
      fieldcatalog-fieldname   = 'AEDAT'.
      fieldcatalog-seltext_m   = 'Item change date'.
      APPEND fieldcatalog TO fieldcatalog.
      CLEAR  fieldcatalog.
      fieldcatalog-fieldname   = 'MATNR'.
      fieldcatalog-seltext_m   = 'Material Number'.
      APPEND fieldcatalog TO fieldcatalog.
      CLEAR  fieldcatalog.
      fieldcatalog-fieldname   = 'MENGE'.
      fieldcatalog-seltext_m   = 'PO quantity'.
      APPEND fieldcatalog TO fieldcatalog.
      CLEAR  fieldcatalog.
      fieldcatalog-fieldname   = 'MEINS'.
      fieldcatalog-seltext_m   = 'Order Unit'.
      APPEND fieldcatalog TO fieldcatalog.
      CLEAR  fieldcatalog.
      fieldcatalog-fieldname   = 'NETPR'.
      fieldcatalog-seltext_m   = 'Net Price'.
      fieldcatalog-outputlen   = 15.
      fieldcatalog-do_sum      = 'X'.        "Display column total
      fieldcatalog-datatype     = 'CURR'.
      APPEND fieldcatalog TO fieldcatalog.
      CLEAR  fieldcatalog.
      fieldcatalog-fieldname   = 'PEINH'.
      fieldcatalog-seltext_m   = 'Price Unit'.
      APPEND fieldcatalog TO fieldcatalog.
      CLEAR  fieldcatalog.
    ENDFORM.                    " BUILD_FIELDCATALOG
    *&      Form  BUILD_LAYOUT
    *       Build layout for ALV grid report
    FORM build_layout.
      gd_layout-box_fieldname     = 'SEL'.
      gd_layout-zebra             = 'X'.
    ENDFORM.                    " BUILD_LAYOUT
    *&      Form  DISPLAY_ALV_REPORT
    *       Display report using ALV grid
    FORM display_alv_report.
      gd_repid = sy-repid.
      CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'
        EXPORTING
          i_callback_program       = gd_repid
          i_callback_user_command  = 'USER_COMMAND'
          i_callback_pf_status_set = 'SET_STAT'
          is_layout                = gd_layout
          it_fieldcat              = fieldcatalog[]
          i_save                   = 'X'
        TABLES
          t_outtab                 = it_ekko
        EXCEPTIONS
          program_error            = 1
          OTHERS                   = 2.
      IF sy-subrc <> 0.
    * MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
    *         WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
      ENDIF.
    ENDFORM.                    " DISPLAY_ALV_REPORT
    *&      Form  DATA_RETRIEVAL
    *       Retrieve data form EKPO table and populate itab it_ekko
    FORM data_retrieval.
      SELECT ebeln ebelp statu aedat matnr menge meins netpr peinh
       UP TO 10 ROWS
        FROM ekpo
        INTO CORRESPONDING FIELDS OF TABLE it_ekko.
    ENDFORM.                    " DATA_RETRIEVAL
    *       FORM USER_COMMAND                                          *
    *       --> R_UCOMM                                                *
    *       --> RS_SELFIELD                                            *
    FORM user_command USING r_ucomm LIKE sy-ucomm
                      rs_selfield TYPE slis_selfield.
      CASE r_ucomm.
        WHEN '&IC1'.
          IF rs_selfield-fieldname = 'EBELN'.
            READ TABLE it_ekko INTO wa_ekko INDEX rs_selfield-tabindex.
            SET PARAMETER ID 'BES' FIELD wa_ekko-ebeln.
            CALL TRANSACTION 'ME23N' AND SKIP FIRST SCREEN.
          ENDIF.
        WHEN 'DET'.  "user presses SAVE
          CLEAR det_tab.
          REFRESH det_tab.
          LOOP AT it_ekko INTO wa_ekko WHERE sel = 'X'.
            MOVE-CORRESPONDING wa_ekko TO det_tab.
            APPEND det_tab.
          ENDLOOP.
          PERFORM build_cat.
          PERFORM dis_data.
      ENDCASE.
    ENDFORM.                    "user_command
    *&      Form  set_stat
    *       text
    *      -->RT_EXTAB   text
    FORM set_stat USING rt_extab TYPE slis_t_extab.
      SET PF-STATUS 'ZSTAT' EXCLUDING rt_extab.
    ENDFORM.                    "set_stat
    *&      Form  build_cat
    *       text
    FORM build_cat.
      CLEAR fieldcatalog1.
      REFRESH fieldcatalog1.
      fieldcatalog1-fieldname = 'EBELN'.
      fieldcatalog1-tabname = 'DET_TAB'.
      fieldcatalog1-seltext_m = 'Order No.'.
      fieldcatalog1-outputlen = 10.
      APPEND fieldcatalog1 TO fieldcatalog1.
      CLEAR fieldcatalog1.
    ENDFORM.                    "build_cat
    *&      Form  dis_data
    *       text
    FORM dis_data.
      CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'
        EXPORTING
          i_callback_program = 'ZTEST_DS'
          it_fieldcat        = fieldcatalog1[]
          i_save             = 'X'
        TABLES
          t_outtab           = det_tab.
    ENDFORM.                    "dis_data
    reward if usefull....

  • How to get check box in alv output

    hi gurus
    can anyone explian me how to get check box in alv output
    it should not be a pop up window
    i want to get in output itself
    tahnk you
    regards
    kals.

    Hi
    by using rs_selfield
    ty to call dynamic subroutine..
    FORM user_command USING r_ucomm LIKE sy-ucomm
    rs_selfield TYPE slis_selfield. "#EC CALLED
    read table rs-selfield with key cond = 'X'
    endform.
    see the below example
    REPORT Z_GET_REFRESH no standard page heading.
    type-pools : slis.
    tables : makt,
    mara.
    data : i_fieldcat type slis_t_fieldcat_alv.
    CONSTANTS :
    gc_refresh TYPE syucomm VALUE '&REFRESH'.
    data : begin of i_makt occurs 0,
    matnr like makt-matnr,
    maktx like makt-maktx,
    end of i_makt.
    data : v_repid like sy-repid,
    g_user_command type slis_formname value 'USER_COMMAND',
    g_status_set type slis_formname value 'SET_PF_STATUS',
    lt_event_exit TYPE slis_t_event_exit,
    ls_event_exit TYPE slis_event_exit.
    DATA:LC_GLAY TYPE LVC_S_GLAY.
    select-options s_matnr for mara-matnr .
    start-of-selection.
    select matnr maktx from makt into table i_makt
    where matnr in s_matnr.
    end-of-selection.
    Fill the fieldcatlog
    perform fill_field.
    Call the FM
    perform call_fm.
    *& Form fill_field
    text
    --> p1 text
    <-- p2 text
    FORM fill_field.
    data wa_fieldcat type slis_fieldcat_alv.
    clear : wa_fieldcat.
    wa_fieldcat-tabname = 'I_MAKT'.
    wa_fieldcat-fieldname = 'MATNR'.
    wa_fieldcat-outputlen = '18'.
    wa_fieldcat-seltext_l = 'Material #'.
    wa_fieldcat-col_pos = '1'.
    append wa_fieldcat to i_fieldcat.
    clear : wa_fieldcat.
    wa_fieldcat-tabname = 'I_MAKT'.
    wa_fieldcat-fieldname = 'MAKTX'.
    wa_fieldcat-outputlen = '40'.
    wa_fieldcat-seltext_l = 'Material Desc'.
    wa_fieldcat-col_pos = '2'.
    append wa_fieldcat to i_fieldcat.
    ENDFORM. " fill_field
    *& Form call_fm
    text
    --> p1 text
    <-- p2 text
    FORM call_fm.
    v_repid = sy-repid.
    LC_GLAY-EDT_CLL_CB = 'X'.
    CLEAR ls_event_exit.
    ls_event_exit-ucomm = gc_refresh. " Refresh
    ls_event_exit-after = 'X'.
    APPEND ls_event_exit TO lt_event_exit.
    CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'
    EXPORTING
    I_INTERFACE_CHECK = ' '
    I_BYPASSING_BUFFER =
    I_BUFFER_ACTIVE = ' '
    I_CALLBACK_PROGRAM = v_repid
    I_CALLBACK_PF_STATUS_SET = g_status_set
    I_CALLBACK_USER_COMMAND = g_user_command
    I_CALLBACK_TOP_OF_PAGE = ' '
    I_CALLBACK_HTML_TOP_OF_PAGE = ' '
    I_CALLBACK_HTML_END_OF_LIST = ' '
    I_STRUCTURE_NAME =
    I_BACKGROUND_ID = ' '
    I_GRID_TITLE =
    I_GRID_SETTINGS = LC_GLAY
    IS_LAYOUT =
    IT_FIELDCAT = i_fieldcat
    IT_EXCLUDING =
    IT_SPECIAL_GROUPS =
    IT_SORT =
    IT_FILTER =
    IS_SEL_HIDE =
    I_DEFAULT = 'X'
    I_SAVE = ' '
    IS_VARIANT =
    IT_EVENTS =
    IT_EVENT_EXIT = lt_event_exit
    IS_PRINT =
    IS_REPREP_ID =
    I_SCREEN_START_COLUMN = 0
    I_SCREEN_START_LINE = 0
    I_SCREEN_END_COLUMN = 0
    I_SCREEN_END_LINE = 0
    IT_ALV_GRAPHICS =
    IT_ADD_FIELDCAT =
    IT_HYPERLINK =
    I_HTML_HEIGHT_TOP =
    I_HTML_HEIGHT_END =
    IT_EXCEPT_QINFO =
    IMPORTING
    E_EXIT_CAUSED_BY_CALLER =
    ES_EXIT_CAUSED_BY_USER =
    TABLES
    T_OUTTAB = i_makt
    EXCEPTIONS
    PROGRAM_ERROR = 1
    OTHERS = 2
    IF SY-SUBRC 0.
    MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
    WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
    ENDIF.
    ENDFORM. " call_fm
    FORM USER_COMMAND *
    FORM user_command USING r_ucomm LIKE sy-ucomm
    rs_selfield TYPE slis_selfield. "#EC CALLED
    data i_RSPARAMS like RSPARAMS occurs 0.
    CASE R_UCOMM.
    WHEN '&IC1'.
    read table i_makt index rs_selfield-tabindex.
    SET PARAMETER ID 'MAT' FIELD i_makt-matnr.
    if not i_makt-matnr is initial.
    call transaction 'MM02' and skip first screen.
    endif.
    when '&REFRESH'.
    CALL FUNCTION 'RS_REFRESH_FROM_SELECTOPTIONS'
    EXPORTING
    CURR_REPORT = v_repid
    IMPORTING
    SP =
    TABLES
    SELECTION_TABLE = i_RSPARAMS
    EXCEPTIONS
    NOT_FOUND = 1
    NO_REPORT = 2
    OTHERS = 3
    IF SY-SUBRC 0.
    MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
    WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
    ENDIF.
    submit z_get_refresh with selection-table i_RSPARAMS.
    rs_selfield-refresh = 'X'.
    ENDCASE.
    MOVE '&REFRESH' TO r_ucomm.
    ENDFORM.
    FORM set_pf_status *
    FORM SET_PF_STATUS USING rt_extab TYPE slis_t_extab.
    DELETE Rt_extab WHERE fcode = gc_refresh.
    SET PF-STATUS 'STANDARD_FULLSCREEN' OF PROGRAM 'SAPLKKBL'
    EXCLUDING Rt_extab.
    *SET PF-STATUS 'STANDARD' EXCLUDING rt_extab.
    SET TITLEBAR sy-tcode.
    ENDFORM.

  • How to get check box in alv grid list output

    hi gurus,
    can anyone inform me
    how to get check box in alv output it should not be a pop up window
    thank you
    regards
    kals.

    or
    hi go through the fallowing code.
    code*&----
    *& Report YGS_ALV_BOM *
    REPORT YGS_ALV_BOM .
    TABLES : MAST,STKO,STPO.
    TYPE-POOLS: SLIS.
    TYPES : BEGIN OF TY_MAST,
    CHECK_BOX,
    MATNR TYPE MAST-MATNR,
    WERKS TYPE MAST-WERKS,
    STLAN TYPE MAST-STLAN,
    STLNR TYPE MAST-STLNR,
    STLAL TYPE MAST-STLAL,
    END OF TY_MAST.
    TYPES : BEGIN OF TY_STKO,
    STLTY TYPE STKO-STLTY,
    STLNR TYPE STKO-STLNR,
    STLAL TYPE STKO-STLAL,
    STKOZ TYPE STKO-STKOZ,
    BMENG TYPE STKO-BMENG,
    BMEIN TYPE STKO-BMEIN,
    END OF TY_STKO.
    TYPES : BEGIN OF TY_STPO,
    LIGHTS,
    STLTY TYPE STPO-STLTY,
    STLNR TYPE STPO-STLNR,
    STLKN TYPE STPO-STLKN,
    STPOZ TYPE STPO-STPOZ,
    IDNRK TYPE STPO-IDNRK,
    MENGE TYPE STPO-MENGE,
    MEINS TYPE STPO-MEINS,
    END OF TY_STPO.
    DATA : IT_MAST TYPE TABLE OF TY_MAST,
    WA_MAST TYPE TY_MAST,
    IT_STKO TYPE TABLE OF TY_STKO,
    WA_STKO TYPE TY_STKO,
    IT_STPO TYPE TABLE OF TY_STPO,
    WA_STPO TYPE TY_STPO.
    DATA : lt_fieldcat TYPE slis_t_fieldcat_alv,
    ls_layout TYPE slis_layout_alv,
    ls_event TYPE slis_alv_event,
    lt_event TYPE slis_t_event,
    it_sortinfo type slis_t_sortinfo_alv,
    ls_header TYPE slis_listheader,
    lt_header TYPE slis_t_listHEADER.
    DATA : IT_BDCDATA LIKE BDCDATA OCCURS 0 WITH HEADER LINE.
    SELECT-OPTIONS : S_MATNR FOR MAST-MATNR.
    START-OF-SELECTION.
    PERFORM GET_DATA.
    PERFORM BUILD_FIELDCAT USING LT_FIELDCAT.
    PERFORM BUILD_LAYOUT.
    END-OF-SELECTION.
    PERFORM DISPLAY_DATA.
    *& Form GET_DATA
    text
    --> p1 text
    <-- p2 text
    form GET_DATA .
    REFRESH : IT_MAST.
    SELECT MATNR
    WERKS
    STLAN
    STLNR
    FROM MAST
    INTO CORRESPONDING FIELDS OF TABLE IT_MAST
    WHERE MATNR IN S_MATNR.
    endform. " GET_DATA
    *& Form BUILD_FIELDCAT
    text
    --> p1 text
    <-- p2 text
    form BUILD_FIELDCAT USING LT_FIELDCAT TYPE SLIS_T_FIELDCAT_ALV.
    DATA : L_FIELDCAT TYPE SLIS_FIELDCAT_ALV.
    REFRESH : LT_FIELDCAT.
    L_FIELDCAT-COL_POS = 1.
    L_FIELDCAT-FIELDNAME = 'MATNR'.
    L_FIELDCAT-TABNAME = 'IT_MAST'.
    L_FIELDCAT-REF_FIELDNAME = 'MATNR'.
    L_FIELDCAT-REF_TABNAME = 'MAST'.
    APPEND L_FIELDCAT TO LT_FIELDCAT.
    L_FIELDCAT-COL_POS = 2.
    L_FIELDCAT-FIELDNAME = 'WERKS'.
    L_FIELDCAT-TABNAME = 'IT_MAST'.
    L_FIELDCAT-REF_FIELDNAME = 'WERKS'.
    L_FIELDCAT-REF_TABNAME = 'MAST'.
    APPEND L_FIELDCAT TO LT_FIELDCAT.
    L_FIELDCAT-COL_POS = 3.
    L_FIELDCAT-FIELDNAME = 'STLNR'.
    L_FIELDCAT-TABNAME = 'IT_MAST'.
    L_FIELDCAT-REF_FIELDNAME = 'STLNR'.
    L_FIELDCAT-REF_TABNAME = 'MAST'.
    APPEND L_FIELDCAT TO LT_FIELDCAT.
    endform. " BUILD_FIELDCAT
    *& Form BUILD_LAYOUT
    text
    --> p1 text
    <-- p2 text
    form BUILD_LAYOUT .
    CLEAR LS_LAYOUT.
    LS_LAYOUT-BOX_FIELDNAME = 'CHECK_BOX'.
    LS_LAYOUT-BOX_TABNAME = 'IT_MAST'.
    endform. " BUILD_LAYOUT
    *& Form DISPLAY_DATA
    text
    --> p1 text
    <-- p2 text
    form DISPLAY_DATA .
    CALL FUNCTION 'REUSE_ALV_LIST_DISPLAY'
    EXPORTING
    I_INTERFACE_CHECK = ' '
    I_BYPASSING_BUFFER =
    I_BUFFER_ACTIVE = ' '
    I_CALLBACK_PROGRAM = SY-REPID
    I_CALLBACK_PF_STATUS_SET = 'PF_STATUS'
    I_CALLBACK_USER_COMMAND = 'USER_COMMAND'
    I_STRUCTURE_NAME =
    IS_LAYOUT = LS_LAYOUT
    IT_FIELDCAT = LT_FIELDCAT
    IT_EXCLUDING =
    IT_SPECIAL_GROUPS =
    IT_SORT =
    IT_FILTER =
    IS_SEL_HIDE =
    I_DEFAULT = 'X'
    I_SAVE = ' '
    IS_VARIANT =
    IT_EVENTS =
    IT_EVENT_EXIT =
    IS_PRINT =
    IS_REPREP_ID =
    I_SCREEN_START_COLUMN = 0
    I_SCREEN_START_LINE = 0
    I_SCREEN_END_COLUMN = 0
    I_SCREEN_END_LINE = 0
    IMPORTING
    E_EXIT_CAUSED_BY_CALLER =
    ES_EXIT_CAUSED_BY_USER =
    TABLES
    t_outtab = IT_MAST
    EXCEPTIONS
    PROGRAM_ERROR = 1
    OTHERS = 2
    IF sy-subrc <> 0.
    MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
    WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
    ENDIF.
    endform. " DISPLAY_DATA
    FORM PF_STATUS USING RT_EXTAB TYPE SLIS_T_EXTAB.
    SET PF-STATUS 'YSTATUS' OF PROGRAM SY-REPID
    EXCLUDING RT_EXTAB.
    ENDFORM.
    FORM USER_COMMAND USING RF_UCOMM TYPE SY-UCOMM
    SELFIELD TYPE SLIS_SELFIELD.
    CASE RF_UCOMM.
    WHEN '&NEXT'.
    PERFORM GET_DATA_BOM .
    PERFORM BUILD_FIELDCAT_BOM USING LT_FIELDCAT.
    PERFORM BUILD_LAYOUT_BOM.
    PERFORM DISPLAY_DATA_BOM.
    ENDCASE.
    ENDFORM.
    *& Form GET_DATA_BOM
    text
    --> p1 text
    <-- p2 text
    form GET_DATA_BOM .
    CLEAR : WA_STPO,
    WA_MAST.
    REFRESH : IT_STPO.
    DATA : IT_CHECK TYPE TABLE OF TY_MAST.
    LOOP AT IT_MAST INTO WA_MAST.
    IF WA_MAST-CHECK_BOX EQ 'X'.
    APPEND WA_MAST TO IT_CHECK.
    ENDIF.
    ENDLOOP.
    SELECT STLTY
    STLNR
    STLKN
    VGKNT
    IDNRK
    MENGE
    MEINS
    FROM STPO
    INTO CORRESPONDING FIELDS OF TABLE IT_STPO
    FOR ALL ENTRIES IN IT_CHECK
    WHERE IDNRK EQ IT_CHECK-MATNR.
    CLEAR WA_STPO.
    LOOP AT IT_STPO INTO WA_STPO.
    SELECT SINGLE * FROM MAST WHERE MATNR EQ WA_STPO-IDNRK.
    IF SY-SUBRC = 0.
    WA_STPO-LIGHTS = '2'.
    ELSE.
    WA_STPO-LIGHTS = '1'.
    ENDIF.
    MODIFY IT_STPO FROM WA_STPO.
    ENDLOOP.
    endform. " GET_DATA_BOM
    *& Form BUILD_FIELDCAT_BOM
    text
    --> p1 text
    <-- p2 text
    form BUILD_FIELDCAT_BOM USING LT_FIELDCAT TYPE SLIS_T_FIELDCAT_ALV.
    DATA : L_FIELDCAT TYPE SLIS_FIELDCAT_ALV.
    REFRESH : LT_FIELDCAT.
    L_FIELDCAT-COL_POS = 1.
    L_FIELDCAT-FIELDNAME = 'STLTY'.
    L_FIELDCAT-TABNAME = 'IT_STPO'.
    L_FIELDCAT-REF_FIELDNAME = 'STLTY'.
    L_FIELDCAT-REF_TABNAME = 'STPO'.
    APPEND L_FIELDCAT TO LT_FIELDCAT.
    L_FIELDCAT-COL_POS = 2.
    L_FIELDCAT-FIELDNAME = 'STLNR'.
    L_FIELDCAT-TABNAME = 'IT_STPO'.
    L_FIELDCAT-REF_FIELDNAME = 'STLNR'.
    L_FIELDCAT-REF_TABNAME = 'STPO'.
    APPEND L_FIELDCAT TO LT_FIELDCAT.
    L_FIELDCAT-COL_POS = 3.
    L_FIELDCAT-FIELDNAME = 'STLKN'.
    L_FIELDCAT-TABNAME = 'IT_STPO'.
    L_FIELDCAT-REF_FIELDNAME = 'STLKN'.
    L_FIELDCAT-REF_TABNAME = 'STPO'.
    APPEND L_FIELDCAT TO LT_FIELDCAT.
    L_FIELDCAT-COL_POS = 4.
    L_FIELDCAT-FIELDNAME = 'IDNRK'.
    L_FIELDCAT-TABNAME = 'IT_STPO'.
    L_FIELDCAT-REF_FIELDNAME = 'IDNRK'.
    L_FIELDCAT-REF_TABNAME = 'STPO'.
    APPEND L_FIELDCAT TO LT_FIELDCAT.
    L_FIELDCAT-COL_POS = 5.
    L_FIELDCAT-FIELDNAME = 'MENGE'.
    L_FIELDCAT-TABNAME = 'IT_STPO'.
    L_FIELDCAT-REF_FIELDNAME = 'MENGE'.
    L_FIELDCAT-REF_TABNAME = 'STPO'.
    APPEND L_FIELDCAT TO LT_FIELDCAT.
    endform. " BUILD_FIELDCAT_BOM
    *& Form BUILD_LAYOUT_BOM
    text
    --> p1 text
    *<-- p2 text
    form BUILD_LAYOUT_BOM .
    CLEAR : LS_LAYOUT.
    LS_LAYOUT-LIGHTS_FIELDNAME = 'LIGHTS'.
    LS_LAYOUT-LIGHTS_TABNAME = 'IT_STPO'.
    endform. " BUILD_LAYOUT_BOM
    *& Form DISPLAY_DATA_BOM
    text
    --> p1 text
    <-- p2 text
    form DISPLAY_DATA_BOM .
    CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'
    EXPORTING
    I_INTERFACE_CHECK = ' '
    I_BYPASSING_BUFFER = ' '
    I_BUFFER_ACTIVE = ' '
    I_CALLBACK_PROGRAM = SY-REPID
    I_CALLBACK_PF_STATUS_SET = ' '
    I_CALLBACK_USER_COMMAND = 'USER_COMMAND_BOM'
    I_CALLBACK_TOP_OF_PAGE = 'TOP9'
    I_CALLBACK_HTML_TOP_OF_PAGE = ' '
    I_CALLBACK_HTML_END_OF_LIST = ' '
    I_STRUCTURE_NAME =
    I_BACKGROUND_ID = 'ALV_BACKGROUND'
    I_GRID_TITLE =
    I_GRID_SETTINGS =
    IS_LAYOUT = LS_LAYOUT
    IT_FIELDCAT = LT_FIELDCAT
    IT_EXCLUDING =
    IT_SPECIAL_GROUPS =
    IT_SORT =
    IT_FILTER =
    IS_SEL_HIDE =
    I_DEFAULT = 'X'
    I_SAVE = ' '
    IS_VARIANT =
    IT_EVENTS =
    IT_EVENT_EXIT =
    IS_PRINT =
    IS_REPREP_ID =
    I_SCREEN_START_COLUMN = 0
    I_SCREEN_START_LINE = 0
    I_SCREEN_END_COLUMN = 0
    I_SCREEN_END_LINE = 0
    IT_ALV_GRAPHICS =
    IT_HYPERLINK =
    IT_ADD_FIELDCAT =
    IT_EXCEPT_QINFO =
    I_HTML_HEIGHT_TOP =
    I_HTML_HEIGHT_END =
    IMPORTING
    E_EXIT_CAUSED_BY_CALLER =
    ES_EXIT_CAUSED_BY_USER =
    TABLES
    t_outtab = IT_STPO
    EXCEPTIONS
    PROGRAM_ERROR = 1
    OTHERS = 2
    IF sy-subrc 0.
    MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
    WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
    ENDIF.
    endform. " DISPLAY_DATA_BOM
    FORM TOP9 .
    CLEAR LS_HEADER.
    REFRESH LT_HEADER.
    LS_HEADER-TYP = 'H'.
    LS_HEADER-INFO = 'BILL OF MATERIALS'.
    APPEND LS_HEADER TO LT_HEADER.
    CALL FUNCTION 'REUSE_ALV_COMMENTARY_WRITE'
    EXPORTING
    IT_LIST_COMMENTARY = LT_HEADER
    I_LOGO = 'ENJOYSAP_LOGO'
    I_END_OF_LIST_GRID =
    ENDFORM.
    FORM USER_COMMAND_BOM USING RF_UCOMM_BOM LIKE SY-UCOMM
    SEL_FIELD TYPE SLIS_SELFIELD.
    CASE RF_UCOMM_BOM.
    WHEN '&IC1'.
    SET PARAMETER ID 'MAT' FIELD WA_STPO-IDNRK.
    SET PARAMETER ID 'WRK' FIELD WA_MAST-WERKS.
    SET PARAMETER ID 'CSA' FIELD WA_MAST-STLAN.
    CALL TRANSACTION 'CS03' AND SKIP FIRST SCREEN.
    ENDCASE.[/code]

  • Add check box in ALV output  List.

    Hi
    I want to add check box in alv out put list . i m trying but not getting succsses .
    please tell me the process .
    thanks
    chandra

    Hi Chandra,
    Types: begin of ty_output,
          u201C Included these two types in your output structure.
       celltab     TYPE lvc_t_styl,   
       checkbox    TYPE c,
           end of ty_output.     
    Data: it_output type standard table of ty_output,
          wa_output type ty_output.
    Loop at it_output into wa_output.
    * Initially, set all checkbox cells editable.
       ls_celltab-fieldname = 'CHECKBOX'.
       ls_celltab-style = cl_gui_alv_grid=>mc_style_enabled.
       INSERT ls_celltab INTO TABLE lt_celltab.
       INSERT LINES OF lt_celltab INTO TABLE wa_coupon-celltab.
    MODIFY it_coupon FROM wa_coupon TRANSPORTING celltab.
    Endloop.
    Form build_field_catalog.
      wa_fieldcat-fieldname = 'CHECKBOX'.
      ADD 1 TO wf_pos.
      wa_fieldcat-col_pos  = wf_pos.
      wa_fieldcat-datatype = 'C'.
      wa_fieldcat-outputlen  = '6'.
      wa_fieldcat-reptext   = 'Select'.
      wa_fieldcat-coltext  = 'Select'.
      wa_fieldcat-seltext  = 'Select'.
      wa_fieldcat-tooltip  = 'Select'.
      wa_fieldcat-checkbox = 'X'.
      wa_fieldcat-edit     = 'X'.
      wa_fieldcat-key      = ''.
      wa_fieldcat-icon      = ''.
      APPEND wa_fieldcat TO it_fieldcat.
      CLEAR wa_fieldcat.
    Endform.
    Form display_alv.
    ls_variant-report = sy-cprog..
      gs_layout-stylefname = 'CELLTAB'.  u201C Please  do not forget to include this statement
    gs_layout-zebra = 'X'.
      CALL METHOD alv_grid->set_table_for_first_display
        EXPORTING
          is_layout                     = gs_layout
          it_toolbar_excluding          = lt_exclude
        CHANGING
          it_outtab       = it_output
          it_fieldcatalog = it_fieldcat.
      CLEAR gt_fieldcat.
    Endform.
    Code Formatted by: Alvaro Tejada Galindo on Jan 4, 2010 4:31 PM

  • Suppress the pop dialog box in ALV report

    Hi Gurus,
    I have developed an ALV report where we can edit the data and save to data base.
    For a field, it checks the value on value table and displays a pop with error "This value does not exsit". Automatically.
    I have not written an validation for this field.
    When i try to close the dialoge box it does not close.

    Hi,
    What the field reference you have given, there is check table which it is validating for the field, check it there might be a check table.
    Regards,
    Madhukar Shetty

  • Check box in ALV grid gets unselected for new selection

    Hi all,
    This is my code :
    TYPE-POOLS : slis.
    Variable
    DATA: g_repid LIKE sy-repid,
          g_title TYPE lvc_title,
          g_set_pf_stat TYPE slis_formname VALUE 'SET_PF_STATUS',
          g_user_command TYPE slis_formname VALUE 'USER_COMMAND',
          g_layout TYPE slis_layout_alv,
          g_print_alv TYPE slis_print_alv,
          g_variant LIKE disvariant,
          c_char_a(1) VALUE 'A',
          c_char_x(1) VALUE 'X',
          itab_alv_sort TYPE slis_t_sortinfo_alv,
          itab_alv_fcat TYPE slis_t_fieldcat_alv,
          fm_name type rs38l_fnam," Function Module Name
    *      l_sfctrlparams LIKE ssfctrlop, " Form Print Parameter
    *      l_sfoutopt LIKE ssfcompop,
          pri_params LIKE pri_params,
          c_x type c .
    *       Internal tables          Begin with IT_                       *
    DATA : it_fcat TYPE SLIS_T_FIELDCAT_ALV,                           "---ALV
           it_disp type table of ZLOI.
    *       Work Area for Internal tables      Begin with WA_             *
    data : wa_fcat TYPE slis_fieldcat_alv ,              "---ALV
           wa_layout           TYPE lvc_s_layo,               "---ALV
           wa_it_disp like line of it_disp.
    *       Objects                                                       *
    DATA : cref TYPE REF TO cl_gui_custom_container,          "---ALV
           gref TYPE REF TO cl_gui_alv_grid.                  "---ALV
    *        Start-of-selection
    Start-of-selection.
      perform fetch_po_det.
      perform build_fcat.
      perform alv_display.
    *&      Form  FETCH_PO_DET
    *       text
    *  -->  p1        text
    *  <--  p2        text
    FORM FETCH_PO_DET .
      data : it_po type table of crmd_orderadm_h,
               wa_po like line of it_po,
               wa_header type BBP_PDS_PO_HEADER_D.
      select  guid
              object_id
              DESCRIPTION
              POSTING_DATE
              CREATED_BY
      from crmd_orderadm_h
      into corresponding fields of table it_po
      where object_type = 'BUS2201'.
      loop at it_po into wa_po.
        move wa_po-object_id to wa_it_disp-ZZPONO.
        move wa_po-DESCRIPTION to wa_it_disp-ZZPODESC.
        move wa_po-posting_date to wa_it_disp-ZZPODATE.
        move wa_po-created_by to wa_it_disp-ZZPOCREATOR.
        CALL FUNCTION 'BBP_PD_PO_GETDETAIL'
          EXPORTING
            I_OBJECT_ID = wa_it_disp-zzpono
          IMPORTING
            E_HEADER    = wa_header.
        move wa_header-total_value to wa_it_disp-ZZPOVAL.
        move wa_header-currency to wa_it_disp-ZZPOCUR.
        append wa_it_disp to it_disp.
      endloop.
    *  write : wa_it_disp-zzpono.
    ENDFORM.                    " FETCH_PO_DET
    *&      Form  BUILD_FCAT
    *       text
    *  -->  p1        text
    *  <--  p2        text
    FORM BUILD_FCAT .
      g_repid = sy-repid.
      g_title = 'LOI details'.
      g_print_alv-no_print_listinfos = 'X'.
      g_variant-report = sy-repid.
      g_variant-variant = sy-title.
      CLEAR g_layout.
      g_layout-f2code = ' '.
      wa_layout-zebra       = 'X'.
      g_layout-flexible_key = 'X'.
      g_layout-colwidth_optimize = 'X'.
      g_layout-detail_initial_lines = 'X'.
      g_layout-box_fieldname = 'ZZCHECK'.
    *g_layout-box_tabname = 'ITAB_REPORT'.
    *Check box
      wa_fcat-fieldname = 'ZZCHECK'.
      wa_fcat-checkbox = 'X'.
      wa_fcat-outputlen = '1'.
      wa_fcat-col_pos = '1'.
      wa_fcat-edit = '1'.
      wa_fcat-seltext_m = 'No'.
      append wa_fcat to it_fcat.
    *Po no
      clear wa_fcat.
      wa_fcat-fieldname = 'ZZPONO' .
    wa_fcat-tabname = 'IT_DISP'.
    *  wa_fcat-seltext = 'Purchase Order'.
      wa_fcat-seltext_m  = 'Purchase Order'.
    *wa_fcat-seltext_s = 'Purchase Order.
    wa_fcat-icon = 'X'.
      wa_fcat-col_pos = '2'.
      wa_fcat-outputlen = 10.
      append wa_fcat to it_fcat.
    *Desc
      wa_fcat-fieldname = 'ZZPODESC' .
    wa_fcat-tabname = 'IT_DISP'.
    *wa_fcat-seltext_l = 'Description'.
      wa_fcat-seltext_m = 'Description'.
    *wa_fcat-seltext_s = 'Description'.
      wa_fcat-col_pos = '3'.
      wa_fcat-outputlen = 10.
      append wa_fcat to it_fcat.
    *Postign date
      wa_fcat-fieldname = 'ZZPODATE' .
    wa_fcat-tabname = 'IT_DISP'.
    wa_fcat-seltext_l = 'Posting Date'.
      wa_fcat-seltext_m = 'Posting Date'.
    *wa_fcat-seltext_s = 'Posting Date'.
      wa_fcat-col_pos = '4'.
      wa_fcat-outputlen = 8.
      append wa_fcat to it_fcat.
    *value
      wa_fcat-fieldname = 'ZZPOVAL' .
    wa_fcat-tabname = 'IT_DISP'.
    *wa_fcat-seltext_l = 'PO value'.
      wa_fcat-seltext_m = 'PO value'.
    *wa_fcat-seltext_s = 'PO value'.
      wa_fcat-col_pos = '5'.
      wa_fcat-outputlen = 15.
      append wa_fcat to it_fcat.
    *Currency
      wa_fcat-fieldname = 'ZZPOCUR' .
    wa_fcat-tabname = 'IT_DISP'.
    *wa_fcat-seltext_l = 'PO Currency'.
      wa_fcat-seltext_m = 'PO Currency'.
    *wa_fcat-seltext_s = 'PO Currency'.
      wa_fcat-col_pos = '6'.
      wa_fcat-outputlen = 5.
      append wa_fcat to it_fcat.
    *Creator
      wa_fcat-fieldname = 'ZZPOCREATOR' .
    wa_fcat-tabname = 'IT_DISP'.
    *wa_fcat-seltext_l = 'Buyer'.
      wa_fcat-seltext_m = 'Buyer'.
    *wa_fcat-seltext_s = 'Buyer'.
      wa_fcat-col_pos = '7'.
      wa_fcat-outputlen = 12.
      append wa_fcat to it_fcat.
    ENDFORM.                    " BUILD_FCAT
    *&      Form  ALV_DISPLAY
    *       text
    *  -->  p1        text
    *  <--  p2        text
    FORM ALV_DISPLAY .
      sort it_disp by ZZPONO.
      CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'
       EXPORTING
    *   I_INTERFACE_CHECK                 = ' '
    *   I_BYPASSING_BUFFER                = ' '
    *   I_BUFFER_ACTIVE                   = ' '
         I_CALLBACK_PROGRAM                = g_repid
         I_CALLBACK_PF_STATUS_SET          = g_set_pf_stat
         I_CALLBACK_USER_COMMAND           = g_user_command
    *   I_CALLBACK_TOP_OF_PAGE            = ' '
    *   I_CALLBACK_HTML_TOP_OF_PAGE       = ' '
    *   I_CALLBACK_HTML_END_OF_LIST       = ' '
    *   I_STRUCTURE_NAME                  =
    *   I_BACKGROUND_ID                   = ' '
          I_GRID_TITLE                      = g_title
    *   I_GRID_SETTINGS                   =
          IS_LAYOUT                         = g_layout
          IT_FIELDCAT                       = it_fcat[]
    *   IT_EXCLUDING                      =
    *   IT_SPECIAL_GROUPS                 =
    *   IT_SORT                           =
    *   IT_FILTER                         =
    *   IS_SEL_HIDE                       =
    *   I_DEFAULT                         = 'X'
    *   I_SAVE                            = ' '
          IS_VARIANT                        = g_variant
    *   IT_EVENTS                         =
    *   IT_EVENT_EXIT                     =
          IS_PRINT                          = g_print_alv
    *   IS_REPREP_ID                      =
    *   I_SCREEN_START_COLUMN             = 0
    *   I_SCREEN_START_LINE               = 0
    *   I_SCREEN_END_COLUMN               = 0
    *   I_SCREEN_END_LINE                 = 0
    *   I_HTML_HEIGHT_TOP                 = 0
    *   I_HTML_HEIGHT_END                 = 0
    *   IT_ALV_GRAPHICS                   =
    *   IT_HYPERLINK                      =
    *   IT_ADD_FIELDCAT                   =
    *   IT_EXCEPT_QINFO                   =
    *   IR_SALV_FULLSCREEN_ADAPTER        =
    * IMPORTING
    *   E_EXIT_CAUSED_BY_CALLER           =
    *   ES_EXIT_CAUSED_BY_USER            =
        TABLES
          T_OUTTAB                          = it_disp[]
       EXCEPTIONS
         PROGRAM_ERROR                     = 1
         OTHERS                            = 2
      IF SY-SUBRC <> 0.
    * MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
    *         WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
      ENDIF.
    ENDFORM.                    " ALV_DISPLAY
    *&      Form  user_command
    *       text
    *      -->R_UCOMM      text
    *      -->RS_SELFIELD  text
    FORM user_command USING r_ucomm LIKE sy-ucomm
    rs_selfield TYPE slis_selfield.                             "#EC CALLED
      CASE R_UCOMM.
        WHEN 'PRINT'.
          READ TABLE IT_disp INTO WA_IT_DISP WITH KEY ZZCHECK = 'X'.
          IF SY-SUBRC EQ 0.
            loop at it_DISP INTO WA_IT_DISP.
              CALL FUNCTION 'POPUP_TO_CONFIRM'
                EXPORTING
                  TEXT_QUESTION = 'Print the LOI details?'
                  TEXT_BUTTON_1 = 'Yes'
                  TEXT_BUTTON_2 = 'No'.
    *      IMPORTING
    *        ANSWER        = w_answer.
              IF SY-SUBRC  0.
              ENDIF.
    *          PERFORM CALL_SF.
            endloop.
          ENDIF.
        WHEN 'BACK'.
          LEAVE PROGRAM.
        WHEN 'EXIT'.
          LEAVE PROGRAM.
        WHEN 'CANCEL'.
          LEAVE PROGRAM.
      ENDCASE.
      rs_selfield-refresh = 'X'.
    ENDFORM.                    "user_command
    *&      Form  set_pf_status
    *       text
    *      -->RT_EXTAB   text
    FORM set_pf_status USING rt_extab TYPE slis_t_extab.
      SET PF-STATUS 'ZSTANDARD' EXCLUDING rt_extab.
      SET TITLEBAR sy-tcode.
    ENDFORM.                    "set_pf_status
    Now in my ALV grid o/p i can  see the check box  but if i select one row and then try to slect another the first one gets deselected.
    Can anybody tell me what is missing?

    Hi,
    if you need just a check box for each line, try to get rid of this line from your layout.
    g_layout-box_fieldname = 'ZZCHECK'.
    SAP uses this field to store info about selected lines. Hence you click on the second check box, you select different line and the first line is erased. You can select more line by holding SHIFT + CTRL
    Cheers

  • How to set check box in alv

    Hello Sir,
      I am Developing One Report In ALV, But  I want One Column Of ALV Should Be In Checkboxes .How Can I set Check Box In Field Catalog.
    Plz Help Me.

    hi,
    Try like this.
    *& Report  ZTEST_ALV
    REPORT  ztest_alv.
    TYPE-POOLS
    TYPE-POOLS: slis. " Type pool for ALV
    Tables
    TABLES: vbak, vbap.
    INTERNAL TABLES
    DATA: BEGIN OF g_t_itab OCCURS 0,
    sel TYPE c,
    vbeln LIKE vbak-vbeln,
    erdat LIKE vbak-erdat,
    vbtyp LIKE vbak-vbtyp,
    vkorg LIKE vbak-vkorg,
    vtweg LIKE vbak-vtweg,
    spart LIKE vbak-spart,
    netwr LIKE vbak-netwr,
    kunnr LIKE vbak-kunnr,
    END OF g_t_itab.
    DATA: BEGIN OF g_t_item OCCURS 0,
    vbeln LIKE vbap-vbeln,
    posnr LIKE vbap-posnr,
    matnr LIKE vbap-matnr,
    arktx LIKE vbap-arktx,
    END OF g_t_item.
    Data fields used for ALV call - simple list
    DATA : g_f_repid LIKE sy-repid.
    DATA : g_t_fieldcat TYPE slis_t_fieldcat_alv.
    DATA : g_r_fieldcat TYPE slis_fieldcat_alv.
    DATA : g_t_events TYPE slis_t_event.
    DATA : g_r_events TYPE slis_alv_event.
    DATA : g_r_layout TYPE slis_layout_alv.
    DATA : g_r_x_variant LIKE disvariant.
    DATA : g_r_variant LIKE disvariant.
    DATA : g_f_exit(1) TYPE c.
    DATA : g_f_save(1) TYPE c.
    SELECTION SCREEN
    SELECTION-SCREEN BEGIN OF BLOCK b1 WITH FRAME TITLE text-001.
    SELECT-OPTIONS: s_vbeln FOR vbak-vbeln.
    SELECTION-SCREEN END OF BLOCK b1.
    START OF SELECTION
    START-OF-SELECTION.
      PERFORM get_data.
    END OF SELECTION
    END-OF-SELECTION.
      PERFORM set_alv_parameters.
      PERFORM display_list.
    *& Form get_data
    Get data from DB tables
    FORM get_data.
      CLEAR: g_t_itab.
      REFRESH: g_t_itab.
      SELECT vbeln erdat vbtyp vkorg vtweg spart netwr kunnr
      FROM vbak
      INTO CORRESPONDING FIELDS OF TABLE g_t_itab
      WHERE
      vbeln IN s_vbeln.
    ENDFORM. " get_data
    *& Form set_alv_parameters
    Set alv parameters , layout, events, fieldcatlog
    FORM set_alv_parameters.
      PERFORM set_filedcatlog.
    ENDFORM. " set_alv_parameters
    *& Form display_list
    text
    FORM display_list.
      g_f_repid = sy-repid.
      CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'
        EXPORTING
          i_callback_program = g_f_repid
         is_layout          = g_r_layout
          it_fieldcat        = g_t_fieldcat[]
          it_events          = g_t_events[]
        TABLES
          t_outtab           = g_t_itab
        EXCEPTIONS
          program_error      = 1
          OTHERS             = 2.
      IF sy-subrc <> 0.
    MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
    WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
      ENDIF.
    ENDFORM. " display_list
    *& Form set_filedcatlog
    text
    FORM set_filedcatlog.
      DATA: l_r_fieldcat TYPE slis_fieldcat_alv. " For column heading
      CLEAR : g_t_fieldcat,
      g_t_fieldcat[].
    <b>  l_r_fieldcat-tabname = 'G_T_ITAB'.
      l_r_fieldcat-fieldname = 'SEL'.
      l_r_fieldcat-checkbox = 'X'.
      l_r_fieldcat-outputlen = 2.
      l_r_fieldcat-col_pos = 1.
      l_r_fieldcat-edit = 'X'.
      l_r_fieldcat-input = 'X'.
      APPEND l_r_fieldcat TO g_t_fieldcat.
      CLEAR l_r_fieldcat.</b>
    Sales Order
      l_r_fieldcat-tabname = 'G_T_ITAB'.
      l_r_fieldcat-fieldname = 'VBELN'.
      l_r_fieldcat-ref_tabname = 'VBAK'.
      l_r_fieldcat-ref_fieldname = 'VBELN'.
      l_r_fieldcat-col_pos = 2.
      APPEND l_r_fieldcat TO g_t_fieldcat.
      CLEAR l_r_fieldcat.
    Creation date
      l_r_fieldcat-tabname = 'G_T_ITAB'.
      l_r_fieldcat-fieldname = 'ERDAT'.
      l_r_fieldcat-ref_tabname = 'VBAK'.
      l_r_fieldcat-ref_fieldname = 'ERDAT'.
      l_r_fieldcat-col_pos = 3.
      APPEND l_r_fieldcat TO g_t_fieldcat.
      CLEAR l_r_fieldcat.
    document category
      l_r_fieldcat-tabname = 'G_T_ITAB'.
      l_r_fieldcat-fieldname = 'VBTYP'.
      l_r_fieldcat-ref_tabname = 'VBAK'.
      l_r_fieldcat-ref_fieldname = 'VBTYP'.
      l_r_fieldcat-col_pos = 4.
      APPEND l_r_fieldcat TO g_t_fieldcat.
      CLEAR l_r_fieldcat.
    Sales organization
      l_r_fieldcat-tabname = 'G_T_ITAB'.
      l_r_fieldcat-fieldname = 'VKORG'.
      l_r_fieldcat-ref_tabname = 'VBAK'.
      l_r_fieldcat-ref_fieldname = 'VKORG'.
      l_r_fieldcat-col_pos = 5.
      APPEND l_r_fieldcat TO g_t_fieldcat.
      CLEAR l_r_fieldcat.
    Distribution channel
      l_r_fieldcat-tabname = 'G_T_ITAB'.
      l_r_fieldcat-fieldname = 'VTWEG'.
      l_r_fieldcat-ref_tabname = 'VBAK'.
      l_r_fieldcat-ref_fieldname = 'VTWEG'.
      l_r_fieldcat-col_pos = 6.
      APPEND l_r_fieldcat TO g_t_fieldcat.
      CLEAR l_r_fieldcat.
    Division
      l_r_fieldcat-tabname = 'G_T_ITAB'.
      l_r_fieldcat-fieldname = 'SPART'.
      l_r_fieldcat-ref_tabname = 'VBAK'.
      l_r_fieldcat-ref_fieldname = 'SPART'.
      l_r_fieldcat-col_pos = 7.
      APPEND l_r_fieldcat TO g_t_fieldcat.
      CLEAR l_r_fieldcat.
    Net Value
      l_r_fieldcat-tabname = 'G_T_ITAB'.
      l_r_fieldcat-fieldname = 'NETWR'.
      l_r_fieldcat-ref_tabname = 'VBAK'.
      l_r_fieldcat-ref_fieldname = 'NETWR'.
      l_r_fieldcat-col_pos = 8.
      l_r_fieldcat-do_sum = 'X'.
      l_r_fieldcat-emphasize = 'C500'.
      APPEND l_r_fieldcat TO g_t_fieldcat.
      CLEAR l_r_fieldcat.
    Distribution channel
      l_r_fieldcat-tabname = 'G_T_ITAB'.
      l_r_fieldcat-fieldname = 'KUNNR'.
      l_r_fieldcat-ref_tabname = 'VBAK'.
      l_r_fieldcat-ref_fieldname = 'KUNNR'.
      l_r_fieldcat-col_pos = 9.
      APPEND l_r_fieldcat TO g_t_fieldcat.
      CLEAR l_r_fieldcat.
    ENDFORM. " set_filedcatlog

  • How to show check box in ALV grid??

    Hi All,
         I am using an option edit in the feild catalogue which allows me to change the values in a few columns in the ALV list.
    What I want is to be able to show a check box in a few columns which user can check and use the value X in the program for the later processing....
    Can somebody tell me how to show a check box in the ALV screen in the changeable format??
    Win full point by answering this typical question..
    Thanks - Chandan

    hi go through the fallowing code.
    *& Report  YGS_ALV_BOM                                                 *
    REPORT  YGS_ALV_BOM                             .
    TABLES : MAST,STKO,STPO.
    TYPE-POOLS: SLIS.
    TYPES : BEGIN OF TY_MAST,
            CHECK_BOX,
            MATNR TYPE MAST-MATNR,
            WERKS TYPE MAST-WERKS,
            STLAN TYPE MAST-STLAN,
            STLNR TYPE MAST-STLNR,
            STLAL TYPE MAST-STLAL,
            END OF TY_MAST.
    TYPES : BEGIN OF TY_STKO,
            STLTY TYPE STKO-STLTY,
            STLNR TYPE STKO-STLNR,
            STLAL TYPE STKO-STLAL,
            STKOZ TYPE STKO-STKOZ,
            BMENG TYPE STKO-BMENG,
            BMEIN TYPE STKO-BMEIN,
            END OF TY_STKO.
    TYPES : BEGIN OF TY_STPO,
            LIGHTS,
            STLTY TYPE STPO-STLTY,
            STLNR TYPE STPO-STLNR,
            STLKN TYPE STPO-STLKN,
            STPOZ TYPE STPO-STPOZ,
            IDNRK TYPE STPO-IDNRK,
            MENGE TYPE STPO-MENGE,
            MEINS TYPE STPO-MEINS,
            END OF TY_STPO.
    DATA : IT_MAST TYPE TABLE OF TY_MAST,
           WA_MAST TYPE TY_MAST,
           IT_STKO TYPE TABLE OF TY_STKO,
           WA_STKO TYPE TY_STKO,
           IT_STPO TYPE TABLE OF TY_STPO,
           WA_STPO TYPE TY_STPO.
    DATA : lt_fieldcat TYPE slis_t_fieldcat_alv,
           ls_layout TYPE slis_layout_alv,
           ls_event TYPE slis_alv_event,
           lt_event TYPE slis_t_event,
           it_sortinfo type slis_t_sortinfo_alv,
           ls_header TYPE slis_listheader,
           lt_header TYPE slis_t_listHEADER.
    DATA : IT_BDCDATA LIKE BDCDATA OCCURS 0 WITH HEADER LINE.
    SELECT-OPTIONS : S_MATNR FOR MAST-MATNR.
    START-OF-SELECTION.
    PERFORM GET_DATA.
    PERFORM BUILD_FIELDCAT USING LT_FIELDCAT.
    PERFORM BUILD_LAYOUT.
    END-OF-SELECTION.
    PERFORM DISPLAY_DATA.
    *&      Form  GET_DATA
    *       text
    *  -->  p1        text
    *  <--  p2        text
    form GET_DATA .
    REFRESH : IT_MAST.
    SELECT MATNR
           WERKS
           STLAN
           STLNR
      FROM MAST
      INTO CORRESPONDING FIELDS OF TABLE IT_MAST
    WHERE MATNR IN S_MATNR.
    endform.                    " GET_DATA
    *&      Form  BUILD_FIELDCAT
    *       text
    *  -->  p1        text
    *  <--  p2        text
    form BUILD_FIELDCAT USING LT_FIELDCAT TYPE SLIS_T_FIELDCAT_ALV.
    DATA  : L_FIELDCAT TYPE SLIS_FIELDCAT_ALV.
    REFRESH : LT_FIELDCAT.
            L_FIELDCAT-COL_POS = 1.
            L_FIELDCAT-FIELDNAME = 'MATNR'.
            L_FIELDCAT-TABNAME = 'IT_MAST'.
            L_FIELDCAT-REF_FIELDNAME = 'MATNR'.
            L_FIELDCAT-REF_TABNAME = 'MAST'.
            APPEND L_FIELDCAT TO LT_FIELDCAT.
            L_FIELDCAT-COL_POS = 2.
            L_FIELDCAT-FIELDNAME = 'WERKS'.
            L_FIELDCAT-TABNAME = 'IT_MAST'.
            L_FIELDCAT-REF_FIELDNAME = 'WERKS'.
            L_FIELDCAT-REF_TABNAME = 'MAST'.
            APPEND L_FIELDCAT TO LT_FIELDCAT.
            L_FIELDCAT-COL_POS = 3.
            L_FIELDCAT-FIELDNAME = 'STLNR'.
            L_FIELDCAT-TABNAME = 'IT_MAST'.
            L_FIELDCAT-REF_FIELDNAME = 'STLNR'.
            L_FIELDCAT-REF_TABNAME = 'MAST'.
            APPEND L_FIELDCAT TO LT_FIELDCAT.
    endform.                    " BUILD_FIELDCAT
    *&      Form  BUILD_LAYOUT
    *       text
    *  -->  p1        text
    *  <--  p2        text
    form BUILD_LAYOUT .
    CLEAR LS_LAYOUT.
    LS_LAYOUT-BOX_FIELDNAME = 'CHECK_BOX'.
    LS_LAYOUT-BOX_TABNAME =  'IT_MAST'.
    endform.                    " BUILD_LAYOUT
    *&      Form  DISPLAY_DATA
    *       text
    *  -->  p1        text
    *  <--  p2        text
    form DISPLAY_DATA .
    CALL FUNCTION 'REUSE_ALV_LIST_DISPLAY'
    EXPORTING
    *   I_INTERFACE_CHECK              = ' '
    *   I_BYPASSING_BUFFER             =
    *   I_BUFFER_ACTIVE                = ' '
       I_CALLBACK_PROGRAM             = SY-REPID
       I_CALLBACK_PF_STATUS_SET       = 'PF_STATUS'
       I_CALLBACK_USER_COMMAND        = 'USER_COMMAND'
    *   I_STRUCTURE_NAME               =
       IS_LAYOUT                      = LS_LAYOUT
       IT_FIELDCAT                    = LT_FIELDCAT
    *   IT_EXCLUDING                   =
    *   IT_SPECIAL_GROUPS              =
    *   IT_SORT                        =
    *   IT_FILTER                      =
    *   IS_SEL_HIDE                    =
    *   I_DEFAULT                      = 'X'
    *   I_SAVE                         = ' '
    *   IS_VARIANT                     =
    *   IT_EVENTS                      =
    *   IT_EVENT_EXIT                  =
    *   IS_PRINT                       =
    *   IS_REPREP_ID                   =
    *   I_SCREEN_START_COLUMN          = 0
    *   I_SCREEN_START_LINE            = 0
    *   I_SCREEN_END_COLUMN            = 0
    *   I_SCREEN_END_LINE              = 0
    * IMPORTING
    *   E_EXIT_CAUSED_BY_CALLER        =
    *   ES_EXIT_CAUSED_BY_USER         =
      TABLES
        t_outtab                       = IT_MAST
    * EXCEPTIONS
    *   PROGRAM_ERROR                  = 1
    *   OTHERS                         = 2
    IF sy-subrc <> 0.
    * MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
    *         WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
    ENDIF.
    endform.                    " DISPLAY_DATA
    FORM PF_STATUS USING RT_EXTAB TYPE SLIS_T_EXTAB.
      SET PF-STATUS 'YSTATUS' OF PROGRAM SY-REPID
                               EXCLUDING RT_EXTAB.
    ENDFORM.
    FORM USER_COMMAND USING RF_UCOMM TYPE SY-UCOMM
                      SELFIELD TYPE SLIS_SELFIELD.
      CASE RF_UCOMM.
          WHEN '&NEXT'.
           PERFORM GET_DATA_BOM .
           PERFORM BUILD_FIELDCAT_BOM USING LT_FIELDCAT.
           PERFORM BUILD_LAYOUT_BOM.
           PERFORM DISPLAY_DATA_BOM.
      ENDCASE.
    ENDFORM.
    *&      Form  GET_DATA_BOM
    *       text
    *  -->  p1        text
    *  <--  p2        text
    form GET_DATA_BOM .
      CLEAR   : WA_STPO,
                WA_MAST.
      REFRESH : IT_STPO.
      DATA  : IT_CHECK TYPE TABLE OF TY_MAST.
      LOOP AT IT_MAST INTO WA_MAST.
          IF WA_MAST-CHECK_BOX EQ 'X'.
             APPEND WA_MAST TO IT_CHECK.
          ENDIF.
      ENDLOOP.
      SELECT STLTY
             STLNR
             STLKN
             VGKNT
             IDNRK
             MENGE
             MEINS
        FROM STPO
        INTO CORRESPONDING FIELDS OF TABLE IT_STPO
         FOR ALL ENTRIES IN IT_CHECK
       WHERE IDNRK EQ IT_CHECK-MATNR.
    CLEAR WA_STPO.
       LOOP AT IT_STPO INTO WA_STPO.
         SELECT SINGLE * FROM MAST WHERE MATNR EQ WA_STPO-IDNRK.
         IF SY-SUBRC = 0.
           WA_STPO-LIGHTS = '2'.
         ELSE.
           WA_STPO-LIGHTS = '1'.
         ENDIF.
         MODIFY IT_STPO FROM WA_STPO.
       ENDLOOP.
    endform.                    " GET_DATA_BOM
    *&      Form  BUILD_FIELDCAT_BOM
    *       text
    *  -->  p1        text
    *  <--  p2        text
    form BUILD_FIELDCAT_BOM USING LT_FIELDCAT TYPE SLIS_T_FIELDCAT_ALV.
    DATA  : L_FIELDCAT TYPE SLIS_FIELDCAT_ALV.
    REFRESH : LT_FIELDCAT.
            L_FIELDCAT-COL_POS = 1.
            L_FIELDCAT-FIELDNAME = 'STLTY'.
            L_FIELDCAT-TABNAME = 'IT_STPO'.
            L_FIELDCAT-REF_FIELDNAME = 'STLTY'.
            L_FIELDCAT-REF_TABNAME = 'STPO'.
            APPEND L_FIELDCAT TO LT_FIELDCAT.
            L_FIELDCAT-COL_POS = 2.
            L_FIELDCAT-FIELDNAME = 'STLNR'.
            L_FIELDCAT-TABNAME = 'IT_STPO'.
            L_FIELDCAT-REF_FIELDNAME = 'STLNR'.
            L_FIELDCAT-REF_TABNAME = 'STPO'.
            APPEND L_FIELDCAT TO LT_FIELDCAT.
            L_FIELDCAT-COL_POS = 3.
            L_FIELDCAT-FIELDNAME = 'STLKN'.
            L_FIELDCAT-TABNAME = 'IT_STPO'.
            L_FIELDCAT-REF_FIELDNAME = 'STLKN'.
            L_FIELDCAT-REF_TABNAME = 'STPO'.
            APPEND L_FIELDCAT TO LT_FIELDCAT.
            L_FIELDCAT-COL_POS = 4.
            L_FIELDCAT-FIELDNAME = 'IDNRK'.
            L_FIELDCAT-TABNAME = 'IT_STPO'.
            L_FIELDCAT-REF_FIELDNAME = 'IDNRK'.
            L_FIELDCAT-REF_TABNAME = 'STPO'.
            APPEND L_FIELDCAT TO LT_FIELDCAT.
            L_FIELDCAT-COL_POS = 5.
            L_FIELDCAT-FIELDNAME = 'MENGE'.
            L_FIELDCAT-TABNAME = 'IT_STPO'.
            L_FIELDCAT-REF_FIELDNAME = 'MENGE'.
            L_FIELDCAT-REF_TABNAME = 'STPO'.
            APPEND L_FIELDCAT TO LT_FIELDCAT.
    endform.                    " BUILD_FIELDCAT_BOM
    *&      Form  BUILD_LAYOUT_BOM
    *      text
    * -->  p1        text
    *<--  p2        text
    form BUILD_LAYOUT_BOM .
    CLEAR  : LS_LAYOUT.
    LS_LAYOUT-LIGHTS_FIELDNAME = 'LIGHTS'.
    LS_LAYOUT-LIGHTS_TABNAME = 'IT_STPO'.
    endform.                    " BUILD_LAYOUT_BOM
    *&      Form  DISPLAY_DATA_BOM
    *       text
    *  -->  p1        text
    *  <--  p2        text
    form DISPLAY_DATA_BOM .
    CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'
    EXPORTING
    *   I_INTERFACE_CHECK                 = ' '
    *   I_BYPASSING_BUFFER                = ' '
    *   I_BUFFER_ACTIVE                   = ' '
       I_CALLBACK_PROGRAM                = SY-REPID
    *   I_CALLBACK_PF_STATUS_SET          = ' '
       I_CALLBACK_USER_COMMAND           = 'USER_COMMAND_BOM'
       I_CALLBACK_TOP_OF_PAGE            = 'TOP9'
    *   I_CALLBACK_HTML_TOP_OF_PAGE       = ' '
    *   I_CALLBACK_HTML_END_OF_LIST       = ' '
    *   I_STRUCTURE_NAME                  =
       I_BACKGROUND_ID                   = 'ALV_BACKGROUND'
    *   I_GRID_TITLE                      =
    *   I_GRID_SETTINGS                   =
       IS_LAYOUT                         = LS_LAYOUT
       IT_FIELDCAT                       = LT_FIELDCAT
    *   IT_EXCLUDING                      =
    *   IT_SPECIAL_GROUPS                 =
    *   IT_SORT                           =
    *   IT_FILTER                         =
    *   IS_SEL_HIDE                       =
    *   I_DEFAULT                         = 'X'
    *   I_SAVE                            = ' '
    *   IS_VARIANT                        =
    *   IT_EVENTS                         =
    *   IT_EVENT_EXIT                     =
    *   IS_PRINT                          =
    *   IS_REPREP_ID                      =
    *   I_SCREEN_START_COLUMN             = 0
    *   I_SCREEN_START_LINE               = 0
    *   I_SCREEN_END_COLUMN               = 0
    *   I_SCREEN_END_LINE                 = 0
    *   IT_ALV_GRAPHICS                   =
    *   IT_HYPERLINK                      =
    *   IT_ADD_FIELDCAT                   =
    *   IT_EXCEPT_QINFO                   =
    *   I_HTML_HEIGHT_TOP                 =
    *   I_HTML_HEIGHT_END                 =
    * IMPORTING
    *   E_EXIT_CAUSED_BY_CALLER           =
    *   ES_EXIT_CAUSED_BY_USER            =
      TABLES
        t_outtab                          = IT_STPO
    * EXCEPTIONS
    *   PROGRAM_ERROR                     = 1
    *   OTHERS                            = 2
    IF sy-subrc <> 0.
    * MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
    *         WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
    ENDIF.
    endform.                    " DISPLAY_DATA_BOM
    FORM TOP9 .
    CLEAR   LS_HEADER.
    REFRESH  LT_HEADER.
    LS_HEADER-TYP = 'H'.
    LS_HEADER-INFO = 'BILL OF MATERIALS'.
    APPEND LS_HEADER TO LT_HEADER.
    CALL FUNCTION 'REUSE_ALV_COMMENTARY_WRITE'
      EXPORTING
        IT_LIST_COMMENTARY       = LT_HEADER
       I_LOGO                   = 'ENJOYSAP_LOGO'
    *   I_END_OF_LIST_GRID       =
    ENDFORM.
    FORM USER_COMMAND_BOM USING RF_UCOMM_BOM LIKE SY-UCOMM
                      SEL_FIELD TYPE SLIS_SELFIELD.
        CASE RF_UCOMM_BOM.
          WHEN '&IC1'.
          SET PARAMETER ID 'MAT' FIELD WA_STPO-IDNRK.
          SET PARAMETER ID 'WRK' FIELD WA_MAST-WERKS.
          SET PARAMETER ID 'CSA' FIELD WA_MAST-STLAN.
          CALL TRANSACTION 'CS03' AND SKIP FIRST SCREEN.
        ENDCASE.

  • How to create command button called 'Remarks' and Check box in ALV GRID?

    Hi, Experts,
    Requirement is: in the ALVE GRID report output, user select a record by clicking the check box and pressing the button 'Remarks' it will take me into other transaction from the output list.
    Please help me out.
    Reward points.
    Sekhar

    Hi Chandra Shekar,
    Check the following sample program. 2 things to remember.
    1. Check the callback subroutine PF_STATUS_SET and create PF status for the program.and also ur REMARKS button in the application tool. Comments are made every where wherever those are needed. After creating Pf status execute the report.
    2.Once you select records by selecting checkboxes, u have to press on Refresh button( that is there on application toolbar), then only for selected records, CHECK field in the internal is updated. After that press on REMARKS button .
      REPORT zvenkat_alv_grid.
      TABLES:t001.
      "Types
      TYPES:
            BEGIN OF t_1001,
              check TYPE c,
              bukrs TYPE t001-bukrs,
              butxt TYPE t001-butxt,
              ort01 TYPE t001-ort01,
              land1 TYPE t001-land1,
            END OF t_1001.
      "Work area
      DATA:
            w_t001 TYPE t_1001.
      "Internal table
      DATA:
            i_t001 TYPE STANDARD TABLE OF t_1001.
      " ALV Declarations
    * Types Pools
      TYPE-POOLS:
         slis.
    * Types
      TYPES:
         t_fieldcat         TYPE slis_fieldcat_alv,
         t_events           TYPE slis_alv_event,
         t_layout           TYPE slis_layout_alv.
    * Workareas
      DATA:
         w_fieldcat         TYPE t_fieldcat,
         w_events           TYPE t_events,
         w_layout           TYPE t_layout.
    * Internal Tables
      DATA:
         i_fieldcat         TYPE STANDARD TABLE OF t_fieldcat,
         i_events           TYPE STANDARD TABLE OF t_events.
    *&    start of selection
      START-OF-SELECTION.
        PERFORM get_data.
    *&    end-of-selection.
      END-OF-SELECTION.
        PERFORM build_fieldcatlog.
        PERFORM build_events.
        PERFORM build_layout.
        PERFORM list_display.
    *&      Form  get_data
      FORM get_data .
        SELECT bukrs
               butxt
               ort01
               land1
          FROM t001
          INTO CORRESPONDING FIELDS OF TABLE i_t001
          UP TO 30 ROWS.
      ENDFORM.                    " get_data
    *&      Form  build_fieldcatlog
      FORM build_fieldcatlog .
        CLEAR:w_fieldcat,i_fieldcat[].
        PERFORM build_fcatalog USING:
                 'CHECK' 'I_T001' ' ',
                 'BUKRS' 'I_T001' 'BUKRS',
                 'BUTXT' 'I_T001' 'BUTXT',
                 'ORT01' 'I_T001' 'ORT01',
                 'LAND1' 'I_T001' 'LAND1'.
      ENDFORM.                    "BUILD_FIELDCATLOG
    *&      Form  BUILD_FCATALOG
      FORM build_fcatalog USING l_field l_tab l_text.
        w_fieldcat-fieldname      = l_field.
        w_fieldcat-tabname        = l_tab.
        w_fieldcat-seltext_m      = l_text.
        IF  l_field = 'CHECK'..
          w_fieldcat-checkbox = 'X'.
          w_fieldcat-edit     = 'X'.
        ENDIF.
        APPEND w_fieldcat TO i_fieldcat.
        CLEAR w_fieldcat.
      ENDFORM.                    " build_fieldcatlog
    *&      Form  build_events
    *       text
      FORM build_events.
        CLEAR :
              w_events, i_events[].
        w_events-name = 'TOP_OF_PAGE'."Event Name
        w_events-form = 'TOP_OF_PAGE'."Callback event subroutine
        APPEND w_events TO i_events.
        CLEAR  w_events.
        w_events-name = 'USER_COMMAND' .
        w_events-form = 'USER_COMMAND' .
        APPEND w_events TO i_events.
        CLEAR w_events.
        w_events-name = 'PF_STATUS_SET' .
        w_events-form = 'PF_STATUS_SET' .
        APPEND w_events TO i_events.
        CLEAR w_events.
      ENDFORM.                    "build_events
    *&      Form  build_layout
      FORM build_layout .
        w_layout-colwidth_optimize = 'X'.
        w_layout-zebra             = 'X'.
      ENDFORM.                    " build_layout
    *&      Form  list_display
      FORM list_display .
        DATA:
              l_program TYPE sy-repid.
        l_program = sy-repid.
        CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'
          EXPORTING
            i_callback_program = l_program
            is_layout          = w_layout
            it_fieldcat        = i_fieldcat
            it_events          = i_events
          TABLES
            t_outtab           = i_t001
          EXCEPTIONS
            program_error      = 1
            OTHERS             = 2.
        IF sy-subrc <> 0.
          MESSAGE ID sy-msgid TYPE sy-msgty NUMBER sy-msgno
                  WITH sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4.
        ENDIF.
      ENDFORM.                    " list_display
    *&      Form  top_of_page
      FORM top_of_page.
        DATA :
         li_header TYPE slis_t_listheader,
         w_header  LIKE LINE OF li_header.
        DATA:
              l_date TYPE char10.
        WRITE sy-datum TO l_date.
        w_header-typ  = 'H'.
        CONCATENATE sy-repid ':' 'From Date' l_date INTO w_header-info SEPARATED BY space.
        APPEND w_header TO li_header.
        CLEAR w_header.
        w_header-typ  = 'S'.
        w_header-info = sy-title.
        APPEND w_header TO li_header.
        CLEAR w_header.
        w_header-typ  = 'A'.
        w_header-info = sy-uname.
        APPEND w_header TO li_header.
        CLEAR w_header.
        CALL FUNCTION 'REUSE_ALV_COMMENTARY_WRITE'
          EXPORTING
            it_list_commentary = li_header.
      ENDFORM.                    "top_of_page
    *&      Form  pf_status_set
      FORM pf_status_set    USING extab TYPE slis_t_extab.
        "Procedure to set own pf-status.
        "1.Goto Transaction code SE41
        "2.give program = SAPLKKBL and status = STANDARD_FULLSCREEN.
        "3.Click on Application toolbar STATUS button
        "4.Give ur program name Status name that is to be used in the program using SET pf-status statement
        "5.Create ur button REMARKS.
        SET PF-STATUS 'STATUS1' EXCLUDING extab.
      ENDFORM.                    "pf_status_set
    *&      Form  user_command
      FORM user_command USING ucomm LIKE sy-ucomm
                        selfield TYPE slis_selfield.
        CASE ucomm .
          WHEN 'REMARKS'."When u click on remarks button.
            LOOP AT i_t001 INTO w_t001 WHERE check = 'X'.
              WRITE :/ w_t001-bukrs, 'Checked'.
            ENDLOOP.
        ENDCASE.
      ENDFORM.                    "user_command
    I hope that it helps u .
    Regards,
    Venkat.O

  • Enable to select a check box in ALV while accessing it through portal

    Hi All,
    Currently I have given a link on portal to run a transaction code. The output of the program is ALV report, where user any select the check boxes.
    Now when I try to select a check box, it is not getting selected. I click on the checkbox, the tick appear and then the screen refreshes itself and the tick goes off. This is happening only when accessing it through portal. If i run the program in R/3 directly, I am able to select the check box.
    Please advice on this.
    Thanks
    Namit

    Reported to SAP for the same.

  • Check box in alv grid

    Hi Gurus,
    I developed one alv(grid) report. the grid having first three columns are with check boxes. Now my requirement  is if I tick or on tick those check boxes I need to track which records check boxes are modiried.
    But I canot tracking the  modified records . after ticking or unticking those check boxs values are not modified in intrnal table.
    plese help this is very urgent.
    Regards,
    Shashikumar.G

    Hi Kiran,
    I displayed internal table with check boxes that is ok.
    after displaying the internal table if i tick or un tick the records  those are not modified in internal table but I need to track the records which are modified.
    please give me repply urgently.
    Regards,
    Shashikumar.G

Maybe you are looking for

  • Enjoy purchase order transaction

    Hi All, Can anybody tell me how get idea on Enjoy Purchase Order. ie, how to update it ie, using bapi. Can anybody explain it in detail. regards, phaneendra.

  • Format - RAW vs JPEG vs TIFF?

    I am new to Aperture and I received a Nikon D3000 for Christmas. I am NOT a professional photographer. I just take pictures of my family and places we go. I would appreciate suggestions as to what format might be best for me. Thanks.

  • Create transaction for table

    Hi experts, Can anybody help how to create transaction for table maintenance generation? Thanks in advance, Zak.

  • How do I find a contact that I texted but did not add to contacts?

    I upgraded from the 4 to the 6 and a person I had texted, but did not add their number to contacts, is not listed. Am I still able to find them?

  • Script to Change DNS Servers on Remote Server

    I am new to powershell and I am trying to construct a script to change the DNS servers settings on a whole list of machines remotely. I have the list of machines that I want to change in a txt file. I have read several posts on this and tried several