Display number of rows returned by Custom SQL

Use this board to ask questions or have discussions with other Rich Displays users.
Post Reply
RICHARD RUTA
Profound User
Posts: 40
Joined: Mon Apr 26, 2010 11:53 am
First Name: RICHARD
Last Name: RUTA
Company Name: WILLAM B. MEYER
Phone: 203.984.7175
Address 1: 255 LONG BEACH BLVD
City: STRATFORD
State / Province: Connecticut
Zip / Postal Code: 06615
Country: United States
Contact:

Display number of rows returned by Custom SQL

Post by RICHARD RUTA »

In a grid, is there a way to get the number of rows returned by a Custom SQL?

Thanks,
Richard
DaveLClarkI
Experienced User
Posts: 165
Joined: Wed Dec 11, 2013 10:40 am
First Name: Dave
Last Name: Clark
Company Name: WinWholesale, Inc.
Phone: 937-294-5331
Address 1: 31101 Kettering Blvd.
City: Dayton
State / Province: Outside Canada/USA
Zip / Postal Code: 45439
Country: United States
Contact:

Re: Display number of rows returned by Custom SQL

Post by DaveLClarkI »

If no other answer is forthcoming, you can at least use the following to find out the sequence number for the last data row in the grid. Note that "wob" is the name of one of our skins and, as such, you would change that to suit your need. The only issue would be when to call this. You may need to experiment a bit to find that out as I created this from a different working function and don't have any custom SQL situations with which I can test this. Good luck.

Code: Select all

/*	================================================================================
	countNumberOfGridRows()	returns the sequence number of the last data row for the
							specified grid.  The arguments are the grid id and name
							of a bound field associated with a widget in that grid.
*/
wob.countNumberOfGridRows = function(gridId, boundFieldName)
{
	var fld, seqno = 0, mygrid = getObj(gridId).grid;	// get reference to grid object
	if (mygrid)								// if grid exists
	{
		while (fld = mygrid.getDataValue(seqno + 1, boundFieldName)) // loop on grid rows
		{
			++seqno;							// increment row number
		}
	}
	return seqno;							// return last sequence no. to caller
}
User avatar
Alex
Profound Logic Staff Member
Posts: 233
Joined: Fri Jan 04, 2008 12:10 pm
First Name: Alex
Last Name: Roytman
Company Name: Profound Logic Software
Contact:

Re: Display number of rows returned by Custom SQL

Post by Alex »

This will work for a grid that is populated by RPG code. However, it will not work for a database-driven grid populated by Custom SQL.

In our next update, we will add a JavaScript API that will return the total number of records in the grid, regardless of the grid type. However, the API can only be used once the grid has finished rendering. So, if you're trying to show the total number of records on the screen, this new API may not be the best fit. I would recommend having RPG code calculate the total number of records and output that value to the screen, instead.
DaveLClarkI
Experienced User
Posts: 165
Joined: Wed Dec 11, 2013 10:40 am
First Name: Dave
Last Name: Clark
Company Name: WinWholesale, Inc.
Phone: 937-294-5331
Address 1: 31101 Kettering Blvd.
City: Dayton
State / Province: Outside Canada/USA
Zip / Postal Code: 45439
Country: United States
Contact:

Re: Display number of rows returned by Custom SQL

Post by DaveLClarkI »

Alex wrote:This will work for a grid that is populated by RPG code. However, it will not work for a database-driven grid populated by Custom SQL.
Is this because such a grid uses widgets that are bound directly to database columns and does not use widgets that are bound to RPG fields? If so, then that makes perfect sense. I guess I didn't make it real clear that the code I posted is for widgets bound to RPG fields. ;-) I did not stop to think about just what was meant by grids built via Custom SQL.
User avatar
Alex
Profound Logic Staff Member
Posts: 233
Joined: Fri Jan 04, 2008 12:10 pm
First Name: Alex
Last Name: Roytman
Company Name: Profound Logic Software
Contact:

Re: Display number of rows returned by Custom SQL

Post by Alex »

Yes. First of all, the field name passed to the getDataValue() function has to be an RPG field name. Therefore, this function will not work with a data-bound grid.

But, secondly, with a data-bound grid, the server does not send the entire set of records to the client. Instead, the grid keeps fetching server data as the user scrolls through the grid. Internally, however, it does know the total record count, since it has to use it to render the scroll bar properly.
DaveLClarkI
Experienced User
Posts: 165
Joined: Wed Dec 11, 2013 10:40 am
First Name: Dave
Last Name: Clark
Company Name: WinWholesale, Inc.
Phone: 937-294-5331
Address 1: 31101 Kettering Blvd.
City: Dayton
State / Province: Outside Canada/USA
Zip / Postal Code: 45439
Country: United States
Contact:

Re: Display number of rows returned by Custom SQL

Post by DaveLClarkI »

It is also true of the code I posted that not only is it only for grid widgets bound to RPG fields; but, it will also only represent the total rows available when it is a load-all subfile. Cheers.
Post Reply

Who is online

Users browsing this forum: Google [Bot] and 8 guests