Monday, July 23, 2012

Custom Modal Forms with SQL Business Rules

Custom modal forms can be used to collect parameters from the user and pass them to business rules for processing.

A custom data controller without a command can define fields, presentation views, and actions. Such controllers may be used as confirmations for actions for the purpose of collecting input parameters.

Let’s consider the steps involved in the creation of a confirmation data controller using a Northwind sample application.

Child views in a master/detail relationship will automatically hide the foreign key field to prevent duplicate display of the field value. This means that the Supplier Company Name field in the list of supplier products controller is hidden.

Suppliers page with Products child view. Products view does not display the foreign key field.

However, sometimes the user may want to change the foreign key of a child record. This may occur if a product is incorrectly associated with a supplier. One solution is to navigate to the standalone Products page where the supplier lookup is visible. A better alternative would be to create a custom action displaying a modal form that will allow the user to change the foreign key field in the child list of products.

Start the Project Designer. In the Project Explorer, switch to the Controllers tab. On the toolbar, press New Controller icon.

New Controller icon on the Project Explorer toolbar.

Give this controller the following name:

Property Value
Name SupplierSelector

Press OK to save the controller. In the Project Explorer, right-click on SupplierSelector / Fields node, and select New Field option.

New Field context menu option for Fields node in the Project Explorer.

Give this field the following properties:

Property Value
Name ProductName
Type String
Length 40
Label Product
Values of this field cannot be edited True

Press OK to save. Create another field:

Property Value
Name SupplierCompanyName
Type String
Length 40
Label Supplier
Values of this field cannot be edited True

Save this field, and create one more.

Property Value
Name SupplierID
Type int32
Label New Supplier
Items Style Lookup
Items Data Controller Suppliers
Items Value Field SupplierID
Items Text Field CompanyName

Save the field. Right-click on SupplierSelector / Business Rules node, and select New Business Rule option.

New Business Rule context menu option in the Project Explorer.

Give this business rule the following properties:

Property Value
Type SQL
Command Name New
Phase Execute
Script
set @ProductName = @Context_ProductName
set @SupplierCompanyName = @Context_SupplierCompanyName

Press OK to save.

SQL Business Rule handling New action in SupplierSelector data controller.

In the Project Explorer, right-click on Products / Actions / ag1 (Grid) node and select New Action option.

New Action context menu option in the Project Explorer.

Give this action the following properties:

Property Value
Command Name Custom
Command Argument CustomModalForm
Header Text Change Supplier
Confirmation

_controller=SupplierSelector
_title=Select a New Product Supplier
_width=500

Press OK to save. Right-click on Products / Business Rules node, and select New Business Rule option.

New Business Rule context menu option for Products controller.

Use the following properties:

Property Value
Type SQL
Command Name Custom
Command Argument CustomModalForm
Phase Execute
Script
--update the product supplier
update Products
set SupplierID = @Parameters_SupplierID
where ProductID = @ProductID
--'forget' the previously selected product
set @ProductID = null
--force the data view to refresh
set @Result_Refresh = 1

Press OK to save.

SQL business rule processing custom action for Products controller in Code On Time Project Explorer.

On the toolbar, press Browse.

Navigate to the Suppliers page, and select a supplier. In the context menu of a product, select Change Supplier.

Change Supplier context menu action in the list of products.

A custom modal form will open, displaying the current Product and Supplier.

Custom modal form allowing user to select a new product supplier.

Use the lookup to select a new supplier.

Suppliers lookup.

Press OK to confirm, and the supplier of the product will change to the new supplier.

No comments:

You can find more about Code OnTime Generator, Data Aquarium Framework, and other great products here.


© 2010 Code OnTime LLC. Intelligent code generation software for ASP.NET. Visit us at http://codeontime.com