Web Application Generator

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
Web Application Generator
Thursday, November 29, 2012PrintSubscribe
Multi-Field Copy with an SQL Business Rule

It may be necessary for similar values to be copied from a lookup to a record.

When a simple copy operation is required, use the Copy property on the lookup field. For more complex copying operations, a business rule can be implemented. Let’s implement an SQL business rule to copy shipping information from a customer to an order in a sample Northwind web application.

Start the Project Designer. In the Project Explorer, switch to the Controllers tab and double-click on Orders / Fields / ShipName node.

ShipName field in the Orders controller in the Project Explorer.

Change the following properties.

Property Value
The value of the field is calculated by a business rule expression true
Context Fields CustomerID

Press OK to save the field. Right-click on Orders / Business Rules node and press New Business Rule.

New Business Rule context menu option in the Orders controller.

Give this rule the following properties.

Property Value
Type SQL
Command Name New|Calculate
Phase Execute
Script
if @CustomerID is not null
begin
     select 
        @ShipName = ContactName,
        @ShipAddress = Address,
        @ShipCity = City,
        @ShipRegion = Region,
        @ShipPostalCode = PostalCode,
        @ShipCountry = Country
     from Customers 
     where 
         CustomerID = @CustomerID
end

Press OK to save the business rule. On the toolbar, press Browse to generate the web application.

Navigate to the Customers page. Select a customer from the list, and a list of orders will appear underneath. On the action bar, press New Orders. The shipping fields will be prepopulated with the customer shipping information.

New Orders form on the Customers page prepopulated with customer shipping information.

Navigate to the Orders page. On the action bar, press New Orders. The ship fields will be blank.

New Orders form on the Orders page. Customer is not selected, and the shipping fields are blank.

Use the Customer Company Name lookup to select a customer. The ship fields will automatically be populated with the values from the customer.

A customer has been selected. Shipping information has been populated.

Thursday, November 29, 2012PrintSubscribe
Logging Data Access

Requirements for high-security web applications may require the logging of user credentials when data is accessed. Let’s create two fields, AccessedBy and AccessedOn, and use SQL Business Rules to automatically update these fields.

Adding AccessedBy and AccessedOn Columns

Start SQL Server Management Studio. Connect to your database. In the Object Explorer, right-click on Databases / Northwind / Tables / dbo.Customers node, and press Design.

Design context menu option for Customers table in Northwind database in SQL Server Management Studio.

Add two columns to the table:

Column Name Data Type Allow Nulls
AccessedOn datetime true
AccessedBy nvarchar(50) true

Save the table.

Switch back to Code On Time web application generator. Refresh the project.

Refresh the Code On Time web application project to bring in the new columns into the web app.

Configuring the Fields

Start the Project Designer. In the Project Explorer, switch to the Controllers tab and double-click on Customers / Fields / AccessedOn node.

AccessedOn field under the Customers controller in the Project Explorer.

Change the following properties:

Property Value
Values of this field cannot be edited true
Data Format String g

Press OK to save the field. Double-click on Customers / Fields / AccessedBy node.

AccessedBy field under the Customers controller in the Project Explorer.

Mark the field as read-only:

Property Value
Values of this field cannot be edited true

Press OK to save the field. Right-click on Customers / Business Rules node, and press New Business Rule.

New Business Rule context menu option for Customers controller.

Give this rule the following properties:

Property Value
Type SQL
Command Name Select
View editForm1
Phase Execute
Script
set @AccessedOn = getdate()
set @AccessedBy = @BusinessRules_UserName

Seeing the Results

On the toolbar, press Browse. Navigate to the Customers page, and select a customer. The Accessed On and Accessed By fields will be appear on the form with updated values.

AccessedOn and AccessedBy fields are populated in the user interface.

However, if you check the records in the database, the columns will not be updated.

AccessedOn and AccessedBy fields are not populated in the database.

This is due to the way that the client library works – when data is selected from the database, the business rule adds the values to AccessedOn and AccessedBy before they are displayed in the user interface. If the user tries to save the values, the client library will compare the data requested from the server (with appended values) and any new values. Because the user has not changed these fields, the client library assumes that the values are unchanged and does not update the record.

There are two methods of updating the field value:

  1. Update the field value when the user selects the record.
  2. Update the field value after the user updates the record.

Method 1: Update When User Selects

Switch back to the Project Designer. The business rule will still be open in the Browser window. Change the Script property as follows:

Property New Value
Script
set @AccessedOn = getdate()
set @AccessedBy = @BusinessRules_UserName

update Customers
set AccessedOn=@AccessedOn, AccessedBy=@AccessedBy
where CustomerID=@CustomerID

Press OK to save the business rule. On the toolbar, press Browse.

Navigate to the Customers page, and select a record. The Accessed On and Accessed By fields will be populated in the user interface.

AccessedOn and AccessedBy fields are populated in the web application.

The database record will be updated as well.

AccessedOn and AccessedBy fields are also populated in the database.

Method 2: Update When User Updates

Make sure you are not using the business rule from Method 1. Switch back to the Project Designer. Right-click on Customers / Business Rules and press New Business Rule.

New Business Rule context menu option for Customers controller in the Project Explorer.

Give this business rule the following properties:

Property Value
Type SQL
Command Name Update
Phase Execute
Script
update Customers
set AccessedOn=@AccessedOn, AccessedBy=@AccessedBy
where CustomerID=@CustomerID

Press OK to save. On the toolbar, press Browse.

Navigate to the Customers page. Select a customer, and the fields will be populated in the user interface.

AccessedOn and AccessedBy fields populated in the user interface.

However, the database will not be updated.

AccessedOn and AccessedBy fields not populated in the database.

Press Edit, change a field value, and press OK to save.

Edit, change, and save the customers record in the web application.

The column values will be updated only when the record is updated.

AccessedOn and AccessedBy fields have been populated in the database.

Thursday, November 29, 2012PrintSubscribe
Working with Field Outputs in Designer

A field output specifies a link between data controller commands configured to execute after Insert and the identity-based primary key field of the table.

Field outputs can be found on the Field Outputs tab on a command properties page.

Field Outputs tab on the Command page in the Project Browser.

They can also be found on the Field Outputs tab on a field properties page.

Field Outputs tab on the Field page in the Project Browser.

Option New | New Field Output on the action bar will create a new field output.

New Field Output action bar action in the Project Browser.

The details of a field output can be seen by clicking on the field name or using the context menu option Open.

Open context menu action in the Field Outputs tab in the Project Browser.

Field outputs can be deleted using the context menu option Delete.

Delete context menu option for a field output in the Project Browser.

Field outputs do not have a node in the Project Explorer.