Designer

Labels
AJAX(112) App Studio(9) 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(178) 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(184) 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(3) 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
Designer
Sunday, July 1, 2012PrintSubscribe
Working with Controllers

The Controllers tab of the Project Explorer displays a list of all controllers in the project. Each controller contains commands, fields, views, actions, and business rules.

Controllers tab in the Project Explorer.

Creating a Controller

Controllers can be created by clicking on the New Controller icon on the Project Explorer toolbar.

New Controller icon on the toolbar of the Project Explorer.

The New Data Controller form will open in the Project Browser window. Enter a name and press OK to create the controller.

Controllers that have no command are displayed with a different icon.

New controller created without a command display this icon.

Cloning a Controller

A clone of a controller can be made by using the context menu option “Clone”.

Clone context menu option for Customers controller.

Confirm the operation, and the controller will be cloned. All commands, fields, views, actions, and business rules will be exactly the same. If the baseline of the original controller has changed, then the cloned controller will be affected as well. A cloned controller is a fork in the development lifecycle of the original. You can create as many clones as you want.

Customers1 is a cloned controller of Customers.

Deleting Controllers

Controllers can be deleted by using the context menu option “Delete”, or using the Delete keyboard shortcut. Deleting a controller will also delete all referencing data views.

Delete Customers and Customers1 controllers.

Renaming Controllers

Controllers can be renamed using the context menu option “Rename”, or using the F2 keyboard shortcut. Renaming a controller will change corresponding references of the data views.

Controller context menu option 'Rename'.

Pasting Controllers

When a controller is copied and pasted on a page, then a new data view from this controller will be added in a new container at the bottom of the page.

Paste command on Customers page.     Customers view pasted in a new container on the Customers page.

When a controller is pasted onto a container, a new data view will be added to the bottom of the target container.

Paste context menu option for container1 on Employees page.     Customers view pasted at the bottom of container1.

Multiple data controllers can be copied onto pages and containers if necessary.

Saturday, June 30, 2012PrintSubscribe
Action “Client Script”

Client Script actions allow execution of arbitrary JavaScript code. For example, an action with command name Client Script can select a page of data that contains a specific record in response to user actions. This example takes advantage of automatic tracking of selected records supported by the application framework.

The Employees table of the Northwind sample has a foreign key column ReportsTo that references the table itself. Code On Time generator automatically creates a master-detail relationship on the Employees page. Let’s configure an action on the Employees data controller to select a specific record in the master view.

Employees page with Employees master and child data views.

There are two data views on the Employees page hooked to the Employees controller. Let’s tag the top view as a “master list” of employees.

Start the Project Designer. In the Project Explorer, double-click on Employees / container1 / view1 node.

View1 on Employees page.

Change the following properties:

Property New Value
Tag MasterList
Page Size 3

Press OK to save the data view.

Next, add an action to perform synchronization of the master list with a specific EmployeeID. Right-click on Customers / container1 / view1 / Actions / ag1 (Grid) node, and select New Action.

New Action in ag1 action group of Employees controller.

Give this action the following properties:

Property Value
Command Name Client Script
Command Argument
Web.DataView.find('MasterList', 'Tag').sync(this.fieldValue('EmployeeID'))
Header Text Show in Master List

Press OK to save the action. On the toolbar, select Browse button.

On the Employees page, select Andrew Fuller from the list. An Employees child data view will open underneath. Activate the context menu for Steven Buchanan and select Show in Master List option.

Fuller employee selected in the master Employees data view. Context menu option 'Show in Master List' selected for Buchanan employee in the child data view.

The master data view will move to the page that contains Steven Buchanan with the corresponding row selected. The child data view will refresh showing employees reporting to Mr. Buchanan.

Using the context menu for Robert King, select Show in Master List.

Buchanan focused in the master data view. 'Show in Master List' context menu option for employee King in the child data view.

Robert King will be selected on the third page of the master view.

King employee focused in the master data view.

Wednesday, June 27, 2012PrintSubscribe
Converting Field Values with C# and Visual Basic

The CustomerID field from the Customers controller should have all values formatted in uppercase.

CustomerID field of the Customers controller.

Let’s create a business rule in C# or Visual Basic to convert all user input to uppercase.

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

Customers controller in the Project Explorer hierarchy.

Change the Handler property:

Property New Value
Handler CustomersRule

Press OK to save the controller. In the Project Explorer, double-click on Customers / Fields / CustomerID field node.

CustomerID field of Customers controller.

Make the following changes:

Property New Value
The value of this field is calculated by a business rule expression. True
Context Fields CustomerID

Exit the designer and generate the application.

Click on the project name, and press Design. Visual Studio will open the project.

In the Solution Explorer, double-click on ~\App_Code\Rules\CustomersRule.cs(vb) file.

CustomersRule business rule file in the Solution Explorer.

Replace the sample code base with the following:

C#:

using System;
using System.Data;
using System.Collections.Generic;
using System.Linq;
using MyCompany.Data;

namespace MyCompany.Rules
{
    public partial class CustomersRule : MyCompany.Data.BusinessRules
    {
        [ControllerAction("Customers", "Insert", ActionPhase.Before)]
        [ControllerAction("Customers", "Update", ActionPhase.Before)]
        [ControllerAction("Customers", "Calculate", ActionPhase.Execute)]
        public void CalculateCustomerID(string customerID)
        {
            UpdateFieldValue("CustomerID", customerID.ToUpper());
        }
    }
}

Visual Basic:

Imports MyCompany.Data
Imports System
Imports System.Collections.Generic
Imports System.Data
Imports System.Linq
Namespace MyCompany.Rules
    Partial Public Class CustomersRule
        Inherits MyCompany.Data.BusinessRules
        <ControllerAction("Customers", "Insert", ActionPhase.Before)>
        <ControllerAction("Customers", "Update", ActionPhase.Before)>
        <ControllerAction("Customers", "Calculate", ActionPhase.Execute)>
        Public Sub CalculateCustomerID(ByVal customerID As String)
            UpdateFieldValue("CustomerID", customerID.ToUpper())
        End Sub
    End Class
End Namespace

Save the file, and switch to the web application. Navigate to the Customers page, and create a new record. Type in lowercase letters for Customer# field.

CustomerID field with lowercase letters.

Press Tab or click on another area of the page. The text in Customer# will be converted to uppercase.

The lowercase text in CustomerID field has been converted to uppercase.

The same business logic can be implemented with the help of SQL Business Rules.