cancel
Showing results for 
Search instead for 
Did you mean: 
cancel
Showing results for 
Search instead for 
Did you mean: 

Community Tip - Want the oppurtunity to discuss enhancements to PTC products? Join a working group! X

Sorting grid column

praveenp
1-Visitor

Sorting grid column

Hi,

I have one grid which is updating dynamically.
I want particular column to be sorted automatically, like latest records should be on always top.

Please provide any solution for this.

Thanks.

16 REPLIES 16
paic
12-Amethyst
(To:praveenp)

Hi Praveen,


I recommend you use the Sort function in your service to deliver the data sorted to the client side.

(Query also supports Filter and Sort so you can do that too)



fgrondin
12-Amethyst
(To:paic)

Hi,

Am i being silly or not ?

I'm doing this :

            var sort = new Object();

            sort.name = "myColumnName";

            sort.ascending = true;

            Infos.Sort(sort);

But I keep getting that error :

But the Infos dataTable isn't null.

[TransformResultSetStations] :JavaException: java.lang.IllegalArgumentException: Invalid format: "org.mozilla.javascript.Undefined..."

PaiChung
22-Sapphire I
(To:fgrondin)

Try this snippet

var params = {

  sortColumn: undefined /* STRING */,

  t: undefined /* INFOTABLE */,

  ascending: undefined /* BOOLEAN */

};

// result: INFOTABLE

var result = Resources["InfoTableFunctions"].Sort(params);

fgrondin
12-Amethyst
(To:PaiChung)

I'm still getting the same error. I'm using Thingworx 6.5  with the new snippet.

PaiChung
22-Sapphire I
(To:fgrondin)

What does your code look like now?

fgrondin
12-Amethyst
(To:PaiChung)

It appears to be working. But i have a case where it doesn't work.

So how my solution works. The mashup loads, the user selects x property from a dropdown List, and a service is triggered.

That service is querying Data from a ms SQL Database. The query returns data. I think the issue come from here.

So when a large result set is return, the query works, but it doesn't when I'm getting like 2 rows in the result set.

Those 2 rows aren't in the same order that the Stored Procedure was outputting them.

(S.P. return row 1 and 2  and in ThingWorx it's receiving 2 and 1 instead).

And those items are order by start time in the stored procedure, but for an unknown reason, ThingWorx isn't receiving the good resultSet.

So I thought that I would sort them up in Javascript. But when the Data isn't good, then the Sort function doesn't work.

When the data is good, the Sort function works.

When I'm executing the Stored Procedure outside of Thingworx, it works,

Would there be a reason why I'm not getting the same result as the SP ?

I'm using SQL(Query) and i'm executing the SP like this:

EXECUTE  NameOfSP

I used Sort function, but i am getting following error

 "Wrapped java.lang.Exception: Unable To Convert From java.lang.String to INFOTABLE Cause: Unable To Convert From java.lang.String to INFOTABLE"

var params = {

    sortColumn: "timestamp" /* STRING /,<br>    t: "ClientName_Events" / INFOTABLE /,<br>    ascending: true / BOOLEAN */
};

// result: INFOTABLE
var result = Resources["InfoTableFunctions"].Sort(params);
 
Here in code :
"timestamp" is my column name,
"ClientName_Events" is INFOTABLE,

Tried BaseType as Text, DateTime and InfoTable.

Is am doing anything wrong?



Hi Praveen,

In your code you try to pass a String as an Infotable, meaning here: t: "ClientName_Events" /* INFOTABLE */, I presume that you wanted to say actually:

t: ClientName_Events /* INFOTABLE */, ?

BR, Vladimir

qngo
12-Amethyst
(To:praveenp)

Hi, is it possible to sort on many columns, one after another using Sort, like "ORDER BY" of SQL ?

PaiChung
22-Sapphire I
(To:qngo)

Yes, you can use the Query statement to do a multi query/sort

See this: Query Parameter for Query Services

pjoly
12-Amethyst
(To:praveenp)

Hello

I would like to do this sorting on a particular column for a Grid generated automatically with "GetImplementingThingsWithData" .

How could I access to the associated query to add the "sort" parameter ?

Or should I generate the grid by another way ?

Thanks

Pascal

qngo
12-Amethyst
(To:pjoly)

Hello, if you can use the service QueryImplementhingsWithData instead, the input parameter "query" can be provided with sort statement

pjoly
12-Amethyst
(To:qngo)

Thanks for advice

The problem is that I have a large number of widgets already associated to the service datas so it will be a large rework (I don't know if there is an easy way to replace the service in the mashup or somewhere without loosing all dependencies ? )

I just read that in 7.4 grid will be improved perhaps it will cover my needs with less efforts  ?

These features will be available at the end of March 2017.

  • Advanced Grid: New grid widget with improved design, context menu, multi-column sorting, global search and many more common grid-related features.



But I'll use this service for further mashups

qngo
12-Amethyst
(To:pjoly)

A way to replace the service without loosing all dependencies is export the mashup in .xml, modify the .xml by replacing the service and add other parameters of the new service, then import the .xml. But of course it's not an easy way.

Or if the Grid simply receive and display the result of GetImplementingThingsWithData, you can create another service which takes the result of that service as input, sort it and return the infotable sorted which is bound to the Grid.



pjoly
12-Amethyst
(To:qngo)

Great

I'll edit xml that can be an useful exercie for the future

pjoly
12-Amethyst
(To:pjoly)

Hello

I have modified with success the mashup using xml but unfortunately the edit of the query function using the Composer doesn't give access to the sort function but only to the filters.

Si I guess I need to implement the sort function into a service or something similar before to return the datas to the grid.

Announcements


Top Tags