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
Saturday, October 20, 2012PrintSubscribe
Order Form Sample–Part 11

When creating a new order, the fields ShippedDate, ShipVia, and Freight are not known. Let’s remove these fields from the createForm1 view.

Switch back to the Designer, and expand Order Form / c100 / view1 / createForm1 / c1 – New Orders node. While holding Shift key, highlight the fields ShippedDate, ShipVia, and Freight. Right-click and press Delete option in the context menu.

Deleting three data fields from 'createForm1' view.

Press Browse and wait for the application to load. If you create a new order using the Order Form, you will see that the data fields have been removed.

The ShippedDate, ShipVia, and Freight fields have been removed from the new orders form.

Saturday, October 20, 2012PrintSubscribe
Order Form Sample–Part 10

When creating a new order, the order date should default to the current date.

There are three types of business rules that can be used for this purpose. Choose any one of the suggested implementations below.

SQL Business Rule

Switch back to the Project Designer. In the Project Explorer, open the Controllers tab. Right-click on Orders / Business Rules node, and press New Business Rule option.

New Business Rule context menu option for Orders controller.

Specify the following values:

Property New Value
Type SQL
Command Name New
Phase Execute
Script
set @OrderDate = getdate()

Press OK to save the business rule. Press Browse in the top left corner, and wait for the page to load. Navigate to Order Form, and create a new order. Select a customer and employee. You will see that the current date has been inserted into the Order Date field.

Order Date has been populated with the current date.

Code Business Rule

C# or Visual Basic may be used as an alternative to SQL.

Switch back to the Project Designer.

If you have implemented the business rule above, then delete it. In the Project Explorer, right-click on Orders / Business Rules / New (SQL / Execute) – r100 node, and press Delete.

Deleting the SQL business rule.

Create a “code” business rule with the following properties:

Property New Value
Type C# / Visual Basic
Command Name New
Phase Execute

Press OK to save.

Code business rules cannot be directly edited using the Project Designer, and do not exist until the project has been regenerated.

On the toolbar, press Browse to regenerate the project.

When complete, right-click on Orders / Business Rules /  New (Code / Execute) – r100 node, and press Edit Rule in Visual Studio.

Edit Rule in Visual Studio context menu option available on the code business rule node in the Project Explorer.

The rule file will be opened in Visual Studio. The entire class definition and parameters of the business rule method are already defined. Replace the body of the rule with the UpdateFieldValue method:

C#:

using System;
using MyCompany.Data;

namespace MyCompany.Rules
{
    public partial class OrdersBusinessRules : MyCompany.Data.BusinessRules
    {
        [Rule("r100")]
        public void r100Implementation(
                    int? orderID, 
                    string customerID, 
                    string customerCompanyName, 
                    int? employeeID, 
                    string employeeLastName, 
                    DateTime? orderDate, 
                    DateTime? requiredDate, 
                    DateTime? shippedDate, 
                    int? shipVia, 
                    string shipViaCompanyName, 
                    decimal? freight, 
                    string shipName, 
                    string shipAddress, 
                    string shipCity, 
                    string shipRegion, 
                    string shipPostalCode, 
                    string shipCountry)
        {
            UpdateFieldValue("OrderDate", DateTime.Now);
        }
    }
}

Visual Basic:

Imports MyCompany.Data
Imports System

Namespace MyCompany.Rules

    Partial Public Class OrdersBusinessRules
        Inherits MyCompany.Data.BusinessRules

        <Rule("r100")> _
        Public Sub r100Implementation( _
                    ByVal orderID As Nullable(Of Integer), 
                    ByVal customerID As String, 
                    ByVal customerCompanyName As String, 
                    ByVal employeeID As Nullable(Of Integer), 
                    ByVal employeeLastName As String, 
                    ByVal orderDate As Nullable(Of DateTime), 
                    ByVal requiredDate As Nullable(Of DateTime), 
                    ByVal shippedDate As Nullable(Of DateTime), 
                    ByVal shipVia As Nullable(Of Integer), 
                    ByVal shipViaCompanyName As String, 
                    ByVal freight As Nullable(Of Decimal), 
                    ByVal shipName As String, 
                    ByVal shipAddress As String, 
                    ByVal shipCity As String, 
                    ByVal shipRegion As String, 
                    ByVal shipPostalCode As String, 
                    ByVal shipCountry As String)
            UpdateFieldValue("OrderDate", DateTime.Now)
        End Sub
    End Class
End Namespace

Save the file. If you create a new order in the web application, the Order Date will be populated with the current date.

JavaScript Business Rule

Business rules can also be written in JavaScript if default values can be calculated entirely on the client.

If you created one of the above business rule implementations, delete it now.

Deleting the code business rule from the Orders controller.

Create another business rule with this configuration:

Property New Value
Type JavaScript
Command Name New
Phase After
Script
[OrderDate] = new Date();

Note that the business rule must execute after the command “New”, because the record is not instantiated on the client until after the command is executed by the application framework on the server.

Save the file. The business rule will work as shown in the illustration at the top.

Friday, October 19, 2012PrintSubscribe
Order Form Sample–Part 9

When creating a new order, the first item that will be entered will probably be the customer. Due to the denormalized nature of Northwind database, the customer information is stored in the table Customers, and the Orders table references a customer via a foreign key field CustomerID. Upon creating a new order, it would be convenient if the user were prompted to either select an existing customer or create a new one. When the customer is selected, the shipping information should be copied from the customer to the order.

Switch back to the Designer. In the Project Explorer, double-click on Order Form / c101 / view1 / grid1 / CustomerID –> CustomerCompanyName / CustomerID (String(5)) field reference node.

CustomerID field reference node under the CustomerID data field of grid1 view.

Enter the following settings for CustomerID:

Property New Value
Data Value Field CustomerID
Data Text Field CompanyName
Copy

ShipName=ContactName
ShipAddress=Address
ShipCity=City
ShipRegion=Region
ShipPostalCode=PostalCode
ShipCountry=Country

Search on Start true
Activate If Blank true
Lookup Window Description Select a customer.

Press OK to save the field.

When the customer has been selected, we’d want the application to prompt the user to select the employee handling the order. To make this part easier, let’s add photos of each employee in the lookup.

In the Project Explorer, double-click on Order Form / c101 / view1 (Orders) / grid1 / EmployeeID –> EmployeeLastName / EmployeeID (Int32) field reference node.

EmployeeID field reference node under the EmployeeID data field of grid1 view.

Change the following settings for EmployeeID:

Property New Value
Activate If Blank true
Lookup window description Select an employee.

Press OK to save the record.

Switch to the Controllers tab at the bottom of the Project Explorer. Expand the Fields and Views nodes of Employees controller. Drag and drop Employees / Fields / Photo (Byte[]) field node onto Employees / Views / grid1 view node.

Dropping the Photo field node onto 'grid1' view node.     A Photo data field has been created in 'grid1' view.

On the Project Designer toolbar, press Browse, and wait for the application to load. Navigate to the Order Form page, and press New Orders on the action bar. You will be prompted to select a customer.

When a new order is created, a lookup will open that will prompt selection of a customer.

When you search for and select a customer, you will then be prompted to select an employee. You can see the photo for each employee as well.

Lookup screen prompting selection of an employee. The photo for each employee is displayed.

Select the employee, and you will see that the shipping fields have been populated from the selected customer.

New Orders form with Customer and Employee selected. Shipping information from the customer has been copied over.