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,
SeanSelect 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 advanceHi,
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,
MadhuHi 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,
LanHi 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 AMTharpa,
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 NHI 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 PMIn 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
-
I have just updated my Adobe Reader and now I can't download and open pdf files anymore. I tried going through the preferences in Reader, but it says that the setting is tied in with 'security administration' settings on Mac OS X. I have not actually
-
If I use Time Machine to back-up my files, can I delete files from my Mac Air?
My Macbook Air hard drive is full, and I want to move photos to an external drive. Once Time Machine has done a back-up, can I simply delete files from the Macbook Air?
-
HHow do I re format a la Cie external hard drive for my Mac mini operating system. The La Cie currently is showing a windows format.
-
Could not release request in abap program
hi, while transporting a program i am facing this error. help me. Object CUAD ZSIPM_PROD_DETAILS is inactive Message no. EU829 Diagnosis You tried to release a transport request, but object CUAD ZSIPM_PROD_DETAILS is still in its inactive version. Sy
-
[SOLVED] pacman: -Syy and -Syu reports system up to date
Hi, I ran pacman -Syy and pacman -Syu and it updated my one system to the Sept 9 kernel etc. I ran the same on my other system, and it reports all is up to date (local database up to date) but it is stil on the Aug 17 kernel etc. Any suggestions woul