JDev 10.1.3 ADF: How to fire an event when clicking a Radio Button

I have a <af:table> component with the following code for my radio button
<af:tableSelectOne text="Select and"
binding="#{backing_viewFees.tableSelectOne1}"
id="tableSelectOne1"
attributeChangeListener="#{backing_viewFees.tableSelectOne1_attributeChangeListener}"
autoSubmit="false">
When I click the radio button it does not fire up my event in my backing bean?

Thank you for the suggestion...it does work and fires the event, but it is still not selecting the current record when I try to perform an Update or Delete.
I had to modify your code a bit in order for it work in JDev 10...used the JUCtrlValueBindingRef instead of the FacesCtrlHierNodeBinding.
Here is what my af:table tag looks like:
<af:table value="#{bindings.FeesView1.collectionModel}"
var="row" rows="#{bindings.Fees001View1.rangeSize}"
first="#{bindings.FeesView1.rangeStart}"
emptyText="#{bindings.FeesView1.viewable ? \'No rows yet.\' : \'Access Denied.\'}"
selectionListener="#{backing_viewFees.tableSelectOne1_attributeChangeListener}"
binding="#{backing_viewFees.table1}" id="table1">
If I put back my 2 original attributes, then my Delete and Updates work.
selectionState="#{bindings.FeesView1.collectionModel.selectedRow}"
selectionListener="#{bindings.FeesView1.collectionModel.makeCurrent}"
Here is my code in the backing bean:
public void tableSelectOne1_attributeChangeListener(SelectionEvent selectionEvent) {
JUCtrlValueBindingRef binding = (JUCtrlValueBindingRef)this.getTable1().getSelectedRowData();
if (binding != null) {
Row currentRow = binding.getRow();
if (currentRow != null) {
System.out.println(currentRow.getAttribute("CurrentRecordInd")); // this does print my selected value!!!!
}

Similar Messages

  • How to control what VoiceOver says when clicking a radio button in Safari?

    Hello-
    I am developing a web page that I want to work in Safari & VoiceOver. Does anyone know how I can:
    1) control what VO says when it is hovering over a radio button (ideally some alt text or title attribute)
    2) control what VO says when I click a radio button in Safari (right now, it seems to say 'Group').
    I have tried to put the radio buttons in a fieldset, tried tons of attributes in the input tag (including alt, title, desc, description), but nothing seems to change.
    Here is a URL where you can hear what I'm talking about: http://postcalc.usps.gov/
    Turn on VoiceOver (try Cmd+F5), pull up the URL and hover over the 'letter' or 'large envelope' radio buttons, then click one of them. It says 'group'. I'd like it to say 'letter option selected' or something.
    Thanks for any & all help!
    Seth
    PS: I do know about the <label> tag. I've tried surrounding my <input> tag with a label and using <label for="someID">, but it doesn't seem to help.

    Thank you for the suggestion...it does work and fires the event, but it is still not selecting the current record when I try to perform an Update or Delete.
    I had to modify your code a bit in order for it work in JDev 10...used the JUCtrlValueBindingRef instead of the FacesCtrlHierNodeBinding.
    Here is what my af:table tag looks like:
    <af:table value="#{bindings.FeesView1.collectionModel}"
    var="row" rows="#{bindings.Fees001View1.rangeSize}"
    first="#{bindings.FeesView1.rangeStart}"
    emptyText="#{bindings.FeesView1.viewable ? \'No rows yet.\' : \'Access Denied.\'}"
    selectionListener="#{backing_viewFees.tableSelectOne1_attributeChangeListener}"
    binding="#{backing_viewFees.table1}" id="table1">
    If I put back my 2 original attributes, then my Delete and Updates work.
    selectionState="#{bindings.FeesView1.collectionModel.selectedRow}"
    selectionListener="#{bindings.FeesView1.collectionModel.makeCurrent}"
    Here is my code in the backing bean:
    public void tableSelectOne1_attributeChangeListener(SelectionEvent selectionEvent) {
    JUCtrlValueBindingRef binding = (JUCtrlValueBindingRef)this.getTable1().getSelectedRowData();
    if (binding != null) {
    Row currentRow = binding.getRow();
    if (currentRow != null) {
    System.out.println(currentRow.getAttribute("CurrentRecordInd")); // this does print my selected value!!!!
    }

  • How to Fire an Event whenever clicking to Tab A, B, C on the JTabbedPane

    I have created a screen by using JTabbedPane having A,B,C Tabs on it. I need to fire one event whenever I will be clicking on Tab B or C or vice-versa. So that I can display some values from database automatically whenever I will choose Tab B or C.

    What's wrong with the events that are already fired when that happens? Add a ChangeListener to the JTabbedPane and it will receive a ChangeEvent every time a different tab is selected.

  • How to Fire ondisconnect event when network disconnect suddenly

    Hello Friends
                          can any body tell me how to clear the client entry from Adobe flash Media server 3.5. when net disconnect.
    i was expecting that on netdisconnect from the client side end(which is connected to FMS) its onDisconnect event fire similarly as it fire for browser close.But when internet disconnect  ondisconnect event not fires at FMS side is there any way to overcome this or any other event  fire at that stage?
    if it is possible to get any event on network disconnection at client sidetahn i can solve the issue.
    Thanks and Regards
       Vineet osho

    You  must be getting the "NetConnection.Connect.Closed" as info.code in the onStatus for the NetConnection.
    See http://livedocs.adobe.com/fms/2/docs/wwhelp/wwhimpl/common/html/wwhelp.htm?context=LiveDoc s_Parts&file=00000742.html
    nc = new NetConnection();
    nc.onStatus = function(info){
        if (info.code == "NetConnection.Connect.Closed")
            // Netconnection has closed.

  • How to fire an event dynamically in JSF Page

    Hi All
    How to fire an event dynamically in JSF Page?
    Thanks
    Sudhakar

    Hi,
    Thanks for the response. I mean to say, if I create the components dynamically then how can I fire events for those components.
    In otherwords,
    If I create the Button dynamically with particular ID being set to that component, then how can I call button action event when the button is clicked??
    Hope you understand
    What is the role of MethodBinding mechanism here??
    Thanks
    Sudhakar Chavali

  • How to fire another event handler for postprocess stage

    Hi All,
    I have 3 custom event handlers for postprocess stage, for modify action on user object. The problem is tah only one event handler is executed - I use EntityManager API to modify user object. How to fire another event handlers? Do I have use UserManager API?
    best
    mp

    As Bikash stated, used a single event handler. You can put if statements in there to identity the operation, as well as if statements if the parameter is found i the list of attributes being modified. This way you will only perform the action when necessary.
    -Kevin

  • How to apply a css style to a radio button.

    I cannot seem to persuade jsf to pass css styles through to a radio button.
    I have markup like this:
    <h:selectOneRadio id="direction" styleClass="largish-form" >
      <f:selectItem id="positive" itemLabel="positive" itemValue="positive" />
      <f:selectItem id="negative" itemLabel="negative" itemValue="negative"  />
    </h:selectOneRadio>Which gets transformed into something like:
    <!-- edited for brevity -->
    <td>
      <label>
        <input type="radio" name="comp-amount-form:direction" value="positive" class="largish-form" />
        positive
      </label>
    </td>So the style does not get applied to the text of the label. I was expecting something like
    <span class="largish-form"> positive</span>.So how do I get styled labels on my radio buttons?
    Thanks in advance.

    For a standard Portal page you should use the Portal styles and associate them to a page. These effectively generate a CSS style sheet anyway if you view the HTML source of a rendered page in your browser.
    Using the correct PDK APIs you effectively reference the CSS tags in your Java or PL/SQL code.
    If your portlet need to open a page in a new window you can no longer reference the Portal page style as the CSS style sheet does not get attached.
    In this situation, code your HTML as normal and reference your CSS style sheets as normal.
    If you create you CSS sheet you can store it in a page as a file and access using the direct access URL like I showed you in a previous response regarding the storing of images.
    Cheers,
    John

  • How can I change the slide to 8 Radio buttons mutually exclusive?

    How can I change the slide to 8 Radio buttons mutually exclusive?
    I saw the example in Labview. but it only contains upto 5 radio
    buttons. I need 8. How can I change it? Is there any shortcuts?

    I made this with NI's radio button control found in the boolean palette.  Just resize the cluster border, and move the buttons to where you want.  To add a button, select one of them, hold down Control and Shift keys, then drag the button to a new location.  The button gets duplicated.  Do this until you have enough buttons.
    Message Edited by tbob on 10-31-2005 01:07 PM
    - tbob
    Inventor of the WORM Global
    Attachments:
    RadioButtons.PNG ‏2 KB

  • Adobe Pro fires validation event when new page is created

    Adobe Pro fires validation event when a new page is created on many fields.
    When testing in Livecycle, I can add a new page fine, but with Adobe Pro a large list of errors appears and the fields are highlighted in red.
    The errors don't happen in other versions of Adobe.
    These are valid errors if the user tried to submit a field that is required and has not been entered yet, but the error happens when the page is initially created (added).

    I was able to get my role processor to work.
    EventHandlers.xml
    >
    <?xml version="1.0" encoding="UTF-8"?>
    <eventhandlers xmlns="http://www.oracle.com/schema/oim/platform/kernel"
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xsi:schemaLocation="http://www.oracle.com/schema/oim/platform/kernelorchestration-handlers.xsd">
    <action-handler class="oim11g.code.eventhandler.RoleProcessor" entity-type="Role" operation="ANY" name="RoleProcessor" order="9999" stage="postprocess" sync="TRUE"/>
    </eventhandlers>
    >
    plugin.xml
    >
    <?xml version="1.0" encoding="UTF-8"?>
    <oimplugins xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
    <plugins pluginpoint="oracle.iam.platform.kernel.spi.EventHandler">
    <plugin pluginclass="oim11g.code.eventhandler.RoleProcessor" version="1.0" name="RoleProcessor"/>
    </plugins>
    </oimplugins >
    >
    Code:
    >
    public EventResult execute(long l, long l2, Orchestration orchestration) {
    String operation=orchestration.getOperation().trim().toString();
    HashMap<String, Serializable> parameters = orchestration.getParameters();
    System.out.println("<---------- Calling " + getClass().getName() + ": Operation[" + operation + "] Execute ---------->");
    System.out.println("<---------- Ending " + getClass().getName() + " Operation[" + operation + "] Execute ---------->");
    return new EventResult();
    >
    When i modified one of my roles, it output the following:
    >
    <---------- Calling oim11g.code.eventhandler.RoleProcessor: Operation[MODIFY] Execute ---------->
    <---------- Ending oim11g.code.eventhandler.RoleProcessor Operation[MODIFY] Execute ---------->
    >
    Hope this helps.
    -Kevin

  • How to aggregate the measue when click '∑' ?

    Hi Experts,
    How to aggregate the measue when click '∑' ?
    For example:
    In table view.
    A-----------A1-----------2
    A-----------A2-----------3
    ATotal-------------------5
    B-----------B1-----------2
    B-----------B2-----------3
    BTotal-------------------5
    GrTotal------------------10(It is not my expected result.)
    However, GrTotal is not my expect result, the correct result is 5 , not 10. How to implement my requrement? Thanks.

    Hi,
    If you want the result to be the average of your sub-totals (?) then I think the only way you can do is is by using a union query to give the 'illusion' of a grand-total.
    Using this mechanism you can create a grand-total using whatever logic you wish, you then just combine the result and with cunning use of headings / formatting make it look exactly like a standard functionality total.
    Helpful?
    regards,
    Robert.

  • How to make it selected when clicked and open popup

    Hi,
    I 've a form in the parent page with many form elements.
    I've 2 radio buttons with values "Yes" and "No". I am opening a modal popup when clicked on "Yes" radio button. The modal popup is opening fine.
    But when I click "Yes", it' s not selected. After modal popup is closed, when I return to parent page, the option "Yes" is still not selected.
    How to make it selected when clicked and open popup?

    Perhaps try moving the application to your preferred desktop and then right-click it's dock icon > options > Assign to This Desktop.

  • I want to do banners ,how can we do  when click the same button (next button)  it must show differen

    i want to do banners ,how can we do  when click the same button (next button)  it must show different images . cam any one help

    Check out my blog with samples on Edgehero.
    http://www.edgehero.com/articles/interactivity

  • How to maintain dynamic rows with data when click on Previous button?

    Hi,
    I have 1 aspx page and divided into 3 pages using panels.Each panel has "Next" and Previous buttons
    I have created and deleted dynamic table rows when click on Add button using javascript. whenever i click on Next button it will navigate to same page of next panel.
    when i click on previous button then it goes to previous panel but whatever i have added dynamic table rows in 1st panel that got removed.
    Can u please help me for how to maintain state of dynamic table rows with entered data when click on Previous button?
    How to get dynamic table rows with entered data in previous panel when click on Previous button?
    Please find the below javascript code:
    function insertRow() {
    if (index >= 2) {
    document.getElementById('deleteRow').style.display = "inline";
    else { document.getElementById('DeleteRow').style.display = "none"; }
    var table = document.getElementById("myTable");
    var row = table.insertRow(table.rows.length);
    cell1 = row.insertCell(0);
    t1 = document.createElement("select");
    t1.options[t1.options.length] = new Option('--Select--', '0');
    t1.id = "ddlYear" + index;
    cell1.appendChild(t1);
    for (var i = 1975; i <= 2015; i++) {
    opt = document.createElement("option");
    opt.value = i;
    opt.text = i;
    t1.add(opt);
    t1.style.width = "155px";
    var cell2 = row.insertCell(1);
    t2 = document.createElement("Select");
    t2.options[t2.options.length]=new Option('--Select--','0');
    t2.options[t2.options.length]=new Option('State Board','1');
    t2.options[t2.options.length]=new Option('CBSE','2');
    t2.options[t2.options.length]=new Option('ICSE','3');
    t2.options[t2.options.length] = new Option('Others', '4');
    t2.style.width = "155px";
    t2.id = "ddlCourse" + index;
    cell2.appendChild(t2);
    var cell3 = row.insertCell(2);
    t3 = document.createElement("input");
    t3.id = "txtCity" + index;
    cell3.appendChild(t3);
    var cell4 = row.insertCell(3);
    t4 = document.createElement("input");
    t4.id = "txtInstitute" + index;
    cell4.appendChild(t4);
    var cell5 = row.insertCell(4);
    t5 = document.createElement("Select");
    t5.options[t5.options.length] = new Option('--Select--', '0');
    t5.options[t5.options.length] = new Option('English', '1');
    t5.options[t5.options.length] = new Option('Hindi', '2');
    t5.options[t5.options.length] = new Option('Telugu', '3');
    t5.options[t5.options.length] = new Option('Others', '4');
    t5.style.width = "155px";
    t5.id = "ddlMedium" + index;
    cell5.appendChild(t5);
    var cell6 = row.insertCell(5);
    t6 = document.createElement("input");
    t6.id = "txtSpecialization" + index;
    cell6.appendChild(t6);
    var cell7 = row.insertCell(6);
    t7 = document.createElement("input");
    t7.id = "txtFnl" + index;
    cell7.appendChild(t7);
    index++;
    function DeleteRow(index) {
    var table = document.getElementById("myTable");
    table.deleteRow(index);
    // if (index = 2) { alert("There is no rows added.Please add the new row"); }
    Design:
    <tr style="font-size: 12pt" id="trSecond" runat="server">
    <td colspan="3">
    <table id="myTable" width="100%" border="0">
    </table>
    <tr>
    <td colspan="3" align="right">
    <input type="button" title="Add" value="Add" onclick="insertRow();" />
    <input type="button" id="deleteRow" title="Delete" value="Delete Row" onclick="DeleteRow(this);" style="display:none" />
    </td>
    </tr>
    Thank you.

    Put the button click into an action listener and build the new frame there. The code I have below isn't exactly what you're doing (it's amazingly oversimplified), but it's probably similar enough to get your wheels turning in the right direction.
    import java.awt.*;
    import javax.swing.*;
    import java.awt.event.*;
    public class sample
         public static void main(String[] args)
              JFrame frame = new JFrame("Sample");
              frame.setSize(400,400);
              Container content = frame.getContentPane();
              content.setLayout(new FlowLayout());
              frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
              final JTextField text = new JTextField(10);
              content.add(text);
              JButton button = new JButton("Send");
              content.add(button);
              frame.setVisible(true);
              button.addActionListener(new ActionListener()
                   public void actionPerformed(ActionEvent ae)
                        JFrame myframe = new JFrame("Results");
                        myframe.setSize(200,200);
                        Container mycontent = myframe.getContentPane();
                        mycontent.setLayout(new FlowLayout());
                        String mytext = text.getText();
                        JLabel label = new JLabel();
                        label.setText(String.valueOf(mytext));
                        mycontent.add(label);
                        myframe.setVisible(true);
    }

  • Is it possible to fire an event when radio buttons are clicked in a report?

    Hi All,
    I have got a requirement. In the selection screen i have certain input fields and three radio buttons. When radio buttons are clicked i have to grey out certain input fields. Is it possible to fire an event when i write program through se38??
    Thanks
    Rakesh

    Hi Rakesh,
    Check this code.
    SELECTION-SCREEN BEGIN OF BLOCK FINPUT WITH FRAME TITLE TEXT-001.
    PARAMETERS  : FILENAME(132) TYPE C LOWER CASE  NO-DISPLAY,
                  FDLOAD RADIOBUTTON GROUP RAD1
                  USER-COMMAND R1 ,
                  FUPLOAD RADIOBUTTON GROUP RAD1 .
    SELECTION-SCREEN END OF BLOCK FINPUT.
    SELECTION-SCREEN BEGIN OF BLOCK B1 WITH FRAME TITLE TEXT-002.
    PARAMETERS : FUNAME(132) TYPE C LOWER CASE MODIF ID AA.
    SELECTION-SCREEN PUSHBUTTON /33(30) ACTION USER-COMMAND
                     BTNACT MODIF ID AA VISIBLE LENGTH 8 .
    SELECTION-SCREEN PUSHBUTTON 43(30) CANCEL USER-COMMAND
                     BTNCAN MODIF ID AA VISIBLE LENGTH 8  .
    SELECTION-SCREEN END OF BLOCK B1.
    SELECTION-SCREEN BEGIN OF BLOCK B2 WITH FRAME TITLE TEXT-002.
    PARAMETERS : FDNAME(132) TYPE C LOWER CASE MODIF ID BB.
    SELECTION-SCREEN PUSHBUTTON /33(30) ACTIONS USER-COMMAND
                     BTNACT1 MODIF ID BB VISIBLE LENGTH 8.
    SELECTION-SCREEN PUSHBUTTON 43(30) CANCELS USER-COMMAND
                     BTNCAN1 MODIF ID BB VISIBLE LENGTH 8.
    SELECTION-SCREEN END OF BLOCK B2.
    DATA : ACTNAME(8) TYPE C,SCRGRUP(2) TYPE C.
    INITIALIZATION.
    ACTIONS = 'Download'.
    CANCEL = 'Cancel'.
    ACTION = 'Upload'.
    CANCELS = 'Cancel'.
    ACTNAME = 'Download'.
    SCRGRUP = 'AA'.
    AT SELECTION-SCREEN ON RADIOBUTTON GROUP RAD1.
    IF FUPLOAD = 'X'.
         MOVE 'Upload' TO ACTION.
         MOVE 'Upload' TO ACTNAME.
    ELSEIF FDLOAD = 'X'.
         MOVE 'Download' TO ACTION.
         MOVE 'Download' TO ACTNAME.
    ENDIF.
    AT SELECTION-SCREEN.
    IF SY-UCOMM = 'R1'.
        IF ACTION = 'Download'.
          SCRGRUP = 'AA'.
         MESSAGE S007(ZMESSAGE).
        ELSEIF ACTION = 'Upload'.
          SCRGRUP = 'BB'.
         MESSAGE S008(ZMESSAGE).
       ENDIF.
    ELSEIF SY-UCOMM = 'BTNCAN' OR SY-UCOMM = 'BTNCAN1'.
      LEAVE PROGRAM.
    ENDIF.
    *AT USER-COMMAND.
    CASE SY-UCOMM.
       WHEN 'ACTIONS'.
         LOOP AT SCREEN.
           IF SCREEN-NAME = 'FUNAME'.
           ENDIF.
         ENDLOOP.
    ENDCASE.
    AT SELECTION-SCREEN ON VALUE-REQUEST FOR FUNAME.
      PERFORM call_filedialog CHANGING FUNAME.
    PERFORM call_filedialog CHANGING FUNAME.
    AT SELECTION-SCREEN OUTPUT.
    LOOP AT SCREEN.
    IF SCREEN-GROUP1 = SCRGRUP AND ACTNAME = 'Download' .
      SCREEN-ACTIVE = 0.
      MODIFY SCREEN.
    ENDIF.
    IF SCREEN-GROUP1 = SCRGRUP AND ACTNAME = 'Upload'.
      SCREEN-ACTIVE = 0.
      MODIFY SCREEN.
    ENDIF.
    ENDLOOP.
    FORM call_filedialog CHANGING fname.
      DATA: li_filetable TYPE STANDARD TABLE OF file_table,
        lv_return TYPE i,
        lw_filetable TYPE file_table.
      CALL FUNCTION 'TMP_GUI_FILE_OPEN_DIALOG'
        TABLES
          file_table = li_filetable
        EXCEPTIONS
          cntl_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.
      READ TABLE li_filetable INDEX 1 INTO lw_filetable.
      fname = lw_filetable-filename.
    ENDFORM.                    "call_filedialog
    Reward Points, if useful.
    Regards,
    Manoj Kumar

  • How to raise pop up window along with radio buttons in module pool program

    how to raise pop up window along with radio buttons in module pool program

    FUNCTION zscheme_determination.
    *"*"Local Interface:
    *"  IMPORTING
    *"     REFERENCE(I_KUNNR) TYPE  KUNNR
    *"  EXPORTING
    *"     REFERENCE(E_VALUE) TYPE  NETWR_AK
    *"  TABLES
    *"      G_ITEM_DATA_ITAB STRUCTURE  ZITEM_DATA
    *  TYPES: BEGIN OF ty_sord,
    *         include type ZSD_SCHEME_DTL,
    *         END   OF ty_sord.
    *  data : gt_sord type standard table of ZSD_SCHEME_DTL,
    *         wa_sord type ZSD_SCHEME_DTL.
    *  select * from ZSD_SCHEME_DTL into table
    *  gt_sord
    *  where matnr = i_matnr.
    *  T_ITEM_DATA
    *********Data Declarations
       DATA:
             salesdocumentin LIKE bapivbeln-vbeln,
             orderheaderin LIKE bapisdhd1,
             orderheaderinx LIKE bapisdhd1x,
             sender LIKE bapi_sender,
             binaryrelationshiptype LIKE bapireltype-reltype,
             intnumberassignment LIKE bapiflag-bapiflag,
             behavewhenerror LIKE bapiflag-bapiflag,
             logicswitch LIKE bapisdls,
             testrun LIKE bapiflag-bapiflag,
             convert LIKE bapiflag-bapiflag,
             return LIKE bapiret2 OCCURS 0,
             orderitemsin LIKE bapisditm OCCURS 0,
             orderitemsinx LIKE bapisditmx OCCURS 0,
             orderpartners LIKE bapiparnr OCCURS 0,
             orderschedulesin LIKE bapischdl OCCURS 0,
             orderschedulesinx LIKE bapischdlx OCCURS 0,
             orderconditionsin LIKE bapicond OCCURS 0,
             orderconditionsinx LIKE bapicondx OCCURS 0,
             ordercfgsref LIKE bapicucfg OCCURS 0,
             ordercfgsinst LIKE bapicuins OCCURS 0,
             ordercfgspartof LIKE bapicuprt OCCURS 0,
             ordercfgsvalue LIKE bapicuval OCCURS 0,
             ordercfgsblob LIKE bapicublb OCCURS 0,
             ordercfgsvk LIKE bapicuvk OCCURS 0,
             ordercfgsrefinst LIKE bapicuref OCCURS 0,
             orderccard LIKE bapiccard OCCURS 0,
             ordertext LIKE bapisdtext OCCURS 0,
             orderkeys LIKE bapisdkey OCCURS 0,
             extensionin LIKE bapiparex OCCURS 0,
             partneraddresses LIKE bapiaddr1 OCCURS 0.
       DATA : wa_orderpartners LIKE bapiparnr,
              wa_orderitemsin LIKE bapisditm,
              wa_orderitemsinx LIKE bapisditmx,
              wa_orderschedulesin LIKE bapischdl,
              wa_orderschedulesinx LIKE bapischdlx,
              wa_orderconditionsin LIKE bapicond,
              wa_orderconditionsinx LIKE bapicondx,
              wa_return LIKE bapiret2,
              lv_value TYPE netwr_ak.
       DATA : lv_dtyp TYPE char45,
              lv_sorg TYPE vkorg,
              lv_sdch TYPE vtweg,
              lv_sdiv TYPE spart.
       TYPES : BEGIN OF ty_sord,
               zsdscheme TYPE comt_scheme_id,
               posnr TYPE posnr_va,
               matnr TYPE matnr,
               disc_type TYPE rebate_disc_type,
               calc_type TYPE catyp,
               qty_from TYPE kwmeng,
               qty_to TYPE kwmeng,
               spart TYPE spart,
               custcondgrp TYPE kdkg1,
               werks TYPE werks_d,
               matmn TYPE matnr,
               END   OF ty_sord.
       DATA : gt_sord   TYPE STANDARD TABLE OF ty_sord,
              gt_sordd  TYPE STANDARD TABLE OF ty_sord,
              wa_sord TYPE ty_sord,
              wa_knvv TYPE knvv,
              lv_cal_foc TYPE p DECIMALS 3,
              lv_cal_dis TYPE p DECIMALS 3,
              lv_new_qty TYPE kwmeng,
              lv_posmat TYPE posnr_va,
              lv_posfoc TYPE posnr_va.
       DATA:lv_diff TYPE kwmeng.
    ******Schemes Selection Logic
    * Get Valid Schemes
    * Validate Scheme for validity Period, Material, Customer Type and Plant
       TYPES : BEGIN OF ty_rtab,
               sign   TYPE c LENGTH 1,
               option TYPE c LENGTH 2,
               low    LIKE mara-matnr,
               high   LIKE mara-matnr,
             END OF ty_rtab.
    *  TYPES : ty_matnr TYPE RANGE OF ty_rtab.
       DATA : it_matnr TYPE TABLE OF ty_rtab,
              wa_matnr TYPE ty_rtab,
              wa_it    TYPE zitem_data,
             wa_tab TYPE zitem_data.
    *order table declaration
       TYPES:
             BEGIN OF ty_order,
               zsdscheme TYPE comt_scheme_id,
               matnr     TYPE matnr,
               kwmeng    TYPE kwmeng,
             END OF ty_order,
       BEGIN OF ty_scheme,
        zsdscheme TYPE comt_scheme_id,
    *                matnr     TYPE matnr,
        kwmeng    TYPE kwmeng,
      END OF ty_scheme.
       DATA:
             gt_order      TYPE TABLE OF ty_order,
             gt_scheme     TYPE TABLE OF ty_scheme,
              wa_scheme    TYPE ty_scheme,
              wa_order     TYPE  ty_order.
       DATA:i_kwmeng TYPE kwmeng.
    * Transfer all the material received from order to internal table
       LOOP AT g_item_data_itab INTO wa_it.
         MOVE : wa_it-matnr TO wa_matnr-low,
                'I'          TO wa_matnr-sign,
                'EQ'         TO wa_matnr-option.
         APPEND wa_matnr TO it_matnr.
         CLEAR wa_it.
       ENDLOOP.
    * Get the Valid Schemes based on given criteria
       SELECT
               zsd_scheme_dtl~zsdscheme
               zsd_scheme_dtl~posnr
               zsd_scheme_dtl~matnr
               zsd_scheme_dtl~disc_type
               zsd_scheme_dtl~calc_type
               zsd_scheme_dtl~qty_from
               zsd_scheme_dtl~qty_to
               zsd_scheme~spart
               zsd_scheme_hdr~custcondgrp
               zsd_scheme_hdr~werks
               zsd_scheme_hdr~matnr
       FROM zsd_scheme_hdr
       INNER JOIN zsd_scheme ON zsd_scheme~zsdscheme = zsd_scheme_hdr~zsdscheme
       INNER JOIN zsd_scheme_dtl ON zsd_scheme_dtl~zsdscheme = zsd_scheme_hdr~zsdscheme
       INTO TABLE  gt_sord
       WHERE  zsd_scheme_dtl~matnr IN it_matnr
    *    zsd_scheme_hdr~matnr IN it_matnr
    *    AND zsd_scheme_hdr~werks = '1509'
         AND zsd_scheme_hdr~werks = '1529'
         AND zsd_scheme_hdr~custcondgrp = '01'
         AND zsd_scheme~datuv LE sy-datum
         AND zsd_scheme~datub GE sy-datum.
       SORT gt_sord BY zsdscheme ASCENDING.
    *  LOOP AT gt_sord INTO wa_sord.
    *    READ TABLE g_item_data_itab INTO wa_it WITH  KEY matnr = wa_sord-matnr.
    *    wa_order-zsdscheme = wa_sord-zsdscheme.
    *    wa_order-matnr = wa_it-matnr.
    *    wa_order-kwmeng = wa_it-kwmeng.
    *    COLLECT wa_order INTO gt_order.
    *    CLEAR wa_order.
    *  ENDLOOP.
       LOOP AT g_item_data_itab INTO wa_it.
         READ TABLE gt_sord INTO wa_sord WITH  KEY matnr = wa_it-matnr.
         wa_order-zsdscheme = wa_sord-zsdscheme.
         wa_order-matnr = wa_it-matnr.
         wa_order-kwmeng = wa_it-kwmeng.
         COLLECT wa_order INTO gt_order.
         MOVE : wa_sord-zsdscheme  TO wa_scheme-zsdscheme,
                wa_it-kwmeng  TO wa_scheme-kwmeng.
         COLLECT wa_scheme INTO gt_scheme.
         CLEAR : wa_order, wa_scheme.
       ENDLOOP.
       CLEAR wa_scheme.
       DATA w_line TYPE sy-tabix.
    * Updating table based on Schemes
       LOOP AT gt_scheme INTO wa_scheme.
         CLEAR w_line.
         gt_sordd[] = gt_sord[].
    *    DELETE gt_sordd WHERE zsdscheme NE wa_scheme-zsdscheme and disc_type NE 'FOC'.
         DELETE gt_sordd WHERE zsdscheme NE wa_scheme-zsdscheme AND disc_type NE 'F'.
         DELETE ADJACENT DUPLICATES FROM gt_sordd COMPARING zsdscheme matnr.
         DESCRIBE TABLE gt_sordd LINES w_line.
         IF w_line GT 1.
    * popup message to select one foc type.
         ELSE.
           CLEAR wa_sord.
           READ TABLE gt_sordd INTO wa_sord INDEX 1.
           IF sy-subrc EQ 0.
             i_kwmeng = wa_scheme-kwmeng.
             lv_cal_foc = i_kwmeng DIV wa_sord-qty_from.
             lv_cal_dis = i_kwmeng MOD wa_sord-qty_from.
             MOVE : lv_cal_foc TO wa_it-kwmeng,
                    wa_sord-matnr TO wa_it-matnr.
             APPEND  wa_it TO g_item_data_itab.
             SORT gt_order BY kwmeng DESCENDING.
             LOOP AT gt_order INTO wa_order WHERE zsdscheme = wa_scheme-zsdscheme.
               IF lv_cal_dis GT 0.
    *        LOOP AT gt_order INTO wa_order WHERE zsdscheme = wa_scheme-zsdscheme
    *                                             AND lv_cal_dis GT 0.
    *                  LOOP AT gt_order INTO wa_order WHERE zsdscheme = wa_scheme-zsdscheme.
    *                LOOP AT g_item_data INTO wa_item_data WHERE matnr EQ wa_order-matnr.
                         LOOP AT g_item_data_itab INTO wa_tab WHERE matnr EQ wa_order-matnr.
                           wa_orderconditionsin-itm_number = wa_tab-posnr.
    *                  wa_orderconditionsin-itm_number = wa_item_data-posnr.
                           wa_orderconditionsin-cond_st_no = '001'.
    *                  IF gt_sordd-calc EQ ‘post AND disc_type EQ ‘percentage’.
                           IF wa_sord-calc_type EQ 'O' AND wa_sord-disc_type EQ 'P'.
                             wa_orderconditionsin-cond_type = 'ZTPB'.   "'ZREG'.
    *                  ELSEIF gt_sordd-calc EQ ‘pre’ AND disc_type EQ ‘percentage’
                           ELSEIF wa_sord-calc_type EQ 'E' AND wa_sord-disc_type EQ 'P'.
                             wa_orderconditionsin-cond_type = 'ZTPP'.   "'ZREG'.
                           ENDIF.
                           wa_orderconditionsin-currency = 'INR'.
                           wa_orderconditionsin-conpricdat = sy-datum.
                           APPEND wa_orderconditionsin TO orderconditionsin.
                           CLEAR wa_orderconditionsin.
    *Update Discount Conditon
                         ENDLOOP.
    *                  ENDLOOP.
    *Modify balance of Item
                 CLEAR wa_tab.
                 READ TABLE g_item_data_itab INTO wa_tab WITH KEY matnr = wa_order-matnr.
                 IF sy-subrc EQ 0.
                   lv_diff = wa_tab-kwmeng - lv_cal_dis.
                   IF lv_diff GT 0.
                     wa_tab-kwmeng  = wa_tab-kwmeng - lv_cal_dis.
    *            MODIFY g_item_data TRANSPORTING kwmeng  index sy-tabix.
                     MODIFY g_item_data_itab INDEX sy-tabix FROM wa_tab TRANSPORTING kwmeng  .
                   ELSE.
                     wa_tab-kwmeng  =  lv_cal_dis.
                     lv_cal_dis  = lv_diff.
                     MODIFY g_item_data_itab INDEX sy-tabix FROM wa_tab TRANSPORTING kwmeng .
    *            MODIFY G_ITEM_DATA_ITAB TRANSPORTING kwmeng index sy-tabix.
                   ENDIF.
                   gt_sordd[] = gt_sord[].
                   DELETE gt_sordd WHERE zsdscheme NE wa_scheme-zsdscheme AND disc_type EQ 'F'.
                   DESCRIBE TABLE gt_sordd LINES w_line.
                   IF w_line GT 1.
                     SORT gt_sordd BY zsdscheme DESCENDING.
    *              SORT gt_sordd BY quantity DESCENDING.
                     CLEAR wa_sord.
    *              LOOP AT gt_sordd WHERE quantity_from LT wa_shceme-kwmeng AND quantity_to GT wa_shceme-kwmeng.
                     LOOP AT gt_sordd INTO wa_sord  WHERE qty_from LT wa_scheme-kwmeng AND qty_to GT wa_scheme-kwmeng.
    *             LOOP AT gt_order INTO wa_order WHERE scheme = wa_scheme-scheme.
                       LOOP AT gt_order INTO wa_order WHERE zsdscheme = wa_scheme-zsdscheme.
    *                LOOP AT g_item_data INTO wa_item_data WHERE matnr EQ wa_order-matnr.
                         LOOP AT g_item_data_itab INTO wa_tab WHERE matnr EQ wa_order-matnr.
                           wa_orderconditionsin-itm_number = wa_tab-posnr.
    *                  wa_orderconditionsin-itm_number = wa_item_data-posnr.
                           wa_orderconditionsin-cond_st_no = '001'.
    *                  IF gt_sordd-calc EQ ‘post AND disc_type EQ ‘percentage’.
                           IF wa_sord-calc_type EQ 'O' AND wa_sord-disc_type EQ 'P'.
                             wa_orderconditionsin-cond_type = 'ZDPD'.   "'ZREG'.
    *                  ELSEIF gt_sordd-calc EQ ‘pre’ AND disc_type EQ ‘percentage’
                           ELSEIF wa_sord-calc_type EQ 'E' AND wa_sord-disc_type EQ 'P'.
                             wa_orderconditionsin-cond_type = 'ZDPD'.   "'ZREG'.
                           ENDIF.
                           wa_orderconditionsin-currency = 'INR'.
                           wa_orderconditionsin-conpricdat = sy-datum.
                           APPEND wa_orderconditionsin TO orderconditionsin.
                           CLEAR wa_orderconditionsin.
    *Update Discount Conditon
                         ENDLOOP.
                       ENDLOOP.
                     ENDLOOP.
                   ELSE.
                   ENDIF.
                 ENDIF.
               ENDIF.
             ENDLOOP.
           ENDIF.
         ENDIF.
       ENDLOOP.
    *  select
    *          ZSD_SCHEME_DTL~ZSDSCHEME
    *          ZSD_SCHEME_DTL~POSNR
    *          ZSD_SCHEME_DTL~matnr
    *          ZSD_SCHEME_DTL~DISC_TYPE
    *          ZSD_SCHEME_DTL~CALC_TYPE
    *          ZSD_SCHEME_DTL~QTY_FROM
    *          ZSD_SCHEME_DTL~QTY_TO
    *          ZSD_SCHEME~SPART
    *          ZSD_SCHEME_HDR~CUSTCONDGRP
    *          ZSD_SCHEME_HDR~WERKS
    *          ZSD_SCHEME_HDR~MATNR
    *  from ZSD_SCHEME_DTL
    *  inner join ZSD_SCHEME on ZSD_SCHEME~ZSDSCHEME = ZSD_SCHEME_DTL~ZSDSCHEME
    *  inner join ZSD_SCHEME_HDR on ZSD_SCHEME_HDR~ZSDSCHEME = ZSD_SCHEME_DTL~ZSDSCHEME
    *  into table
    *  gt_sord
    *  where ZSD_SCHEME_DTL~matnr = i_matnr and
    *        ZSD_SCHEME~DATUV LE sy-datum and
    *        ZSD_SCHEME~DATUB GE sy-datum.
    *  break-point.
    * Process Common Logic for Schemes Processcing
       CLEAR wa_sord.
    * Convert FOC Quantity and Materials
    *  LOOP AT gt_sord INTO wa_sord.
    **   lv_cal = i_kwmeng / wa_sord-QTY_FROM.
    *    lv_cal_foc = i_kwmeng DIV wa_sord-qty_from.
    *    lv_cal_dis = i_kwmeng MOD wa_sord-qty_from.
    *  ENDLOOP.
    *lv_new_qty = i_kwmeng - lv_cal_dis.
    * Get the Sales Document Type
       SELECT SINGLE low
    FROM tvarvc
    INTO  lv_dtyp WHERE
    name = 'SD_DOC_TYPE'.
       SELECT SINGLE * FROM knvv INTO wa_knvv WHERE kunnr = i_kunnr.
       IF sy-subrc = 0.
         lv_sorg = wa_knvv-vkorg.
         lv_sdch = wa_knvv-vtweg.
         lv_sdiv = wa_knvv-spart.
       ENDIF.
    * Give the Popup for schemes with multiple FOC
    * Schemes Specific Processing
    * Schemes Specific Processing
       orderheaderin-doc_type = lv_dtyp.
       orderheaderin-sales_org = lv_sorg.
       orderheaderin-distr_chan = lv_sdch.
       orderheaderin-division = lv_sdiv.
       wa_orderpartners-partn_role = 'AG'.
       wa_orderpartners-partn_numb = i_kunnr.
       APPEND wa_orderpartners TO orderpartners.
    *    wa_ORDERPARTNERS-PARTN_ROLE = 'WE'.
    *    wa_ORDERPARTNERS-PARTN_NUMB = p_ship.
    *    append wa_ORDERPARTNERS to ORDERPARTNERS.
    * Item number begin
       CLEAR : lv_posmat.
       lv_posmat = lv_posmat + 10.
       wa_orderitemsin-itm_number = lv_posmat.
       wa_orderitemsin-material = wa_sord-matmn.  "i_matnr.
       wa_orderitemsin-target_qty = lv_new_qty.
    *  wa_ORDERITEMSIN-TARGET_QU = i_VRKME.
       APPEND wa_orderitemsin TO orderitemsin.
       wa_orderitemsinx-itm_number = lv_posmat.
       wa_orderitemsinx-material = 'X'.
       wa_orderitemsinx-target_qty = 'X'.
       wa_orderitemsinx-target_qu = 'X'.
       APPEND wa_orderitemsinx TO orderitemsinx.
       wa_orderschedulesin-itm_number = lv_posmat.
       wa_orderschedulesin-sched_line = lv_posmat.
       wa_orderschedulesin-req_qty = lv_new_qty.
       APPEND wa_orderschedulesin TO orderschedulesin.
       wa_orderschedulesinx-itm_number = lv_posmat.
       wa_orderschedulesinx-sched_line = lv_posmat.
       wa_orderschedulesinx-req_qty  = 'X'.
       wa_orderschedulesinx-updateflag = 'X'.
       APPEND wa_orderschedulesinx TO orderschedulesinx.
       wa_orderconditionsin-itm_number = lv_posmat.
       wa_orderconditionsin-cond_st_no = '001'.
       wa_orderconditionsin-cond_type = 'ZDPD'.   "'ZREG'.
       wa_orderconditionsin-currency = 'INR'.
       wa_orderconditionsin-conpricdat = sy-datum.
       APPEND wa_orderconditionsin TO orderconditionsin.
       wa_orderconditionsinx-itm_number = lv_posmat.
       wa_orderconditionsinx-cond_st_no = '001'.
       wa_orderconditionsinx-cond_type = 'ZDPD'. "'ZREG'.
       wa_orderconditionsinx-updateflag = 'X'.
       wa_orderconditionsinx-cond_value ='X'.
       wa_orderconditionsinx-currency = 'X'.
       APPEND wa_orderconditionsinx TO orderconditionsinx.
    ****18/06Beg
    *  if not lv_cal_dis is initial.
    *    lv_posmat = lv_posmat + 10.
    *    wa_ORDERITEMSIN-ITM_NUMBER = lv_posmat.
    *    wa_ORDERITEMSIN-MATERIAL = WA_SORD-MATMN.  "i_matnr.
    *    wa_ORDERITEMSIN-TARGET_QTY = lv_cal_dis.
    **  wa_ORDERITEMSIN-TARGET_QU = i_VRKME.
    *    append wa_ORDERITEMSIN to ORDERITEMSIN.
    *    wa_ORDERITEMSINX-ITM_NUMBER = lv_posmat.
    *    wa_ORDERITEMSINX-MATERIAL = 'X'.
    *    wa_ORDERITEMSINX-TARGET_QTY = 'X'.
    *    wa_ORDERITEMSINX-TARGET_QU = 'X'.
    *    append wa_ORDERITEMSINX to ORDERITEMSINX.
    *    wa_ORDERSCHEDULESIN-ITM_NUMBER = lv_posmat.
    *    wa_ORDERSCHEDULESIN-SCHED_LINE = lv_posmat.
    *    wa_ORDERSCHEDULESIN-REQ_QTY = lv_cal_dis.
    *    append wa_ORDERSCHEDULESIN to ORDERSCHEDULESIN.
    *    wa_ORDERSCHEDULESINX-itm_number = lv_posmat.
    *    wa_ORDERSCHEDULESINX-sched_line = lv_posmat.
    *    wa_ORDERSCHEDULESINX-req_qty  = 'X'.
    *    wa_ORDERSCHEDULESINX-updateflag = 'X'.
    *    append wa_ORDERSCHEDULESINX to ORDERSCHEDULESINX.
    *  endif.
    *  lv_posmat = lv_posmat + 10.
    *  wa_ORDERITEMSIN-ITM_NUMBER = lv_posmat.
    *  wa_ORDERITEMSIN-MATERIAL = i_matnr.  "WA_SORD-MATMN.
    *  wa_ORDERITEMSIN-TARGET_QTY = LV_CAL_FOC.
    *  wa_ORDERITEMSIN-ITEM_CATEG = 'ZDGN'.
    **  wa_ORDERITEMSIN-TARGET_QU = i_VRKME.
    *  append wa_ORDERITEMSIN to ORDERITEMSIN.
    *  wa_ORDERITEMSINX-ITM_NUMBER = lv_posmat.
    *  wa_ORDERITEMSINX-MATERIAL = 'X'.
    *  wa_ORDERITEMSINX-TARGET_QTY = 'X'.
    *  wa_ORDERITEMSINX-TARGET_QU = 'X'.
    *  wa_ORDERITEMSINX-ITEM_CATEG = 'X'.
    *  append wa_ORDERITEMSINX to ORDERITEMSINX.
    *  wa_ORDERSCHEDULESIN-ITM_NUMBER = lv_posmat.
    *  wa_ORDERSCHEDULESIN-SCHED_LINE = lv_posmat.
    *  wa_ORDERSCHEDULESIN-REQ_QTY = LV_CAL_FOC.
    *  append wa_ORDERSCHEDULESIN to ORDERSCHEDULESIN.
    *  wa_ORDERSCHEDULESINX-itm_number = lv_posmat.
    *  wa_ORDERSCHEDULESINX-sched_line = lv_posmat.
    *  wa_ORDERSCHEDULESINX-req_qty  = 'X'.
    *  wa_ORDERSCHEDULESINX-updateflag = 'X'.
    *  append wa_ORDERSCHEDULESINX to ORDERSCHEDULESINX.
    ****18/06End
    * Item number end
    * Switch off dialog (BAPIs always run without)
       CALL FUNCTION 'DIALOG_SET_NO_DIALOG'.
       CALL FUNCTION 'BAPI_SALESORDER_CREATEFROMDAT2'
         EXPORTING
    *     SALESDOCUMENTIN               =
         order_header_in               = orderheaderin
    *     ORDER_HEADER_INX              =
    *     SENDER                        =
    *     BINARY_RELATIONSHIPTYPE       =
    *     INT_NUMBER_ASSIGNMENT         =
    *     BEHAVE_WHEN_ERROR             =
    *     LOGIC_SWITCH                  =
    *     TESTRUN                       =
    *     CONVERT                       = ' '
    *   IMPORTING
    *     SALESDOCUMENT                 =
       TABLES
         return                        = return
         order_items_in                = orderitemsin
         order_items_inx               = orderitemsinx
         order_partners                = orderpartners
         order_schedules_in            = orderschedulesin
         order_schedules_inx           = orderschedulesinx
         order_conditions_in           = orderconditionsin
         order_conditions_inx          = orderconditionsinx
    *     ORDER_CFGS_REF                =
    *     ORDER_CFGS_INST               =
    *     ORDER_CFGS_PART_OF            =
    *     ORDER_CFGS_VALUE              =
    *     ORDER_CFGS_BLOB               =
    *     ORDER_CFGS_VK                 =
    *     ORDER_CFGS_REFINST            =
    *     ORDER_CCARD                   =
    *     ORDER_TEXT                    =
    *     ORDER_KEYS                    =
    *     EXTENSIONIN                   =
    *     PARTNERADDRESSES              =
    *    commit work.
       CALL FUNCTION 'BAPI_TRANSACTION_COMMIT'
    *     EXPORTING
    *       WAIT          =
    *     IMPORTING
    *       RETURN        =
       LOOP AT return INTO wa_return.
         WRITE:/ wa_return-message.
       ENDLOOP.
    ENDFUNCTION.
    *& Include ZSD_SO_CHANGES2_TOP                               Module Pool      ZSD_SO_CHANGES2
    PROGRAM  ZSD_SO_CHANGES2.
    ***&SPWIZARD: DATA DECLARATION FOR TABLECONTROL 'ITEM_DATA'
    *&SPWIZARD: DEFINITION OF DDIC-TABLE
    TABLES:   VBAP,kna1.
    *&SPWIZARD: TYPE FOR THE DATA OF TABLECONTROL 'ITEM_DATA'
    TYPES: BEGIN OF T_ITEM_DATA,
              POSNR LIKE VBAP-POSNR,
              MATNR LIKE VBAP-MATNR,
              KWMENG LIKE VBAP-KWMENG,
              VRKME LIKE VBAP-VRKME,
            END OF T_ITEM_DATA.
    *&SPWIZARD: INTERNAL TABLE FOR TABLECONTROL 'ITEM_DATA'
    DATA:     G_ITEM_DATA_ITAB   TYPE T_ITEM_DATA OCCURS 0,
               G_ITEM_DATA_WA     TYPE T_ITEM_DATA. "work area
    DATA:     G_ITEM_DATA_COPIED.           "copy flag
    *&SPWIZARD: DECLARATION OF TABLECONTROL 'ITEM_DATA' ITSELF
    CONTROLS: ITEM_DATA TYPE TABLEVIEW USING SCREEN 4000.
    DATA:GV_NUM TYPE I VALUE 1,
           GV_NUM2 TYPE I.
    DATA:     G_T_YREC_TAB_LINES  LIKE SY-LOOPC.***********top*************
    *& Include ZSD_SO_CHANGES2_TOP                               Module Pool      ZSD_SO_CHANGES2
    PROGRAM  ZSD_SO_CHANGES2.
    ***&SPWIZARD: DATA DECLARATION FOR TABLECONTROL 'ITEM_DATA'
    *&SPWIZARD: DEFINITION OF DDIC-TABLE
    TABLES:   VBAP,kna1.
    *&SPWIZARD: TYPE FOR THE DATA OF TABLECONTROL 'ITEM_DATA'
    TYPES: BEGIN OF T_ITEM_DATA,
              POSNR LIKE VBAP-POSNR,
              MATNR LIKE VBAP-MATNR,
              KWMENG LIKE VBAP-KWMENG,
              VRKME LIKE VBAP-VRKME,
            END OF T_ITEM_DATA.
    *&SPWIZARD: INTERNAL TABLE FOR TABLECONTROL 'ITEM_DATA'
    DATA:     G_ITEM_DATA_ITAB   TYPE T_ITEM_DATA OCCURS 0,
               G_ITEM_DATA_WA     TYPE T_ITEM_DATA. "work area
    DATA:     G_ITEM_DATA_COPIED.           "copy flag
    *&SPWIZARD: DECLARATION OF TABLECONTROL 'ITEM_DATA' ITSELF
    CONTROLS: ITEM_DATA TYPE TABLEVIEW USING SCREEN 4000.
    DATA:GV_NUM TYPE I VALUE 1,
           GV_NUM2 TYPE I.
    DATA:     G_T_YREC_TAB_LINES  LIKE SY-LOOPC.
    ************************pbo*******************
    *&  Include           ZSD_SO_CHANGES2_PBO
    *&SPWIZARD: OUTPUT MODULE FOR TC 'ITEM_DATA'. DO NOT CHANGE THIS LINE!
    *&SPWIZARD: COPY DDIC-TABLE TO ITAB
    MODULE ITEM_DATA_INIT OUTPUT.
       IF G_ITEM_DATA_COPIED IS INITIAL.
    *&SPWIZARD: COPY DDIC-TABLE 'VBAP'
    *&SPWIZARD: INTO INTERNAL TABLE 'g_ITEM_DATA_itab'
    *    SELECT * FROM VBAP
    *       INTO CORRESPONDING FIELDS
    *       OF TABLE G_ITEM_DATA_ITAB.
    *    G_ITEM_DATA_COPIED = 'X'.
         REFRESH CONTROL 'ITEM_DATA' FROM SCREEN '4000'.
       ENDIF.
       ITEM_DATA-LINES = G_T_YREC_TAB_LINES + 15.
    ENDMODULE.
    *&SPWIZARD: OUTPUT MODULE FOR TC 'ITEM_DATA'. DO NOT CHANGE THIS LINE!
    *&SPWIZARD: MOVE ITAB TO DYNPRO
    MODULE ITEM_DATA_MOVE OUTPUT.
       MOVE-CORRESPONDING G_ITEM_DATA_WA TO VBAP.
    ENDMODULE.
    *&      Module  STATUS_4000  OUTPUT
    *       text
    MODULE STATUS_4000 OUTPUT.
       SET PF-STATUS 'APAR'.
    *  REFRESH G_ITEM_DATA_ITAB.
        GV_NUM = 1.
    *  SET TITLEBAR 'xxx'.
    ENDMODULE.                 " STATUS_4000  OUTPUT

Maybe you are looking for

  • Unexpected Error on login, PLEASE HELP!

    PLEASE HELP!! Everytime I try to login to Muse since Beta 7 I get this screen: I have already submitted a report and emailed support but I have gotten no answer. How can I fix this? I have allowed Muse through my firewall but that doesnt make any dif

  • "Arrange files by type" doesn't take file extension into account

    After upgrading system to a Mountain Lion I was unpleasantly surprised. The "Arrange files by type" option doesn't work any more. bmp, jpg, raw, zip, psd, tar.gz and so on - now Finder considers all these file types as "Documents" and puts them into

  • Fm9 error when saving as PDF.

    This error occurs when I attempt to  File>Save As PDF a frame file that was generated from a valid  ditamap or a valid ditamap itself.

  • Execute planning functions

    Hi Experts, I have few planning functions in my IP for a real time cube. 1 of my planning function is giving an error ' Planning function ended with errors'. i want to debug this or test this function. how to do that. i went to T.Code BPS0, but i m u

  • External HD USB3 cannot be recognised by my  iMac.

    I have an external HD USB3 who can be recognised by my MacBookPro but not by my iMac. What should I do?