Values From Grid
Hi All,
How can I get the values from Grid. I would like to take a cell value from a selected row directly from grid instead of DataTable.
Hi All,
The above stated queries is somewhat true. we can take values directly from grid. we have to use datatable. I tried datatable also but it does not give the values selected values when collapse level is set.
When we set the collapse level, datarow arrange as per the collapse level on the fly. lets take an example
In datatable rows are like
1 A B
2 A B1
3 B C1
4 C C1
5 C BV
when we set the collapse level rows are like
1
..A...
.. B...
.. B1..
..B..
..C1..
.. C..
...C1..
...BV..
like this..... In this case when I select the datarow from grid. it gives me row of selected index and the selected row does not match with the datarow position in datatable. Hence values varies.....
Edited by: Manish Chourasia on Aug 20, 2008 6:45 AM
Similar Messages
-
dear all
can you tell me how to read the value from the gride view coloum...
when i double click on the RowsHeader then i need to pick the value for 2 coloum.
thanks in advance...Hi Kishor,
Try This......
If pVal.FormUID = "test3" And pVal.ItemUID = "grid" And pVal.EventType = SAPbouiCOM.BoEventTypes.et_DOUBLE_CLICK And pVal.BeforeAction = False Then
oform = sbo_application.Forms.Item("test3")
ogrid = oform.Items.Item("grid").Specific
For i As Integer = 0 To ogrid.Rows.Count - 1
If ogrid.Rows.IsSelected(i) = True Then
MessageBox.Show(ogrid.DataTable.Columns.Item(0).Cells.Item(pVal.Row).Value)
MessageBox.Show(ogrid.DataTable.Columns.Item(1).Cells.Item(pVal.Row).Value)
End If
Next
End If
Thanks
Shafi -
Access the selected values from grid
I want to select vendor from the list.For this I have loaded vendor list in grid.How to get the value of selected vendor into variable ? For this I have used following code-
Private Sub SBO_Application_ItemEvent(ByVal FormUID As String, ByRef pVal As SAPbouiCOM.ItemEvent, ByRef BubbleEvent As Boolean) Handles SBO_Application.ItemEvent
Dim dtgGrid As SAPbouiCOM.Grid
Dim strVendorCode As String
Dim strVendorName As String
Dim dtgRows As SAPbouiCOM.GridRows
Dim dtgColumns As SAPbouiCOM.GridColumns
Try
If pVal.EventType = SAPbouiCOM.BoEventTypes.et_CLICK And pVal.Before_Action = True And pVal.ItemUID = "dtgGrid" Then
dtgGrid = SBO_Application.Forms.ActiveForm.Items.Item("dtgGrid").Specific
dtgGrid.Rows.SelectedRows.Add(pVal.Row)
strVendorCode = dtgGrid.Rows.SelectedRows.Item(1, SAPbouiCOM.BoOrderType.ot_RowOrder)
strVendorName = dtgGrid.Rows.SelectedRows.Item(1, SAPbouiCOM.BoOrderType.ot_SelectionOrder)
End If
Catch ex As Exception
SBO_Application.MessageBox(ex.Message)
End Try
End Sub
But I could not get the value in the variable strVendorName .Hi,
i would access value with the datatable
something like:
oForm = SBOApplication.Forms.Item(FormUID)
oGrid = oForm.Items.Item("grid").Specific
oGrid.DataTable.Columns.Item("insertthecolumnname").Cells.Item(i).Value
regards
David -
ALV grid - using f4 search help - want separate value from hit list
I have the following scenario that I am trying to resolve.
I have created my own search help with a search help exit for a bespoke maintenance table which lists categories against HR positions which are to receive workflow for these categories. I am designing a front-end for this table using an ALV grid whereby the person holding that position (i.e. name) is shown instead of position number. The search help allows you to select by First name and last name and brings up a hit list which includes employee number, first name last name, formatted name field, position number, position description and org unit it belongs in.
The issue occurs where the list brings back more than one hit.
e.g.:
1 Fred Bloggs Fred Bloggs 50000001 pos1 org 1
2 Frederic Bloggs Fred Bloggs 50000002 pos2 org 3
If you select an entry, the formatted name field goes in the ALV grid field. I call the search help via F4IF_FIELDVALUE_REQUEST using the onf4 event .
What I want to do is retrieve the position number of the entry selected and put this into another table without having to add this to my ALV grid and make available for input. I want to use name only for the input in my ALV grid (i.e. if I select the second example, the return table in F4IF_FIELDVALUE_REQUEST shows the name Fred Bloggs but does not show the position number which I need to add to another table to update my maintenance table).
Can anyone suggest any way around this?
Many thanks
LarissaYou are right, you can add this fields as an import parameter to the list.
In Custom search help you must have marked fields as Export or Import parameters.
If field is marked as Export parameters, it will be displayed in the selection pop up.
If Import paramter check box is selected then this will be imported to the screen.
Check this SAP documentation for both these options -
Flag for IMPORT parameter of the search help
Flag if the parameter is an import parameter.
Context information from the processed input template (screen) can be
copied to the help process with an import parameter. Where an import
parameter gets its values from is defined when the search help is
attached to the corresponding field of the input template.
Flag for EXPORT parameter of the search help
Flag if the parameter is an export parameter.
Values can be returned from the hit list to the input template (screen)
with an export parameter. The fields of the input template in which the
contents of the export parameter are returned are defined by the search
help attachment.
Message was edited by: Ashish Gundawar -
How to get column value from DB grid
Hi!
I wander how to get col value from GridControl?
My app consists of one rowsetinfo with two
columns CODE and DESCRIPTION and a jbutton
titled SELECT. When user clicks SELECT button
the app should show the value of the CODE col
of the selected row in GridControl.
I wander how to make this action ?
XxpsTransTimesMasterIter.setAttributeInfo( new AttributeInfo[] {
CODEXxpsTransTimesMasterIter,
DESCRIPTIONXxpsTransTimesMasterIter} );
XxpsTransTimesMasterIter.setName("XxpsTransTimes");
XxpsTransTimesMasterIter.setQueryInfo(new QueryInfo(
"XxpsTransTimesMasterIterViewUsage",
"lov.XxpsTransTimes",
"CODE, DESCRIPTION",
"XXPS_TRANS_TIMES",
null,
null
));Hi,
You could attach an ActionListener on the JButton, and try the following code :
NavigationManager fm = NavigationManager.getNavigationManager();
DataItem dataItem = fm.getFocusedControl().getDataItem();
ImmediateAccess col_code = null;
String code = null;
if (dataItem != null && dataItem instanceof RowsetAccess) {
RowsetAccess rowset = (RowsetAccess)dataItem;
try {
col_code = (ImmediateAccess) rowset.getColumnItem("CODE");
code = col_code.getValueAsString();
} catch (DuplicateColumnException de) {
return;
} catch (ColumnNotFoundException ce) {
return;
} catch (SQLException se) {
return;
JTextField tf = new JtextField();
tf.setText(code);
I haven't tested this code.
I am curious to know, the Object type of the dataItem.If it doesnot happen to be RowsetAccess ..try.. ScrollableRowsetAccess OR ImmediateAccess.
Your code would change accordingly, depending on the instance.Refer to the product documentation for this.
Do let me know, if this works.
TIA
Sandeep -
NullPointerException - Cannot get the value from variable f_cashGiven
In SubCheckout.java (a POS), what I want is when Payment button (f_cashPayment) is pressed, the action "Cash" is performed, get the value from Cash Given (f_cashGiven), do the subtraction and post the value as Cash Return (f_cashReturn). The code is filled in actionPerformed. But I cannot get the value by using f_cashGiven.getValue() from VNumber class. It returns NULL. This should be quite straight forward, but I do not know what is wrong. Please help!
Enclosed please find the source code of SubCheckout.java and VNumber.java
This is the code of SubCheckout.java :
* The contents of this file are subject to the Compiere License Version 1.1
* ("License"); You may not use this file except in compliance with the License
* You may obtain a copy of the License at http://www.compiere.org/license.html
* Software distributed under the License is distributed on an "AS IS" basis,
* WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License for
* the specific language governing rights and limitations under the License.
* The Original Code is Compiere ERP & CRM Smart Business Solution. The Initial
* Developer of the Original Code is Jorg Janke. Portions created by Jorg Janke
* are Copyright (C) 1999-2005 Jorg Janke.
* All parts are Copyright (C) 1999-2005 ComPiere, Inc. All Rights Reserved.
* Contributor(s): ______________________________________.
package org.compiere.pos;
import java.awt.*;
import java.awt.event.*;
import java.math.BigDecimal;
import javax.swing.border.*;
import org.compiere.grid.ed.*;
import org.compiere.swing.*;
import org.compiere.util.*;
* POS Checkout Sub Panel
* @author Jorg Janke
* @version $Id: SubCheckout.java,v 1.3 2005/03/11 20:28:22 jjanke Exp $
public class SubCheckout extends PosSubPanel implements ActionListener
* Constructor
* @param posPanel POS Panel
public SubCheckout (PosPanel posPanel)
super (posPanel);
} // PosSubCheckout
private CButton f_register = null;
private CButton f_summary = null;
private CButton f_process = null;
private CButton f_print = null;
private CLabel f_lcreditCardNumber = null;
private CTextField f_creditCardNumber = null;
private CLabel f_lcreditCardExp = null;
private CTextField f_creditCardExp = null;
private CLabel f_lcreditCardVV = null;
private CTextField f_creditCardVV = null;
private CButton f_cashPayment = null;
private CLabel f_lcashGiven = null;
private VNumber f_cashGiven = null;
private CLabel f_lcashReturn = null;
private VNumber f_cashReturn = null;
private CButton f_creditPayment = null;
/** Logger */
private static CLogger log = CLogger.getCLogger(SubCheckout.class);
* Initialize
public void init()
// Title
TitledBorder border = new TitledBorder(Msg.getMsg(Env.getCtx(), "Checkout"));
setBorder(border);
// Content
setLayout(new GridBagLayout());
GridBagConstraints gbc = new GridBagConstraints();
gbc.insets = INSETS2;
// -- 0
gbc.gridx = 0;
f_register = createButtonAction("Register", null);
gbc.gridy = 0;
add (f_register, gbc);
f_summary = createButtonAction("Summary", null);
gbc.gridy = 1;
add (f_summary, gbc);
f_process = createButtonAction("Process", null);
gbc.gridy = 2;
add (f_process, gbc);
f_print = createButtonAction("Print", null);
gbc.gridy = 3;
add (f_print, gbc);
// -- 1 -- Cash
gbc.gridx = 1;
gbc.gridheight = 2;
gbc.fill = GridBagConstraints.BOTH;
gbc.weightx = .1;
CPanel cash = new CPanel(new GridBagLayout());
cash.setBorder(new TitledBorder(Msg.getMsg(Env.getCtx(), "Cash")));
gbc.gridy = 0;
add (cash, gbc);
GridBagConstraints gbc0 = new GridBagConstraints();
gbc0.insets = INSETS2;
gbc0.anchor = GridBagConstraints.WEST;
f_lcashGiven = new CLabel(Msg.getMsg(Env.getCtx(),"CashGiven"));
cash.add (f_lcashGiven, gbc0);
f_cashGiven = new VNumber("CashGiven", false, false, true, DisplayType.Amount,
Msg.translate(Env.getCtx(), "CashGiven"));
f_cashGiven.addActionListener(this);
f_cashGiven.setColumns(10, 25);
cash.add (f_cashGiven, gbc0);
f_cashGiven.setValue(Env.ZERO);
f_lcashReturn = new CLabel(Msg.getMsg(Env.getCtx(),"CashReturn"));
cash.add (f_lcashReturn, gbc0);
f_cashReturn = new VNumber("CashReturn", false, true, false, DisplayType.Amount,
"CashReturn");
f_cashReturn.setColumns(10, 25);
cash.add (f_cashReturn, gbc0);
f_cashReturn.setValue(Env.ZERO);
f_cashPayment = createButtonAction("Payment", null);
f_cashPayment.setActionCommand("Cash");
gbc0.anchor = GridBagConstraints.EAST;
gbc0.weightx = 0.1;
cash.add (f_cashPayment, gbc0);
// -- 1 -- Creditcard
CPanel creditcard = new CPanel(new GridBagLayout());
creditcard.setBorder(new TitledBorder(Msg.translate(Env.getCtx(), "CreditCardType")));
gbc.gridy = 2;
add (creditcard, gbc);
GridBagConstraints gbc1 = new GridBagConstraints();
gbc1.insets = INSETS2;
gbc1.anchor = GridBagConstraints.WEST;
gbc1.gridx = 0;
gbc1.gridy = 0;
f_lcreditCardNumber = new CLabel(Msg.translate(Env.getCtx(), "CreditCardNumber"));
creditcard.add (f_lcreditCardNumber, gbc1);
gbc1.gridy = 1;
f_creditCardNumber = new CTextField(18);
creditcard.add (f_creditCardNumber, gbc1);
gbc1.gridx = 1;
gbc1.gridy = 0;
f_lcreditCardExp = new CLabel(Msg.translate(Env.getCtx(),"CreditCardExp"));
creditcard.add (f_lcreditCardExp, gbc1);
gbc1.gridy = 1;
f_creditCardExp = new CTextField(5);
creditcard.add (f_creditCardExp, gbc1);
gbc1.gridx = 2;
gbc1.gridy = 0;
f_lcreditCardVV = new CLabel(Msg.translate(Env.getCtx(), "CreditCardVV"));
creditcard.add (f_lcreditCardVV, gbc1);
gbc1.gridy = 1;
f_creditCardVV = new CTextField(5);
creditcard.add (f_creditCardVV, gbc1);
gbc1.gridx = 3;
gbc1.gridy = 0;
gbc1.gridheight = 2;
f_creditPayment = createButtonAction("Payment", null);
f_creditPayment.setActionCommand("CreditCard");
gbc1.anchor = GridBagConstraints.EAST;
gbc1.weightx = 0.1;
creditcard.add (f_creditPayment, gbc1);
} // init
* Get Panel Position
public GridBagConstraints getGridBagConstraints()
GridBagConstraints gbc = super.getGridBagConstraints();
gbc.gridx = 0;
gbc.gridy = 3;
return gbc;
} // getGridBagConstraints
* Dispose - Free Resources
public void dispose()
super.dispose();
} // dispose
* Action Listener
* @param e event
public void actionPerformed (ActionEvent e)
String action = e.getActionCommand();
if (action == null || action.length() == 0)
return;
log.info( "PosSubCheckout - actionPerformed: " + action);
if (e.getSource() == f_cashGiven) {
f_cashGiven.setValue(f_cashGiven.getValue());
System.out.println("f_cashGiven"+f_cashGiven.getDisplay());
// Register
// Summary
// Print
if (action.equals("Cash")) {
BigDecimal CashGiven, GrandTotal, CashReturn;
System.out.println("Cash given is "+f_cashGiven.getDisplay());
CashGiven = (BigDecimal)f_cashGiven.getValue();
GrandTotal = (BigDecimal)p_posPanel.f_curLine.getOrder().getGrandTotal();
CashReturn = CashGiven.subtract(GrandTotal);
f_cashReturn.setValue(CashReturn);
// Cash (Payment)
// CreditCard (Payment)
} // actionPerformed
} // PosSubCheckoutThis is the code of VNumber.java :
* The contents of this file are subject to the Compiere License Version 1.1
* ("License"); You may not use this file except in compliance with the License
* You may obtain a copy of the License at http://www.compiere.org/license.html
* Software distributed under the License is distributed on an "AS IS" basis,
* WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License for
* the specific language governing rights and limitations under the License.
* The Original Code is Compiere ERP & CRM Smart Business Solution. The Initial
* Developer of the Original Code is Jorg Janke. Portions created by Jorg Janke
* are Copyright (C) 1999-2005 Jorg Janke.
* All parts are Copyright (C) 1999-2005 ComPiere, Inc. All Rights Reserved.
* Contributor(s): ______________________________________.
package org.compiere.grid.ed;
import java.awt.*;
import java.awt.event.*;
import java.beans.*;
import java.math.*;
import java.text.*;
import java.util.logging.*;
import javax.swing.*;
import javax.swing.text.*;
import org.compiere.apps.*;
import org.compiere.model.*;
import org.compiere.swing.*;
import org.compiere.util.*;
* Number Control
* @author Jorg Janke
* @version $Id: VNumber.java,v 1.41 2005/09/03 01:57:16 jjanke Exp $
public final class VNumber extends JComponent
implements VEditor, ActionListener, KeyListener, FocusListener
/** Number of Columns (12) */
public final static int SIZE = 12;
* IDE Bean Constructor
public VNumber()
this("Number", false, false, true, DisplayType.Number, "Number");
} // VNumber
* Create right aligned Number field.
* no popup, if WindowNo == 0 (for IDs)
* @param columnName column name
* @param mandatory mandatory
* @param isReadOnly read only
* @param isUpdateable updateable
* @param displayType display type
* @param title title
public VNumber(String columnName, boolean mandatory, boolean isReadOnly, boolean isUpdateable,
int displayType, String title)
super();
super.setName(columnName);
m_columnName = columnName;
m_title = title;
setDisplayType(displayType);
LookAndFeel.installBorder(this, "TextField.border");
this.setLayout(new BorderLayout());
// this.setPreferredSize(m_text.getPreferredSize()); // causes r/o to be the same length
// int height = m_text.getPreferredSize().height;
// setMinimumSize(new Dimension (30,height));
// *** Text ***
m_text.setBorder(null);
m_text.setHorizontalAlignment(JTextField.TRAILING);
m_text.addKeyListener(this);
m_text.addFocusListener(this);
// Background
setMandatory(mandatory);
this.add(m_text, BorderLayout.CENTER);
// *** Button ***
m_button.setIcon(Env.getImageIcon("Calculator10.gif"));
m_button.setMargin(new Insets(0, 0, 0, 0));
m_button.setFocusable(false);
m_button.addActionListener(this);
this.add (m_button, BorderLayout.EAST);
// Prefereed Size
this.setPreferredSize(this.getPreferredSize()); // causes r/o to be the same length
// Size
setColumns(SIZE, CComboBox.FIELD_HIGHT-4);
// ReadWrite
if (isReadOnly || !isUpdateable)
setReadWrite(false);
else
setReadWrite(true);
} // VNumber
* Dispose
public void dispose()
m_text = null;
m_button = null;
m_mField = null;
} // dispose
* Set Document
* @param doc document
protected void setDocument(Document doc)
m_text.setDocument(doc);
} // getDocument
private String m_columnName;
protected int m_displayType; // Currency / UoM via Context
private DecimalFormat m_format;
private String m_title;
private boolean m_setting;
private String m_oldText;
private String m_initialText;
private boolean m_rangeSet = false;
private Double m_minValue;
private Double m_maxValue;
private boolean m_modified = false;
/** The Field */
private CTextField m_text = new CTextField(SIZE); // Standard
/** The Button */
private CButton m_button = new CButton();
private MField m_mField = null;
/** Logger */
private static CLogger log = CLogger.getCLogger(VNumber.class);
* Set no of Columns
* @param columns columns
public void setColumns (int columns, int height)
m_text.setPreferredSize(null);
m_text.setColumns(columns);
Dimension size = m_text.getPreferredSize();
if (height > size.height) // default 16
size.height = height;
if (CComboBox.FIELD_HIGHT-4 > size.height)
size.height = VLookup.FIELD_HIGHT-4;
this.setPreferredSize(size); // causes r/o to be the same length
this.setMinimumSize(new Dimension (columns*10, size.height));
m_button.setPreferredSize(new Dimension(size.height, size.height));
} // setColumns
* Set Range with min & max
* @param minValue min value
* @param maxValue max value
* @return true, if accepted
public boolean setRange(Double minValue, Double maxValue)
m_rangeSet = true;
m_minValue = minValue;
m_maxValue = maxValue;
return m_rangeSet;
} // setRange
* Set Range with min & max = parse US style number w/o Gouping
* @param minValue min value
* @param maxValue max value
* @return true if accepted
public boolean setRange(String minValue, String maxValue)
if (minValue == null || maxValue == null)
return false;
try
m_minValue = Double.valueOf(minValue);
m_maxValue = Double.valueOf(maxValue);
catch (NumberFormatException nfe)
return false;
m_rangeSet = true;
return m_rangeSet;
} // setRange
* Set and check DisplayType
* @param displayType display type
public void setDisplayType (int displayType)
m_displayType = displayType;
if (!DisplayType.isNumeric(displayType))
m_displayType = DisplayType.Number;
m_format = DisplayType.getNumberFormat(displayType);
m_text.setDocument (new MDocNumber(displayType, m_format, m_text, m_title));
} // setDisplayType
* Set ReadWrite
* @param value value
public void setReadWrite (boolean value)
if (m_text.isReadWrite() != value)
m_text.setReadWrite(value);
if (m_button.isReadWrite() != value)
m_button.setReadWrite(value);
// Don't show button if not ReadWrite
if (m_button.isVisible() != value)
m_button.setVisible(value);
} // setReadWrite
* IsReadWrite
* @return true if rw
public boolean isReadWrite()
return m_text.isReadWrite();
} // isReadWrite
* Set Mandatory (and back bolor)
* @param mandatory mandatory
public void setMandatory (boolean mandatory)
m_text.setMandatory(mandatory);
} // setMandatory
* Is it mandatory
* @return true if mandatory
public boolean isMandatory()
return m_text.isMandatory();
} // isMandatory
* Set Background
* @param color color
public void setBackground(Color color)
m_text.setBackground(color);
} // setBackground
* Set Background
* @param error error
public void setBackground (boolean error)
m_text.setBackground(error);
} // setBackground
* Set Foreground
* @param fg foreground
public void setForeground(Color fg)
m_text.setForeground(fg);
} // setForeground
* Set Editor to value
* @param value value
public void setValue(Object value)
log.finest("Value=" + value);
if (value == null)
m_oldText = "";
else
m_oldText = m_format.format(value);
// only set when not updated here
if (m_setting)
return;
m_text.setText (m_oldText);
m_initialText = m_oldText;
m_modified = false;
} // setValue
* Property Change Listener
* @param evt event
public void propertyChange (PropertyChangeEvent evt)
if (evt.getPropertyName().equals(org.compiere.model.MField.PROPERTY))
setValue(evt.getNewValue());
} // propertyChange
* Return Editor value
* @return value value (big decimal or integer)
public Object getValue()
if (m_text == null || m_text.getText() == null || m_text.getText().length() == 0)
return null;
String value = m_text.getText();
// return 0 if text deleted
if (value == null || value.length() == 0)
if (!m_modified)
return null;
if (m_displayType == DisplayType.Integer)
return new Integer(0);
return Env.ZERO;
if (value.equals(".") || value.equals(",") || value.equals("-"))
value = "0";
try
Number number = m_format.parse(value);
value = number.toString(); // converts it to US w/o thousands
BigDecimal bd = new BigDecimal(value);
if (m_displayType == DisplayType.Integer)
return new Integer(bd.intValue());
if (bd.signum() == 0)
return bd;
return bd.setScale(m_format.getMaximumFractionDigits(), BigDecimal.ROUND_HALF_UP);
catch (Exception e)
log.log(Level.SEVERE, "Value=" + value, e);
if (m_displayType == DisplayType.Integer)
return new Integer(0);
return Env.ZERO;
} // getValue
* Return Display Value
* @return value
public String getDisplay()
return m_text.getText();
} // getDisplay
* Get Title
* @return title
public String getTitle()
return m_title;
} // getTitle
* Plus - add one.
* Also sets Value
* @return new value
public Object plus()
Object value = getValue();
if (value == null)
if (m_displayType == DisplayType.Integer)
value = new Integer(0);
else
value = Env.ZERO;
// Add
if (value instanceof BigDecimal)
value = ((BigDecimal)value).add(Env.ONE);
else
value = new Integer(((Integer)value).intValue() + 1);
setValue(value);
return value;
} // plus
* Minus - subtract one, but not below minimum.
* Also sets Value
* @param minimum minimum
* @return new value
public Object minus (int minimum)
Object value = getValue();
if (value == null)
if (m_displayType == DisplayType.Integer)
value = new Integer(minimum);
else
value = new BigDecimal(minimum);
setValue(value);
return value;
// Subtract
if (value instanceof BigDecimal)
BigDecimal bd = ((BigDecimal)value).subtract(Env.ONE);
BigDecimal min = new BigDecimal(minimum);
if (bd.compareTo(min) < 0)
value = min;
else
value = bd;
else
int i = ((Integer)value).intValue();
i--;
if (i < minimum)
i = minimum;
value = new Integer(i);
setValue(value);
return value;
} // minus
* Action Listener
* @param e event
public void actionPerformed (ActionEvent e)
log.config(e.getActionCommand());
if (ValuePreference.NAME.equals(e.getActionCommand()))
if (MRole.getDefault().isShowPreference())
ValuePreference.start (m_mField, getValue());
return;
if (e.getSource() == m_button)
m_button.setEnabled(false);
String str = startCalculator(this, m_text.getText(), m_format, m_displayType, m_title);
m_text.setText(str);
m_button.setEnabled(true);
try
fireVetoableChange (m_columnName, m_oldText, getValue());
catch (PropertyVetoException pve) {}
m_text.requestFocus();
} // actionPerformed
* Key Listener Interface
* @param e event
public void keyTyped(KeyEvent e) {}
public void keyPressed(KeyEvent e) {}
* Key Listener.
* - Escape - Restore old Text
* - firstChange - signal change
* @param e event
public void keyReleased(KeyEvent e)
log.finest("Key=" + e.getKeyCode() + " - " + e.getKeyChar()
+ " -> " + m_text.getText());
// ESC
if (e.getKeyCode() == KeyEvent.VK_ESCAPE)
m_text.setText(m_initialText);
m_modified = true;
m_setting = true;
try
if (e.getKeyCode() == KeyEvent.VK_ENTER) // 10
fireVetoableChange (m_columnName, m_oldText, getValue());
fireActionPerformed();
else // indicate change
fireVetoableChange (m_columnName, m_oldText, null);
catch (PropertyVetoException pve) {}
m_setting = false;
} // keyReleased
* Focus Gained
* @param e event
public void focusGained (FocusEvent e)
if (m_text != null)
m_text.selectAll();
} // focusGained
* Data Binding to MTable (via GridController.vetoableChange).
* @param e event
public void focusLost (FocusEvent e)
// log.finest(e.toString());
// APanel - Escape
if (e.getOppositeComponent() instanceof AGlassPane)
m_text.setText(m_initialText);
return;
try
fireVetoableChange (m_columnName, m_initialText, getValue());
fireActionPerformed();
catch (PropertyVetoException pve) {}
} // focusLost
* Invalid Entry - Start Calculator
* @param jc parent
* @param value value
* @param format format
* @param displayType display type
* @param title title
* @return value
public static String startCalculator(Container jc, String value,
DecimalFormat format, int displayType, String title)
log.config("Value=" + value);
BigDecimal startValue = new BigDecimal(0.0);
try
if (value != null && value.length() > 0)
Number number = format.parse(value);
startValue = new BigDecimal (number.toString());
catch (ParseException pe)
log.info("InvalidEntry - " + pe.getMessage());
// Find frame
Frame frame = Env.getFrame(jc);
// Actual Call
Calculator calc = new Calculator(frame, title,
displayType, format, startValue);
AEnv.showCenterWindow(frame, calc);
BigDecimal result = calc.getNumber();
log.config( "Result=" + result);
calc = null;
if (result != null)
return format.format(result);
else
return value; // original value
} // startCalculator
* Set Field/WindowNo for ValuePreference
* @param mField field
public void setField (MField mField)
m_mField = mField;
if (m_mField != null
&& MRole.getDefault().isShowPreference())
ValuePreference.addMenu (this, popupMenu);
} // setField
* Remove Action Listner
* @param l Action Listener
public void removeActionListener(ActionListener l)
listenerList.remove(ActionListener.class, l);
} // removeActionListener
* Add Action Listner
* @param l Action Listener
public void addActionListener(ActionListener l)
listenerList.add(ActionListener.class, l);
} // addActionListener
* Fire Action Event to listeners
protected void fireActionPerformed()
int modifiers = 0;
AWTEvent currentEvent = EventQueue.getCurrentEvent();
if (currentEvent instanceof InputEvent)
modifiers = ((InputEvent)currentEvent).getModifiers();
else if (currentEvent instanceof ActionEvent)
modifiers = ((ActionEvent)currentEvent).getModifiers();
ActionEvent ae = new ActionEvent (this, ActionEvent.ACTION_PERFORMED,
"VNumber", EventQueue.getMostRecentEventTime(), modifiers);
// Guaranteed to return a non-null array
Object[] listeners = listenerList.getListenerList();
// Process the listeners last to first, notifying those that are interested in this event
for (int i = listeners.length-2; i>=0; i-=2)
if (listeners==ActionListener.class)
((ActionListener)listeners[i+1]).actionPerformed(ae);
} // fireActionPerformed
} // VNumberIf getValue() returns null, you need to trace the execution of the code and figure out which sequence of code is leading to the return of null. This method looks complex - a lot of if statements. If you do not have a debugger, put System.out.println statements inside the method to figure out what's going on.
-
How to get distinct values from a list and display in a ListView webpart.
Hi,
I have a requirement in which I need to pull unique/distinct values from a custom list and then display it via a listview webpart. Can any one suggest how this can be done.
If possible please share the CAMEL query to fetch distinct values from a custom list.
Thanks,
AnkitHi Ankit,
Is there any particular reason that the values need to be shown in a list view web part? Are you going to use that web part for filtering via web part connections?
I ask because the enterprise site collection features include the SharePoint List Filter web part, which may accomplish what you're looking for.
If you just need to display the values in a grid view, you might have more luck with the JavaScript Client Object Model. Try putting the following in a text file:
<style>
.CustomTableClass{display:table;table-layout:fixed}
.CustomRowClass{display:table-row;}
</style>
<div id="distinct_values_div" class="CustomTableClass">
<img src="/_layouts/loading.gif" />
</div>
<script language="JavaScript" type="text/JavaScript">
var siteUrl = '/sitecollection/web'; //use the actual subsite URL here
var listName = 'mylist'; // use the actual list name here
var field = "Title" // use the actual field you want to display here
var divToUpdate = document.getElementById("distinct_values_div");
var rowClass = "CustomRowClass";
ExecuteOrDelayUntilScriptLoaded(function(){
var clientContext = new SP.ClientContext(siteUrl);
var web = clientContext.get_web();
var lists = web.get_lists();
var list = lists.getByTitle(listName);
var camlQuery = new SP.CamlQuery();
camlQuery.set_viewXml('<View><Query></Query><RowLimit>500</RowLimit></View>');
this.collListItem = list.getItems(camlQuery);
clientContext.load(collListItem,"Include ("+field+")");
clientContext.executeQueryAsync(
Function.createDelegate(this, this.onQuerySucceeded),
Function.createDelegate(this, this.onQueryFailed));
},"sp.js");
function onQueryFailed(sender, args){
divToUpdate.innerHTML = 'Unable to retrieve values: '+args.get_message());
function onQuerySucceeded(sender, args){
var allValues = [];
var listItemEnumerator = collListItem.getEnumerator();
divToUpdate.innerHTML = "";
while(listItemEnumerator.moveNext()){
var listItem = listItemEnumerator.get_current();
if(!containsString(allValues,listItem.get_item(field)){
var value = listItem.get_item(field);
allValues.push(value);
var newDiv = document.createElement("div");
newDiv.className = rowClass;
newDiv.innerHTML = value;
divToUpdate.appendChild(newDiv);
function containsString(strArray, text){
var contains = false;
for (var i=0; i<strArray.length; i++){
if(strArray[i]==text){contains = true; break;}
return contains;
</script>
Upload the text file to a library on the site, then add a content editor web part to a page where you want the distinct values to appear. In the content editor web part's properties, edit the Content Link so that it links directly to the text file. This
will cause the JavaScript to run on the page. -
Getting values from a datagrid to an ArrayCollection
Hi, I have a drag and dropable datagrid. I fill it with rows of data from another datagrid. Finally, my application demands savings the data from the datagrid into an array collection along with the index of each row. How do i get values from a datagrid into an arrayCollection variable? Please help me..!
Whatever is dropped into the DataGrid automatically goes into its dataProvider property, typically an ArrayCollection. Just access the data grid's dataProvider property to see the values.
-
How to get values from dynamic component?
Hi:
I am displaying dynamic components based on user selection, where InputText and OutputText display properly. But now i want to read that component value on
button click. Can any body help me in that?
Source code is as follow,
text.xhtml
*<code>*
<ui:composition xmlns="http://www.w3.org/1999/xhtml"
xmlns:h="http://java.sun.com/jsf/html"
xmlns:f="http://java.sun.com/jsf/core"
xmlns:ui="http://java.sun.com/jsf/facelets"
xmlns:p="http://primefaces.prime.com.tr/ui"
xmlns:ice="http://www.icesoft.com/icefaces/component"
template="/WEB-INF/includes/templates/page-template.xhtml">
<ui:define name="page-content">
<div class="exampleBox splashContainer"
style="background: url('./xmlhttp/css/rime/css-images/contentContainer_bg.gif') top repeat-x">
<table>
<tr>
<td colspan="2">
<h2>Set Request Process Flow</h2>
</td>
</tr>
<tr>
<td colspan="2"><ice:messages style="color:red;" /></td>
</tr>
<tr>
<td><ice:outputText value="Request Type*"></ice:outputText></td>
<td><ice:selectOneMenu value="#{offlinereq.requestno}"
valueChangeListener="#{offlinereq.requestChange}"
partialSubmit="true">
<f:selectItem itemValue="" itemLabel="--Select--" />
<f:selectItems value="#{offlinereq.requests}" />
</ice:selectOneMenu></td>
</tr>
<tr>
<td>*<h:panelGroup binding="#{offlinereq.panelBind}">*
* </h:panelGroup>*</td>
</tr>
<tr>
<td colspan="4"><ice:commandButton value="Add"
actionListener="#{offlinereq.add}" /> <ice:commandButton
value="Update" actionListener="#{offlinereq.update}" /> <ice:commandButton
value="Delete" actionListener="#{offlinereq.delete}" /> <ice:commandButton
value="Reset" actionListener="#{offlinereq.reset}" /></td>
</tr>
</table>
</div>
</ui:define>
</ui:composition>
*</code>*
bean.java
*<code>*
//ValuechangeListener
public void requestChange(ValueChangeEvent e){
System.out.println("Select Value is::"+e.getNewValue()+"::"+userid);
Connection conn=null;
try {
if(!panelBind.getChildren().isEmpty())
panelBind.getChildren().clear();
Class.forName ("oracle.jdbc.OracleDriver");
conn = JdbcUtil.getConnection();
Statement stmt = conn.createStatement();
String sql="select * from IB_CUSTOMER_REQUEST_PARAMETERS where IB_REQMAST_SRNO='"+e.getNewValue()+"'";
ResultSet rs = stmt.executeQuery(sql);
String out="out";
int i=1;
String ii;
while(rs.next()) {
FacesContext facesContext = FacesContext.getCurrentInstance();
Application application = facesContext.getApplication();
HtmlPanelGrid grid = (HtmlPanelGrid)application.createComponent(HtmlPanelGrid.COMPONENT_TYPE);
grid.setColumns(2);
HtmlOutputText output = (HtmlOutputText)application.createComponent(HtmlOutputText.COMPONENT_TYPE);
output.setValue(rs.getString("IB_CUSTREQSTPARA_NAME"));
ii=Integer.toString(i);
output.setId("a"+ii.toString());
System.out.println("id"+ii);
HtmlInputText input = (HtmlInputText)application.createComponent(HtmlInputText.COMPONENT_TYPE);
//input.setValue(rs.getString(1));
grid.getChildren().add(output);
grid.getChildren().add(input);
panelBind.getChildren().add(grid);
i++;
catch(Exception e1)
System.out.println(e1);
//Action listeners
public void add(ActionEvent e)
System.out.println("ADD");
*</code>*
Thank You,
AnupWhere are you stuck? find the component (UIComponent.findComponent) in the JSF component tree by its ID and get the value from it. This article might help:
http://illegalargumentexception.blogspot.com/2009/02/jsf-working-with-component-ids.html
Note: the code tag is \ -
Passing values from one frame to another in a PSP
i have problem of passing combo values from an HTML frame to another HTML frame.
These combo values are selected via a sql query. Now when a onClick function tries to pass these selected values to a Java Script function it says invalid object for the java script objects.
<form name>.<combo box name>.options when called gives invalid object as JS error in the browser.
plz can, some one suggest me how to recognize these selected values.
Thanx,
JayI dont see a 'REFRESH' option in the context menu (when I right click on the query). Also, the REFRESH option available in the MENU options (ie PAUSE AUTOMATIC REFRESH) also does not work.
The way I built my workbook was, I built the 1st query in Analyzer and then I started inserting 'ANALYSIS GRIDS' in the remaining worksheets. To these GRIDS - I linked a data provider and linked a query or query view to that data provider.
Any more suggestions??
Regards. -
How to populate values from database into a Combo Box?
Hi,
How to display all the values of a field of a database table in a combo box inside a grid in B1 user defined form?
Regards,
Sudeshna.Hi,
If you are trying to do this on a system form (I gues this is your case, reading the other question), for example Sales Orders, and you want to show the values from a User Defined Table (UDT), you just need to add a User Defined Field on Marketing Documents Line level, and say it is linked to the UDT.
SBO will automatically show the combo with the values on the Code field of the UDT.
Regards,
Ibai Peña
Sorry, I didn´t read the post well.
What you could do is each time the form is loaded, read the values from the table, and asign them as Valid Values for the combobox column. You can do this programatically, or using XML (which is recommended becouse of better performance).
Message was edited by: Ibai Peña -
Is there a way of changing values in grid using radio buttons
or dropdown list?Yes, exactly that however I would like to be able to change
values from either radio button selection or dropdown list.
From my research on the web I found that flash forms won't
list values in a drop down box only the applet version will handle
the dropdown selection.
Since your are from the adobe. Could you let me know of a
best way or practice to debug flash forms. It is time consuming to
trouble shoot since all you got is a blank page.
Does Flex 2 takes care of all the limits of CFFORMS?
could you elaborate on this.
Thanks -
Hi all,
I have created 2 tabstrip screns which contain ALV GRID DISPLAY in a container with dynamic internal table and editable columns .I want to capture the edited value from this ALV GRID display.I have used SET_TABLE_FOR_DISPLAY and for this dynamc internal table is passed which is Field symbol and editable columns have to be captured for further updation into another ztable.
When i used check_changed_data i am getting dump as field symbol not assigned.
Below is the code : How can i get edited column value from below code
call method alv_list->set_table_for_first_display
exporting
is_layout = gs_layout
changing
it_outtab = <fs_dynamic_table>
it_fieldcatalog = it_fieldcat[]
exceptions
invalid_parameter_combination = 1
program_error = 2
too_many_lines = 3
others = 4.
if sy-subrc <> 0.
* Implement suitable error handling here
endif.
Kindly help me to solve this.
With Thanks,
Dina.please provide more info about the dump to try to help you
as max said, it could be because the field symbol is not global and if its global maybe you are not refering well to the column
i assume that you are using "ASSIGN COMPONENT comp OF STRUCTURE struc TO <fs>" to capture the value changed
validate always the sy-subrc after the assignment.
but the check changed data have parameters that have the old and new values
please provide more info...
Regards -
Get value in Grid with CollapseLevel
Hi all,
I have a grid with CollapseLevel=2
In my datatable, i have 2 lines.
When i load my grid i have 5 lines (Grid.Rows.Count)
i want to get the value of the selected lines. How can i do ??
Example :
2 lines in datatable
5 lines in my grid in mode view
if i select the line 5, pVal.Row has the value 5 but this number of lines does not exists in my datatable.
Thanks for your response.
Best regards
Michael.Hi,
you may check if the row is selected in cycle as
if oGrid.Rows(x).IsSelected() = true then
and when is selected, receive the value directly from grid and not from datatable or from datatble as
oGrid.GetDataTableRowIndex(x) where x is selected row in matrix and result is row in datatable and the value you will receive from datatable.
hope it helps
Petr -
Copying the value from a cell in the SQL results?
I run an sql query. The results are returned in a results window. I would like to copy the value from this cell
and paste it into an sql query. How can I do this? I can copy and paste a value from a cell in the view of the data in
a table, but not from the test results. How do I do this? Is there a setting I need to change?I usually do this kind of operations and I've never had any issues, the procedure is as simple as CTRL-C in the results grid, with the required column/columns selected and CTRL-V in the worksheet or anywhere else.
If you still have issues please post your
- SQLDeveloper version
- Java Version
- OS
- Database Version
and if you can a small test case.
Maybe you are looking for
-
HT1363 iPod nano 5th generation is not recognized by computer
I've uninstalled and installed iTunes, gone through the 5Rs, attempted all the USB ports, restarted the computer, attempted putting the iPod in Disk Mode, and I'm now going to put my iPod on YouTube with a shameful sign on it to punish it until it co
-
Process Order Details like batch number, mfg date flow to a new process ord
Hi Experts, I have a doubt in Process Order. I have two stage production. 1. Blending 2. Packing I create a process order for blending and assign a batch number and manufacturing date for Blending operation. Release the process order. Final Confirmat
-
Help: Adobe air malfunctioned when run on vista
Hi All: Here I meet one problem. I build an Air with Flash CS3 professional. After it installed on Windows xp system, everything work fine. But when installed on Windows vista system, if changing the time to Nov 2. 2008, the air won't work(URLLoader
-
I have had to go to a new computer, Have I lost all that I had bought?
So I had a itunes set up and now have a new computer. Have I lost all the songs I bought on my old computer?
-
Why do I get "Error 2134" when I try to view an online catalog I've successfully viewed in the past?