Master/Detail

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(8) OAuth Scopes(1) OAuth2(11) Offline(20) Offline Apps(4) Offline Sync(5) Oracle(10) PKCE(2) PostgreSQL(2) PWA(2) QR codes(2) Rapid Application Development(5) Reading Pane(2) Release Notes(179) Reports(48) REST(29) RESTful(29) RESTful Workshop(15) RFID tags(1) SaaS(7) Security(80) 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
Master/Detail
Saturday, February 1, 2014PrintSubscribe
Mobile Database Apps With Responsive Design

Code On Time is pleased to announce immediate availability of a significant revision of the Mobile Client in applications created with Code On Time database application generator. It allows creating mobile database apps with responsive design.

See the latest demo of the mobile client at http://demo.codeontime.com

Release 8.0.3.0 includes the following features and enhancements that cover mobile and desktop functionality:

  • Mobile client enables applications with a sophisticated responsive design.
     
  • Mobile client supports advanced formatting and presentation of lists and forms. Tutorials explaining data field tags used for list formatting are coming out this week.
     
  • Mobile client supports multi-field copy and performs processing of context fields.
     
  • Mobile client supports dedicated login pages. We recommend generated a brand new app with a dedicated login page and copying the “mobile” contents of the Login.ascx markup to your existing dedicated page. The tutorial covering dedicated login will be out this week.
     
  • Mobile client supports confirmation controllers. Try it out here.
     
  • Mobile client works correctly with default values assigned with RowBuilder methods and SQL and Code business rules.
     
  • Mobile client supports native input for date, date-time, numbers, URLs, email, and phone.
     
  • Mobile client scopes page-specific user settings by application and user name.
     
  • Switch "_mobile=true" and "_mobile=false" in the URL will refresh the page after switching mobile/desktop client on desktop devices instead of redirecting to the application home page.
     
  • App generator puts project name in the page header if a header is not provided.
     
  • App generator records project name and type in the root element of DataAquarium.Project.xml.
     
  • Desktop client will correctly display line breaks in fields with Text Mode = "Notes" when rendered in modern browsers.
     
  • Idle user detection configuration will affect the forms authentication timeout in web.config of a generated app by making it five minutes longer than the idle user timeout.
     
  • Unauthorized exception raised when user looses identity due to timeout is enhanced with recommendation to enable idle user detection. The exception will remain in place to prevent unauthorized requests to data controllers.
     
  • Idle status of a user is now checked every minute instead of every 3 minutes.
     
  • Desktop client will not fail when a modal form is closing and control is passed to a grid view with "asc" or "desc" in multi-field sort expressions.

We expect that the release at the end of February 2014 will include mobile support for most of the following features:

  • Blob upload/download
  • Calculated fields
  • Conditional visibility of categories and fields
  • Conditional read-only fields
  • Filtering capabilities
  • Mobile advanced search bar
  • “Check Box List” lookup style for many-to-many fields with “basket” functionality
  • Dedicated presentation for Auto Complete, Check Box lookup styles.
  • Multiple selection of list items
  • Tabular display of list items

We are preparing a mobile version of Order Form sample.

The Roadmap 2014 will be published shortly with details about http://cloudontime.com.

Saturday, January 19, 2013PrintSubscribe
“Filter Field” Property for Data Views

The Filter Field property specifies the foreign key field on the child data view that will be filtered in a master-detail relationship.

Drag & drop techniques can be used in order to automatically configure the relationship. For example, the picture below shows how to configure CustomerID as the filter field between Customers and Orders data views.

Dropping CustomerID field onto 'view1' to create a master-detail relationship.     Master-detail relationship created between view1 and view2.

However, when the master data view has a compound primary key, the relationship must be configured manually.

Let’s add a Notes table to the database that will have a compound primary key that refers to OrderID and ProductID.

Notes table diagram.

The table will then be added to the project. A Notes data view will be added to the default Orders page in order to compose a three-level master-detail relationship.

Creating the Notes Table

Start SQL Server Management Studio and connect to your database. In the Object Explorer, right-click on Databases / Northwind node, and press New Query.

Creating a new query for Northwind database.

Paste in the following script:

create table dbo.Notes(
    IDofOrder int not null,
    IDofProduct int not null,
    Notes ntext not null,
    Created datetime not null,
     constraint PK_Notes primary key clustered
    (
        IDofOrder asc,
        IDofProduct asc
    )
)

alter table dbo.Notes add constraint FK_Notes_OrderDetails_OrderID foreign key (IDofOrder)
references dbo.Orders (OrderID)

alter table dbo.Notes add constraint FK_Notes_OrderDetails_ProductID foreign key (IDofProduct)
references dbo.Products (ProductID)

Click on Execute on the toolbar to run the query.

Adding the Table to the Project

Start the web application generator. Click on the project name, and press Refresh. Check the box next to dbo.Notes table to add it to the project, and press Refresh.

Adding the Notes table to the project.

Adding Notes Data View

Right-click on Notes controller node, and press Copy.

Copying the Notes controller.

Switch back to the Pages tab. Right-click on Customers / Orders page node, and press Paste. The data controller will be instantiated as a data view in a new container.

Pasting the Notes controller onto Orders page.     Notes controller instantiated as a view on the page.

Configuring Master-Detail Relationship

Double-click on Customers /Orders / c101/ view4(Notes) node.

'View4' view on the Orders controller.

Make the following changes:

Property New Value
View grid1
Text Notes
Filter Source view3
Filter Field #1 IDofOrder
Filter Field #2 IDofProduct
Auto Hide Container

Press OK to save.

Viewing the Results

On the Project Designer toolbar, press Browse. Navigate to the Orders page. Select an order from the list, and then select an order detail. The Notes data view will appear underneath, filtered by OrderID and ProductID.

Notes data view is being filtered by OrderID and ProductID of Order Details view.Notes data view is being filtered by OrderID and ProductID of Order Details view.

Monday, January 14, 2013PrintSubscribe
“Filter Source” Property for Data Views

The Filter Source property specifies the master data view that will pass down a filtering parameter to the child data view. The child data field that will be filtered is declared in the Filter Field property, and must be specified in addition to Filter Source in order for master-detail relationships to work. When the master data view has a compound primary key, up to 5 Filter Fields must be specified in order.

Let’s configure a master-detail relationship between Customers and Orders controllers in the Northwind database.

Adding the Page

Start the Project Designer. On the Project Explorer toolbar, click on the New Page icon.

Adding a new page to the project.

Assign a name:

Property Value
Name Customers and Orders

Press OK to save. Switch to the Controllers tab. Select Customers controller node. While holding Ctrl key, select Orders node. Right-click on Orders, and press Copy.

Copying the 'Orders' and 'Customers' controllers.

Switch back to the Pages tab. Right-click on Customers and Orders node, and press Paste. The two controllers will be instantiated as data views in separate containers.

Pasting the copied controllers onto 'Customers and Orders' page node.     'Customers' and 'Orders' data views have been instantiated as data views in separate containers.

Configuring Master-Detail Relationship

However, these data views are currently independent from each other – a master-detail relationship must be configured.

Expand Customers and Orders / c102 / view2 (Orders) / grid1 node. Drop CustomerID –> CustomerCompanyName data field node onto Customers and Orders / c101 / view1 (Customers) node.

Dropping 'CustomerID' data field onto 'view1'.     A master-detail relationship has been configured between 'view2' and 'view1'.

Because CustomerID field is matched to a similar field in Customers controller, a master-detail relationship is automatically configured. Filter Source is changed  to “view1”, and Filter Field is changed to “CustomerID”. In addition, the Page Size has been changed to “5”, Auto Hide has been changed to “Container”, Show Modal Forms has been enabled, and Text is changed to the name of the controller, “Orders”.

On the Project Designer toolbar, press Browse. When generation is complete, navigate to the Customers and Orders page.

The page will initially only show a list of customers.

A list of customers is displayed.

When a row is selected, a list of orders will appear underneath. These orders will be filtered by the value of “CustomerID” field in the selected row of “view1” data view (Customers).

A list of orders filtered by 'CustomerID' is displayed below.

Note that the filtered “CustomerID” data field in Orders view is hidden in order to prevent display of duplicate data. An SQL action may be implemented if the hidden foreign key field needs to be changed.