Table Sorter for String displaying Numbers
Hi All.
I have a table whose one of the columns display numbers with data type string. This is becuase :
1. RFC gives me as String.
2. I have to display blank in case no value or zero is present (since int, long etc default to Zero, hence
not used).
I have to sort this column as a number.Since the datatype is string, it sorts the numbers as string
for example : if we have values like : 2, 4, 3, 10, 19, 15, 20, 22
currently as String it sorts as follows : 10, 15, 19, 2, 20, 22, 3, 4.
but i want as follows : 2, 3, 4, 10, 15, 19, 20, 22.
Useful answers will appreciated.
Thanks and regards,
Aditya Deshpande.
In order to sort the node with attribute of type string; please use the following code..
Here use the node where you store the string value..
wdContext.nodeTest().sortElements(
new Comparator() {
public int compare(Object o1, Object o2) {
// TODO Auto-generated method stub
IPrivateExperimentView.ITestElement ele1 = (IPrivateExperimentView.ITestElement)o1;
IPrivateExperimentView.ITestElement ele2 = (IPrivateExperimentView.ITestElement)o2;
return Integer.parseInt( ele1.getNumStr()) > Integer.parseInt( ele2.getNumStr()) ? 1 : -1;
input : "2", "4", "3", "10", "19", "15", "20", "22"
result : "2", "3", "4", "10", "15", "19", "20", "22"
vinod
Similar Messages
-
Hi all,
I'm using the "old" table sorter for Web Dynpro on a Netweaver 04 system. Everything is working correctly, but I don't know how to call the sort function without clicking on the Table Header.
How can I automatically sort my table at runtime, the first time the table is shown?
Is this possible?Hi Palen
I do think this facility is introduced with 04s.
/people/bertram.ganz/blog/2006/03/07/enhanced-web-dynpro-java-tablesorter-for-sap-netweaver-04s
This weblog says something about it.(Hope you have not read it ye
Regards
Pratyush -
Having probs with radix Sort for strings
I am creating a method that does radix sort for string values. I think I need to know the maximum value for strings to do this, and I have no Idea what that would be
As in the maximum size of a string?
Do you mean characters or actual byte size? -
Hi,
I just need a simple way of doing this as at the moment, i read one line at the time containing strings and numbers, whenever i convert this line to an array i loose the strings, if i want to display it, it displays as a group of lines while i would like to display it as a table with column headers. The file is an .xls worksheet.
Any suggestions?
Thanks
MeHi,
Look at attach vi.
If this is not what you need please clarify.
With ActiveX you can Open Excel, interact with it (read and write values to cells...
But if you can read it this way, I think it's easier.
Hope this helps,
Paulo
Attachments:
XL.zip 24 KB -
TreeSet vs Collection.Sort / Array.sort for Strings
Gurus
I am pondering weather to use TreeSet vs the Collections.sort / Array.sort for sorting Strings.
Basically I have a list of Strings, i need to perform the following operations on these Strings
1) Able to list Strings starting with a Prefix
2) Able to list Strings Lexically greater than a String
Any help would be greatly appreciated!
Thanks a bunchSpaceShuttle wrote:
Gurus
I am pondering weather to use TreeSet vs the Collections.sort / Array.sort for sorting Strings.
Basically I have a list of Strings, i need to perform the following operations on these Strings
1) Able to list Strings starting with a Prefix
2) Able to list Strings Lexically greater than a String
Any help would be greatly appreciated!
Thanks a bunchBig-O wise, there's no difference between sorting a list of N elements or inserting them one by one in a tree-set. Both take O(n*log(n)). But both collections are not well suited for looking up string that start with a certain substring. In that case you had better use a Patricia tree (or Radix tree).
Good luck. -
Incorrect sort for column of numbers
I have three columns of XYZ geometry data that I need to sort. Numbers 3.2 is obviously interpreting them as text because that's how it's sorting them. (-12 is sorted between -101 and -138!)
My data is formated this way and must retain this format when exporting as CSV text.
Point
X
Y
Z
0
15.622 cm
-20.273 cm
0 cm
1
14.564 cm
-23.273 cm
0 cm
2
33.564 cm
-23.273 cm
0 cm
3
52.564 cm
-23.273 cm
0 cm
How can I get Numbers to sort column X as numbers? The data format of cells always goes to "automatic" even though I select "numbers." It must be the "cm" in the value. How do I get Numbers to ignore the " cm" and treat it just as a number?I dop not see why it would not sort correctly. I pasted the table you have in the original post into a table, then formatted the first row as a header and sorted a variety of ways. It sorted correctly:
I would still remove the the " cm" from all numeric entries as the units:
1) are redundant and can be put in the header
2) will prevent most math operations
To remove the " cm" type the key combination <command> + f
enter " cm" (theres a space before the "cm"
leave the replace field empty (so it will have the greyed out word "Replace")
then click the "Replace All" button -
Input table sort for uncommited data
Hi OTN,
I have an input table on my ADF page. The table is based on a view object which has ORDER BY VALUE clause.
There is an opportunity to insert new rows and edit Value attribute of any row.
I would like the table always to be sorted by Value attribute before commiting the changes.
Input fields have autosubmit=true and I also have button which performs ADFUtils.findIterator(..).executeQuery() and refreshing the table (with addPartialTarget or table's partial trigger).
Besides I tried declarative column sorting.
By no means I succeeded to sort the table with new values without commiting data.
Is there any possibility to do this?
Thanks.
JDev 11.1.1.4Hi,
After applying this code in a managed bean System.out.println("ViewObject.QUERY_MODE_SCAN_DATABASE_TABLES | ViewObject.QUERY_MODE_SCAN_VIEW_ROWS");
trIter.getViewObject().setQueryMode(ViewObject.QUERY_MODE_SCAN_DATABASE_TABLES | ViewObject.QUERY_MODE_SCAN_VIEW_ROWS);
trIter.getViewObject().setSortBy("NEnd");
trIter.executeQuery();in-memory sorting really works.
But now I have a row with null NEnd first in my table. Without modifying query mode it was last just as I need.
It is now:null
10
20
30Can I bring null row back to last position?
Tried trIter.getViewObject().setSortBy("NEnd nulls last"); and trIter.getViewObject().setSortBy("deocde(NEnd, null, 9999, NEnd)"); with no success.
Edited by: ILya Cyclone on Jul 8, 2011 3:28 PM -
ADF table sorting for non-english language
Hi,
I have an issue with sorting in af:table. When I click on column header data are sorted, but not quite correctly. If word begins with polish character e.g. Ł,Ś,Ć, etc.., this row is located at the end, after 'Z'.
How can I implement correct sorting?
Edited by: Kamil Jackiewicz on 2012-03-24 12:37--todelete
-
Finding Tables needed for linking Batch Numbers/Items to Invoice Items
I'm trying to create a report that will show basically a Sales Invoice and under each line Item show the Items with thier batch numbers that went into that sales Item. My difficulty is in finding the table or tables that have key fields to relate Invoice to Batches and inventory. Looking at forms/reports in B1 I have found RBTN OBTN and RITL tables but only the OBTN shows in the crystal as a datatable.
Jon,
You should have better luck posting in one of the [Business One forums|http://forums.sdn.sap.com/index.jspa?categoryID=1#44].
Jason -
Hi,
i have to implement a table sorter in one of my webdypro application. I have done all the steps mentioned in one of the blog and have also imported TableSorter.java class. i am getting sorting icons in column headers. but on clicking icon nothing happens...i think there is some problem with the java class which i have imported. So can anybody provide the code of tablesorter.java class.
Thanks in advance,
ReenaHi Reena,
Here is the code.Just change the package name.
* Created on Sep 6, 2007
* To change the template for this generated file go to
* Window>Preferences>Java>Code Generation>Code and Comments
package ibm.com.tradefund.utils;
* @author Administrator
* To change the template for this generated type comment go to
* Window>Preferences>Java>Code Generation>Code and Comments
import java.text.Collator;
import java.util.ArrayList;
import java.util.Collection;
import java.util.Comparator;
import java.util.HashMap;
import java.util.Iterator;
import java.util.Map;
import java.util.StringTokenizer;
import com.sap.tc.webdynpro.clientserver.uielib.standard.api.IWDAbstractDropDownByIndex;
import com.sap.tc.webdynpro.clientserver.uielib.standard.api.IWDAbstractDropDownByKey;
import com.sap.tc.webdynpro.clientserver.uielib.standard.api.IWDAbstractInputField;
import com.sap.tc.webdynpro.clientserver.uielib.standard.api.IWDAbstractTableColumn;
import com.sap.tc.webdynpro.clientserver.uielib.standard.api.IWDCaption;
import com.sap.tc.webdynpro.clientserver.uielib.standard.api.IWDCheckBox;
import com.sap.tc.webdynpro.clientserver.uielib.standard.api.IWDLink;
import com.sap.tc.webdynpro.clientserver.uielib.standard.api.IWDProgressIndicator;
import com.sap.tc.webdynpro.clientserver.uielib.standard.api.IWDRadioButton;
import com.sap.tc.webdynpro.clientserver.uielib.standard.api.IWDTable;
import com.sap.tc.webdynpro.clientserver.uielib.standard.api.IWDTableCellEditor;
import com.sap.tc.webdynpro.clientserver.uielib.standard.api.IWDTableColumn;
import com.sap.tc.webdynpro.clientserver.uielib.standard.api.IWDTableColumnGroup;
import com.sap.tc.webdynpro.clientserver.uielib.standard.api.IWDTextEdit;
import com.sap.tc.webdynpro.clientserver.uielib.standard.api.IWDTextView;
import com.sap.tc.webdynpro.clientserver.uielib.standard.api.WDTableColumnSortDirection;
import com.sap.tc.webdynpro.progmodel.api.IWDAction;
import com.sap.tc.webdynpro.progmodel.api.IWDCustomEvent;
import com.sap.tc.webdynpro.progmodel.api.IWDNode;
import com.sap.tc.webdynpro.progmodel.api.IWDNodeElement;
import com.sap.tc.webdynpro.progmodel.api.IWDViewElement;
import com.sap.tc.webdynpro.services.sal.localization.api.WDResourceHandler;
* Helper class that makes a Web Dynpro table UI element sortable (column-wise).
public final class TableSorter {
* @param table
* @param sortAction
* @param comparators
* Creates a table sorter for the given table using the given sort action.
* This constructor must be called from <code>wdDoModifyView()</code>, but
* usually only when that hook is called for the first time. Store the newly
* created instance in a context attribute with Java native type
* <code>com.sap.tc.webdynpro.tests.utils.TableSorter</code>.
* The given sort action's event handler will be bound to the <code>onSort</code>
* event of the table and must at least call this table sorter's
* <code>sort(wdEvent)</code> method.
* Every column of the table is made sortable if possible according to the
* following rules.
* If a comparator is given for a column's ID and it is a
* <code>NodeElementByAttributeComparator</code>, then that comparator defines
* both the attribute and the ordering used to sort that column.
* If any other comparator is given and an attribute can be determined from
* that column's table cell editor, then that attribute is used to sort that
* column according to the ordering imposed by the given comparator.
* If no comparator is given but an attribute can be determined from
* that column's table cell editor, then that attribute is used to sort that
* column according to the natural ordering of that attribute's type.
* Else that column is left untouched.
* Additionally it is possible to define the sortable columns by their
* TableColumn UI element ids.
* @see sort()
* @see NodeElementByAttributeComparator
* @see com.sap.tc.webdynpro.clientserver.uielib.standard.api.IWDTable
public TableSorter(IWDTable table, IWDAction sortAction, Map comparators) {
init(table, sortAction, comparators, null);
public TableSorter(IWDTable table, IWDAction sortAction, Map comparators, String[] sortableColumns) {
init(table, sortAction, comparators, sortableColumns);
* Initialisation stuff
private void init(IWDTable table, IWDAction sortAction, Map comparators, String[] sortableColumns){
this.table = table;
if(sortableColumns == null){
sortableCols = null;
}else{
sortableCols = new HashMap();
for (int i = 0; i < sortableColumns.length; i++) {
sortableCols.put(sortableColumns<i>, sortableColumns<i>);
// sanity checks
if (sortAction == null)
throw new IllegalArgumentException("Sort action must be given");
if (table == null)
throw new IllegalArgumentException("Table must be given");
if (table.bindingOfDataSource() == null)
throw new IllegalArgumentException(
"Data source of table with id '" + table.getId() + "' must be bound");
// make the columns sortable
String dataSourcePrefix = table.bindingOfDataSource() + ".";
//TODO: remove the following line since this method is not longer available in later releases
setComparatorsForColumns(dataSourcePrefix, table.iterateColumns(), comparators);
setComparatorsForColumns(dataSourcePrefix, table.iterateGroupedColumns(), comparators);
//set up the table properties
table.setOnSort(sortAction);
table.mappingOfOnSort().addSourceMapping(IWDTable.IWDOnSort.COL, "selectedColumn");
table.mappingOfOnSort().addSourceMapping(IWDTable.IWDOnSort.DIRECTION, "sortDirection");
* Try to make the given columns sortable (recusivly, if necessary)
private void setComparatorsForColumns(String dataSourcePrefix, Iterator columnIterator, Map comparators){
int index = 0;
for (Iterator it = columnIterator; it.hasNext(); ++index) { // for every column: try to make it bindable
IWDAbstractTableColumn abstractColumn = (IWDAbstractTableColumn) it.next();
if(abstractColumn instanceof IWDTableColumn){
IWDTableColumn column = (IWDTableColumn)abstractColumn;
if(sortableCols == null || sortableCols.containsKey(column.getId())){
//try to make this column sortable
Comparator comparator = null;
if (comparators != null){
comparator = (Comparator)comparators.get(column.getId());
NodeElementByAttributeComparator elementComparator = null;
if (comparator instanceof NodeElementByAttributeComparator) {
// the easy one, attribute and ordering are given
elementComparator = (NodeElementByAttributeComparator)comparator;
} else { // attribute must be determined
String bindingOfPrimaryProperty = bindingOfPrimaryProperty(column.getTableCellEditor());
if (bindingOfPrimaryProperty == null || !bindingOfPrimaryProperty.startsWith(dataSourcePrefix)){
//no attribute found or outside of data source
column.setSortState(WDTableColumnSortDirection.NOT_SORTABLE);
continue;
String attributeName = bindingOfPrimaryProperty.substring(dataSourcePrefix.length());
Collection subnodes = new ArrayList();
if (attributeName.indexOf('.') >= 0){
//attribute not immediately below data source
String[] tokens = tokenize (attributeName, ".");
for(int i=0; i<tokens.length-1; i++){
subnodes.add(tokens<i>);
attributeName = tokens[tokens.length-1];
if(subnodes.size() == 0){
elementComparator = new NodeElementByAttributeComparator(attributeName, comparator);
}else{
elementComparator = new NodeElementByAttributeComparator(attributeName, comparator, subnodes);
// set up internal data structures
comparatorForColumn.put(column, elementComparator);
//set sort state
column.setSortState(WDTableColumnSortDirection.NONE);
}else{
//column should not be sortable
column.setSortState(WDTableColumnSortDirection.NOT_SORTABLE);
}else if (abstractColumn instanceof IWDTableColumnGroup){
//it's just a column group -> try to bind the columns of the column group
IWDTableColumnGroup columnGroup = (IWDTableColumnGroup)abstractColumn;
setComparatorsForColumns(dataSourcePrefix, columnGroup.iterateColumns(), comparators);
* Tokenizes the input string according to the given delimiters. The delimiters will be left out.
* Example: tokenize("Hello_World", "_") results ["Hello", "World"]
private String[] tokenize (String input, String delim){
StringTokenizer tokenizer = new StringTokenizer(input, delim);
String[] tokens = new String[tokenizer.countTokens()];
int index = 0;
while(tokenizer.hasMoreTokens()){
tokens[index] = tokenizer.nextToken();
index++;
return tokens;
* This method must be called from the event handler of this table sorter's
* sort action. It performs the actual sort operation.
public void sort(IWDCustomEvent wdEvent, IWDNode dataSource) {
// find the things we need
String columnId = wdEvent.getString("selectedColumn");
String direction = wdEvent.getString("sortDirection");
IWDTableColumn column = (IWDTableColumn) table.getView().getElement(columnId);
NodeElementByAttributeComparator elementComparator = (NodeElementByAttributeComparator) comparatorForColumn.get(column);
if (elementComparator == null){
//not a sortable column
column.setSortState(WDTableColumnSortDirection.NOT_SORTABLE);
return;
// sorting
elementComparator.setSortDirection(WDTableColumnSortDirection.valueOf(direction));
dataSource.sortElements(elementComparator);
* Returns the binding of the given table cell editor's property that is
* considered "primary" or <code>null</code> if no such binding exists or no
* such property can be determined.
private static final String bindingOfPrimaryProperty(IWDTableCellEditor editor) {
return editor instanceof IWDViewElement ? bindingOfPrimaryProperty((IWDViewElement) editor) : null;
* Returns the binding of the given view element's property that is
* considered "primary" or <code>null</code> if no such binding exists or no
* such property can be determined.
private static final String bindingOfPrimaryProperty(IWDViewElement element) {
if (element instanceof IWDAbstractDropDownByIndex)
return ((IWDAbstractDropDownByIndex) element).bindingOfTexts();
if (element instanceof IWDAbstractDropDownByKey)
return ((IWDAbstractDropDownByKey) element).bindingOfSelectedKey();
if (element instanceof IWDAbstractInputField)
return ((IWDAbstractInputField) element).bindingOfValue();
if (element instanceof IWDCaption)
return ((IWDCaption) element).bindingOfText();
if (element instanceof IWDCheckBox)
return ((IWDCheckBox) element).bindingOfChecked();
if (element instanceof IWDLink)
return ((IWDLink) element).bindingOfText();
if (element instanceof IWDProgressIndicator)
return ((IWDProgressIndicator) element).bindingOfPercentValue();
if (element instanceof IWDRadioButton)
return ((IWDRadioButton) element).bindingOfSelectedKey();
if (element instanceof IWDTextEdit)
return ((IWDTextEdit) element).bindingOfValue();
if (element instanceof IWDTextView)
return ((IWDTextView) element).bindingOfText();
return null;
* Instance of a comparator according to the ordering imposed by the
* implementation of <code>Comparable</code>.
private static final Comparator DEFAULT = new Comparator() {
* Compares the given objects according to the ordering imposed by the first
* ones <code>compareTo(Object)</code> function. Furthermore, <code>null</code>
* is treated to be less than any object.
* @see java.lang.Comparable#compareTo(java.lang.Object)
* @see java.util.Comparator#compare(java.lang.Object, java.lang.Object)
public int compare(Object o1, Object o2) {
if (o1 == null && o2 == null)
return 0;
if (o1 == null)
return -1;
if (o2 == null)
return +1;
if (o1 instanceof Boolean && o2 instanceof Boolean)
return o1.toString().compareTo(o2.toString()); // false < true
if (o1 instanceof String && o2 instanceof String){
//Use a Collator for sorting according to the given Locale
Collator collate = Collator.getInstance(WDResourceHandler.getCurrentSessionLocale());
return collate.compare(o1, o2);
return ((Comparable) o1).compareTo((Comparable) o2);
* Map of table column to comparator (<code>ReversableComparator</code>)
* used for sorting that column (sortable columns only).
private Map comparatorForColumn = new HashMap();
* The table to be sorted.
private IWDTable table = null;
* Column-IDs of the columns, which should be sortable
private Map sortableCols = null;
* Generic comparator that compares node elements by a given attribute with
* the help of a given comparator.
public final class NodeElementByAttributeComparator implements Comparator {
* Creates a new comparator for the given attribute name that compares values
* of that attribute according to the natural ordering of that attribute's
* type (which must implement <code>java.lang.Comparable</code>).
public NodeElementByAttributeComparator(String attributeName) {
this(attributeName, null, false, new ArrayList());
* Creates a new comparator for the given attribute name that compares values
* of that attribute with the help of the given comparator. If no comparator
* is given, the natural ordering of that attribute's type is used.
public NodeElementByAttributeComparator(String attributeName, Comparator comparator) {
this(attributeName, comparator, false, new ArrayList());
* Creates a new comparator for the given attribute name that compares values
* of that attribute either as objects (i.e. "in internal format") or as text
* (i.e. "in external format") as indicated. The ordering is the natural
* ordering of that attribute's type (which must implement
* <code>java.lang.Comparable</code>) in case objects are compared or the
* natural ordering of <code>java.lang.String</code> in case texts are compared.
public NodeElementByAttributeComparator(String attributeName, boolean compareAsText) {
this(attributeName, null, compareAsText, new ArrayList());
* Creates a new comparator for the given attribute name that compares values
* of that attribute according to the natural ordering of that attribute's
* type (which must implement <code>java.lang.Comparable</code>). In addition it is possible
* to define the path to a child node with the <code>java.util.Collection</code> subnodes.
* (List of child node names in the correct order)
public NodeElementByAttributeComparator(String attributeName, Collection subnodes) {
this(attributeName, null, false, subnodes);
* Creates a new comparator for the given attribute name that compares values
* of that attribute with the help of the given comparator. If no comparator
* is given, the natural ordering of that attribute's type is used. In addition it is possible
* to define the path to a child node with the <code>java.util.Collection</code> subnodes.
* (List of child node names in the correct order)
public NodeElementByAttributeComparator(String attributeName, Comparator comparator, Collection subnodes) {
this(attributeName, comparator, false, subnodes);
* Creates a new comparator for the given attribute name that compares values
* of that attribute either as objects (i.e. "in internal format") or as text
* (i.e. "in external format") as indicated. The ordering is the natural
* ordering of that attribute's type (which must implement
* <code>java.lang.Comparable</code>) in case objects are compared or the
* natural ordering of <code>java.lang.String</code> in case texts are compared. In addition it is possible
* to define the path to a child node with the <code>java.util.Collection</code> subnodes.
* (List of child node names in the correct order)
public NodeElementByAttributeComparator(String attributeName, boolean compareAsText, Collection subnodes) {
this(attributeName, null, compareAsText, subnodes);
* Internal constructor.
private NodeElementByAttributeComparator(
String attributeName,
Comparator comparator,
boolean compareAsText,
Collection subNodes) {
if (attributeName == null)
throw new IllegalArgumentException("Attribute name must not be null");
if (comparator == null)
comparator = DEFAULT;
this.attributeName = attributeName;
this.comparator = comparator;
this.compareAsText = compareAsText;
this.sortDirection = true;
this.subNodes = subNodes;
* Sets the sort direction of this comparator to the given direction. The comparator sort in ascending order by default.
* @see com.sap.tc.webdynpro.clientserver.uielib.standard.api.WDTableColumnSortDirection
public void setSortDirection(WDTableColumnSortDirection direction){
if(direction.equals(WDTableColumnSortDirection.UP)){
sortDirection = true;
}else if(direction.equals(WDTableColumnSortDirection.DOWN)){
sortDirection = false;
* Compares the given objects which must be instances of <code>IWDNodeElement</code>
* according to the values of the attribute given at construction time
* with the help of the comparator given at construction time.
* @see java.util.Comparator#compare(java.lang.Object, java.lang.Object)
* @see com.sap.tc.webdynpro.progmodel.api.IWDNodeElement
public int compare(Object o1, Object o2) {
IWDNodeElement element1 = (IWDNodeElement) o1;
IWDNodeElement element2 = (IWDNodeElement) o2;
if(subNodes.size() > 0){
element1 = getSubNodeElement(element1, 0);
element2 = getSubNodeElement(element2, 0);
Object attributeValue1 = null;
Object attributeValue2 = null;
if(element1 != null){
attributeValue1 =
compareAsText
? element1.getAttributeAsText(attributeName)
: element1.getAttributeValue(attributeName);
if(element2 != null){
attributeValue2 =
compareAsText
? element2.getAttributeAsText(attributeName)
: element2.getAttributeValue(attributeName);
if(sortDirection){
return comparator.compare(attributeValue1, attributeValue2);
}else{
return comparator.compare(attributeValue2, attributeValue1);
* Determines recursivly the child node, which have an attribute with the given name.
* The path to this child node must be specified in the subnodes property of this comparator.
* Start this method with index = 0.
private IWDNodeElement getSubNodeElement(IWDNodeElement currentElement, int index){
if(currentElement == null || index >= subNodes.size()){
//end of recursion
return currentElement;
}else{
return getSubNodeElement(currentElement.node().getChildNode((String)subNodes.toArray()[index], currentElement.index()).getCurrentElement(), index+1);
//return getSubNodeElement(currentElement.node().getChildNode((String)subNodes.toArray()[index], currentElement.index()).getElementAt(0), index+1);
* Name of the attribute used for comparisons.
private final String attributeName;
* Comparator used for comparing the attribute's values.
private final Comparator comparator;
* Indicates whether attribute values are compared as text (as opposed to
* "as objects").
private final boolean compareAsText;
* Sort direction (true = ascending order, false = descending order)
private boolean sortDirection;
* List of child node names
* (Description of the path from the given context node to the specified attribute)
private Collection subNodes;
Re: Webdynpro Table: Column Header sort icon not visible
Regards,
Mithu -
Help Sorting array of strings with numbers in them
Hello I need to sort an array of Strings of numbers. The order is not what I want it to be. instead of 1, 5, 20 it will go 1, 20, 5.
I did a google search for this and found some code that could fix this. The only problem is I tried using it as a method in my program and am getting a compile-time error that I'm not sure how to fix.
C:\Documents and Settings\Owner\Desktop\stringcompare.java:18: '(' or '[' expected
new Comparator<String>()
^I'm not sure what to do here. Any help would appreciated.import java.io.*;
class MyProgram{
//This is my old bubble sort method which screws up with numbers
public static String[] sort( String[] points)
boolean keepGoing = true;
while(keepGoing == true){
keepGoing = false;
for(int i = 0; i < points.length - 1; i ++)
if(points.compareToIgnoreCase(points[i + 1]) < 0)
String temp = points[i];
points[i] = points[i + 1];
points[i + 1] = temp;
keepGoing = true;
return points;
//This method reads a pre-existing text file
public static String[] readPoints() throws IOException
FileReader file = new FileReader("points.txt");
BufferedReader in = new BufferedReader(file);
String temp;
String[] list = new String[100];
int i = 0;
while (i < list.length)
temp = in.readLine();
if (temp != null)
list[i] = temp;
else
list[i] = " ";
i++;
in.close();
return list;
//rewrites file after being sorted
public static void savePoints(String[] points) throws IOException
FileWriter file = new FileWriter("points.txt");
BufferedWriter out = new BufferedWriter(file);
int i = 0;
while (i < points.length) // while the end of file is not reached
out.write(points[i]) ;
out.newLine();
i++;
out.flush();
out.close();
public static void main(String[]args) throws Exception{
String[]points = new String [100];
points = readPoints();
points = sort(points);
savePoints(points);
for(int i = 0; i < points.length - 1; i++)
System.out.println(points[i]);
The problem is that it doesn't sort as I would like it and I'm not sure how to get the comparator to work properly.
Edited by: myol on May 31, 2008 4:21 PM
Edited by: myol on May 31, 2008 4:23 PM -
Using .sort() to sort an array of numbers NOT as strings
Hi,
is there a function or simple way to sort an array of numbers in order of their values and not as strings? E.g, have 100 come AFTER 9; (9, 100) not (100, 9).
Thanks.use the ARRAY.numeric parameter.
(and you can always use a custom sort function parameter for more customized sorts.) -
My phone displays numbers instead of contact names for incoming calls and text - how do I fix?
My phone displays numbers instead of contact names for incoming calls and text - how do I fix? It used to display the names if there was a contact listed, now it just shows numbers regardless of whether or not the number corresponds to a contact name in the contact list. Can anyone help? I googled this problem and lots of folks have experienced it, however there is not a consensus for a resolution.
Alexandribill, I have been having the exact same issue. I got a new phone and restored my contacts. If the # doesn't have the area code first then the name isn't shown. I just added my husbands area code to my phone and called my phone from his and now his name shows up...Ugh, I have to go through and manually add the area code to all my contacts....
I'd say Verizon needs to rewrite their program to include the area code in the restoring from backup process! -
For output display report is final_internal table or structure in wd ABAP?
Hi all,
for output display report is final_internal table or structure in wd ABAP?
in wd java output display report -.> CALLING rfc and that RFC OUTPUT table
finally in internal table is assigned to STRUCTURE .Same procdure?
Thanks,
RAMADear Madhu,
thanks for guidence!
its showing popup tht this BADI ( ME_CHANGE_OUTTAB_CUS ) is only use for "SAP Internal use".
Regards,
Praphull -
ORA-13223: duplicate entry for string in SDO_GEOM_METADATA table and
I got the above error while trying to insert a record into the table SDO_GEOM_METADATA. However, when querying this table I did find any duplicate table_name, column_name pair that match with the error.
Here are the steps that I worked on:
1. Add a geometry column into an existing table.
ALTER TABLE GEO_MAP ADD (ORG_GEOM mdsys.sdo_geometry);
2. Register the new column into mdsys
insert into USER_SDO_GEOM_METADATA
values ('GEO_MAP','ORG_GEOM',
mdsys.sdo_dim_array(
mdsys.sdo_dim_element('LONG',-180,180,0.00005),
mdsys.sdo_dim_element('LAT',-90,90,0.00005)
8307)
I got the error ORA-13223: duplicate entry for string in SDO_GEOM_METADATA table even there was no such record in there.
3. I inserted values in the column ORG_GEOM fine.
4. However, when I tried to create the index for this column I got the error:
ORA-29855: error occurred in the execution of ODCIINDEXCREATE routine
ORA-13203: failed to read USER_SDO_GEOM_METADATA view
ORA-13203: failed to read
Please help.
Thanks.SQL> select * from mdsys.sdo_geom_metadata_table;
SDO_OWNER SDO_TABLE_NAME
SDO_COLUMN_NAME
SDO_DIMINFO(SDO_DIMNAME, SDO_LB, SDO_UB, SDO_TOLERANCE)
SDO_SRID
QW_USER1 GEO_REF
LOC_GEOM
SDO_DIM_ARRAY(SDO_DIM_ELEMENT('LONG', -180, 180, .00005), SDO_DIM_ELEMENT('LAT',
-90, 90, .00005))
SDO_OWNER SDO_TABLE_NAME
SDO_COLUMN_NAME
SDO_DIMINFO(SDO_DIMNAME, SDO_LB, SDO_UB, SDO_TOLERANCE)
SDO_SRID
8307
MDSYS SDO_CMT_CBK_RTREE_TAB
GEOM
SDO_DIM_ARRAY(SDO_DIM_ELEMENT('X', -180, 180, .000000005), SDO_DIM_ELEMENT('Y',
SDO_OWNER SDO_TABLE_NAME
SDO_COLUMN_NAME
SDO_DIMINFO(SDO_DIMNAME, SDO_LB, SDO_UB, SDO_TOLERANCE)
SDO_SRID
-90, 90, .000000005))
The situation is we have 2 tables (GEO_MAP, and GEO_REF) that have spatial columns. Everything worked fine until when one of the queries that searched through the table GEO_MAP ran so slow, we decided to rebuild the related spatial index by dropping and recreating it. However, after I dropped it I could not recreated. Keep getting the error:
ORA-29855: error occurred in the execution of ODCIINDEXCREATE routine
ORA-13203: failed to read USER_SDO_GEOM_METADATA view
ORA-13203: failed to read
Any help is very much appreciated.
Maybe you are looking for
-
IOS 8 Family Sharing Notification Issues
I receive "request to buy" notifications, from my daughter, on my iPad, but not on my iPhone. If I approve, she receives the notification, but if I decline, she does not receive the denied notification. Anyone else having these kind of issues? Until
-
Configuring IPC in SAP R/3 ISA
How do I configure the IPC in SAP R/3 ISA and how do I use the IPC instead of the list prices. Thanks Vivek.
-
For some reason Nokia removed whole regions from newer maps of Russia. For example, in maps that was available when N95 just came out, there was even Chechen Republic covered, now it's completely missing. They did make maps of larger cities like Mosc
-
Crazy movements of the magic mouse and lost precision. I swip on my shirt or I the start again my MacBook Pro, the problem continue. During this time , the pad run correctly et my Bamboo pen too. I have the same problem with my Magic TrackPad and my
-
Hello, I spilled water last night which got on my Macbook Pro. I wiped off the water and moved the computer out of it to dry overnight. The computer was still on when I moved it as the lid was closed, but it wasn't turned off. I woke up this morn