Database Lookups

Labels
AI(13) AJAX(112) App Studio(10) 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(3) 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) Digital Workforce(3) DotNetNuke(12) EASE(20) Email(6) Features(101) Firebird(1) Form Builder(14) Globalization and Localization(6) HATEOAS(4) How To(1) Hypermedia(3) Inline Editing(1) Installation(5) JavaScript(20) Kiosk(1) Low Code(3) Mac(1) Many-To-Many(4) Maps(6) Master/Detail(36) Micro Ontology(5) 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(185) Reports(48) REST(29) RESTful(31) 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
Database Lookups
Monday, April 16, 2012PrintSubscribe
Giving Instructions on a Lookup Window

Lookup windows have descriptive text that can be used to explain to end users what is supposed to be selected.

Let’s use a sample Northwind web application. Navigate to the Orders page. On the action bar, press New Orders. In the first data field, click on the (select) link.

Customer Company Name lookup activation link in New Orders form

A lookup window will open. The generic description for this lookup is “This is a list of customers”.

Customer ID lookup window with default description text

Let’s change this description to be more specific and understandable for the end user in this lookup context.

Start the web application generator, click on the project name, and press Design. In the Project Explorer, switch to Controllers tab. Double-click on Orders / Fields / CustomerID node.

Customer ID field under Controllers tab of Code On Time Project Explorer

Scroll down to the Lookup section. In the Lookup window description property, enter:

Please select the customer placing this order.

Lookup window description property populated

Press OK to save the field. On the tool bar, press Browse to generate the application and open it in your default web browser.

Navigate to the Orders page. Create a new order, and open the lookup for Customer Company Name data field. The lookup window description is now matching the text provided earlier.

New lookup window description displayed in lookup window

Sunday, April 15, 2012PrintSubscribe
Automatic Display of Lookups

In some situations, you may want to streamline selection of lookup values when users are entering or editing data. For this purpose, lookup fields in Code On Time web applications have the “Activate If Blank” property. If this property is enabled, whenever a user opens an edit view and the lookup is blank, then the lookup window will activate automatically.

Let’s use an example. Create a sample Northwind application. Select the project name on the start page, and press Design.

In the Project Explorer, switch to the Controllers tab. Double-click on Orders / Fields / CustomerID node.

CustomerID field in Code On Time Project Explorer

Scroll down and toggle the checkbox next to “Activate If Blank”.

'Activate If Blank' property enabled in Code On Time Designer

Press OK to save the field.

Enable “Activate If Blank” for EmployeeID and ShipVia fields using the same method. Make sure to save each field. These fields will be activated in the order of the data fields in the view.

Select Browse on the tool bar to generate and open the application in your default web browser. Navigate to the Orders page. On the action bar, press New Orders.

The Customer ID lookup will automatically be activated, as the field is blank.

CustomerID lookup window activated when the field value is blank

Select a customer, and the Employee ID lookup will pop up right away.

Employee ID lookup window activated when the field value is blank

When you select an employee, then the Ship Via lookup will appear.

Ship Via lookup window activated when the field value is blank

This behavior will occur when you edit or create order records that have blank lookup fields, including inline edit or new modes in grid views.

Saturday, March 31, 2012PrintSubscribe
Dynamic Creation of Static Lookup Items

Suppose that you want to change a field that renders as a textbox into a static drop down list of items, such as the Reorder Level field in the Products controller of the Northwind sample. By default, users can enter any numeric value in the field.

'Reorder Level' field showing numbers and as a textbox

Let’s change this by offering a drop down list of predefined items, and have the item values displayed as words.

You can do this at design time, as explained in Creating Static Lookup Items. However, there may be other situations when you don’t want to change the physical properties of the application. For example, the static items maybe displayed only to users in specific roles. For this purpose, you can use virtualization node sets.

First, you will need to enable shared business rules.

Next, switch to the web application generator, select the project name, and press Develop. This will open the project in Visual Studio.

Develop button in Code On Time web application generator

In the Solution Explorer, navigate to ~/App_Code/Rules/SharedBusinessRules.cs(vb). The code will need to enable virtualization if the controller name is “Products”. The virtualized Products controller will have a modified ReorderLevel field. The Items Style will be changed to “Drop Down List”, and it will have the following static items:

Value Text
0 Zero
5 Five
10 Ten
15 Fifteen
20 Twenty
25 Twenty-five
30 Thirty

Place the code into your SharedBusinessRules.cs(vb) file:

C#:

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

namespace MyCompany.Rules
{
    public partial class SharedBusinessRules : MyCompany.Data.BusinessRules
    {
        public override bool SupportsVirtualization(string controllerName)
        {
            if (controllerName == "Products")
                return true;
            return false;
        }

        protected override void VirtualizeController(string controllerName)
        {
            if (controllerName == "Products")
            {
                NodeSet().SelectField("ReorderLevel")
                    .SetItemsStyle("DropDownList")
                    .CreateItem(0, "Zero")
                    .CreateItem(5, "Five")
                    .CreateItem(10, "Ten")
                    .CreateItem(15, "Fifteen")
                    .CreateItem(20, "Twenty")
                    .CreateItem(25, "Twenty-five")
                    .CreateItem(30, "Thirty");
            }
        }
    }
}

Visual Basic:

Imports MyCompany.Data
Imports System
Imports System.Collections.Generic
Imports System.Data
Imports System.Linq

Namespace MyCompany.Rules

    Partial Public Class SharedBusinessRules
        Inherits MyCompany.Data.BusinessRules

        Public Overrides Function SupportsVirtualization(controllerName As String) As Boolean
            If (controllerName = "Products") Then
                Return True
            Else  
Return False End If End Function Protected Overrides Sub VirtualizeController(controllerName As String) If (controllerName = "Products") Then NodeSet().SelectField("ReorderLevel") _ .SetItemsStyle("DropDownList") _ .CreateItem(0, "Zero") _ .CreateItem(5, "Five") _ .CreateItem(10, "Ten") _ .CreateItem(15, "Fifteen") _ .CreateItem(20, "Twenty") _ .CreateItem(25, "Twenty-five") _ .CreateItem(30, "Thirty") End If End Sub End Class End Namespace

Save this file and run the web application. You will see that the Products controller now displays Reorder Level filter options as words, and the field is rendered as a drop down list.

Reorder Level field in Products now showing static items as words, and as a drop down list