Blog: Posts from May, 2012

Labels
AJAX(112) App Studio(7) Apple(1) Application Builder(245) Application Factory(207) ASP.NET(95) ASP.NET 3.5(45) ASP.NET Code Generator(72) ASP.NET Membership(28) Azure(18) Barcode(2) Barcodes(3) BLOB(18) Business Rules(1) Business Rules/Logic(140) BYOD(13) Caching(2) Calendar(5) Charts(29) Cloud(14) Cloud On Time(2) Cloud On Time for Windows 7(2) Code Generator(54) Collaboration(11) command line(1) Conflict Detection(1) Content Management System(12) COT Tools for Excel(26) CRUD(1) Custom Actions(1) Data Aquarium Framework(122) Data Sheet(9) Data Sources(22) Database Lookups(50) Deployment(22) Designer(177) Device(1) DotNetNuke(12) EASE(20) Email(6) Features(101) Firebird(1) Form Builder(14) Globalization and Localization(6) How To(1) Hypermedia(2) Inline Editing(1) Installation(5) JavaScript(20) Kiosk(1) Low Code(3) Mac(1) Many-To-Many(4) Maps(6) Master/Detail(36) Microservices(4) Mobile(63) Mode Builder(3) Model Builder(3) MySQL(10) Native Apps(5) News(18) OAuth(9) OAuth Scopes(1) OAuth2(13) Offline(20) Offline Apps(4) Offline Sync(5) Oracle(11) PKCE(2) Postgre SQL(1) PostgreSQL(2) PWA(2) QR codes(2) Rapid Application Development(5) Reading Pane(2) Release Notes(183) Reports(48) REST(29) RESTful(29) RESTful Workshop(15) RFID tags(1) SaaS(7) Security(81) SharePoint(12) SPA(6) SQL Anywhere(3) SQL Server(26) SSO(1) Stored Procedure(4) Teamwork(15) Tips and Tricks(87) Tools for Excel(2) Touch UI(93) Transactions(5) Tutorials(183) Universal Windows Platform(3) User Interface(338) Video Tutorial(37) Web 2.0(100) Web App Generator(101) Web Application Generator(607) Web Form Builder(40) Web.Config(9) Workflow(28)
Archive
Blog
Posts from May, 2012
Tuesday, May 8, 2012PrintSubscribe
Feature: Adaptive Filtering

Code On Time web applications offer adaptive filtering out of the box. Adaptive filters limit the list of filtering options according to the current data set and other active filtering options.

For example, consider the Northwind sample web application. Navigate to the Products page. Mouse over the Category Name column header, and activate the dropdown. Click on “Beverages” filter option.

Select the 'Beverages' filtering option from the Category Name column header.

You will see the list of products has been filtered to only display those records with a Category Name of “Beverages”.

Now, filter Supplier Company Name by “Exotic Liquids” using the same method. The combination of filters has produced two matching records.

Filters applied on 'Category Name' and 'Supplier Company Name' fields in a list of products.

Activate the dropdown for Category Name again. You will see that the list of categories has been reduced to only those that match the other filtering constraints (Supplier Company Name equals Exotic Liquids).

Category Name filtering options have been adaptively filtered to only show options relevant to the current data set.

Clear the Category filter by clicking on the text “Category Name equals Beverages”.

Clear a filter by clicking on the filter description.

Filters do not require lookup tables. The filter options are drawn from the data set itself. For example, activate the drop down for Reorder Level in the list of Products. If Supplier Company Name is filtered to “Exotic Liquids”, you can see that the only available filtering options are “10” and “25”, which match the current data set (shown above).

Reorder Level filtering options have been reduced due to adaptive filtering.

You can clear the whole filter by pressing the “x” on the right side of the filter header.

Clear the entire filter by clicking on the 'x' icon at the very right of the filter detail bar.

Filters will continue to adapt regardless of the complexity of a filtering operation. For example, activate the dropdown for Category Name, and click on “Filter…” option.

Filter option on the dropdown of 'Category Name' header.

Toggle the checkboxes next to the following categories: “Beverages”, “Dairy Products”, “Meat/Poultry”. Press OK to apply the filter.

Category Name multi filter selection with several options checked.

Click on text Unit Price in its header to sort the products in descending order of price.

List of products sorted in descending order of Unit Price.

Activate the Unit Price dropdown, and click on Number Filters | Between. Write “10” and “30” in each box, respectively.

Filter 'Unit Price' to all records between '10' and '30'.

Press OK to apply the filter.

Activate the Supplier Company Name dropdown, and click on “Filter…” option. Checkmark several suppliers from the list, and press OK to apply the filter.

Include several filtering parameters for 'Supplier Company Name' field

Activate the dropdown for Reorder Level and click on “Filter…” option. Choose several reorder levels and press OK to apply the filter.

Include several filtering parameters for 'Reorder Level' field

The filtering options will all be displayed in a filter detail bar underneath the action bar. You may have noticed that as you made each filter, the subsequent filters had less values. This is due to the power of adaptive filtering.

You can also click on the text of any specific filter description to remove that filter.

Clear a filter from the list of products by clicking on the specific filter description.

Friday, May 4, 2012PrintSubscribe
Rapidly Find Data Using Quick Find

The simplest method to search for data in Code On Time web applications is Quick Find.

Quick Find is located on the left side of the action bar above grid views. It allows searching for values in the visible fields. The application will split the search text by spaces and use each word as a filtering parameter when executing a query.

Quick Find text box on the action bar of Code On Time web application

For example, let’s find any customer that contains the text “owner”. Enter the text in the Quick Find, and press Enter on your keyboard. You can see that we now have a list of records that contain “owner” in the Contact Title field.

Search results for 'owner' in Customers grid view

Let’s find all owners in Mexico. In the Quick Find box, type “owner mexico”, and press Enter on your keyboard. This will fetch a shorter list. All data rows will contain both words in the fields. For example, “owner” is found in Contact Title, and “mexico” is found in Country.

The screenshot shows the search result for 'owner mexico'.

The order of words in the query does not matter. For example, search for “france owner”. The search will find all three owners from France.

Search results for 'France owner' in Customers grid view

You can also search for numeric values in any field of the record. Switch to the Products page, and search for “40”. The first product has “40” in Units On Order. The second product has a Unit Price of “40”. The third product has “40” in Quantity Per Unit.

Search results for '40' in Products grid view

Numbers and words can be mixed in the search query. Search for “40 biscuit”. The search query found two records that have those parameters.

Search results for '40 biscuit' in Products grid view

The user input is never incorporated in the SQL text, eliminating possibility of an SQL Injection attack. Search for “drop database”. No records will be found, and the database will not be dropped. The application framework will include parameter names in the query and pass the user-entered criteria as parameter values.

SQL injection attack by searching for 'drop database' is ineffective

You can clear any filter by either clicking on the “x” icon on the right side of the filter detail bar, or by clicking on the filter description.

Clear filter by clicking on the text of the filter description in Code On Time web app

Developers can also configure “hidden” fields to participate in the Quick Find.

Friday, May 4, 2012PrintSubscribe
Configuring an Auto Complete Field

Code On Time web application generator assigns Lookup item style to all foreign key fields.

'EmployeeID' field rendered as lookup in Code On Time web application

The Lookup item style has powerful searching and filtering capabilities, but may require several clicks to find a record. A speedy alternative to the lookup is the Auto Complete items style. The user types in a value in the field, and a list of matching field entries will be displayed.

Open the Project Designer. In the Explorer, switch to Controllers tab. Double-click on Orders / Fields / EmployeeID field node.

'EmployeeID' field from Orders controller in Code On Time Project Explorer

Change the following properties:

Property New Value
Items Style Auto Complete
Data Value Field EmployeeID
Data Text Field LastName

Press OK to save the field. On the tool bar, click Browse to generate the application.

When it opens in your default web browser, navigate to Orders page and edit an order. Click on the dropdown arrow, and you will see a list of all options.

Employee Last Name data field as auto complete showing full list of available options

Close the dropdown and type in the letter “d”. A list of matching employees whose last name start with “D” will appear.

Auto Complete results from typing in 'd' in 'EmployeeID' field

Now type “o”, and that list of employees will narrow down to those that have last names that start with “Do”.

Auto Complete results from typing in 'do' in 'EmployeeID' field

You can now hit Tab or Enter on the keyboard, or click on the list item, to insert it into the field.

Option selected from list of auto complete list items

If the entered text does not match to any items in the list, then the input field will revert to the original value.

Let’s make this field take less real estate on the users screen.

Switch back to the Designer. In the Project Explorer, double-click on Orders / Views / editForm1 / c1 – Orders / EmployeeID data field node.

EmployeeID data field in editForm1 view of Orders controller configured with Auto Complete items style

Change the following setting:

Property New Value
Columns 20

Press OK to save the data field, and click Browse on the tool bar.

Navigate to Orders page, and edit a record. The data field is now twenty characters wide.

EmployeeID data field is now 20 characters wide