Database Lookups

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
Database Lookups
Friday, April 27, 2012PrintSubscribe
Many-to-Many Relationship in the Northwind database

If you have an existing many-to-many relationship in your database, you can turn it into a many-to-many field. In the Northwind database, there is a many-to-many relationship between tables EmployeeTerritories, Employees, and Territories.

An employee can be assigned to several territories, but these territories are not exclusive to an employee. Each employee can be linked to multiple territories, and each territory can be linked to multiple employees.

Employees, Territories, and EmployeeTerritories tables and relationships

On the Employees page of a Northwind web application, a separate child data view underneath the master record shows a list of territories associated with the selected employee.

Employee Territories data view showing the Territories for the selected Employee record

Let’s display these territories as a comma separated list on the master employee record, and allow end users to select territories for each employee using a check box list style of presentation.

Start Code On Time web application generator and activate the Project Designer. In the Explorer, switch to the Controllers tab. Right-click on Employees / Fields node and select New Field.

New Field for Employees controller

Give this field the following settings:

Property Value
Name Territories
Type String
Allow null values True
The value of this field is computed at run-time by SQL expression True
SQL Formula
NULL
Label Territories
Items Style Check Box List
Items Data Controller Territories
Data Value Field TerritoryId
Data Text Field Territory Description
Target Controller EmployeeTerritories

Press OK to save the field. Next, we’ll need to bind the field to each view.

At the top of the page, switch to the Data Fields tab.

'New Data Field' for Territories field

On the action bar, press New | New Data Field. Give this data field the following settings:

Property Value
View editForm1
Category Employees
Columns 5

Press OK to save the data field. In the Explorer, double-click on Employees / Fields / Territories field node.

Territories field in the Employees data controller

Create another data field with the following settings:

Property Value
View createForm1
Category Employees
Columns 5

On the tool bar, press Browse to generate the application. It will open in your default web browser. Navigate to the Employees page, and select an employee. You will see a comma separated list of territories that belong to the employee.

Comma separated list of territories for the selected Employee record

If you edit the employee, you will see a check box list of all options.

Check box list of all Territories in edit mode of Employees form

Friday, April 27, 2012PrintSubscribe
Using Check Box List for New Many-to-Many Relationship

The “Check Box List” lookup item style can be used to enter multi-value or many-to-many fields.

In the Multiple Value Field tutorial, we created a Shipping Methods field in the Shippers table that stored a comma separated list of values. This may be sufficient for some people, but it would be standard operating procedure to normalize this list into a separate table in order to store the values externally.

Let’s create a separate table by the name of ShipMethods, and a table to store the many-to-many relationship called ShippersShipMethods.

In the Object Explorer, right-click on Databases / Northwind / Database Diagrams and select New Database Diagram. Select Yes to install diagram support in the database.

When the Add Table screen opens, highlight Shippers and press Add.

Add 'Shippers' table to diagram

Press Close to close the screen. Click on the Shippers table. Mouse over the Table View property, and change it to Standard.

Right-click on white space in the diagram and press New Table. Give the table the name of “ShipMethods”. Press OK to create a table with this name.

Enter 'ShipMethods' table name

Give this table the following fields:

Primary Key? Column Name Data Type Allow Nulls
Yes ShipMethodID int No
  ShipMethodName nvarchar(50) No

Highlight the ShipMethodID column. In the Properties window, change (Is Identity) to “Yes”.

Create another table with the name of “ShippersShipMethods”.

Enter 'ShippersShipMethods' table name

Give this table the following fields:

Primary Key? Column Name Data Type Allow Nulls
Yes ShipperID int No
Yes ShipMethodID int No

Drag the ShipperID column from ShippersShipMethods to Shippers table. Keep the default Relationship name and press OK twice to save the relationship.

Drag the ShipMethodID column from ShippersShipMethods to ShipMethods table. Press OK twice to save.

Save this diagram to apply the changes. Your diagram should look like the one below.

Shippers, ShipMethods, and ShippersShipMethods table relationship

Start Code On Time web application generator, click on the project name, and select the Refresh option. Toggle the checkboxes next to the tables dbo.ShipMethods, dbo.ShippersShipMethods, and the controller Shippers. Press Refresh, and press Yes to confirm the operation.

Refresh the ShipMethods, Shippers, ShippersShipMethods tables

When the Refresh is complete, select the Design option on the Summary page.

In the Project Explorer, switch to the Controllers tab. Right-click on Shippers / Fields node and select New Field.

New Field option for Shippers controller

Give this field the following settings:

Property Value
Name ShipMethods
Allow Null Values True
The value of this field is computed at run-time by SQL Expression True
SQL Formula
NULL
Label Ship Methods
Items Style Check Box List
Items Data Controller ShipMethods
Data Value Field ShipMethodID
Data Text Field ShipMethodName
Target Controller ShippersShipMethods

Press OK to save the field. In the Project Explorer, right-click on Shippers / Views / editForm1 / c1 – Shippers category node and select New Data Field.

New Data Field in 'editForm1'

Give this data field the following settings:

Property Value
Field Name ShipMethods
Columns 3

Press OK to save the data field. Right-click on Shippers / Views / createForm1 / c1 – New Shippers category node and choose New Data Field.

New Data Field in 'createForm1'

Give this data field the following settings:

Property Value
Field Name ShipMethods
Columns 3

Press OK to save the data field. Let’s display a read-only list of fields in the grid view as well. Right-click on Shippers / Views / grid1 view node and select New Data Field.

New Data Field for 'grid1'

Give this data field the following settings:

Property Value
Field Name ShipMethods
Columns 3
Values of this field cannot be edited Yes

Press OK to save the data field. On the tool bar, select Browse to generate the web application.

When it opens in your default web browser, navigate to the Ship Methods page. Create three new shipping methods:

Ship Method Name
Land
Air
Sea

Three records created in Ship Methods table

Next, navigate to Shippers page. You will see all shippers have “N/A” Ship Methods. Edit a record, and a check box list will appear with the available options.

Three Ship Methods options presented as check box list

Select a few ship methods for each shipper. When not in edit mode, the check box list will be replaced with a comma separated list of values. The data field on the grid view will stay in read only mode when a record is being edited.

Ship Methods shown as comma separated list in grid view

Tuesday, April 24, 2012PrintSubscribe
Displaying a Check Box List

If you need to store multiple values in the same field, then set its items style to Check Box List. The values will be stored as a comma-separated list, but rendered as a check box list of all available options when in edit mode.

Let’s introduce such a field in the Northwind database.

Run Microsoft SQL Server Management Studio and right-click on Databases / Northwind / Tables / dbo.Shippers. Select Design option.

Design Shippers table in Microsoft SQL Server Management Studio

Add a new field with the following properties.

Column Name Data Type Allow Nulls
ShipMethods nvarchar(200) Yes

'ShipMethods' field added to Shippers table

Save the table, and refresh settings of the Northwind web application. Make sure to select the Shippers in the list of data controllers in the Refresh dialog.

Click Design option to activate the Project Designer.

In the Project Explorer, switch to the Controllers tab. Select the Shippers / Fields / ShipMethods field node.

New 'ShipMethods' field in Shippers controller

Change the following setting:

Property New Value
Items Style Check Box List

Press OK to save the field.

In the Project Explorer, right-click on the ShipMethods field, and select Show Value/Text Items.

'Show Value/Text Items' option in Code On Time Project Explorer

On the action bar, press New | New Item. Create three new items with the following properties:

Value Text
Ground Ground
Air Air
Sea Sea

Three new data items for field

On the tool bar, press Browse to generate the application. The application will open in your default web browser. Navigate to the Shippers page.

The ship methods for each shipper will currently say “N/A”. If you edit a shipper, you will see the lookup items presented in a check box list. When you save, your choices will be saved in a comma separated list.

Check Box List being used for 'Ship Methods' field

You may also consider creating a many-to-many relationship field for Ship Methods.