REGARDING RADIOBUTTON

HI GURUS,
I have 2 groups.in one group 2 radiobuttons,pdhplant,pp plant
in 2nd group , ihave 4 radio buttons,offspec,linespec,line1&line2.
my requirement is if i click,pdh plant then all the 2nd group radio buttons will disable mode& if i select pp plant then again
my 2nd group radiobuttons in actibe state.
how to achive ,  please help me.
thanks
subhasis

Hi,
Use modif id to ur block which u want to make inactive and active.
selection screen:
selection-screen begin of block output1 with frame title
                          text-o01.
parameters p_outscr type c radiobutton group out1
                           default 'X' user-command uc1.
parameters p_outfil type c radiobutton group out1.
selection-screen end of block output1.
selection-screen begin of block output2 with frame title
                          text-o02.
parameters p_nonuni as checkbox modif id out.
parameters p_tstamp as checkbox default 'X'
                          modif id out user-command uc1.
selection-screen end of block output2.
selection-screen begin of block output3 with frame title
                          text-o03.
parameters p_pcfile type c radiobutton group out2
                  modif id out user-command uc1.
parameters p_fname like rlgrap-filename modif id out
                  default 'C:\SAP Reports\ZVL06O.txt'.
parameters p_unix type c radiobutton group out2
                  default 'X' modif id out.
parameters p_uname like rlgrap-filename modif id out.
skip 1.
selection-screen comment /1(50) text-o04 modif id out.
parameters p_yes as checkbox modif id out.
selection-screen comment /1(50) text-o05 modif id out.
parameters p_sep type c modif id out.
selection-screen end of block output3.
This is validation:
at selection-screen output.
IF p_outscr = 'X'.
    CLEAR: p_yes, p_sep.
    LOOP AT SCREEN.
      IF screen-group1 = 'OUT'.
        screen-active = 0.
        MODIFY SCREEN.
      ENDIF.
    ENDLOOP.
  ENDIF.
Regards,
Subbu

Similar Messages

  • Regarding radiobutton text

    hi
    can any body make me know how to put text on the right hand side of the radio button.
    thanks in advance.
    prasad

    Hi Prasad,
    Try the following code:
    SELECTION-SCREEN BEGIN OF BLOCK b1 WITH FRAME TITLE text-001.
    SELECTION-SCREEN SKIP.
    SELECTION-SCREEN BEGIN OF LINE.
    PARAMETERS: r1 RADIOBUTTON GROUP g1 USER-COMMAND ucomm DEFAULT 'X'.
    SELECTION-SCREEN COMMENT 3(17) text-002 FOR FIELD r1.
    SELECTION-SCREEN POSITION 32.
    PARAMETERS: r2 RADIOBUTTON GROUP g1 .
    SELECTION-SCREEN COMMENT 34(17) text-003 FOR FIELD r2.
    SELECTION-SCREEN END OF LINE.
    SELECTION-SCREEN SKIP.
    SELECTION-SCREEN END OF BLOCK b1.
    Hope this will help.
    Regards,
    Nitin.

  • Doubt regarding Radiobutton

    Hi All,
    Is there a way of having all the radiobuttons in a group in the unchecked state??
    I have 2 radiobuttons in a radiobutton group.Is there a method to keep both of them in an unselected state??
    My requirement is that a field should be displayed or kept hidden based on the user's selection of the radiobuttons....
    Please help....
    Thanks & Regards,
    Prakash.K

    HI,
    u cannot select more than a single radio button in a group.
    if u want to select both means just keep one button in another group.
    code for display and hide.
    TABLES:mara.
    SELECTION-SCREEN BEGIN OF BLOCK 001.
    PARAMETERS: P_MRU  RADIOBUTTON GROUP SEL DEFAULT 'X' USER-COMMAND AC,
                P_PART RADIOBUTTON GROUP SEL.
        SELECT-OPTIONS P1 FOR mara-matnr MODIF ID PRT.
        SELECT-OPTIONS G1 FOR mara-ernam  MODIF ID MRU.
    SELECTION-SCREEN END OF BLOCK 001.
    AT SELECTION-SCREEN OUTPUT.
    LOOP AT SCREEN.
      IF P_MRU = 'X'.
          IF SCREEN-GROUP1 = 'PRT'.
            SCREEN-ACTIVE = '0'.
          ENDIF.
          IF SCREEN-GROUP1 = 'MRU'.
            SCREEN-ACTIVE = '1'.
          ENDIF.
      ELSEIF P_PART = 'X'.
         IF SCREEN-GROUP1 = 'MRU'.
           SCREEN-ACTIVE = '0'.
         ENDIF.
         IF SCREEN-GROUP1 = 'PRT'.
           SCREEN-ACTIVE = '1'.
         ENDIF.
      ENDIF.
      MODIFY SCREEN.
    ENDLOOP.
    rgds,
    bharat.

  • Help regarding radiobutton text in Adobe Forms

    <?xml version="1.0" encoding="utf-8"?>
    <xs:schema xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" attributeFormDefault="unqualified" elementFormDefault="qualified" xmlns:xs="http://www.w3.org/2001/XMLSchema">
      <xs:element name="nodes">
        <xs:complexType>
          <xs:sequence>
            <xs:element maxOccurs="unbounded" name="node">
              <xs:complexType>
                <xs:sequence>
                  <xs:element name="PName" type="xs:string" />
                  <xs:element name="IsRegistered" type="xs:boolean"  />
                  <xs:element name="Gender" maxOccurs="unbounded" type="GenderType" />
                  <xs:element name="QT" type="xs:string" />
                </xs:sequence>
              </xs:complexType>
            </xs:element>
          </xs:sequence>
        </xs:complexType>
      </xs:element>
      <xs:simpleType name="GenderType">
        <xs:restriction base="xs:string">
          <xs:pattern value="([A-Z,a-z])*" />
          <xs:minLength value="0" />
          <xs:maxLength value="6" />
          <xs:enumeration value="Male" />
          <xs:enumeration value="Female" />
        </xs:restriction>
      </xs:simpleType>
    </xs:schema>
    I’m trying to generate a PDF form using a schema(above) and xml file(based on this xsd) using LiveCycle Designer. I have embedded the xml schema in pdf file by creating a Data Connection using this xsd file. I can generate different type of form controls by importing the xml file(based on this xsd) in PDF file using Acrobat 9.0 menu Forms > Manage Form Data > Import Data.
    What I can’t figure out is how can I generate radio button's text/label based on data in xml? The Gender enumeration that I have used becomes hardcoded in design time and there can’t be more radio buttons than that specified in the Gender enumeration in the xsd. Also even though I have specified the text for the radiobutton in the xsd I have to specify it again while designing the form using Adobe Live Cycle Designer. This is like hardcoding the radiobutton text during design time. How do i read the radiobutton text from the xsd file only ???
    I want the number of radio buttons and their labels to be generated based on data
    from xml.
    For e.g. if my xml is:
    <node>
    <rbType>Option1</rbType>
    <rbType>Option2</rbType>
    <rbType>Option3</rbType>
    </node>
    ,then there sould be 3 radio buttons with labels as Option1, Option2 and Option3. If there are only 2 'rbType' tags, then only 2 radio buttons with respective labels.
    Any help\suggestions is appreciated. Thanx
    Sunit.

    Use
    <b>
    instead of
    <strong>
    See http://partners.adobe.com/public/developer/en/xml/xfa_spec_2_5.pdf -> Part 3 -> Rich Text Reference for a list of supported xhtml tags.
    Sebastian

  • Regarding radiobutton selection

    Hi,
    I am having radiobutton group with yes and no values.I selected one option.How to refresh(deselect) the selected option.

    IWDRadioButtonGroupByKey: set selected key to NULL
    IWDRadioButtonGroupByIndex: set node's lead selection to IWDNode.NO_SELECTION
    Armin

  • Regarding At selection-screen on Radiobutton    output....

    Hi...
    This is the code I used, to check AT SELECTION-SCREEN ON RADIOBUTTON.
    But, after displaying the error message,
    all fields are becoming inactive in selection screen.
    CODE:
    TYPES : BEGIN OF st_employee,
                  cid TYPE zintelli_emp-cid,              
                 cname TYPE zintelli_emp-cname,         
             l   ocation TYPE zintelli_emp-location,           
                phno TYPE zintelli_emp-phno ,          
                gender TYPE zintelli_emp-gender,       
            END OF st_employee.
    DATA :  it_employee TYPE STANDARD TABLE OF      st_employee,
            wa_employee TYPE st_employee,
            v_cid TYPE  zintelli_emp-cid.
    SELECTION-SCREEN BEGIN OF SCREEN 500 TITLE title.
    PARAMETERS : p_cid TYPE st_employee-cid obligatory.
    PARAMETERS : p_cname TYPE st_employee-cname,       
                 p_culoc TYPE st_employeelocation,    
                 p_phno TYPE st_employee-phno. 
    SELECTION-SCREEN SKIP 2.
    SELECTION-SCREEN BEGIN OF LINE.
    SELECTION-SCREEN COMMENT 1(6) rc1.
    PARAMETERS : rb_1 RADIOBUTTON GROUP b .
    SELECTION-SCREEN COMMENT 15(7) rc2.
    PARAMETERS :  rb_2 RADIOBUTTON GROUP b.
    SELECTION-SCREEN END OF LINE.
    SELECTION-SCREEN SKIP 2.
    SELECTION-SCREEN PUSHBUTTON /35(10) pb1 USER-COMMAND pb1.
    SELECTION-SCREEN SKIP 5.
    SELECTION-SCREEN END OF SCREEN 500.
    CALL SELECTION-SCREEN '500'.
    INITIALIZATION.
      title  = 'CUSTOMER INFORMATION'.
      pb1 = 'INSERT'.
      rc1 = 'MALE'.
      rc2 = 'FEMALE'.
    AT SELECTION-SCREEN ON RADIOBUTTON GROUP b.
      IF rb_1 EQ 'X'.
        p_cid = p_cid+0(1).
        IF p_cid NE 'M'.
          MESSAGE e020(z50871msg) WITH 'The id should start with "M" '.
         EXIT.
        ENDIF.
      ELSE.
        p_cid = p_cid+0(1).
        IF p_cid NE 'F'.
          MESSAGE e020(z50871msg) WITH 'The id should start with "F" '.
          EXIT.
        ENDIF.
        ENDIF.
    Regards
    sandeep.

    At selection-screen on FIELD
              Will give work like: If given input is wrong then it will give the Error message and all other fields will be diasable except the entered wrong on At selection-screen on FIELD.
    until you give the right input it won't go for next At Selection-screen On FILED.
    If you Don't want to disable other fields Use ONLY AT SELECTION-SCREEN.
    Regards,
    Umashankar

  • Regarding At selection-screen on radiobutton

    Hi..
    I need sample code on AT SELECTION-SCREEN ON RADIOBUTTON.
    thanx and regards
    Sandeep.

    Hi,
    Just copy paste this code and run it,
    SELECTION-SCREEN BEGIN OF BLOCK B1 WITH FRAME.
    PARAMETERS: R1 RADIOBUTTON GROUP RAD1 DEFAULT 'X',
    R2 RADIOBUTTON GROUP RAD1,
    R3 RADIOBUTTON GROUP RAD1.
    SELECTION-SCREEN END OF BLOCK B1.
    SELECTION-SCREEN BEGIN OF BLOCK B2 WITH FRAME.
    PARAMETERS: R4 RADIOBUTTON GROUP RAD2 DEFAULT 'X',
    R5 RADIOBUTTON GROUP RAD2,
    R6 RADIOBUTTON GROUP RAD2.
    SELECTION-SCREEN END OF BLOCK B2.
    AT SELECTION-SCREEN ON RADIOBUTTON GROUP RAD1.
    IF R1 = 'X'.
    MESSAGE W040(HB).
    ENDIF.
    AT SELECTION-SCREEN ON RADIOBUTTON GROUP RAD2.
    IF R4 = 'X'.
    MESSAGE W040(HB).
    ENDIF.
    note: after selecting the choices press F8 and test.
    hope this helps.

  • Regarding one radiobutton logic

    HI GURUS,
    I have 2 groups.in one group 2 radiobuttons,pdhplant,pp plant
    in 2nd group , ihave 4 radio buttons,offspec,linespec,line1&line2.
    my requirement is if i click,pdh plant then all the 2nd group radio buttons will disable mode& if i select pp plant then again
    my 2nd group radiobuttons in actibe state.
    how to achive , please help me.
    thanks
    subhasis

    hI,
    Check out this code
    *FIRST Block
    SELECTION-SCREEN : BEGIN OF BLOCK blk2 WITH FRAME TITLE text-002.
    PARAMETER : pdh_plnt RADIOBUTTON  GROUP g1 DEFAULT 'X' USER-COMMAND change,
                pp_plant  RADIOBUTTON GROUP g1.
    SELECTION-SCREEN:END OF BLOCK blk2.
    *SECOND Block
    SELECTION-SCREEN : BEGIN OF BLOCK blk3 WITH FRAME TITLE text-003.
    PARAMETER : offspec RADIOBUTTON   GROUP g2 MODIF ID m3,              "Variant Part
                linespec RADIOBUTTON  GROUP g2 MODIF ID m3 ,
                line1 RADIOBUTTON     GROUP g2 MODIF ID m3,
                line2 RADIOBUTTON     GROUP g2 MODIF ID m3.
    SELECTION-SCREEN:END OF BLOCK blk3.
    AT SELECTION-SCREEN OUTPUT.
      LOOP AT SCREEN.
        IF screen-group1 = 'M3'.
          IF pdh_plnt EQ 'X'.
            screen-INPUT = 0.
          ELSE.
            screen-INPUT = 1.
          ENDIF.
          MODIFY SCREEN.
        ENDIF.
      ENDLOOP.
    Regards
    Sandipan

  • How can I select a radio button in a table regarding the data in the cells?

    Hi everyone
    This is the issue: I need to select the RadioButton which is in a table with data related to transfers in the cells next to it, so I need to select the correct radio regarding the data next to it.
    This is the whole process: First I go to the Add Recurring Transfer section and select the parameters of the transfer (Accounts, date, amount, months etc), then with VB code I capture those parameters from the page and store them into Global variables for further usage on my E-tester script.
    Right after that I need to select the radiobutton regarding the data of the transfer that I already created in order to delete it or modify it (Please see Attachment selectradio1.jpg)
    So How can I move along the table and compare each cell with the variables that I created with the transfer information, so when I finish comparing a row cell by cell and if all the comparison match well in that row, I could select the radiobutton of the row.
    Note: Second Attachment selectradio2.jpg shows the source code of the table...If you need more info please let me know
    Could you please help me with this problem?? I'm Kind of frustrated with this issue jejeje

    Here is an example. I uploaded mock html so that you can actually try this code. I think this does exactly what you are asking.
    Private Sub RSWVBAPage_afterPlay()
    Dim tbl As HTMLTable
    Dim tblRow As HTMLTableRow
    Dim tblCell As HTMLTableCell
    Dim strValue As String
    Dim rButton As HTMLInputElement
    ' ******** This would be your global variable. I put this so that values are seperated by a semicolin you can use what ever format works for you.
    strValue = "03/22/2008;03/22/2008;*************1977;*************1977;$25.25;Jan, Jun, Jul, Dec"
    ' Strip out the ; for inner text comparison
    strValue = Replace(strValue, ";", "")
    ' This will get the table but can be modifoed to be more specific
    Set tbl = RSWApp.om.FindElement(, "TABLE")
    ' This loops through all the rows in the table until a match to the strValue is found
    ' then clicks the radio button. Findelements allows you to specify a root element
    ' once the correct root row is found, FindElemets can get the correct radio button
    For Each tblRow In tbl.rows
      If tblRow.innerText = strValue Then
        Set rButton = RSWApp.om.FindElement("account", "INPUT", "NAME", , , tblRow)
         rButton.click
       End If
    Next
    End Sub
    I also uploaded the script I created. You should be able to run it and see how it works.
    This should get you going.

  • How to get the values of a multiple radiobutton selection?

    Hi. I have the next region source:
    FOR c1 IN(SELECT rownum, ttexto_opcion, id_item FROM tb_opciones where id_prueba=:p_id_prueba) LOOP
    HTP.P(APEX_ITEM.radiogroup(1,c1.ttexto_opcion,1)||c1.ttexto_opcion);
    END LOOP;
    That query returns a list of records, group by id_item. For example:
    Option A Option B Option C (id_item=1)
    Option A1 Option B1 Option C1 (id_item=2)
    Option A2 Option B2 Option C2 (id_item=3)
    Option A3 Option B3 Option C3 (id_item=4)
    Imagine that this values has a radiobutton right next to them.
    Now, imagine that the user selected Option A, Option B1, Option C2 and Option C3. How could I get the values selected? Any ideas?
    Regards,
    Jeannine

    First off why are you concat the c1.ttexto_opcion to the radio button? there is an option to specify the text value.
    Like this
    begin
      FOR c1 IN(select empno,ename from emp) LOOP
         HTP.P(APEX_ITEM.radiogroup(1,c1.empno,1,c1.ename));
    --id, value, selected_value, display text
      END LOOP;
    end;Not sure you could with that. Is that region building the radio buttons like your example? if so, you need to change it so each "column" has its own global array
    So for column 1 (options A) you use this code
    HTP.P(APEX_ITEM.radiogroup(1,c1.ttexto_opcion,1)||c1.ttexto_opcion);any value selected can be retrieved using apex_application.g_f01 (1 being what p_id is)
    so for column 2 (option B)you use this code
    HTP.P(APEX_ITEM.radiogroup(2,c1.ttexto_opcion,1)||c1.ttexto_opcion);any value selected can be retrieved using apex_application.g_f02 (2 being what p_id is)
    so for column 3 (option c)you use this code
    HTP.P(APEX_ITEM.radiogroup(3,c1.ttexto_opcion,1)||c1.ttexto_opcion);any value selected can be retrieved using apex_application.g_f03 (3 being what p_id is)

  • How to give inputfields for radiobuttons

    Hi all,
    I am developing one application in which i require three radio buttons for that i used radiobutton group.
    Now my requirement is to give three input fields to the corresponding radiobuttons.
    for example
    radiobutton1(name)  inputfield1
    radiobutton2(hno)     inputfield2
    radiobutton3(eid)      inputfield3
    I think u got my requirement.
    please any one can provide me the solution.
    Thanks in advance
    Regards
    Ravi

    Hello Ravi,
    Please modify the code as below
    public void onActionselectindex(com.sap.tc.webdynpro.progmodel.api.IWDCustomEvent wdEvent )
        //@@begin onActionselectindex(ServerEvent)
       //reset the input fields on each select event
             wdcontext.currentContextElement().setInput_1("");
             wdcontext.currentContextElement().setInput_2("");
             wdcontext.currentContextElement().setInput_3("");
        String selected_option = wdContext.currentContextElement().getA(); //where A is the attribute in the
                                                                           //context used as the selected key for radiobuttongroup
        if(selected_option != null)
             if(selected_option.equalsIgnoreCase("name"))
               wdContext.currentContextElement().setReadoonlypro_input_1(true);  //context attributes bound to the readonly property
               wdContext.currentContextElement().setReadoonlypro_input_2(false);  //of all the input fields.
                 wdContext.currentContextElement().setReadoonlypro_input_3(false);                           
             else if(selected_option.equalsIgnoreCase("rollno"))
                   wdContext.currentContextElement().setReadoonlypro_input_1(false);
                   wdContext.currentContextElement().setReadoonlypro_input_2(true); 
                   wdContext.currentContextElement().setReadoonlypro_input_3(false);
             else if(selected_option.equalsIgnoreCase("class"))
                   wdContext.currentContextElement().setReadoonlypro_input_1(false); //context attributes bound to the readonly property
                   wdContext.currentContextElement().setReadoonlypro_input_2(false);  //of all the input fields.
                   wdContext.currentContextElement().setReadoonlypro_input_3(true);
        //@@end
    Regards
    Sarbjeet Singh

  • Regarding Call Transction 'FBL3N'

    Dear Friends,
                           i am calling  Transaction FBL3N from an ALV Report and I am able to do the same, but I am unable to call it for the specified date in selection-screen. And I want to display option All Items to be activated.
                        If i am entering date range from 01.04.2009 to 31.03.2010 then while calling transaction FBL3N , it will call All Items From the specified date for the specfic G/L Account.
                        Pls, Suggest any good solution.
    Thanks & Regards,
    Sandip Sonar.

    Hello
    FBL3N - it is report RFITEMGL. So try this:
    submit RFITEMGL
    with SD_SAKNR-LOW = '12341234' " <- pass GL account here
    with SD_BUKRS-LOW = 'AAAA' " <- pass company code here
    with X_OPSEL = ' ' " <- disable radiobutton Open items
    with X_CLSEL = ' ' " <- disable radiobutton Cleared items
    with X_AISEL = 'X' " <- enable radiobutton All items
    with SO_BUDAT BETWEEN '20090401' AND '20100331' " <- pass date range here
    and return.

  • Regarding Reading contents in classical ALV

    Hi Experts,
    I have a problem in Classical ALV Grid Display.
    I donot know how to read the contents of  modified fields after the grid is displayed.ie. i will modify some cells and press a button which is defined by me then the modified contents need to be read and updated in the data base.i am not able to read those modified contents.so please help me.i am using REUSE_ALV_GRID_DISPLAY.that is my requirement.i cannot use ALV Objects.i am posting the code.please verify and help me.
    REPORT  ZMRMMO_CUSTPOCHANGE.
    *******************************TABLES***************************************
    TABLES : VBAK,   "Sales Document:Header Data.
             VBUK,   "Sales Document:Header Status And Administrative Data.
             VBAP.   "Sales Document:Item Data.
    ********************************TYPES***************************************
    INCLUDE ZPOCHANGE_DECLARATIONS.   "Include Program for declaration part.
    ****************************SELECTION SCREEN********************************
    INCLUDE ZPOCHANGE_SELSCREEN.      "Include Program for selection screen.
    ****************************INITIALIZATION**********************************
    INITIALIZATION.
    COM1 = 'Select Reject Open Sale Order Radio Button To Delete An Open Sale Order'.
    COM2 = 'Select Remove Rejection Radio Button To Undo The Delete sale Order'.
    ****************************START OF SELECTION******************************
    START-OF-SELECTION.
    *CREATE OBJECT obj1.
    PERFORM F_CUSTPOSELECTION. "Subroutine for selection of data from the tables.
    PERFORM F_BUILDFCAT.      "Subroutine To bulid a field catalog.
    *I_LAYOUT-COLWIDTH_OPTIMIZE = 'X'.
    *I_LAYOUT-BOX_TABNAME = 'I_FINAL'.
    *I_LAYOUT-BOX_FIELDNAME = 'X'.
    *APPEND I_LAYOUT.
    PERFORM F_EVENTSGET.
    IF FLAG = 'X'.
    PERFORM F_ALVGRIDDISPLAY. "Subroutine to call the ALV Grid Display Function Module inorder to display the data
    ELSE.
    EXIT.
    ENDIF.
    FORM F_POCHANGEPFSTATUS USING RT_EXTAB TYPE SLIS_T_EXTAB.
      SET PF-STATUS 'PO_CHANGE'. "EXCLUDING RT_EXTAB.
    ENDFORM.
    FORM F_POCHNGUSERCOMMAND USING R_UCOMM LIKE SY-UCOMM RS_SELFIELD TYPE SLIS_SELFIELD.
    RS_SELFIELD-REFRESH = 'X'.
    IF R_UCOMM EQ 'UPD'.
    PERFORM F_POCHANGECHECK." USING RS_SELFIELD.
    ENDIF.
    ENDFORM.
    INCLUDE ZMRMMO_CUSTPOCHANGE_F_BUILDF01.
    INCLUDE ZMRMMO_CUSTPOCHANGE_F_POPULF01.
    INCLUDE ZMRMMO_CUSTPOCHANGE_F_ALVGRF01.
    INCLUDE ZMRMMO_CUSTPOCHANGE_F_CUSTPF01.
    INCLUDE ZMRMMO_CUSTPOCHANGE_F_TESTF01.
    INCLUDE ZMRMMO_CUSTPOCHANGE_F_POCHAF01.
    INCLUDE ZMRMMO_CUSTPOCHANGE_F_EVENTF01.
    *&  Include           ZPOCHANGE_DECLARATIONS
    TYPE-POOLS : SLIS.
    TYPES :BEGIN OF TY_VBAK,
           VBELN LIKE VBAK-VBELN,
           BSTNK LIKE VBAK-BSTNK,
           KUNNR LIKE VBAK-KUNNR,
           LIFSK LIKE VBAK-LIFSK,
           GWLDT LIKE VBAK-GWLDT,
           END OF TY_VBAK,
           BEGIN OF TY_VBUK,
           VBELN LIKE VBUK-VBELN,
           LFGSK LIKE VBUK-LFGSK,
           END OF TY_VBUK,
           BEGIN OF TY_VBAP,
           VBELN LIKE VBAP-VBELN,
           LPRIO LIKE VBAP-LPRIO,
           ABGRU LIKE VBAP-ABGRU,
           END OF TY_VBAP,
           BEGIN OF TY_FINAL,
           VBELN LIKE VBAK-VBELN,
           BSTNK LIKE VBAK-BSTNK,
           KUNNR LIKE VBAK-KUNNR,
           LFGSK LIKE VBUK-LFGSK,
           LIFSK LIKE VBAK-LIFSK,
           GWLDT LIKE VBAK-GWLDT,
           LPRIO LIKE VBAP-LPRIO,
           ABGRU LIKE VBAP-ABGRU,
           END OF TY_FINAL.
    ****************************INTERNAL TABLES*********************************
    DATA :I_VBAK TYPE STANDARD TABLE OF TY_VBAK,
          I_VBUK TYPE STANDARD TABLE OF TY_VBUK,
          I_VBAP TYPE STANDARD TABLE OF TY_VBAP,
          I_FINAL TYPE STANDARD TABLE OF TY_FINAL,
          WA_VBAK TYPE TY_VBAK,
          WA_VBUK TYPE TY_VBUK,
          WA_VBAP TYPE TY_VBAP,
          WA_FINAL TYPE TY_FINAL.
    DATA : I_FCAT TYPE SLIS_T_FIELDCAT_ALV,
           I_LAYOUT TYPE SLIS_LAYOUT_ALV, "OCCURS 0,
           WA_FCAT LIKE LINE OF I_FCAT,
          WA_LAYOUT TYPE SLIS_LAYOUT_ALV,
           I_EVENTS TYPE SLIS_T_EVENT,
           WA_EVENTS LIKE LINE OF I_EVENTS,
           I_FCAT1 TYPE SLIS_T_FIELDCAT_ALV,
           WA_FCAT1 LIKE LINE OF I_FCAT1.
    *DATA : obj1 TYPE REF TO CL_GUI_ALV_GRID_BASE.
    *DATA :G_ROWNO TYPE I.
    DATA FLAG VALUE 'X'.
    *&  Include           ZPOCHANGE_SELSCREEN
    ****************************SELECTION SCREEN********************************
    SELECTION-SCREEN : BEGIN OF BLOCK SC1 WITH FRAME TITLE TEXT-000.
    PARAMETERS : P_KUNNR TYPE VBAK-KUNNR OBLIGATORY,
                 P_BSTNK TYPE VBAK-BSTNK.
    SELECTION-SCREEN : END OF BLOCK SC1.
    SELECTION-SCREEN : BEGIN OF BLOCK SC2 WITH FRAME TITLE TEXT-001.
    PARAMETERS : R_REMSET RADIOBUTTON GROUP RAD1,
                 R_CNGGAR RADIOBUTTON GROUP RAD1,
                 R_CNGDEL RADIOBUTTON GROUP RAD1,
                 R_REJSO RADIOBUTTON GROUP RAD1,
                 R_REMREJ RADIOBUTTON GROUP RAD1.
    SELECTION-SCREEN : COMMENT /1(79) COM1,
                       COMMENT /1(79) COM2.
    SELECTION-SCREEN : END OF BLOCK SC2.
    ***INCLUDE ZMRMMO_CUSTPOCHANGE_F_CUSTPF01 .
    *&      Form  F_CUSTPOSELECTION
          text
    -->  p1        text
    <--  p2        text
    FORM F_CUSTPOSELECTION .
    IF P_BSTNK IS INITIAL.
      SELECT VBELN BSTNK KUNNR LIFSK GWLDT
             FROM VBAK
             INTO TABLE I_VBAK
             WHERE KUNNR EQ P_KUNNR.
      IF SY-SUBRC <> 0.
        MESSAGE I000(YMES).
        FLAG = '0'.
      ELSE.
        SORT I_VBAK BY VBELN.
      ENDIF.
    ELSE.
      SELECT VBELN BSTNK KUNNR LIFSK GWLDT
             FROM VBAK
             INTO TABLE I_VBAK
             WHERE KUNNR EQ P_KUNNR AND
                   BSTNK EQ P_BSTNK.
      IF SY-SUBRC <> 0.
        MESSAGE I000(YMES).
        FLAG = '0'.
        ELSE.
        SORT I_VBAK BY VBELN.
      ENDIF.
    ENDIF.
    *IF I_VBAK[] IS NOT INITIAL.
    LOOP AT I_VBAK INTO WA_VBAK.
       WRITE :/    WA_VBAK-VBELN,
             10  WA_VBAK-BSTNK,
             20  WA_VBAK-KUNNR,
             30  WA_VBAK-LIFSK,
             40  WA_VBAK-GWLDT.
    ENDLOOP.
    *ENDIF.
    IF I_VBAK[] IS NOT INITIAL.
      SELECT VBELN LFGSK
             FROM VBUK
             INTO TABLE I_VBUK
             FOR ALL ENTRIES IN I_VBAK
             WHERE VBELN = I_VBAK-VBELN AND
                   LFGSK <> 'C'.
    ENDIF.
    IF SY-SUBRC <> 0.
      MESSAGE I000(YMES).
      FLAG = '0'.
    ELSE.
      SORT I_VBUK BY VBELN.
    ENDIF.
    *IF I_VBUK[] IS NOT INITIAL.
    LOOP AT I_VBUK INTO Wa_VBUK.
       WRITE :/ WA_VBUK-VBELN,
             10 WA_VBUK-LFGSK.
    ENDLOOP.
    *ENDIF.
    IF I_VBUK IS NOT INITIAL.
      SELECT VBELN LPRIO ABGRU
             FROM VBAP
             INTO TABLE I_VBAP
             FOR ALL ENTRIES IN I_VBUK
             WHERE VBELN = I_VBUK-VBELN.
    ENDIF.
    IF SY-SUBRC <> 0.
      MESSAGE I000(YMES).
    FLAG = '0'.
    ELSE.
      SORT I_VBAP BY VBELN.
    ENDIF.
    LOOP AT I_VBUK INTO WA_VBUK.
    MOVE :WA_VBUK-VBELN TO WA_FINAL-VBELN,
          WA_VBUK-LFGSK TO WA_FINAL-LFGSK.
    READ TABLE I_VBAK INTO WA_VBAK WITH KEY WA_VBUK-VBELN.
    MOVE :WA_VBAK-BSTNK TO WA_FINAL-BSTNK,
          WA_VBAK-KUNNR TO WA_FINAL-KUNNR,
          WA_VBAK-LIFSK TO WA_FINAL-LIFSK,
          WA_VBAK-GWLDT TO WA_FINAL-GWLDT.
    READ TABLE I_VBAP INTO WA_VBAP WITH KEY WA_VBUK-VBELN.
    MOVE :WA_VBAP-LPRIO TO WA_FINAL-LPRIO,
          WA_VBAP-ABGRU TO WA_FINAL-ABGRU.
    APPEND WA_FINAL TO I_FINAL.
    CLEAR WA_FINAL.
    ENDLOOP.
    ENDFORM.                    " F_CUSTPOSELECTION
    ***INCLUDE ZMRMMO_CUSTPOCHANGE_F_BUILDF01 .
    *&      Form  F_BUILDFCAT
          text
    -->  p1        text
    <--  p2        text
    FORM F_BUILDFCAT .
    PERFORM F_POPULATE_FCAT USING '1' 'VBELN' 'I_FINAL' '' '' '10' 'Sales Document' 'VBELN' 'VBAK'.
    PERFORM F_POPULATE_FCAT USING '2' 'BSTNK' 'I_FINAL' '' '' '10' 'Customer PO No.' 'BSTNK' 'VBAK'.
    PERFORM F_POPULATE_FCAT USING '3' 'KUNNR' 'I_FINAL' '' 'X' '10' 'Sold-to Party' 'KUNNR' 'VBAK'.
    PERFORM F_POPULATE_FCAT USING '4' 'LFGSK' 'I_FINAL' '' '' '1' 'Delivery Status' 'LFGSK' 'VBUK'.
    CASE 'X'.
    WHEN R_REMSET.
    PERFORM F_POPULATE_FCAT USING '5' 'LIFSK' 'I_FINAL' '' '' '2' 'Delivery BlocK' 'LIFSK' 'VBAK'.
    PERFORM F_POPULATE_FCAT USING '6' 'LIFSK' 'I_FINAL' 'X' '' '2' 'Present Delivery BlocK' 'LIFSK' 'VBAK'.
    WHEN R_CNGGAR.
    PERFORM F_POPULATE_FCAT USING '5' 'GWLDT' 'I_FINAL' '' '' '8' 'Guarantee Date' 'GWLDT' 'VBAK'.
    PERFORM F_POPULATE_FCAT USING '6' 'GWLDT' 'I_FINAL' 'X' '' '8' 'Present Guarantee Date' 'GWLDT' 'VBAK'.
    WHEN R_CNGDEL.
    PERFORM F_POPULATE_FCAT USING '5' 'LPRIO' 'I_FINAL' '' '' '2' 'Delivery Priority' 'LPRIO' 'VBAP'.
    PERFORM F_POPULATE_FCAT USING '6' 'LPRIO' 'I_FINAL' 'X' '' '2' 'Present Delivery Priority' 'LPRIO' 'VBAP'.
    WHEN R_REJSO.
    PERFORM F_POPULATE_FCAT USING '5' 'ABGRU' 'I_FINAL' '' '' '2' 'Reason For Rejection' 'ABGRU' 'VBAP'.
    PERFORM F_POPULATE_FCAT USING '6' 'ABGRU' 'I_FINAL' 'X' '' '2' 'Reason For Rejection' 'ABGRU' 'VBAP'.
    WHEN R_REMREJ.
    PERFORM F_POPULATE_FCAT USING '5' 'ABGRU' 'I_FINAL' '' '' '2' 'Reason For Rejection' 'ABGRU' 'VBAP'.
    PERFORM F_POPULATE_FCAT USING '6' 'ABGRU' 'I_FINAL' 'X' '' '2' 'Reason For Rejection' 'ABGRU' 'VBAP'.
    ENDCASE.
    ENDFORM.                    " F_BUILDFCAT
    ***INCLUDE ZMRMMO_CUSTPOCHANGE_F_EVENTF01 .
    *&      Form  F_EVENTSGET
          text
    -->  p1        text
    <--  p2        text
    FORM F_EVENTSGET .
    CALL FUNCTION 'REUSE_ALV_EVENTS_GET'
    EXPORTING
       I_LIST_TYPE           = 0
    IMPORTING
       ET_EVENTS             = I_EVENTS
    EXCEPTIONS
       LIST_TYPE_WRONG       = 1
       OTHERS                = 2
    IF SY-SUBRC <> 0.
    SORT I_EVENTS BY NAME.
    ENDIF.
    *READ TABLE I_EVENTS INTO WA_EVENTS WITH KEY NAME = 'USER_COMMAND'.
    *IF SY-SUBRC = 0.
    *MOVE 'USER_COMMAND' TO WA_EVENTS-FORM.
    *MODIFY I_EVENTS FROM WA_EVENTS INDEX SY-TABIX."TRANSPORTING FORM WHERE NAME = 'WA_EVENT-NAME'.
    *ENDIF.
    READ TABLE I_EVENTS INTO WA_EVENTS WITH KEY NAME = 'LIST_MODIFY'.
    IF SY-SUBRC = 0.
    MOVE 'LIST_MODIFY' TO WA_EVENTS-FORM.
    MODIFY I_EVENTS FROM WA_EVENTS INDEX SY-TABIX.
    ENDIF.
    *READ TABLE I_EVENTS INTO WA_EVENTS WITH KEY NAME = 'PF_STATUS_SET'.
    *IF SY-SUBRC = 0.
    *MOVE 'PF_STATUS_SET' TO WA_EVENTS-FORM.
    *MODIFY I_EVENTS FROM WA_EVENTS INDEX SY-TABIX.
    *ENDIF.
    ENDFORM.                    " F_EVENTSGET
    ***INCLUDE ZMRMMO_CUSTPOCHANGE_F_ALVGRF01 .
    *&      Form  F_ALVGRIDDISPLAY
          text
    -->  p1        text
    <--  p2        text
    FORM F_ALVGRIDDISPLAY .
    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          = 'F_POCHANGEPFSTATUS'
       I_CALLBACK_USER_COMMAND           = 'F_POCHNGUSERCOMMAND'
      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                         = I_LAYOUT
       IT_FIELDCAT                       = I_FCAT
      IT_EXCLUDING                      =
      IT_SPECIAL_GROUPS                 =
      IT_SORT                           =
      IT_FILTER                         =
      IS_SEL_HIDE                       =
      I_DEFAULT                         = 'X'
       I_SAVE                            = 'U'
      IS_VARIANT                        =
       IT_EVENTS                         = I_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
      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                          = I_FINAL
    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.
    *CALL FUNCTION 'REUSE_ALV_BLOCK_LIST_DATA_GET'
    EXPORTING
       I_HEADER_TABNAME       =
       I_ITEM_TABNAME         =
    IMPORTING
      ET_FIELDCAT            =
      ET_SORT                =
    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.                    " F_ALVGRIDDISPLAY
    ***INCLUDE ZMRMMO_CUSTPOCHANGE_F_POCHAF01 .
    *&      Form  F_POCHANGECHECK
          text
    -->  p1        text
    <--  p2        text
    FORM F_POCHANGECHECK.
    ENDFORM.                    " F_POCHANGECHECK

    Hi
    I sure that there is a better way,but this one will work also...
    In PBO enter rows you will show in report to itab you define (same type)
    In PAI (after change) compare this tables (your grid table and itab with values before the change) and you will get rows which have been changed...
    REGARDS
    Yossi

  • Regarding putting trafic lights in alv report

    Hi frnds,
                     I need to add Traffic lites to my program can any one help me how to do that.
    Below i m providing my code.
    <code>
    *ztest_alv
    *& Report  ZSAMPLEALV3                                                 *
    REPORT  ZSAMPLEALV3
            MESSAGE-ID Z00.
    TABLE DECLARATIONS
    TABLES : EKKO.        "Purchasing Document Header
    CONSTANTS DECLARATIONS
    CONSTANTS : C_EBELN(5) VALUE 'EBELN'.
    DATA DECLARATIONS
    DATA : V_FLAG,        "For Select Status
           V_DATA(50).    "To Store Data
    TYPE DECLARATIONS FOR ALV                                            *
    TYPE-POOLS : SLIS.
    *Type Declarations for Field Catalog for Basic List
    DATA : I_FLDCAT_HEAD  TYPE SLIS_T_FIELDCAT_ALV,
           WA_FLDCAT_HEAD TYPE SLIS_FIELDCAT_ALV.
    *Type Declarations for Field Catalog for Secondary List
    DATA : I_FLDCAT_ITEM  TYPE SLIS_T_FIELDCAT_ALV,
           WA_FLDCAT_ITEM TYPE SLIS_FIELDCAT_ALV.
    *Type Declarations for Displaying Images on Basic Grid
    DATA : I_COMMENT  TYPE SLIS_T_LISTHEADER,
           WA_COMMENT TYPE SLIS_LISTHEADER.
    *Type Declarations for Displaying Images on Secondary Grid
    DATA : I_COMMENT_SEC  TYPE SLIS_T_LISTHEADER,
           WA_COMMENT_SEC TYPE SLIS_LISTHEADER.
    *Type Declarations for ALV Events for Basic Grid
    DATA : I_EVENTS TYPE SLIS_T_EVENT,
           WA_EVENT LIKE LINE OF I_EVENTS.
    *Type Declarations for ALV Events for Secondary Grid
    DATA : I_EVENTS_SEC TYPE SLIS_T_EVENT,
           WA_EVENT_SEC LIKE LINE OF I_EVENTS.
    *Type Declarations for Layout Design
    DATA : WA_LAYOUT TYPE SLIS_LAYOUT_ALV.
    *Type Declarations for Linking the fields
    DATA : WA_KEYINFO TYPE SLIS_KEYINFO_ALV.
    Type declarations for coloring field
    DATA : wa_color type LVC_S_SCOL.
    DATA: IT_COLOR TYPE TABLE OF LVC_S_SCOL.
    INTERNAL TABLE DECLARATIONS
    *--Internal Table for Basic List
    DATA : BEGIN OF IT_FINAL_BAS OCCURS 0,
             EBELN LIKE EKKO-EBELN,        "Purchasing Document Number
             BUKRS LIKE EKKO-BUKRS,        "Company Code
             AEDAT LIKE EKKO-AEDAT,        "Date on which the record was created
             EKORG LIKE EKKO-EKORG,        "Purchasing Organization
             EKGRP LIKE EKKO-EKGRP,        "Purchasing group
             COLOR(3) ,                     "For applying color
           END OF IT_FINAL_BAS.
    *--Internal Table for Secondary List
    DATA : BEGIN OF IT_FINAL_SEC OCCURS 0,
             EBELN LIKE EKPO-EBELN,        "Purchasing Document Number
             MATNR LIKE EKPO-MATNR,        "Material Number
             TXZ01 LIKE EKPO-TXZ01,        "Material Desc
             WERKS LIKE EKPO-WERKS,        "Plant
             LGORT LIKE EKPO-LGORT,        "Location
             MATKL LIKE EKPO-MATKL,        "Material Group
             MENGE LIKE EKPO-MENGE,        "Purchase order quantity
             MEINS LIKE EKPO-MEINS,        "Order unit
             NETPR LIKE EKPO-NETPR,        "Net price in purchasing document (in document currency)
             NETWR LIKE EKPO-NETWR,        "Net order value in PO currency
             DUMMY LIKE ICON-ID,           "For placing Icon
             COLOR(3) ,                     "For applying color
           END OF IT_FINAL_SEC.
    *--Internal Table for Secondary List with selected records
    DATA : BEGIN OF I_ITEM_DISPLAY OCCURS 0,
             EBELN LIKE EKPO-EBELN,        "Purchasing Document Number
             MATNR LIKE EKPO-MATNR,        "Material Number
             TXZ01 LIKE EKPO-TXZ01,        "Material Desc
             WERKS LIKE EKPO-WERKS,        "Plant
             LGORT LIKE EKPO-LGORT,        "Location
             MATKL LIKE EKPO-MATKL,        "Material Group
             MENGE LIKE EKPO-MENGE,        "Purchase order quantity
             MEINS LIKE EKPO-MEINS,        "Order unit
             NETPR LIKE EKPO-NETPR,        "Net price in purchasing document (in document currency)
             NETWR LIKE EKPO-NETWR,        "Net order value in PO currency
             DUMMY LIKE ICON-ID,           "For placing Icon
             COLOR(3) ,                     "For applying color
           END OF I_ITEM_DISPLAY.
    SELECTION SCREEN
    SELECTION-SCREEN BEGIN OF BLOCK B1 WITH FRAME TITLE TEXT-H01.
    SELECT-OPTIONS: S_EBELN FOR EKKO-EBELN.
    SELECTION-SCREEN END OF BLOCK B1.
    SELECTION-SCREEN BEGIN OF BLOCK B2 WITH FRAME TITLE TEXT-002.
    SELECTION-SCREEN : BEGIN OF LINE.
    SELECTION-SCREEN COMMENT 1(20) TEXT-003.
    PARAMETERS: P_DISP RADIOBUTTON GROUP RAD1 DEFAULT 'X'.
    SELECTION-SCREEN : END OF LINE.
    SELECTION-SCREEN : BEGIN OF LINE.
    SELECTION-SCREEN COMMENT 1(20) TEXT-005.
    PARAMETERS: P_UPD RADIOBUTTON GROUP RAD1.
    SELECTION-SCREEN : END OF LINE.
    SELECTION-SCREEN END OF BLOCK B2.
    Event : INITIALIZATION
    INITIALIZATION.
      MOVE 'Developed by'(001) TO V_DATA.
    Event : AT SELECTION SCREEN
    AT SELECTION-SCREEN.
      PERFORM VALIDATE_EBELN.
    Event : START-OF-SELECTION
    START-OF-SELECTION.
    *--Getting the Data
      PERFORM GET_DATA.
    *--Generating the Field catalog for basic and secondary grid
      PERFORM GET_FLDCAT.
    *--Generating the Layout for basic and secondary grid
      PERFORM GET_LAYOUT.
    *--Generating the key infor to link Basic grid to Secondary grid
      PERFORM GET_KEYINFO.
    *--Generating the Events for Basic and Secondary Grid
      PERFORM GET_EVENTS.
    *--Displaying data only
      IF P_DISP = 'X'.
    PERFORM DISPLAY_DATA.
    ELSE .
    PERFORM UPDATE_DATA.
    ENDIF.
    Event : END-OF-SELECTION
    END-OF-SELECTION.
    *&      Form  DISPLAY_DATA
          text
    -->  p1        text
    <--  p2        text
    FORM DISPLAY_DATA .
    IF V_FLAG EQ 'X'.
    *--Generating Basic List
        PERFORM DISP_BASIC_LIST.
    ELSE.
    IF SY-SUBRC NE 0.
        MESSAGE I010 WITH 'No Data Found To Display'(002).
      ENDIF.
    ENDFORM.                    " DISPLAY_DATA
         SUB-ROUTINES
    *&      Form  VALIDATE_EBELN
          Validating the PO No
    FORM VALIDATE_EBELN .
      SELECT EBELN
      UP TO 1 ROWS
      INTO (EKKO-EBELN)
      FROM EKKO
      WHERE EBELN IN S_EBELN.
      ENDSELECT.
      IF SY-SUBRC NE 0.
        MESSAGE I010 WITH 'Invalid PO No'(003) S_EBELN-LOW 'To'(004) S_EBELN-HIGH.
      ENDIF.
    ENDFORM.                    " VALIDATE_EBELN
    *&      Form  GET_DATA
          Getting Basic List and Secondary List Data
    FORM GET_DATA .
    *--Getting Basic List Data
      SELECT EBELN                  "PO No
             BUKRS                  "Company Code
             AEDAT                  "Creation Date
             EKORG                  "Purch Org
             EKGRP                  "Purch Group
       INTO TABLE IT_FINAL_BAS
       FROM EKKO
       WHERE EBELN IN S_EBELN.
    *--Getting Secondary List Data
      IF SY-SUBRC EQ 0.
        SELECT EBELN                "PO No
               MATNR                "Material No
               TXZ01                "Material Desc
               WERKS                "Plant
               LGORT                "Location
               MATKL                "Material Group
               MENGE                "PO Qty
               MEINS                "Unit
               NETPR                "Net Price
               NETWR                "Net Value
          INTO TABLE IT_FINAL_SEC
          FROM EKPO
          WHERE EBELN IN S_EBELN.
      ENDIF.
    IF SY-SUBRC EQ 0.
       V_FLAG = 'X'.
    ELSE.
       V_FLAG = SPACE.
    ENDIF.
    ENDFORM.                    " GET_DATA
    *&      Form  GET_FLDCAT
          Generating the Field Catalog
    FORM GET_FLDCAT .
    *--Generating the Field Catalog for Basic List
    WA_FLDCAT_HEAD-REPTEXT_DDIC = 'Status'.
    WA_FLDCAT_HEAD-FIELDNAME = 'LIGHT'.
    WA_FLDCAT_HEAD-COL_POS = '1'.
    WA_FLDCAT_HEAD-JUST = 'C'.
    WA_FLDCAT_HEAD-OUTPUTLEN = '4'.
    WA_FLDCAT_HEAD-ICON           = 'X'.
    APPEND WA_FLDCAT_HEAD TO I_FLDCAT_HEAD.
    CLEAR WA_FLDCAT_HEAD .
      WA_FLDCAT_HEAD-FIELDNAME = 'EBELN'.
      WA_FLDCAT_HEAD-COL_POS = '2'.
      WA_FLDCAT_HEAD-JUST = 'C'.
      WA_FLDCAT_HEAD-OUTPUTLEN = '12'.
      WA_FLDCAT_HEAD-SELTEXT_M  = 'PO Number'(006).
      WA_FLDCAT_HEAD-DDICTXT = 'M'.
      WA_FLDCAT_HEAD-REF_TABNAME = ' '.
      WA_FLDCAT_HEAD-HOTSPOT = 'X'.
      APPEND WA_FLDCAT_HEAD TO I_FLDCAT_HEAD.
      CLEAR WA_FLDCAT_HEAD .
      WA_FLDCAT_HEAD-FIELDNAME = 'BUKRS'(007).
      WA_FLDCAT_HEAD-COL_POS = '3'.
      WA_FLDCAT_HEAD-OUTPUTLEN = '12'.
      WA_FLDCAT_HEAD-SELTEXT_M = 'Company Code'(008).
      WA_FLDCAT_HEAD-DDICTXT = 'M'.
      APPEND WA_FLDCAT_HEAD TO I_FLDCAT_HEAD.
      WA_FLDCAT_HEAD-FIELDNAME = 'AEDAT'(009).
      WA_FLDCAT_HEAD-COL_POS = '4'.
      WA_FLDCAT_HEAD-OUTPUTLEN = '10'.
      WA_FLDCAT_HEAD-SELTEXT_M = 'PO Date'(010).
      WA_FLDCAT_HEAD-DDICTXT = 'M'.
      APPEND WA_FLDCAT_HEAD TO I_FLDCAT_HEAD.
      WA_FLDCAT_HEAD-FIELDNAME = 'EKORG'(011).
      WA_FLDCAT_HEAD-COL_POS = '5'.
      WA_FLDCAT_HEAD-OUTPUTLEN = '6'.
      WA_FLDCAT_HEAD-SELTEXT_M = 'PO Org'(012).
      WA_FLDCAT_HEAD-DDICTXT = 'M'.
      WA_FLDCAT_HEAD-EDIT = 'X'.
      APPEND WA_FLDCAT_HEAD TO I_FLDCAT_HEAD.
      WA_FLDCAT_HEAD-FIELDNAME = 'EKGRP'(013).
      WA_FLDCAT_HEAD-COL_POS = '6'.
      WA_FLDCAT_HEAD-OUTPUTLEN = '8'.
      WA_FLDCAT_HEAD-SELTEXT_M = 'PO Group'(014).
      WA_FLDCAT_HEAD-DDICTXT = 'M'.
      WA_FLDCAT_HEAD-DO_SUM = 'X'.
      APPEND WA_FLDCAT_HEAD TO I_FLDCAT_HEAD.
    *--Generating the Field Catalog for secondary List
      WA_FLDCAT_ITEM-FIELDNAME = 'EBELN'.
      WA_FLDCAT_ITEM-COL_POS = '1'.
      WA_FLDCAT_ITEM-JUST = 'C'.
      WA_FLDCAT_ITEM-OUTPUTLEN = '12'.
      WA_FLDCAT_ITEM-SELTEXT_M  = 'PO Number'(006).
      WA_FLDCAT_ITEM-DDICTXT = 'M'.
    WA_FLDCAT_ITEM-REF_TABNAME = ' '.
      APPEND WA_FLDCAT_ITEM TO I_FLDCAT_ITEM.
      WA_FLDCAT_ITEM-FIELDNAME = 'MATNR'(015).
      WA_FLDCAT_ITEM-COL_POS = '2'.
      WA_FLDCAT_ITEM-JUST = 'C'.
      WA_FLDCAT_ITEM-OUTPUTLEN = '18'.
      WA_FLDCAT_ITEM-SELTEXT_M  = 'Item Number'(016).
      WA_FLDCAT_ITEM-DDICTXT = 'M'.
    WA_FLDCAT_ITEM-REF_TABNAME = ' '.
      APPEND WA_FLDCAT_ITEM TO I_FLDCAT_ITEM.
      WA_FLDCAT_ITEM-FIELDNAME = 'TXZ01'(017).
      WA_FLDCAT_ITEM-COL_POS = '3'.
      WA_FLDCAT_ITEM-JUST = 'C'.
      WA_FLDCAT_ITEM-OUTPUTLEN = '40'.
      WA_FLDCAT_ITEM-SELTEXT_M  = 'Item Desc'(018).
      WA_FLDCAT_ITEM-DDICTXT = 'M'.
      APPEND WA_FLDCAT_ITEM TO I_FLDCAT_ITEM.
      WA_FLDCAT_ITEM-FIELDNAME = 'WERKS'(019).
      WA_FLDCAT_ITEM-COL_POS = '4'.
      WA_FLDCAT_ITEM-JUST = 'C'.
      WA_FLDCAT_ITEM-OUTPUTLEN = '6'.
      WA_FLDCAT_ITEM-SELTEXT_M  = 'Plant'(020).
      WA_FLDCAT_ITEM-DDICTXT = 'M'.
      APPEND WA_FLDCAT_ITEM TO I_FLDCAT_ITEM.
      WA_FLDCAT_ITEM-FIELDNAME = 'LGORT'(021).
      WA_FLDCAT_ITEM-COL_POS = '5'.
      WA_FLDCAT_ITEM-JUST = 'C'.
      WA_FLDCAT_ITEM-OUTPUTLEN = '9'.
      WA_FLDCAT_ITEM-SELTEXT_M  = 'Location'(022).
      WA_FLDCAT_ITEM-DDICTXT = 'M'.
      APPEND WA_FLDCAT_ITEM TO I_FLDCAT_ITEM.
      WA_FLDCAT_ITEM-FIELDNAME = 'MATKL'(023).
      WA_FLDCAT_ITEM-COL_POS = '6'.
      WA_FLDCAT_ITEM-JUST = 'C'.
      WA_FLDCAT_ITEM-OUTPUTLEN = '10'.
      WA_FLDCAT_ITEM-SELTEXT_M  = 'Mat Group'(024).
      WA_FLDCAT_ITEM-DDICTXT = 'M'.
      APPEND WA_FLDCAT_ITEM TO I_FLDCAT_ITEM.
      WA_FLDCAT_ITEM-FIELDNAME = 'MENGE'(025).
      WA_FLDCAT_ITEM-COL_POS = '7'.
      WA_FLDCAT_ITEM-JUST = 'C'.
      WA_FLDCAT_ITEM-OUTPUTLEN = '17'.
      WA_FLDCAT_ITEM-SELTEXT_M  = 'PO Qty'(026).
      WA_FLDCAT_ITEM-DDICTXT = 'M'.
      APPEND WA_FLDCAT_ITEM TO I_FLDCAT_ITEM.
      WA_FLDCAT_ITEM-FIELDNAME = 'MEINS'(027).
      WA_FLDCAT_ITEM-COL_POS = '8'.
      WA_FLDCAT_ITEM-JUST = 'C'.
      WA_FLDCAT_ITEM-OUTPUTLEN = '3'.
      WA_FLDCAT_ITEM-SELTEXT_M  = 'Unit'(028).
      WA_FLDCAT_ITEM-DDICTXT = 'M'.
      APPEND WA_FLDCAT_ITEM TO I_FLDCAT_ITEM.
      WA_FLDCAT_ITEM-FIELDNAME = 'NETPR'(029).
      WA_FLDCAT_ITEM-COL_POS = '9'.
      WA_FLDCAT_ITEM-JUST = 'C'.
      WA_FLDCAT_ITEM-OUTPUTLEN = '14'.
      WA_FLDCAT_ITEM-SELTEXT_M  = 'Net Price'(037).
      WA_FLDCAT_ITEM-DDICTXT = 'M'.
      APPEND WA_FLDCAT_ITEM TO I_FLDCAT_ITEM.
      WA_FLDCAT_ITEM-FIELDNAME = 'NETWR'(030).
      WA_FLDCAT_ITEM-COL_POS = '10'.
      WA_FLDCAT_ITEM-JUST = 'C'.
      WA_FLDCAT_ITEM-OUTPUTLEN = '16'.
      WA_FLDCAT_ITEM-SELTEXT_M  = 'Net Value'(031).
      WA_FLDCAT_ITEM-DDICTXT = 'M'.
      APPEND WA_FLDCAT_ITEM TO I_FLDCAT_ITEM.
      WA_FLDCAT_ITEM-FIELDNAME = 'DUMMY'(038).
      WA_FLDCAT_ITEM-COL_POS = '11'.
      WA_FLDCAT_ITEM-JUST = 'C'.
      WA_FLDCAT_ITEM-OUTPUTLEN = '3'.
      WA_FLDCAT_ITEM-SELTEXT_M  = 'Status'(039).
      WA_FLDCAT_ITEM-DDICTXT = 'M'.
      WA_FLDCAT_ITEM-ICON = 'X'.
      APPEND WA_FLDCAT_ITEM TO I_FLDCAT_ITEM.
    ENDFORM.                    " GET_FLDCAT
    *&      Form  DISP_BASIC_LIST
          Generating the Basic List
    FORM DISP_BASIC_LIST .
    **--Applying the color to record in Basic List
        SORT IT_FINAL_BAS BY BUKRS.
         LOOP AT IT_FINAL_BAS.
            IF IT_FINAL_BAS-BUKRS LE '1000'.
              IT_FINAL_BAS-COLOR = 'C21'.
            ELSEIF IT_FINAL_BAS-BUKRS GT '1000' AND IT_FINAL_BAS-BUKRS LE '2000'.
              IT_FINAL_BAS-COLOR = 'C41'.
            ELSEIF IT_FINAL_BAS-BUKRS GT '2000' AND IT_FINAL_BAS-BUKRS LE '3000'.
              IT_FINAL_BAS-COLOR = 'C71'.
            ELSEIF IT_FINAL_BAS-BUKRS GT '3000'.
              IT_FINAL_BAS-COLOR = 'C51'.
            ELSE.
              IT_FINAL_BAS-COLOR = 'C61'.
            ENDIF.
              MODIFY IT_FINAL_BAS INDEX SY-TABIX.
           ENDLOOP.
    *--Generating the Grid output
      CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'
        EXPORTING
        I_INTERFACE_CHECK                 = ' '
        I_BYPASSING_BUFFER                = ' '
        I_BUFFER_ACTIVE                   = ' '
          I_CALLBACK_PROGRAM                = 'ZTEST_ALV'
        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                   = 'PLAIN_BACKGROUND'
        I_GRID_TITLE                      =
        I_GRID_SETTINGS                   =
          IS_LAYOUT                         = WA_LAYOUT
          IT_FIELDCAT                       = I_FLDCAT_HEAD
        IT_EXCLUDING                      =
        IT_SPECIAL_GROUPS                 =
        IT_SORT                           =
        IT_FILTER                         =
        IS_SEL_HIDE                       =
        I_DEFAULT                         = 'X'
        I_SAVE                            = ' '
        IS_VARIANT                        =
          IT_EVENTS                         = I_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_FINAL_BAS
       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.                    " DISP_BASIC_LIST
    *&      Form  GET_EVENTS
          Getting the ALV Events
    FORM GET_EVENTS .
      CALL FUNCTION 'REUSE_ALV_EVENTS_GET'
       EXPORTING
         I_LIST_TYPE           = 0
       IMPORTING
         ET_EVENTS             = I_EVENTS
       EXCEPTIONS
         LIST_TYPE_WRONG       = 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.
    *--Calling the User Defined sub-routines for ALV Events
      IF NOT I_EVENTS[] IS INITIAL.
        READ TABLE I_EVENTS INTO WA_EVENT WITH KEY NAME = 'TOP_OF_PAGE'.
        WA_EVENT-FORM = 'GENERATE_USERCOMMAND_HEADER'.
        MODIFY I_EVENTS FROM WA_EVENT INDEX SY-TABIX.
       READ TABLE I_EVENTS INTO WA_EVENT WITH KEY NAME = 'TOP_OF_PAGE'.
       WA_EVENT-FORM = 'FRM_TOP_OF_PAGE'.
       MODIFY I_EVENTS FROM WA_EVENT INDEX SY-TABIX.
        READ TABLE I_EVENTS INTO WA_EVENT WITH KEY NAME = 'END_OF_LIST'.
        WA_EVENT-FORM = 'GENERATE_USERCOMMAND_FOOTER'.
        MODIFY I_EVENTS FROM WA_EVENT INDEX SY-TABIX.
        READ TABLE I_EVENTS INTO WA_EVENT WITH KEY NAME = 'USER_COMMAND'.
        WA_EVENT-FORM = 'GENERATE_USERCOMMAND3'.
        MODIFY I_EVENTS FROM WA_EVENT INDEX SY-TABIX.
      ENDIF.
    ENDFORM.                    " GET_EVENTS
    *&      Form  GENERATE_USERCOMMAND_HEADER
          Displaying Header-Text and Logo on Grid
    FORM GENERATE_USERCOMMAND_HEADER.
      CLEAR I_COMMENT[].
      WA_COMMENT-TYP = 'H'.
      WA_COMMENT-INFO = 'General Purchase Order Info'(032).
      APPEND WA_COMMENT TO I_COMMENT.
      CALL FUNCTION 'REUSE_ALV_COMMENTARY_WRITE'
        EXPORTING
          IT_LIST_COMMENTARY = I_COMMENT
          I_LOGO             = 'ENJOYSAP_LOGO'.
        I_END_OF_LIST_GRID       = 'X'.
    ENDFORM.                    " GENERATE_USERCOMMAND
    *FORM FRM_TOP_OF_PAGE.
    write :/ text-005 intensified on.
    write :/ text-006 , sy-sysid,14 sy-mandt.
    write :/ text-007 , sy-uname.
    write :/ text-008 , sy-datum.
    write :/ text-009 , sy-uzeit.
    skip.
    *ENDFORM.
    *&      Form  GENERATE_USERCOMMAND_FOOTER
          Displaying Footer-Text
    FORM GENERATE_USERCOMMAND_FOOTER .
      CLEAR I_COMMENT[].
      WA_COMMENT-TYP = 'S'.
      WA_COMMENT-KEY = V_DATA.
      WA_COMMENT-INFO = 'kaka'(033).
      APPEND WA_COMMENT TO I_COMMENT.
      CALL FUNCTION 'REUSE_ALV_COMMENTARY_WRITE'
        EXPORTING
          IT_LIST_COMMENTARY       = I_COMMENT
         I_LOGO                   = ''
          I_END_OF_LIST_GRID       = 'X'.
    ENDFORM.                    " GENERATE_USERCOMMAND_FOOTER
    *&      Form  GENERATE_USERCOMMAND3
          Getting the F-Code and Calling Secondary List
    -->  P_UCOMM        LIKE SY-UCOMM
    -->  P_SELFIELD     TYPE SLIS_SELFIELD
    FORM GENERATE_USERCOMMAND3 USING P_UCOMM LIKE SY-UCOMM
                                     P_SELFIELD TYPE SLIS_SELFIELD.
       CASE P_UCOMM.
        WHEN '&IC1'.   "DOUBLE CLICK Func-Code
          READ TABLE IT_FINAL_BAS INDEX P_SELFIELD-TABINDEX.
          REFRESH I_ITEM_DISPLAY.
    *--Applying the color to record in Secondary List
          LOOP AT IT_FINAL_SEC WHERE EBELN = IT_FINAL_BAS-EBELN.
            IF IT_FINAL_SEC-NETPR EQ 0.
              IT_FINAL_SEC-DUMMY = '@0A@'.
              IT_FINAL_SEC-COLOR = 'C61'.
            ELSEIF IT_FINAL_SEC-NETPR GT 0 AND IT_FINAL_SEC-NETPR LE 200.
              IT_FINAL_SEC-DUMMY = '@09@'.
              IT_FINAL_SEC-COLOR = 'C41'.
            ELSEIF IT_FINAL_SEC-NETPR GT 200 AND IT_FINAL_SEC-NETPR LE 1000.
              IT_FINAL_SEC-DUMMY = '@08@'.
              IT_FINAL_SEC-COLOR = 'C71'.
            ELSEIF IT_FINAL_SEC-NETPR GT 1000.
              IT_FINAL_SEC-DUMMY = '@6P@'.
              IT_FINAL_SEC-COLOR = 'C51'.
            ENDIF.
              MODIFY IT_FINAL_SEC INDEX SY-TABIX.
            MOVE-CORRESPONDING IT_FINAL_SEC TO I_ITEM_DISPLAY.
            APPEND I_ITEM_DISPLAY.
            CLEAR I_ITEM_DISPLAY.
          ENDLOOP.
    *--Getting the ALV Events of Secondary List
          PERFORM GET_EVENTS_SEC.
    *--Generating the ALV Secondary Grid output
          CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'
           EXPORTING
            I_INTERFACE_CHECK              = ' '
            I_BYPASSING_BUFFER             =
            I_BUFFER_ACTIVE                = ' '
              I_CALLBACK_PROGRAM             = 'ZTEST'
            I_CALLBACK_PF_STATUS_SET       = ' '
            I_CALLBACK_USER_COMMAND        = ' '
            I_STRUCTURE_NAME               =
              I_BACKGROUND_ID                = 'PLAIN_BACKGROUND'
              IS_LAYOUT                      = WA_LAYOUT
              IT_FIELDCAT                    = I_FLDCAT_ITEM
            IT_EXCLUDING                   =
            IT_SPECIAL_GROUPS              =
            IT_SORT                        =
            IT_FILTER                      =
            IS_SEL_HIDE                    =
            I_DEFAULT                      = 'X'
            I_SAVE                         = ' '
            IS_VARIANT                     =
              IT_EVENTS                      = I_EVENTS_SEC
            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                       = I_ITEM_DISPLAY
            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.
      ENDCASE.
    ENDFORM.                    " GENERATE_USERCOMMAND3
    *&      Form  GET_LAYOUT
          Generating the Layout
    FORM GET_LAYOUT .
      WA_LAYOUT-COLWIDTH_OPTIMIZE = 'X'.           "OPTIMIZING FIELD WIDTH
      WA_LAYOUT-ZEBRA = 'X'.                       "PUTTING ZEBRA COLORS
      WA_LAYOUT-INFO_FIELDNAME = 'COLOR'(034).     "APPLYING COLORS TO ROWS
    ENDFORM.                    " GET_LAYOUT
    *&      Form  GET_KEYINFO
          Getting Key info
    FORM GET_KEYINFO .
    *--Linking the Basic List to Secondary List
      WA_KEYINFO-HEADER01 = C_EBELN.
      WA_KEYINFO-ITEM01 = C_EBELN.
    ENDFORM.                    " GET_KEYINFO
    *&      Form  GET_EVENTS_SEC
          Getting Secondary List Events
    FORM GET_EVENTS_SEC .
    CALL FUNCTION 'REUSE_ALV_EVENTS_GET'
      EXPORTING
        I_LIST_TYPE           = 0
       IMPORTING
         ET_EVENTS             = I_EVENTS_SEC
       EXCEPTIONS
         LIST_TYPE_WRONG       = 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.
    *--Calling user-defined sub-routines for Secondary List
      IF NOT I_EVENTS_SEC[] IS INITIAL.
        READ TABLE I_EVENTS_SEC INTO WA_EVENT_SEC WITH KEY NAME = 'TOP_OF_PAGE'.
        WA_EVENT_SEC-FORM = 'GENERATE_USERCOMMAND_H_SEC'.
        MODIFY I_EVENTS_SEC FROM WA_EVENT_SEC INDEX SY-TABIX.
        READ TABLE I_EVENTS_SEC INTO WA_EVENT_SEC WITH KEY NAME = 'END_OF_LIST'.
        WA_EVENT_SEC-FORM = 'GENERATE_USERCOMMAND_F_SEC'.
        MODIFY I_EVENTS_SEC FROM WA_EVENT_SEC INDEX SY-TABIX.
      ENDIF.
    ENDFORM.                    " GET_EVENTS_SEC
    *&      Form  GENERATE_USERCOMMAND_H_SEC
       Displaying Header-Text and Logo on Grid For Secondary List
    FORM GENERATE_USERCOMMAND_H_SEC.
      CLEAR I_COMMENT_SEC[].
      WA_COMMENT_SEC-TYP = 'H'.
      WA_COMMENT_SEC-INFO = 'Purchase Order Info'(035).
      APPEND WA_COMMENT_SEC TO I_COMMENT_SEC.
      CALL FUNCTION 'REUSE_ALV_COMMENTARY_WRITE'
        EXPORTING
          IT_LIST_COMMENTARY = I_COMMENT_SEC
          I_LOGO             = 'ENJOYSAP_LOGO'.
        I_END_OF_LIST_GRID       = 'X'.
    ENDFORM.                    " GENERATE_USERCOMMAND_H_SEC
    *&      Form  GENERATE_USERCOMMAND_F_SEC
          Displaying Footer-Text for Secondary List
    FORM GENERATE_USERCOMMAND_F_SEC.
      CLEAR I_COMMENT_SEC[].
      WA_COMMENT_SEC-TYP = 'S'.
      WA_COMMENT_SEC-KEY = V_DATA.
      WA_COMMENT_SEC-INFO = 'kak1'(036).
      APPEND WA_COMMENT_SEC TO I_COMMENT_SEC.
      CALL FUNCTION 'REUSE_ALV_COMMENTARY_WRITE'
        EXPORTING
          IT_LIST_COMMENTARY       = I_COMMENT_SEC
         I_LOGO                   = ''
          I_END_OF_LIST_GRID       = 'X'.
    ENDFORM.                    " GENERATE_USERCOMMAND_F_SEC
    *&      Form  UPDATE_DATA
          text
    -->  p1        text
    <--  p2        text
    *form UPDATE_DATA .
    *CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'
    EXPORTING
      I_INTERFACE_CHECK                 = ' '
      I_BYPASSING_BUFFER                = ' '
      I_BUFFER_ACTIVE                   = ' '
      I_CALLBACK_PROGRAM                = ' '
      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_STRUCTURE_NAME
      I_BACKGROUND_ID                   = ' '
      I_GRID_TITLE                      = I_GRID_TITLE
      I_GRID_SETTINGS                   = I_GRID_SETTINGS
      IS_LAYOUT                         = IS_LAYOUT
      IT_FIELDCAT                       = IT_FIELDCAT
      IT_EXCLUDING                      = IT_EXCLUDING
      IT_SPECIAL_GROUPS                 = IT_SPECIAL_GROUPS
      IT_SORT                           = IT_SORT
      IT_FILTER                         = IT_FILTER
      IS_SEL_HIDE                       = IS_SEL_HIDE
      I_DEFAULT                         = 'X'
      I_SAVE                            = ' '
      IS_VARIANT                        = IS_VARIANT
      IT_EVENTS                         = IT_EVENTS
      IT_EVENT_EXIT                     = IT_EVENT_EXIT
      IS_PRINT                          = IS_PRINT
      IS_REPREP_ID                      = 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_ALV_GRAPHICS
      IT_HYPERLINK                      = IT_HYPERLINK
      IT_ADD_FIELDCAT                   = IT_ADD_FIELDCAT
      IT_EXCEPT_QINFO                   = IT_EXCEPT_QINFO
      IR_SALV_FULLSCREEN_ADAPTER        = IR_SALV_FULLSCREEN_ADAPTER
    IMPORTING
      E_EXIT_CAUSED_BY_CALLER           = E_EXIT_CAUSED_BY_CALLER
      ES_EXIT_CAUSED_BY_USER            = ES_EXIT_CAUSED_BY_USER
    TABLES
       t_outtab                          = t_outtab
    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.                    " UPDATE_DATA
    </code>
    regards,
    sanjay

    Hi,
    Please refer to the code below:
    REPORT ALV_LIGHTS.* Published at SAPTechnical.COMTYPES: BEGIN OF ty_alv,
            lights(1) TYPE c, "Exception, Holding the value of the lights
            text(20) TYPE c,  "some text
           END OF ty_alv.DATA: gs_alv TYPE ty_alv,
          gt_alv TYPE TABLE OF ty_alv,
          gr_alv TYPE REF TO cl_salv_table,
          gr_columns TYPE REF TO cl_salv_columns_table.START-OF-SELECTION.
      gs_alv-lights = '1'.    "Color red
      gs_alv-text = 'RED SIGNAL'.
      APPEND gs_alv TO gt_alv.  gs_alv-lights = '2'.    "Color yellow
      gs_alv-text = 'YELLOW SIGNAL'.
      APPEND gs_alv TO gt_alv.  gs_alv-lights = '3'.    "Color green
      gs_alv-text = 'GREEN SIGNAL'.
      APPEND gs_alv TO gt_alv.  CALL METHOD cl_salv_table=>factory
        IMPORTING
          r_salv_table = gr_alv
        CHANGING
          t_table      = gt_alv.  gr_columns = gr_alv->get_columns( ).  gr_columns->set_exception_column( value = 'LIGHTS' ).  CALL METHOD gr_alv->display.
    Thanks,
    Sriram Ponna.

  • Report of radiobutton

    dear friends i have created two radio buttons
    1- material
    2- sales document
    and below that ther is a list box..when i click on radio buton one itshould show sattement regarding material and when i click on sales document  it should show statement regarding sales document in the list box
    but where ever i click its showing statement of sales only not material....following is my coding
    please go through it and please suggest me mmodification in my coding.
    TYPE-POOLS: VRM.
    DATA: param TYPE vrm_id,
          values TYPE vrm_values,
          value LIKE LINE OF values.
    SELECTION-SCREEN BEGIN OF BLOCK BLK1 WITH FRAME.
    PARAMETERS :R RADIOBUTTON GROUP RAD,
                R1 RADIOBUTTON GROUP RAD.
    PARAMETERS : P1 AS LISTBOX VISIBLE LENGTH 20 MODIF ID ONE.
                 SELECTION-SCREEN END OF BLOCK BLK1.
    AT SELECTION-SCREEN OUTPUT.
    START-OF-SELECTION.
    IF
      R = 'RAD'.
    PARAM = 'P1'.
      VALUE-KEY = '1'.
      VALUE-TEXT = 'GENERAL MATERIAL DATA'.
      APPEND VALUE TO VALUES.
      PARAM = 'P1'.
      VALUE-KEY = '2'.
      VALUE-TEXT = 'MATERIAL TYPES'.
      APPEND VALUE TO VALUES.
      PARAM = 'P1'.
      VALUE-KEY = '2'.
      VALUE-TEXT = 'UNITS OF MEASUREMENT'.
      APPEND VALUE TO VALUES.
      PARAM = 'P1'.
      VALUE-KEY = '2'.
      VALUE-TEXT = 'INDUSTRY FOR MATERIAL'.
      APPEND VALUE TO VALUES.
      PARAM = 'P1'.
      VALUE-KEY = '2'.
      VALUE-TEXT = 'MATERIAL GROUPS'.
      APPEND VALUE TO VALUES.
      ELSE.
        R1 = 'RAD'.
        PARAM = 'P1'.
      VALUE-KEY = '1'.
      VALUE-TEXT = 'SALES DOCUMENT HEADER DATA'.
      APPEND VALUE TO VALUES.
      PARAM = 'P1'.
      VALUE-KEY = '2'.
      VALUE-TEXT = 'SALES DOCUMENT TYPE'.
      APPEND VALUE TO VALUES.
      PARAM = 'P1'.
      VALUE-KEY = '2'.
      VALUE-TEXT = 'SALES DOCUMENT ORDER REASON'.
      APPEND VALUE TO VALUES.
      PARAM = 'P1'.
      VALUE-KEY = '2'.
      VALUE-TEXT = 'DELIVERIES BLOCKING REASON'.
      APPEND VALUE TO VALUES.
      PARAM = 'P1'.
      VALUE-KEY = '2'.
      VALUE-TEXT = 'BILLING REASON FOR BLOCKING'.
      APPEND VALUE TO VALUES.
    ENDIF.
    CALL FUNCTION 'VRM_SET_VALUES'
        EXPORTING
          id     = param
          values = values
          EXCEPTIONS
          id_illegal_name = 1
          OTHERS          = 2.

    Hi use this code..
    tables:sscrfields.
    TYPE-POOLS: VRM.
    DATA: param TYPE vrm_id,
    values TYPE vrm_values,
    value LIKE LINE OF values.
    data:flag(2) type c.
    PARAMETERS :R RADIOBUTTON GROUP RAD user-command UCC,
    R1 RADIOBUTTON GROUP RAD .
    PARAMETERS : P1 like value AS LISTBOX  VISIBLE LENGTH 20 .
    at SELECTION-SCREEN output.
    PARAM = 'P1'.
    VALUE-KEY = '1'.
    VALUE-TEXT = 'GENERAL MATERIAL DATA'.
    APPEND VALUE TO VALUES.
    VALUE-KEY = '2'.
    VALUE-TEXT = 'MATERIAL TYPES'.
    APPEND VALUE TO VALUES.
    VALUE-KEY = '2'.
    VALUE-TEXT = 'UNITS OF MEASUREMENT'.
    APPEND VALUE TO VALUES.
    VALUE-KEY = '2'.
    VALUE-TEXT = 'INDUSTRY FOR MATERIAL'.
    APPEND VALUE TO VALUES.
    VALUE-KEY = '2'.
    VALUE-TEXT = 'MATERIAL GROUPS'.
    APPEND VALUE TO VALUES.
    CALL FUNCTION 'VRM_SET_VALUES'
    EXPORTING
    id = param
    values = values
    EXCEPTIONS
    id_illegal_name = 1
    OTHERS = 2.
    AT SELECTION-SCREEN.
    case sscrfields-ucomm.
    when 'UCC'.
    if R = 'X'.
    flag = '1'.
    endif.
    if R1 = 'X'.
    flag = '2'.
    endif.
    endcase.
    START-OF-SELECTION.
    case flag.
    when '1'.
    PARAM = 'P1'.
    VALUE-KEY = '1'.
    VALUE-TEXT = 'GENERAL MATERIAL DATA'.
    APPEND VALUE TO VALUES.
    VALUE-KEY = '2'.
    VALUE-TEXT = 'MATERIAL TYPES'.
    APPEND VALUE TO VALUES.
    VALUE-KEY = '2'.
    VALUE-TEXT = 'UNITS OF MEASUREMENT'.
    APPEND VALUE TO VALUES.
    VALUE-KEY = '2'.
    VALUE-TEXT = 'INDUSTRY FOR MATERIAL'.
    APPEND VALUE TO VALUES.
    VALUE-KEY = '2'.
    VALUE-TEXT = 'MATERIAL GROUPS'.
    APPEND VALUE TO VALUES.
    CALL FUNCTION 'VRM_SET_VALUES'
    EXPORTING
    id = param
    values = values
    EXCEPTIONS
    id_illegal_name = 1
    OTHERS = 2.
    when '2'.
    PARAM = 'P1'.
    VALUE-KEY = '1'.
    VALUE-TEXT = 'SALES DOCUMENT HEADER DATA'.
    APPEND VALUE TO VALUES.
    VALUE-KEY = '2'.
    VALUE-TEXT = 'SALES DOCUMENT TYPE'.
    APPEND VALUE TO VALUES.
    VALUE-KEY = '2'.
    VALUE-TEXT = 'SALES DOCUMENT ORDER REASON'.
    APPEND VALUE TO VALUES.
    VALUE-KEY = '2'.
    VALUE-TEXT = 'DELIVERIES BLOCKING REASON'.
    APPEND VALUE TO VALUES.
    VALUE-KEY = '2'.
    VALUE-TEXT = 'BILLING REASON FOR BLOCKING'.
    APPEND VALUE TO VALUES.
                   CALL FUNCTION 'VRM_SET_VALUES'
                     EXPORTING
                       id                    = PARAM
                       values                = VALUES.
                   EXCEPTIONS
                     ID_ILLEGAL_NAME       = 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.
    endcase.
    Edited by: swati gupta on Sep 25, 2008 10:08 AM

Maybe you are looking for

  • The Origin of Random iChat video failu

    I hope this topic gets a lot of response and reply from as many people as we can get involved. If you are like me you have been using iChat more of less happily for some months and then suddenly all **** breaks loose and you cannot initiate chats wit

  • Cannot connect to WPA network with non-ascii password

    In my office somebody thought it would be a good idea to encrypt the wireless network with a WPA password containing a non-ascii character. It is fine by the WPA2 standards, but the airport password prompt doesn't allow me to introduce suche characte

  • Rights to Inventory Custom Reports

    Hi On our ZCM zone (recently upgraded to ZCM 11.2.1) only the "Administrator" can view Inventory Custom Reports. All other admins (including superadmins) see nothing in the Inventory Custom Reports list. If they create a new report the name is accept

  • Library items

    can i use library items in the same way as i can cfinclude or an html insert i realise these are server side actions but i want to know if it is possible to have links in the library which can be updated on the page4s what are the possibilities and d

  • Need to Configure RMAN backup in 8.1.7.4.1

    I have been asked to design a backup and recovery strategy for our production and test databases I got 2003 Enterprise server with 3 disks of each 300gb. There are 10 databases running in versions 8,9,10 with 5 production and 5 UAT database. The sum