Blog: Posts from April, 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(8) OAuth Scopes(1) OAuth2(11) Offline(20) Offline Apps(4) Offline Sync(5) Oracle(10) PKCE(2) PostgreSQL(2) PWA(2) QR codes(2) Rapid Application Development(5) Reading Pane(2) Release Notes(180) Reports(48) REST(29) RESTful(29) RESTful Workshop(15) RFID tags(1) SaaS(7) Security(80) 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 April, 2012
Friday, April 27, 2012PrintSubscribe
Using Check Box List for New Many-to-Many Relationship

The “Check Box List” lookup item style can be used to enter multi-value or many-to-many fields.

In the Multiple Value Field tutorial, we created a Shipping Methods field in the Shippers table that stored a comma separated list of values. This may be sufficient for some people, but it would be standard operating procedure to normalize this list into a separate table in order to store the values externally.

Let’s create a separate table by the name of ShipMethods, and a table to store the many-to-many relationship called ShippersShipMethods.

In the Object Explorer, right-click on Databases / Northwind / Database Diagrams and select New Database Diagram. Select Yes to install diagram support in the database.

When the Add Table screen opens, highlight Shippers and press Add.

Add 'Shippers' table to diagram

Press Close to close the screen. Click on the Shippers table. Mouse over the Table View property, and change it to Standard.

Right-click on white space in the diagram and press New Table. Give the table the name of “ShipMethods”. Press OK to create a table with this name.

Enter 'ShipMethods' table name

Give this table the following fields:

Primary Key? Column Name Data Type Allow Nulls
Yes ShipMethodID int No
  ShipMethodName nvarchar(50) No

Highlight the ShipMethodID column. In the Properties window, change (Is Identity) to “Yes”.

Create another table with the name of “ShippersShipMethods”.

Enter 'ShippersShipMethods' table name

Give this table the following fields:

Primary Key? Column Name Data Type Allow Nulls
Yes ShipperID int No
Yes ShipMethodID int No

Drag the ShipperID column from ShippersShipMethods to Shippers table. Keep the default Relationship name and press OK twice to save the relationship.

Drag the ShipMethodID column from ShippersShipMethods to ShipMethods table. Press OK twice to save.

Save this diagram to apply the changes. Your diagram should look like the one below.

Shippers, ShipMethods, and ShippersShipMethods table relationship

Start Code On Time web application generator, click on the project name, and select the Refresh option. Toggle the checkboxes next to the tables dbo.ShipMethods, dbo.ShippersShipMethods, and the controller Shippers. Press Refresh, and press Yes to confirm the operation.

Refresh the ShipMethods, Shippers, ShippersShipMethods tables

When the Refresh is complete, select the Design option on the Summary page.

In the Project Explorer, switch to the Controllers tab. Right-click on Shippers / Fields node and select New Field.

New Field option for Shippers controller

Give this field the following settings:

Property Value
Name ShipMethods
Allow Null Values True
The value of this field is computed at run-time by SQL Expression True
SQL Formula
NULL
Label Ship Methods
Items Style Check Box List
Items Data Controller ShipMethods
Data Value Field ShipMethodID
Data Text Field ShipMethodName
Target Controller ShippersShipMethods

Press OK to save the field. In the Project Explorer, right-click on Shippers / Views / editForm1 / c1 – Shippers category node and select New Data Field.

New Data Field in 'editForm1'

Give this data field the following settings:

Property Value
Field Name ShipMethods
Columns 3

Press OK to save the data field. Right-click on Shippers / Views / createForm1 / c1 – New Shippers category node and choose New Data Field.

New Data Field in 'createForm1'

Give this data field the following settings:

Property Value
Field Name ShipMethods
Columns 3

Press OK to save the data field. Let’s display a read-only list of fields in the grid view as well. Right-click on Shippers / Views / grid1 view node and select New Data Field.

New Data Field for 'grid1'

Give this data field the following settings:

Property Value
Field Name ShipMethods
Columns 3
Values of this field cannot be edited Yes

Press OK to save the data field. On the tool bar, select Browse to generate the web application.

When it opens in your default web browser, navigate to the Ship Methods page. Create three new shipping methods:

Ship Method Name
Land
Air
Sea

Three records created in Ship Methods table

Next, navigate to Shippers page. You will see all shippers have “N/A” Ship Methods. Edit a record, and a check box list will appear with the available options.

Three Ship Methods options presented as check box list

Select a few ship methods for each shipper. When not in edit mode, the check box list will be replaced with a comma separated list of values. The data field on the grid view will stay in read only mode when a record is being edited.

Ship Methods shown as comma separated list in grid view

Tuesday, April 24, 2012PrintSubscribe
Displaying a Check Box List

If you need to store multiple values in the same field, then set its items style to Check Box List. The values will be stored as a comma-separated list, but rendered as a check box list of all available options when in edit mode.

Let’s introduce such a field in the Northwind database.

Run Microsoft SQL Server Management Studio and right-click on Databases / Northwind / Tables / dbo.Shippers. Select Design option.

Design Shippers table in Microsoft SQL Server Management Studio

Add a new field with the following properties.

Column Name Data Type Allow Nulls
ShipMethods nvarchar(200) Yes

'ShipMethods' field added to Shippers table

Save the table, and refresh settings of the Northwind web application. Make sure to select the Shippers in the list of data controllers in the Refresh dialog.

Click Design option to activate the Project Designer.

In the Project Explorer, switch to the Controllers tab. Select the Shippers / Fields / ShipMethods field node.

New 'ShipMethods' field in Shippers controller

Change the following setting:

Property New Value
Items Style Check Box List

Press OK to save the field.

In the Project Explorer, right-click on the ShipMethods field, and select Show Value/Text Items.

'Show Value/Text Items' option in Code On Time Project Explorer

On the action bar, press New | New Item. Create three new items with the following properties:

Value Text
Ground Ground
Air Air
Sea Sea

Three new data items for field

On the tool bar, press Browse to generate the application. The application will open in your default web browser. Navigate to the Shippers page.

The ship methods for each shipper will currently say “N/A”. If you edit a shipper, you will see the lookup items presented in a check box list. When you save, your choices will be saved in a comma separated list.

Check Box List being used for 'Ship Methods' field

You may also consider creating a many-to-many relationship field for Ship Methods.

Monday, April 23, 2012PrintSubscribe
SQL Business Rules, Modal Confirmation Forms

Code On Time release 6.0.0.25 introduces the following new features, enhancements, and bug fixes:

  • SQL Business Rules are now supported by the application framework in Premium and Unlimited editions. SQL Business Rules can be configured in the Project Designer or added directly to the application baseline. The tutorial will be available this week. Future releases will support Email and JavaScript business rules.
     
  • Modal confirmation dialogs are available in Premium and Unlimited editions. Confirmation data controllers can reference the context field values as 'Context_FIELD_NAME'. Context data row field values are passed as external filters. See the example demonstrating changing of a hidden foreign key with the help of a modal confirmation.
     
  • Action “Confirmation” property allows referencing field name in curly brackets to include the fields values of the current row in the confirmation message text.
     
  • If custom processing of "Report..." action has raised an exception in the business rules then this exception will stop report rendering. Previously the exception has been ignored resulting in a confusing error message.
     
  • Quick Find will not cause a runtime error when users enter values that can be converted to a System.DateTime instance less than 1/1/1753 and the backend is Microsoft SQL Server.
     
  • Multiple selection of data rows will cause a UI refresh delayed by 1 second.
     
  • SQL action will cause automatic refresh of child views if the data row is not in edit/new mode.
     
  • Class ActionResult provides method RefreshChildren that can be used in business rules to refresh the children of the data view that has caused execution of business rules.
     
  • Business Rules can assign a filter and sort expression when processing actions other than Select.
     
  • Fixed issues with the refresh after Delete or SQL actions. The selected key was not cleared correctly in the previous releases.
     
  • Action SQL will replace the Selected Key if any changes to the primary key fields are detected by the client library.
     
  • Added SetRoles and SetWriteRoles to node set plugins.
  • New virtualization node set plugins:
    1) NodeSet() will create an empty data controller node set
    2) SetItemsStyle, SetItemsAutoSelect, and other SetItemsPROPERTY_NAME methods allow configuring various aspects of a data controller.
     
  • Property baseViewId will not cause the cached data controller to remain editable. This was causing the problem virtualization node sets and annotations.
     
  • Method BusinessRules.JavaScriptString allows converting values to valid JavaScript strings with or without single quotes surrounding the text.
     
  • Designer allows reordering data controller fields using the context menu and up/down arrows on the action bar.
     
  • Client library will divide the numeric value by 100 if the data format string of the field is set to 'p' or 'P' and the '%' sign is not entered.
     
  • Category “Header Text” is not mandatory anymore.
     
  • Command ID in views is not mandatory anymore.
     
  • Data controllers without a command are now allowed.
     
  • Left padding added to search buttons in advanced search bar.
     
  • Lookup window bottom border is now drawn in the newer themes.
     
  • Fixed the bug with Lookup Field "Activate If Blank". All lookup fields with Activate If Blank will be displayed in sequence when entering a form.