quinta-feira, 25 de abril de 2013

Fish Facts using jQuery with Delphi

POST #017
=======================================================================
Remember that old demo well known "FishFacts" developed with Delphi win32 that displays a list of fishes, as well fishes images and notes text BLOBS from a paradox dataset Biolife. Old days...

Now, I’m using mORMot, with a background HTTP REST server, together with its SQLite3 database engine. I’ve implemented a thin client, Ajax-ready, open and lightweight javascript client using jQuery, that shows how to display style memo and graphic fields. This app has been compiled with Delphi 7, but you can recompile it with Delphi 2009/2010/XE.

 

Tags: Delphi with jQuery; Delphi REST server; Delphi mORMOt with thin client.

over and out,

warley alex from Sete Lagoas, Brazil

domingo, 21 de abril de 2013

Web Application Using jqGrid with Delphi

POST #016
=======================================================================
Rather than just dabbling around a handful of jqGrid demos examples, I recently spent a few hours building a quite simplistic project using jqGrid with mORMot. I found that functionalities like "remote paging", "remote sorting" and "remote multi-searching" are working fine.


Remote paging is fine but I would like the grid will automatically postback to the server when end-users select a row and will fire the RowSelecting event handler and databind a second grid with details. I have tested more complex events, such as a subgrid. It's so fast and beautiful.
I had to use boils down (to do a MacGyver) to handle master detail and subgrid with mORMot with jqGrid. Technically everything goes pretty well.
 

Tags: Remote Filtering with jqGrid and Delphi; jqGrid with Delphi mORMot; Master detail grid with jqGrid and Delphi mORMot; subgrid with jqGrid and Delphi mORMot;Delphi Restful.

quinta-feira, 4 de abril de 2013

Remote Paging and Sorting using Delphi with ExtJS

POST #015 ========================================================================
In this mini-video, a remote RESTful access of a SQLite3 database, hosted by a mORMot server, with this dedicated server it was possible to do remote paging and remote sorting as well as CRUD operations with the ExtJS Grid.

Recently I was playing with mORMot and ExtJS when I came across a major block, the solution of which I now wish to share through this tip. While working with ExtJS at Client side and JSON objects returned on the server side (here mORMot), I found that all functionalities were working fine except remote filtering. It is quite well-known that mORMot supports sorting as well as paging.

Please note:
=========
- the docked pagination toolbar at the bottom of the screen.
- the results are sorted by Name in ascending / descending order.
- the pagination and sorting is being done remotely at server side.
- Filtering: has been done LOCALLY at client side.
- Table SampleRecord has 52,500 records

Best regards,

warleyalex from Sete Lagoas, Brazil


Tags: Remote Paging; Remote Sorting; ExtJS with Delphi; Remote Paginator; CRUD with Delphi and ExtJS; Extjs with mORMot;

Remote Filtering using Delphi with ExtJS

POST #014
=======================================================================

Sometimes, you only need a specific subset of data from your dataset, but you need it filtered to a specific set of Records. After working with our filtered dataset, there will come a time when we want our original dataset back. When we filtered the dataset, the other Records didn't go away. They're still sitting in cache, to the side, waiting to be recalled. Rather than query the server again, we can simply clear our filter.

Client-side filtering is great, reducing our trips to the server. Sometimes, however, our record set is just too large to pull in at once. A great example of this is a paging grid. Many times we'll only be pulling in 10 Records at a time. The client-side filtering methods just are fine if we only want to filter the resident dataset, but most of the time we'll want a filter applied to all of our data.

Sorting data on remote calls is pretty easy, using Extjs, as we can set the property remoteSort to true (default value is false) and the proxy will pass the filter object as the parameter:

filter:[{"property":"subject","value":"mORMot"}].


So, basically if our Store was attached to a grid object, clicking on a column heading to sort the display would automatically pass the parameter value in its AJAX request, and our little server mORMot should be well enough to handle these request.

Filtering data on remote requests is a bit harder. We would pass parameters through the Store's load event, and act on those arguments in our mORMot server-side method. Our little mORMot should read the parameter filter (a json object) and perform the filtering on server side. The problem is: our mORMot uses another approach to filter data – it uses inlined parameters via SQLwhere and cannot read directly with parameter Filter coming from the client side.

This might look complicated, but it really isn't! Again, our mission here is to learn how mORMot handle with this task, it is important to have some understanding of what your server-side process is doing. The trick is: what we have to do here is just passing some expected parameters related to filtering using inlined aproach through HTTP request, mORMot will just ignore the option parameter filter.


Regards,

warleyalex from Sete Lagoas, Brazil


Tags: Remote Filtering with ExtJS; Remote ComboBox Filtering with Extjs; ExtJS with Delphi mORMot; remote Filter with Extjs and Delphi;