Handling "enter" key while a user clicks a button being displayed in datagrid

Hi,
I have a datagrid of which one non editable column has an itemrenderer render a button while a row is hovered or selected. I am usinhg default tab handling of datagrid. I want to handle the button click event when a user presses enter key while the focus is on this tabbed column.
Can anyone help me how to ahcieve this?

This how my datagrid looks ..main file
<?xml version="1.0" encoding="utf-8"?>
<s:Application xmlns:fx="http://ns.adobe.com/mxml/2009"
               xmlns:s="library://ns.adobe.com/flex/spark"
               xmlns:mx="library://ns.adobe.com/flex/mx" minWidth="955" minHeight="600">
    <fx:Script>
        <![CDATA[
            import mx.controls.Alert;
            public function myKeyDownEvent(event:Event):void{
                mx.controls.Alert.show("Selected " + myGrid.columns[0].popupIndex);
        ]]>
    </fx:Script>
    <fx:Declarations>
        <fx:XMLList id="transactions">
            <transaction>
                <type>Unassigned</type>
                <date>11-21-2009</date>
                <payee>CREDITCARD debit 328</payee>
                <payment>10</payment>
                <deposit>0</deposit>
                <account>My Visa</account>
            </transaction>
            <transaction>
                <type>Match</type>
                <date>11-23-2009</date>
                <payee>SAVINGS debit 323</payee>
                <payment>10</payment>
                <deposit>0</deposit>
                <account>My Savings</account>
            </transaction>
            <transaction>
                <type>Unassigned</type>
                <date>11-24-2009</date>
                <payee>CREDITCARD debit 328</payee>
                <payment>0</payment>
                <deposit>20</deposit>
                <account>My Visa</account>
            </transaction>
            <transaction>
                <type>Unassigned</type>
                <date>11-23-2009</date>
                <payee>SAVINGS debit 327</payee>
                <payment>0</payment>
                <deposit>10</deposit>
                <account>My Savings</account>
            </transaction>
            <transaction>
                <type>Unassigned</type>
                <date>11-21-2009</date>
                <payee>CREDITCARD debit 328</payee>
                <payment>10</payment>
                <deposit>0</deposit>
                <account>My Visa</account>
            </transaction>
            <transaction>
                <type>Unassigned</type>
                <date>11-21-2009</date>
                <payee>CREDITCARD debit 328</payee>
                <payment>10</payment>
                <deposit>0</deposit>
                <account>My Visa</account>
            </transaction>
            <transaction>
                <type>Unassigned</type>
                <date>11-21-2009</date>
                <payee>CREDITCARD debit 328</payee>
                <payment>10</payment>
                <deposit>0</deposit>
                <account>My Visa</account>               
            </transaction>
            <transaction>
                <type>Unassigned</type>
                <date>11-21-2009</date>
                <payee>CREDITCARD debit 328</payee>
                <payment>10</payment>
                <deposit>0</deposit>
                <account>My Visa</account>               
            </transaction>
            <transaction>
                <type>Unassigned</type>
                <date>11-21-2009</date>
                <payee>CREDITCARD debit 328</payee>
                <payment>10</payment>
                <deposit>0</deposit>
                <account>My Visa</account>               
            </transaction>
            <transaction>
                <type>Unassigned</type>
                <date>11-21-2009</date>
                <payee>CREDITCARD debit 328</payee>
                <payment>10</payment>
                <deposit>0</deposit>
                <account>My Visa</account>               
            </transaction>
            <transaction>
                <type>Unassigned</type>
                <date>11-21-2009</date>
                <payee>CREDITCARD debit 328</payee>
                <payment>10</payment>
                <deposit>0</deposit>
                <account>My Visa</account>               
            </transaction>
            <transaction>
                <type>Unassigned</type>
                <date>11-21-2009</date>
                <payee>CREDITCARD debit 328</payee>
                <payment>10</payment>
                <deposit>0</deposit>
                <account>My Visa</account>               
            </transaction>
            <transaction>
                <type>Unassigned</type>
                <date>11-21-2009</date>
                <payee>CREDITCARD debit 328</payee>
                <payment>10</payment>
                <deposit>0</deposit>
                <account>My Visa</account>               
            </transaction>
            <transaction>
                <type>Unassigned</type>
                <date>11-21-2009</date>
                <payee>CREDITCARD debit 328</payee>
                <payment>10</payment>
                <deposit>0</deposit>
                <account>My Visa</account>               
            </transaction>
            <transaction>
                <type>Unassigned</type>
                <date>11-21-2009</date>
                <payee>CREDITCARD debit 328</payee>
                <payment>10</payment>
                <deposit>0</deposit>
                <account>My Visa</account>               
            </transaction>
            <transaction>
                <type>Unassigned</type>
                <date>11-21-2009</date>
                <payee>CREDITCARD debit 328</payee>
                <payment>10</payment>
                <deposit>0</deposit>
                <account>My Visa</account>               
            </transaction>
            <transaction>
                <type>Unassigned</type>
                <date>11-21-2009</date>
                <payee>CREDITCARD debit 328</payee>
                <payment>10</payment>
                <deposit>0</deposit>
                <account>My Visa</account>               
            </transaction>
            <transaction>
                <type>Unassigned</type>
                <date>11-21-2010</date>
                <payee>CREDITCARD debit 328</payee>
                <payment>10</payment>
                <deposit>0</deposit>
                <account>My Visa</account>               
            </transaction>
            <transaction>
                <type>Unassigned</type>
                <date>11-21-2010</date>
                <payee>CREDITCARD debit 328</payee>
                <payment>10</payment>
                <deposit>0</deposit>
                <account>My Visa</account>
            </transaction>
            <transaction>
                <type>Match</type>
                <date>11-23-2010</date>
                <payee>SAVINGS debit 323</payee>
                <payment>10</payment>
                <deposit>0</deposit>
                <account>My Savings</account>
            </transaction>
            <transaction>
                <type>Unassigned</type>
                <date>11-24-2010</date>
                <payee>CREDITCARD debit 328</payee>
                <payment>0</payment>
                <deposit>20</deposit>
                <account>My Visa</account>
            </transaction>
            <transaction>
                <type>Unassigned</type>
                <date>11-23-2010</date>
                <payee>SAVINGS debit 327</payee>
                <payment>0</payment>
                <deposit>10</deposit>
                <account>My Savings</account>
            </transaction>
            <transaction>
                <type>Unassigned</type>
                <date>11-21-2010</date>
                <payee>CREDITCARD debit 328</payee>
                <payment>10</payment>
                <deposit>0</deposit>
                <account>My Visa</account>
            </transaction>
            <transaction>
                <type>Unassigned</type>
                <date>11-21-2010</date>
                <payee>CREDITCARD debit 328</payee>
                <payment>10</payment>
                <deposit>0</deposit>
                <account>My Visa</account>
            </transaction>
            <transaction>
                <type>Unassigned</type>
                <date>11-21-2010</date>
                <payee>CREDITCARD debit 328</payee>
                <payment>10</payment>
                <deposit>0</deposit>
                <account>My Visa</account>               
            </transaction>
            <transaction>
                <type>Unassigned</type>
                <date>11-21-2010</date>
                <payee>CREDITCARD debit 328</payee>
                <payment>10</payment>
                <deposit>0</deposit>
                <account>My Visa</account>               
            </transaction>
            <transaction>
                <type>Unassigned</type>
                <date>11-21-2010</date>
                <payee>CREDITCARD debit 328</payee>
                <payment>10</payment>
                <deposit>0</deposit>
                <account>My Visa</account>               
            </transaction>
            <transaction>
                <type>Unassigned</type>
                <date>11-21-2010</date>
                <payee>CREDITCARD debit 328</payee>
                <payment>10</payment>
                <deposit>0</deposit>
                <account>My Visa</account>               
            </transaction>
            <transaction>
                <type>Unassigned</type>
                <date>11-21-2010</date>
                <payee>CREDITCARD debit 328</payee>
                <payment>10</payment>
                <deposit>0</deposit>
                <account>My Visa</account>               
            </transaction>
            <transaction>
                <type>Unassigned</type>
                <date>11-21-2010</date>
                <payee>CREDITCARD debit 328</payee>
                <payment>10</payment>
                <deposit>0</deposit>
                <account>My Visa</account>               
            </transaction>
            <transaction>
                <type>Unassigned</type>
                <date>11-21-2010</date>
                <payee>CREDITCARD debit 328</payee>
                <payment>10</payment>
                <deposit>0</deposit>
                <account>My Visa</account>               
            </transaction>
            <transaction>
                <type>Unassigned</type>
                <date>11-21-2009</date>
                <payee>CREDITCARD debit 328</payee>
                <payment>10</payment>
                <deposit>0</deposit>
                <account>My Visa</account>               
            </transaction>
            <transaction>
                <type>Unassigned</type>
                <date>11-21-2009</date>
                <payee>CREDITCARD debit 328</payee>
                <payment>10</payment>
                <deposit>0</deposit>
                <account>My Visa</account>               
            </transaction>
            <transaction>
                <type>Unassigned</type>
                <date>11-21-2009</date>
                <payee>CREDITCARD debit 328</payee>
                <payment>10</payment>
                <deposit>0</deposit>
                <account>My Visa</account>               
            </transaction>
            <transaction>
                <type>Unassigned</type>
                <date>11-21-2009</date>
                <payee>CREDITCARD debit 328</payee>
                <payment>10</payment>
                <deposit>0</deposit>
                <account>My Visa</account>               
            </transaction>
            <transaction>
                <type>Unassigned</type>
                <date>11-21-2009</date>
                <payee>CREDITCARD debit 328</payee>
                <payment>10</payment>
                <deposit>0</deposit>
                <account>My Visa</account>               
            </transaction>
        </fx:XMLList>
    </fx:Declarations>
    <mx:DataGrid id="myGrid" width="100%" height="100%" dataProvider="{transactions}" editable="true" allowMultipleSelection="true" rollOverColor="0x9BDFFA"
                 selectionColor="0x004B8D" textSelectedColor="white">
        <mx:columns>
            <mx:DataGridColumn headerText="Type" dataField="type" itemRenderer="TypeItemRenderer" editable="false"/>
            <mx:DataGridColumn headerText="Date" dataField="date" />
            <mx:DataGridColumn headerText="Payee" dataField="payee" />
            <mx:DataGridColumn headerText="Envelope" dataField="envelope" editable="false" />
            <mx:DataGridColumn headerText="Payment" dataField="payment" />
            <mx:DataGridColumn headerText="Deposit" dataField="deposit" />
            <mx:DataGridColumn headerText="Account" dataField="account" editable="false"/>
        </mx:columns>
    </mx:DataGrid>
</s:Application>

Similar Messages

  • How can I pause a slide until the user clicks a button?

    I wish to pause a slide until the user clicks a button (which I've created out of a Smartshape). The thing is that I haven't added a click box object over the smartshape but have only set the smartshape properties to "Use as Button". If I were to add a clickbox object, I would get a "Pause project until user clicks" in the options section of the properties. However in using a smartshape as a button, I cannot find this option. I am using Captivate 6. Seems strange as I would have expected to see the same checkbox option even if I were to use a smartshape as a button but I dont. Can't someone help me and let me know if I'm missing something.
    Of course I could use a clickbox over my smartshape to achieve what I want, but I want to avoid thsi for two reason:
    I want to avoid adding another object when I dont need it.
    My smartshape is a right arrow (indicating "Begin"), and I dont want a squarish click box sitting on top of a triangle because that just shows the hand pointer even if the cursor isn't exactly over the arrow button because it enter the clickbox area.
    Thanks,
    Sean

    Select the Smart Shape button , go to Properties > Timing accordion > Pause After and set the number of seconds from the beginning of the slide for it to pause.

  • Invalidate session when user clicks back button

    I want to invalidate the session when user clicks back button, so that user cannot refresh and reload a page.
    Any suggestions will be highly appreciated.
    Message was edited by:
    sam_amc

    * SessionInvalidator.java
    * Created on October 27, 2006, 9:18 AM
    package web;
    import java.io.*;
    import java.net.*;
    import javax.servlet.*;
    import javax.servlet.http.*;
    * @author javious
    * @version
    public class SessionInvalidator extends HttpServlet {
        /** Processes requests for both HTTP <code>GET</code> and <code>POST</code> methods.
         * @param request servlet request
         * @param response servlet response
        protected void processRequest(HttpServletRequest request, HttpServletResponse response)
        throws ServletException, IOException {
            response.setContentType("text/html;charset=UTF-8");
            PrintWriter out = response.getWriter();
            String reposted = request.getParameter("reposted");
            if("true".equals(reposted))
                HttpSession session = request.getSession(false);
                if(session == null)
                    // This is step 4 and beyond
                    out.println("<html>");
                    out.println("<head>");
                    out.println("<title>Servlet SessionInvalidator</title>");
                    out.println("</head>");
                    out.println("<body>");
                    out.println("<h1>Servlet SessionInvalidator at " + request.getContextPath () + "</h1>");
                    out.println("I said, your session is now invalid! Now where are those Duke Dollars at?");
                    out.println("</body>");
                    out.println("</html>");
                else
                    Integer hitCount = (Integer)session.getAttribute("hitCount");
                    if(hitCount == null)
                        // This is step 2 (the "good" - "stay" page.)
                        out.println("<html>");
                        out.println("<head>");
                        out.println("<title>Servlet SessionInvalidator</title>");
                        out.println("</head>");
                        out.println("<body>");
                        out.println("<h1>Servlet SessionInvalidator at " + request.getContextPath () + "</h1>");
                        out.println("Your session is good.<br>");
                        out.println("If you click the browser's back button, you will invalidate your session.");
                        out.println("</body>");
                        out.println("</html>");
                        hitCount = 1;
                        session.setAttribute("hitCount", hitCount);
                    else
                        //We've used up our good visit
                        session.invalidate();
                        // This is step 3
                        out.println("<html>");
                        out.println("<head>");
                        out.println("<title>Servlet SessionInvalidator</title>");
                        out.println("</head>");
                        out.println("<body>");
                        out.println("<h1>Servlet SessionInvalidator at " + request.getContextPath () + "</h1>");
                        out.println("Your session is now invalid");
                        out.println("</body>");
                        out.println("</html>");
            else
                // because the javascript in the following output will never allow a user
                // to continue clicking back any further than this, we can safely create the session.
                // (or perhaps the session can already be created here and this may not be necessary).
                // A problem lies where if the user chooses to "select" a page back in history they thereby
                // potentially skip back "over" this functionality, thus defeating the purpose of it.
                request.getSession(true);
                // This is step 1 (indirection)
                out.println("<html>");
                out.println("<head>");
                out.println("<title>Servlet SessionInvalidator</title>");
                out.println("</head>");
                out.println("<body onload=\"document.getElementById('invalidatorForm').submit()\">");
                out.println("<h1>Servlet SessionInvalidator at " + request.getContextPath () + "</h1>");
                out.println("<form id=\"invalidatorForm\" action=\"SessionInvalidator\" method=\"POST\">");
                out.println("<input type=\"hidden\" name=\"reposted\" value=\"true\">");
                out.println("</form>");
                out.println("</body>");
                out.println("</html>");
            out.close();
        // <editor-fold defaultstate="collapsed" desc="HttpServlet methods. Click on the + sign on the left to edit the code.">
        /** Handles the HTTP <code>GET</code> method.
         * @param request servlet request
         * @param response servlet response
        protected void doGet(HttpServletRequest request, HttpServletResponse response)
        throws ServletException, IOException {
            processRequest(request, response);
        /** Handles the HTTP <code>POST</code> method.
         * @param request servlet request
         * @param response servlet response
        protected void doPost(HttpServletRequest request, HttpServletResponse response)
        throws ServletException, IOException {
            processRequest(request, response);
        /** Returns a short description of the servlet.
        public String getServletInfo() {
            return "Short description";
        // </editor-fold>
    }The problem with even attempting to do this is that with today's browser capabilities, users can optionally choose to jump to a particular page in the browser history and this may not necessarily be the most recent page. In this case, you would also want to invalidate the user's session after already having been there (whatever page that may be). Then you have situations when the user may wish to jump back in history to external pages they were visiting before they reached your own site's pages. Then what happens when they start clicking forward, forward, etc... from there? This is why I prefer writing Swing Clients as alternatives to browser applications. There are soo many possible ways break web applications made for standard web browsers both maliciously and simply by accident or irregular user patterns. Regardless, this servlet would work based on the assumption that all the user(s) would "ever" do aside from moving logically forward is clicking on the browser's "back" button.
    cheers!
    Message was edited by:
    javious

  • Open a new window when a user clicks a button

    Hello!!
    I have the following problem, I have a table with a button, and when the user clicks the button, I want to open a new window, I don't know how to set the button so that it opens another window...
    Does anybody have an idea of how to do this??
    thank you in advance

    Hi,
    Following thread may help you
    http://forum.sun.com/jive/thread.jspa?forumID=123&threadID=53654
    MJ

  • Showing universal work list when user clicks a button in webdynpro java

    Hi,
    I am developing webdynpro java application, when user clicks a button i want to display Universal worklist in the portal, if user is logged in then it directly shows in portal otherwise it should asks for username and password.
    Thanks,
    Madhu

    Hi Pithre,
    For this you have to use portal navigation classes, Same scenario occurred in previous forums, search thoroughly before you post the question.
    Go to the below link, May u r problem will be solved.
    Universal Work List & Web Dynpro
    Regards,
    Pradeep

  • How can we enable tick icon when user click any button

    how can we enable tick icon when user click any button in captivate 6@

    hi first of all thanks for imitate action.
    actually i want to make a menu (TOC) with tick icons, on starting all ticks are disabled but when i click on any button from my menu i want to enable tick for that particular button so that user can know easily the visited button.

  • What happens once an user click shutdown button

    when an user clicks shutdown button, what OS does
    1. will it stop all the process running in the background right away and spend time in closing those?
    2. apps (exe) which were running won't be having any control and it is fully operating system which does everything
    to kill all the running processes right?
    3. What is the exact flow that OS follows to kill apps when shutdown button is pressed.?

    Hello Sarath_dnv,
    About the Windows Shutdown details, please take a look at the following article.
    http://blogs.msdn.com/b/b8/archive/2011/09/08/delivering-fast-boot-times-in-windows-8.aspx
    1. The user initiates a shutdown by selecting “shut down” from the Start menu, or by pressing the power button; or an application initiates shutdown by calling an API such as ExitWindowsEx() or InitiateShutdown().
    2. Windows broadcasts messages to running applications, giving them a chance to save data and settings. Applications can also request a little extra time to finish what they’re doing.
    3. Windows closes the user sessions for each logged on user.
    4. Windows sends messages to services notifying them that a shutdown has begun, and subsequently shuts them down. It shuts down ordered services that have a dependency serially, and the rest in parallel. If a service doesn’t respond, it is shut down forcefully.
    5. Windows broadcasts messages to devices, signaling them to shut down.
    6. Windows closes the system session (also known as “session 0”).
    7. Windows flushes any pending data to the system drive to ensure it is saved completely.
    8. Windows sends a signal via the ACPI interface to the system to power down the PC.
    Best regards,
    Fangzhou CHEN
    Fangzhou CHEN
    TechNet Community Support

  • When user clicks on button the document linked to this path must be display

    hi sap masters,
    i am developing a screen prog in which i have a requirment which is i have pushbutton called WEB.
    When user clicks on button the document linked to this path must be displayed
    ex :  www.google.com
    how can i display can i have some info please.
    thank you,
    pasala.

    Hi,
    Kindly go through the below programs....
    RSHTML01                       Demo for HTML Control: Use as general WWW browser
    SAPHTML_R3HTTP_DEMO            Demo for HTML Control: Use as general WWW browser
    SAPHTML_UI_DEMO                Demo for HTML Control: Use as general WWW browser
    UPWB_HTML_DEBUG                Demo for HTML Control: Use as general WWW browser
    Hope it helps.
    Regards
    Arbind

  • Weird thing about when user click Update button

    Hi,
    I got a very weird thing when i want to add some my code in button "1" on click event. I use below code to capture the on click event when user click "Update" button, so i can do some tasks(assign some fix value to a specific field). I found i can capture the event only once. Once the document is updated and i open second recordl then my code is never exexuted then. No error, no exception. Is anyone know what happen?
    Thanks,
    Lan

    Hi All,
    Yes, you are right. After i use try block, i can see the error. I thought I should be expected an red exception alert in the B1 info bar.
    Thank you !
    Lan

  • Clicking add button to display the values

    requrement is like this
    Could anyone give suggestions with some code .
    we have lovs using this one we are searching for the value(ex emloyee name) that value is returned to the base page filed like message text input . we have add button, when ever we click that button to display the value(ex employee name ,desigantion this is from another table )on that same page.

    I could not understand your requirement. Post more details of the requirement with specific details.
    Message was edited by:
    Srini

  • Treat enter key the same as clicking button without using javascript

    I have a page with a search on it. I would like to let the user press the enter key, and have it be the same as if they clicked the search button.
    I figure I could do this with javascript, but I'm wondering if there's an easier way.
    3.2.
    Edited by: tharpa on May 5, 2011 7:33 AM

    Tharpa,
    You can make your search field a text field with submit. This will submit the page and make the request the name of the item when the user presses enter while this field has focus.
    I cannot currently look at a 3.2 instance and be more descriptive about how you can do this, but if i remember correctly it was a sub option of the text field.
    Thanks,
    Tyson Jouglet

  • Handling Enter key event in JTable

    Hi...
    This is particularly for the user "VIRAVAN"...
    I have followed your method ,and got results too.. but the
    processKeyBinding(.. method is called 4 times,same problem addressed by you before, but I didn't understood it...
    Please help me...
    Here is my code...
    protected boolean processKeyBinding(KeyStroke ks, KeyEvent e,int condition, boolean pressed)
    System.out.println("Wait");
    if (ks == KeyStroke.getKeyStroke(KeyEvent.VK_ENTER,0))
    int selRow = getSelectedRow();
    int rowCount = getRowCount();
    int selCol = getSelectedColumn();
    String val =(String)getValueAt(selRow,selCol);
    boolean b= getCellEditor(selRow,selCol).stopCellEditing();
    System.out.println(b);
    System.out.println(rowCount-1 + " "+ selRow + " " + getSelectedColumn());
    if((!val.equals("")) && selRow==rowCount-1)
    System.out.println(rowCount-1 + " "+ getSelectedRow()+ " " + getSelectedColumn());
    blank1 = new String[columns];
    for(int p=0;p<columns;p++)
    blank1[p]="";
    Diary.this.datarows.addElement(blank1);
    // dataModel.fireTableStructureChanged();
    //dataModel.fireTableDataChanged();
    Diary.this.dataModel.fireTableChanged(null);
    else if(ks ==KeyStroke.getKeyStroke(KeyEvent.VK_1,0))
    System.out.println("One One One One ");
    return super.processKeyBinding(ks,e,condition,pressed);

    It's been a while since I looked at the code, but essentially there are three key event types:
    1) key pressed,
    2) key typed,
    3) key released.
    So I would expect the processKeyBind to see all three of them. However, ks==KeyStroke.getKeyStroke(KeyEvent.VK_ENTER,0) is true only when a key typed event is detected (the other types can be ignored by passing it up the food chain where they will eventually be consumed). Now...., if I understand you correctly, you want to terminate edit on the present of Enter key, right? Here is how I'd suggest you do:
       protected boolean processKeyBinding(KeyStroke ks, KeyEvent e, int condition, boolean pressed) {
          if (isEditing()) {
             Component editorComponent=getEditorComponent();
             editorComponent.stopCellEditing();
             return true;
          return super.processKeyBinding(ks,e,condition,pressed);
       }Ok.... now, it appears that you want to do something else also... i.e., add a new row to the table if the editing row is the last row and the editing column is the last column of the last row. You can't do that in the same thread (i.e., you must wait until the update in the current thread is completed). So, what you must do is use the SwingUtilities.InvokeLater, like this:
       protected boolean processKeyBinding(KeyStroke ks, KeyEvent e, int condition, boolean pressed) {
          if (isEditing()) {
             Component editorComponent=getEditorComponent();
             editorComponent.stopCellEditing();
             if (getEditingRow()+1==getRowCount() && getEditingColumn()+1==getColumnCount()) {
                SwingUtilities.invokeLater(new Runnable() {
                   public void run() {
    // put the code for adding new row here
             return true;
          return super.processKeyBinding(ks,e,condition,pressed);
       }OK?
    ;o)
    V.V.
    PS: posted code is untest but should work!

  • Handling 'enter key' event in alv using classes

    Hello all,
        i have a scenario where i have a grid from which i have to select a row and press 'enter' key, then the row would be added to grid on top of it. we have developed this grids using control and classes.
        please any one tell me how would i get the enter key code.
    Thanks,
    krishnam raju N

    HI Raju
    just go through these
    check the sample program.
    <b>BALV_POPUP_TO_SELECT
    ENTER is nothing but selecting the record.
    </b>
    Re: ALV  'ENTER' key
    and go through this code
    constants :
    C_PF_STATUS TYPE SLIS_FORMNAME VALUE 'F_SET_PF_STATUS'.
    CALL FUNCTION 'REUSE_ALV_LIST_DISPLAY'
    EXPORTING
    I_CALLBACK_PROGRAM = V_REPID
    I_CALLBACK_PF_STATUS_SET = C_PF_STATUS
    I_CALLBACK_USER_COMMAND = P_USER_COMMAND IS_LAYOUT = WA_LAYOUT
    IT_FIELDCAT = IT_FIELDCAT[]
    IT_EXCLUDING = IT_EXTAB[]
    IT_SORT = IT_SORT[]
    TABLES
    T_OUTTAB = P_ZBCAR50
    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.
    2.
    *& Form F_SET_PF_STATUS
    Set PF_STATUS STANDARD modifying the standard toolbar
    by excluding some buttons
    -->P_IT_EXTAB -- TABLE OF EXCLUDING FUNCTIONS
    FORM F_SET_PF_STATUS USING RT_EXTAB TYPE SLIS_T_EXTAB.
    CLEAR : WA_EXTAB,
    IT_EXTAB.
    *--Set the Modified PF status for the ALV.
    SET PF-STATUS 'STATUS_01' EXCLUDING RT_EXTAB.
    ENDFORM. " SET_PF_STATUS
    3.
    *& Form f_user_command
    Handle user action on ALV toolbar
    FORM F_USER_COMMAND USING R_UCOMM LIKE SY-UCOMM
    RS_SELFIELD TYPE SLIS_SELFIELD.
    DATA : L_ANSWER TYPE C.
    RS_SELFIELD-REFRESH = C_X.
    IF R_UCOMM = 'ENTR'.
    Do your processing here.
    ENDIF
    and go through these links
    <b>how to identify pressing ENTER on ALV
    How to capture the event in ALV grid display?
    Re: ALV-Grid: No reaction to Enter-Button
    </b>
    IF IT HELPS REWARD WITH POINTS
    Regards Rk
    Message was edited by:
            Rk Pasupuleti

  • Editable ALV - handling Enter key  when pressing enter on keyboard

    Hi folks.
    Now I have searched - and found a lot of threads - in this forum about my little problem.
    I'm using the <b>Function Module: REUSE_ALV_GRID_DISPLAY - NOT THE OO-version</b>!!!!!
    I have a editable list as result of finding some data. My problem is.
    When I change the value in one of the cells, and press the Enter key (not a click with the mouse on the Green button with the checkmark!) nothing happens!
    I have
        i_callback_pf_status_set  = 'SET_PF_STATUS'
        i_callback_user_command   = 'USER_COMMAND'
    And when I put a breakpoint in the USER_COMMAND form nothing happens - <b>ONLY IF I CLIKS WITH MY MOUSE ON THE Green button with the checkmark</b>!!
    Hope U have some idea!
    Best regards
    Carsten :o)

    Hi,
    Following the sample program for EDITABLE BLOCK ALV report.
    REPORT  YMS_EDITBLOCKALV.
    TABLES : rmmg1,MCHB, mkpf.
    DATA: BEGIN OF t_mseg OCCURS 0,
            zeile LIKE mseg-zeile,
            menge LIKE mseg-menge,
            meins LIKE mseg-meins,
            matnr LIKE mseg-matnr,
            werks LIKE mseg-werks,
            charg LIKE mseg-charg,
            bwart LIKE mseg-bwart,
    END OF t_mseg.
    DATA:BEGIN OF t_mchb OCCURS 0.
    INCLUDE STRUCTURE mchb.
    data flag type c.
    matnr LIKE mchb-matnr,
    charg LIKE mchb-charg,
    werks LIKE mchb-werks,
    clabs LIKE mchb-clabs,
    DATA END OF t_mchb.
    TYPE-POOLS slis.
    data: progname like sy-repid,
    fieldcattab TYPE slis_t_fieldcat_alv WITH HEADER LINE.
    data tabindex type i.
    data wa_matnr LIKE mchb-matnr.
    progname = sy-repid.
    SELECTION-SCREEN BEGIN OF BLOCK b_b1 WITH FRAME TITLE text-001.
    SELECT-OPTIONS s_docno FOR mkpf-mblnr OBLIGATORY.
    PARAMETERS p_docyr LIKE mkpf-mjahr OBLIGATORY.
    SELECTION-SCREEN END OF BLOCK b_b1.
    START-OF-SELECTION.
    SELECT zeile
    menge
    meins
    matnr
    werks
    charg
    bwart
    FROM mseg
    INTO TABLE t_mseg
    WHERE mblnr IN s_docno AND mjahr = p_docyr.
    CLEAR fieldcattab.
    fieldcattab-col_pos = 1.
    fieldcattab-fieldname = 'ZEILE'.
    fieldcattab-tabname = 'T_MSEG'.
    fieldcattab-fix_column = 'X'.
    fieldcattab-seltext_l = 'Item'.
    APPEND fieldcattab.
    CLEAR fieldcattab.
    fieldcattab-col_pos = 2.
    fieldcattab-fieldname = 'MENGE'.
    fieldcattab-tabname = 'T_MSEG'.
    fieldcattab-seltext_l = 'Quantity'.
    APPEND fieldcattab.
    CLEAR fieldcattab.
    fieldcattab-col_pos = 3.
    fieldcattab-fieldname = 'MEINS'.
    fieldcattab-tabname = 'T_MSEG'.
    fieldcattab-seltext_l = 'Unit'.
    APPEND fieldcattab.
    CLEAR fieldcattab.
    fieldcattab-col_pos = 4.
    fieldcattab-fieldname = 'MATNR'.
    fieldcattab-tabname = 'T_MSEG'.
    fieldcattab-seltext_l = 'Material'.
    APPEND fieldcattab.
    CLEAR fieldcattab.
    fieldcattab-col_pos = 5.
    fieldcattab-fieldname = 'WERKS'.
    fieldcattab-tabname = 'T_MSEG'.
    fieldcattab-seltext_l = 'Plant'.
    APPEND fieldcattab.
    CLEAR fieldcattab.
    fieldcattab-col_pos = 6.
    fieldcattab-fieldname = 'CHARG'.
    fieldcattab-tabname = 'T_MSEG'.
    fieldcattab-seltext_l = 'Batch No'.
    APPEND fieldcattab.
    CLEAR fieldcattab.
    fieldcattab-col_pos = 7.
    fieldcattab-fieldname = 'BWART'.
    fieldcattab-tabname = 'T_MSEG'.
    fieldcattab-seltext_l = 'Inventory'.
    fieldcattab-hotspot = 'X'.
    APPEND fieldcattab.
    end-of-selection.
    CALL FUNCTION 'REUSE_ALV_LIST_DISPLAY'
    EXPORTING
    I_INTERFACE_CHECK = ' '
    I_BYPASSING_BUFFER =
    I_BUFFER_ACTIVE = ' '
    I_CALLBACK_PROGRAM = PROGNAME
    I_CALLBACK_PF_STATUS_SET = ' '
    I_CALLBACK_USER_COMMAND = 'USERCOMMAND1'
    I_CALLBACK_TOP_OF_PAGE = ' '
    I_CALLBACK_HTML_TOP_OF_PAGE = ' '
    I_CALLBACK_HTML_END_OF_LIST = ' '
    I_STRUCTURE_NAME =
    I_BACKGROUND_ID = ' '
    I_GRID_TITLE =
    I_GRID_SETTINGS =
    IS_LAYOUT =
    IT_FIELDCAT = fieldcattab[]
    IT_EXCLUDING =
    IT_SPECIAL_GROUPS =
    IT_SORT =
    IT_FILTER =
    IS_SEL_HIDE =
    I_DEFAULT = 'X'
    I_SAVE = ' '
    IS_VARIANT =
    IT_EVENTS =
    IT_EVENT_EXIT =
    IS_PRINT =
    IS_REPREP_ID =
    I_SCREEN_START_COLUMN = 0
    I_SCREEN_START_LINE = 0
    I_SCREEN_END_COLUMN = 0
    I_SCREEN_END_LINE = 0
    IT_ALV_GRAPHICS =
    IT_ADD_FIELDCAT = fieldcattab
    IT_HYPERLINK =
    IMPORTING
    E_EXIT_CAUSED_BY_CALLER =
    ES_EXIT_CAUSED_BY_USER =
    TABLES
    t_outtab = t_mseg
    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.
    FORM usercommand1 USING r_ucomm LIKE sy-ucomm rs_selfield TYPE
    slis_selfield.
    CASE r_ucomm.
    WHEN '&IC1'.
    tabindex = rs_selfield-tabindex.
    read table t_mseg INDEX tabindex.
    select * from mchb into table t_mchb where matnr = t_mseg-matnr.
    clear fieldcattab.
    CLEAR fieldcattab[].
    fieldcattab-col_pos = 1.
    fieldcattab-fieldname = 'FLAG'.
    fieldcattab-tabname = 'T_MCHB'.
    fieldcattab-fix_column = 'X'.
    fieldcattab-seltext_l = 'Check Box'.
    fieldcattab-input = 'X'.
    fieldcattab-edit = 'X'.
    fieldcattab-checkbox = 'X'.
    APPEND fieldcattab.
    clear fieldcattab.
    fieldcattab-col_pos = 2.
    fieldcattab-fieldname = 'MATNR'.
    fieldcattab-tabname = 'T_MCHB'.
    fieldcattab-fix_column = 'X'.
    fieldcattab-seltext_l = 'Material'.
    fieldcattab-emphasize = 'C1'.
    fieldcattab-input = 'X'.
    fieldcattab-edit = 'X'.
    fieldcattab-checkbox = 'X'.
    APPEND fieldcattab.
    clear fieldcattab.
    fieldcattab-col_pos = 3.
    fieldcattab-fieldname = 'CHARG'.
    fieldcattab-tabname = 'T_MCHB'.
    fieldcattab-seltext_l = 'Batch No'.
    fieldcattab-emphasize = 'C2'.
    fieldcattab-input = 'X'.
    fieldcattab-edit = 'X'.
    APPEND fieldcattab.
    clear fieldcattab.
    fieldcattab-col_pos = 4.
    fieldcattab-fieldname = 'WERKS'.
    fieldcattab-tabname = 'T_MCHB'.
    fieldcattab-seltext_l = 'Plant'.
    fieldcattab-emphasize = 'C30'.
    fieldcattab-input = 'X'.
    fieldcattab-edit = 'X'.
    APPEND fieldcattab.
    clear fieldcattab.
    fieldcattab-col_pos = 5.
    fieldcattab-fieldname = 'CLABS'.
    fieldcattab-tabname = 'T_MCHB'.
    fieldcattab-seltext_l = 'Stock'.
    fieldcattab-emphasize = 'C601'.
    fieldcattab-input = 'X'.
    fieldcattab-edit = 'X'.
    APPEND fieldcattab.
    CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'
    EXPORTING
    I_INTERFACE_CHECK = ' '
    I_BYPASSING_BUFFER =
    I_BUFFER_ACTIVE = ' '
    I_CALLBACK_PROGRAM = PROGNAME
    I_CALLBACK_PF_STATUS_SET = ' '
    I_CALLBACK_USER_COMMAND = 'USERCOMMAND2'
    I_CALLBACK_TOP_OF_PAGE = ' '
    I_CALLBACK_HTML_TOP_OF_PAGE = ' '
    I_CALLBACK_HTML_END_OF_LIST = ' '
    I_STRUCTURE_NAME =
    I_BACKGROUND_ID = ' '
    I_GRID_TITLE =
    I_GRID_SETTINGS =
    IS_LAYOUT =
    IT_FIELDCAT = FIELDCATTAB[]
    IT_EXCLUDING =
    IT_SPECIAL_GROUPS =
    IT_SORT =
    IT_FILTER =
    IS_SEL_HIDE =
    I_DEFAULT = 'X'
    I_SAVE = ' '
    IS_VARIANT =
    IT_EVENTS =
    IT_EVENT_EXIT =
    IS_PRINT =
    IS_REPREP_ID =
    I_SCREEN_START_COLUMN = 0
    I_SCREEN_START_LINE = 0
    I_SCREEN_END_COLUMN = 0
    I_SCREEN_END_LINE = 0
    IT_ALV_GRAPHICS =
    IT_ADD_FIELDCAT =
    IT_HYPERLINK =
    IMPORTING
    E_EXIT_CAUSED_BY_CALLER =
    ES_EXIT_CAUSED_BY_USER =
    TABLES
    t_outtab = t_mchb
    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.
    FORM usercommand2 USING r_ucomm LIKE sy-ucomm rs_selfield TYPE
    slis_selfield.
    CASE r_ucomm.
    WHEN '&IC1'.
    IF rs_selfield-sel_tab_field = 'T_MCHB-MATNR'.
    CALL FUNCTION 'ZALV2'
    EXPORTING
    CTU = 'X'
    MODE = 'E'
    UPDATE = 'A'
    GROUP =
    USER =
    KEEP =
    HOLDDATE =
    NODATA = '/'
    MATNR_001 = '200-200'
    KZSEL_01_002 = 'X'
    IMPORTING
    SUBRC =
    TABLES
    MESSTAB =
    SET PARAMETER ID 'RID' FIELD RMMG1-MATNR.
    CALL TRANSACTION 'MM03' and skip first screen.
    ENDIF.
    ENDCASE.
    CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'
    EXPORTING
    i_callback_program = progname
    i_callback_user_command = 'USERCOMMAND3'
    it_fieldcat = fieldcattab[]
    TABLES
    t_outtab = t_mchb
    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.
    Thanks,
    Sankar M

  • How to handle 'ENTER' Key on ALV Editable Grid on sub screen (Tabstrips)

    Hello Experts ,
    I have 2 questions with ALV Editable grid;
    please help me if you have answers.
    I created ALV grid on one of sub screens on a Tab Strip,
    As soon as user types one of the columns of the ALV grid and press u2018ENTERu2019 key, it has to return corresponding details for that line.
    I tried to implement this logic in ALV grid event u2018handle_data_changedu2019, but ALV internal table is not getting populated with new entry entered in the grid. but u2018double_clicku2019 event working my purpose, but user might need enter key.
    and I thought I would do implement that logic in PAI event of the sub screen, u2018ENTERu2019 key not getting trigger on PAI event of the screen until cursor is on grid.
    Another question 2:  How do I control and not to be deleted a line on the grid (based on validation), where do I validate and by pass the delete function for a particular line, or suggest me to gray out only one line on the grid .
    I would like to have delete function to work as it is ,except for some validations..
    Can I implement using PAI event of the sub screen or any by ALV event.
    Please suggest me..
    Edited by: Ravindranath Arusam on May 13, 2010 2:42 PM

    In DATA_CHANGED event, you will get the modified row into the attribute MP_MOD_ROWS of the impoerting object ER_DATA_CHANGED. Since this MP_MOD_ROWS is the Object reference to Data, you need to have the field symbol to get the value.
      FIELD-SYMBOLS:  <lft_mod_output>  TYPE t_t_output.
      ASSIGN  er_data_changed->mp_mod_rows->* TO <lft_mod_output>.
    You can get the Value of the Cell by using the method GET_CELL_VALUE of the same ER_DATA_CHANGED object and use the method MODIFY_CELL To update the value back to ALV.
    To Restrict the row deletion:
    When the row is deleted it is being added to Attribute mt_deleted_rows of the object ER_DATA_CHANGED. You can put the data back to the table in the DATA_CHANGE_FINISHED event. Visit this post http://help-abap.blogspot.com/2008/10/alv-disable-delete-key-on-keyboard-in.html for more information.
    Regards,
    Naimesh Patel

Maybe you are looking for