Master/Detail

Labels
AJAX(112) Apple(1) Application Builder(242) Application Factory(207) ASP.NET(95) ASP.NET 3.5(45) ASP.NET Code Generator(72) ASP.NET Membership(28) Azure(18) 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(11) 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) DotNetNuke(12) EASE(20) Email(6) Features(99) Firebird(1) Form Builder(14) Globalization and Localization(6) Hypermedia(2) Installation(4) 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(15) OAuth(5) OAuth Scopes(1) OAuth2(6) Offline(14) Oracle(10) PKCE(1) PostgreSQL(2) QR codes(2) Rapid Application Development(5) Reading Pane(2) Release Notes(163) Reports(48) REST(26) RESTful(21) RESTful Workshop(13) RFID tags(1) SaaS(7) Security(75) SharePoint(12) SPA(5) SQL Anywhere(3) SQL Server(26) Stored Procedure(4) Teamwork(15) Tips and Tricks(81) Tools for Excel(2) Touch UI(93) Transactions(5) Tutorials(183) Universal Windows Platform(3) User Interface(331) Video Tutorial(37) Web 2.0(100) Web App Generator(101) Web Application Generator(607) Web Form Builder(39) Web.Config(9) Workflow(28)
Archive
Blog
Master/Detail
Tuesday, August 4, 2020PrintSubscribe
Master-Detail Models, Icon Fonts, Developer Mode for v9
Release 8.9.6.0 introduces data models with master-detail fields, outlined and regular icon fonts, support for 3rd-party icon fonts, and the Developer Mode compatible with the upcoming Code On Time v9.

Library is Moved to The User Profile

Windows 10 maps the location of the [Documents] folder to the One Drive managed folder by default. This certainly helps the end users to synchronize their content across multiple devices. This also creates certain inconveniences for Code On Time developers, since the code generation library and project backup files are stored there. One Drive aggressively restores/backs up the files in the [Documents] folder and corrupts the the code generation library.  

Starting with this release the code generation library root folder is placed in the [User] folder instead. 

If you have [Documents]\Code OnTime folder on your computer then you will not be effected. You can transfer the code generation library to the new location by moving this folder to your user profile folder under c:\Users.

Master-Detail Data Models

Model builders now allows creating details. Detail is a connected child data model with a unique field name and optional custom label and tab. Details are available on the dedicated Master/Detail panel. 



Developer can navigate to the child data models and return back by select the masters. 

Each detail is implemented as a field with DataView type. Previously it was possible to create DataView fields in the Project Designer only. Today developers can instantly produce complex master-detail relationships on the stage of the data model implementation.

Do not create details in the models if you have defined the same DataView fields in the Project Designer. 

Do create details directly in the models if you need a data view field.

Icon Fonts

The up-to-date set of material icons is now included. Developers also have an option to choose "outlined" icons for the GUI of the project. Here is a sample of "outlined" icons in the project.
 

Enter the following in ~/touch-settings.json to activate the outlined look-and-feel.


Touch UI also makes it easy to use the 3rd party icon fonts in the apps. 

 

New Banner Area in GUI

It now possible to display a dedicated banner above the app on the page. It may look like this:
 
 
The following steps will need to be performed to enable the banner. 

First, enable the banner in ~/touch-settings.json.
 
 
Next create a script in ~/app/js folder and supply some content.
 
 
Use the banner to display the regulatory information or additional controls for your apps.

Developer Mode for v9

The new "Developer Mode" is now available directly in the apps. Select Developer Tools | Device option in the context menu of your app and choose the desired device and screen orientation.
 

Developer Tools options is visible only if your app is running on local host. If a device is selected then you will see your app sized to the physical device dimensions with the gaps surrounding the contents. The app is fully functional. 

The upcoming Code On Time v9 will feature the live Project Designer embedded directly into live applications. When activated, the new Project Designer will also enable the developer mode for your app. The designer will be overplayed on top of the application.

Reading Pane, Display Flow, and Community Forum

At the beginning of July our ten-year old community site has been shut down by the 3rd-party provider who owned and operated the software. We have retained the contents and are rebuilding the new community and support portal with our own Display Flow technology that was introduced for the first time in Kiosk UI (watch the part 4 or the  tutorial).

The software is implemented as Touch UI addon and brings many exciting features to the content management and presentation. The direct impact is the inclusion of Code Mirror for preview of code samples and Quill.js editor that will replace our Rich Text implementation starting with the next release.

Reading Pane is included in the new code base of Touch UI with this release. We still need to do some work and have a big place for the Preview Pane in the new community site.

Here is a little preview of how the new community and your own apps make look like:
  

Features and Bug Fixes


The following features, fixes, and enhancements are included in this release:
  • (Touch UI) Option navigation.dataControllers.enabled set to true in ~/touch-settings.json will intercept hyperlinks that have the data controller URL parameters and open the corresponding data controller view directly in the current page.
     
  • (Touch UI) Method $app.touch.show accepts syncWith property in the the option.  If the data controller is specified in syncWith and the data view activated with $app.touch.show is saved, then the corresponding controller data will be refreshed upon getting the focus back.
     
  • (Url Parameters) If data controller URL parameter interception is enabled with navigation.dataControllers.enabled in ~/touch-settings.json, then the _syncWith parameter in the URL will cause the views of the specified data controller to refresh upon return of focus
     
  • (Project Designer) Project revisions are injected in the Sync.*.xml files with the help of XML parser instead of regular expressions. Previously this has caused corruption of logs when certain conditions were met.
     
  • (Command Line) Command line code generation option "-Objects" allows specifying alternative names for the generated models/controllers/pages. For example, the following will create models/controllers/pages with the names "Catalog", "Vendors", and "Categories"
     
    codeontime.exe -Generate c:\apps\app1 -Objects "Products=Catalog,Suppliers=Vendors,Categories"
     
  • (Command Line) App generator supports command line option "-Controllers" specified with "-Generate" command . This option will cause the app generator to rebuild the controllers from their models. This makes possible making changes to the model and having them incorporated in the data controllers during code generation. The app automatically deleted Controllers.Baseline.xml  and Controllers.Cache.xml when the option is specified. 
  •  
  • Start page of the app generate displays "Locate" link below the list of projects. Click on the link to see the location of the code generation library on your computer.
      
  • (Model Builder) Master-Detail data models are supports through "detail" fields.
     
  • C# code generator simplifies property assignments for the new object instances in the standard code base.  
     
  • Generated C# code wraps single if expressions in the else clause with curly brackets to ensure output consistent with the auto-format in Visual Studio.
     
  • Code generator replaces "tabs" with 4 spaces in both C# and VB.NET code output and trims the empty lines and line endings. 
     
  • (Framework) New implementation of Export performs retrieval of data in blocks of 1000 records for data Download and Export to Spreadsheet. Business rules are executed for every row just like when the data is retrieved for presentation on the pages.
     
  • (Framework)  Access duration for Export to Spreadsheet is controlled by the parameter export.rowset.accessTokenDuration, which can be specified optionally in ~/touch-settings.json.
     
  • (Framework) Class ApplicationServices allows creating a ticket with the explicitly specified access and refresh duration.
     
  • (Touch UI) Sidebar summary items are displayed with the correct background color with all theme accents. 
     
  • (Touch UI) Option ui.banner.height  in ~/touch-settings.json will allocate a "banner" area atop of the page. Developers can place arbitrary content in this area. The area is never obstructed by the GUI of the app. Custom content can be created in this are in start.app event triggered on the document. The banner can be located with #app-banner CSS selector.
      
  • (Touch UI) Import correctly handles lookup values and performs a case insensitive partial match of columns when the fields are mapped with the import data feed. 
     
  • (Kiosk UI) Kiosk mode can be enabled on specific pages only. Select the page in Project Designer and check Kiosk checkbox to enable kiosk mode on the page.
      
  • (Framework) Method IDataControllerGetPage includes DataView fields and virtual fields in the field and data type maps to prevent the exceptions when working with the data sets created by business rules
     
  •  (Touch UI) Includes up-to-date material icons as of 7/22/2020. Regular (Filled) and Outlined icons are now supported.
     
  • (Framework) Method SiteContentFile.ToString() return the correct full file name for the files retrieved with the wildcards in the name. 
     
  • (Client Library) Visible When and Read Only When expressions are displaying the diagnostic messages to help with the resolution of errors.
     
  • (Touch UI) Basket input displays the lookup button in the correct position next to the input when there are multiple lines of items.
     
  • (Touch UI) Basket items will not disappear when a duplicate item is selected.
     
  • (Touch UI) Lookup details will not be affected by the URL parameters.
     
  • (Touch UI) Method $app.touch.whenPageShown will wait for the document to acquire the "complete" state before the callback is executed.  This prevents the incorrect navigation history stack caused by "hash" changes in the callback of the method.
     
  • (Framework) Action "Confirm" will parse the list of controller names in the argument and send the form values as external filters to the matched data views. This may be useful when implementing Custom Search with multiple results presented to the user.
     
  • (Framework) URL Hashing issue is resolved.
     
  • (Reports) Microsoft Report Viewer 2019 is integrated in the application framework. 
      
  • (Touch UI) Setting ui.theme.icons set to outlined in ~/touch-settings.json and will force the app to use the "outlined" material icons in the app. The default option is "filled"
      
  • (Touch UI) Fixed incorrect rendering of cards in the map view.
     
  • (Touch UI) Added support for ui.iconFonts in ~/touch-settings.json. The name of the icon font in the settings provides the prefix for the icons. 
     
  •  App generator now uses TLS12 for SSL communications with the external sites.
     
  • (Touch UI) Property $app.touch.pageTransitionCallback allows specifying an instant "pageready" implementation for the reading pane.
     
  • (Touch UI) User interaction with the master of the reading pane performs delayed "vclick" triggered after the  "master" page is activated through navigation.
     
  • (Touch UI) Reading pane master and detail pages are correctly sized with "slide" transitions on physical and virtual screens.
      
  • (Touch UI) Reading Pane with support for resizing is integrated in the framework. Both horizontal and vertical splitting is supported.
      
  • (Touch UI) Fixed issued with the docking of forms on virtual screens.
      
  • (Touch UI) Removed references to the legacy panel/reading pane implementation. 

Sunday, August 5, 2018PrintSubscribe
Cloud On Time of OSX

Code On Time is pleased to announce Cloud On Time for OSX. Applications created with Code On Time will execute as native apps with optional offline/disconnected mode on Apple Mac family of devices. Cloud On Time for iOS is already available in Apple App Store and works with applications generated with Code On Time 8.7.5.0 and above. Become an expert developer of business apps for Apple platform in no time.

Cloud On Time app downloads the front end of your application directly to the device storage. If you application has Offline Sync Add-On, then the data is downloaded to the device during the front end installation. Cloud On Time app allows connecting multiple applications and provides native experience to the end users.  Application front end is automatically updated when changes are detected.

Application based on Touch UI running in native mode on OSX.Cloud On Time app provides the fastest pathway to native application development with Code On Time. There is no need to go through a lengthy approval process with major the App Stores. There is no need to learn mobile development for each of the platforms. Use Cloud On Time app to test your application in mobile mode or run your entire portfolio of business applications on it!

Soon we will be offering custom branded versions of Cloud On Time that you will be able deploy to the app stores. An account and developer subscription with each App Store will be required. The branded version of Cloud On Time will be wired to work only with your own application backend. The source code of branded app is generated and compiled on our servers. You will be required to submit the binary package to the app store on your own.

A single application created with Code On Time will work on any device with any form factor with optional offline/disconnected mode. Simply install Cloud On Time to your device and connect to the app. The same app will work in any modern web browser. Offline/disconnected mode is available only in Cloud On Time or custom branded apps.

Create complex master-detail forms that work in online and offline mode across a range of mobile devices and in modern web browsers.Cloud On Time app performs management of the front end files of your application on the device. End user can maintain multiple user accounts per application and switch between their accounts in seconds. Application front end files (HTML, JavaScript, CSS, Fonts) are loaded from your device in the native webview. Cloud On Time performs remote HTTP requests to the application backend via native API of the device. It also provides access to the device camera, storage, and more. The responsive nature of the front end will present your app in the best possible way on a tablet, phone, or when you are taking advantage of side-by-side application execution in modern mobile operating systems. Sophisticated data input controls are built-in.

Powerful data input in apps based on Touch UI requires no custom coding and works uniformly on all devices.Cloud On Time for Android is our next target with custom branded versions of Cloud On Time to follow. Stay tuned and subscribe to our newsletter!

Tuesday, June 12, 2018PrintSubscribe
Many-To-Many, Project Locations and Groups

Release 8.7.3.0 introduces support for user-defined projct locations and project groups. There is also a set of improvements in many-to-many field handling in forms and inline editing mode. The application framework has been refactored to support addons. For example, release 8.8.0.0 will support Offline Sync Add-On.

Many-to-Many Fields

Inline editing of many-to-many fields is fully supported in the release on mobile and desktop devices.

Inline editing of a many-to-many field in a Touch UI app.

The application generator now handles the following implementations of many-to-many tables. Tables EmployeeTerritories, EmployeeTerritories2, and EmloyeeTerritories use compound, identity-based, and GUID –based primary keys.
Various configurations of primary keys for many-to-many field implementation supported in Code On Time and Touch UI.

Here is an exampl of Check Box List presentation of the field. The previous screen shot shows “basket” implementation with Auto Complete.

image

Project Locations and Groups

New Project screen of the app generator has changed and allows specifying an arbitrary project name and project location. Developers can change the display name and group directly on the Namespace & Framework page of the Project Wizard. The start of the app generator will group projects and have them displayed alphabetically within a group. There is also a “top 5” or rather “last changed” projects rendered in a dedicated group at the top of the start page. If the number of projects is less than 10 then “top 5” are not presented.

The start page of Code On Time displays groups of projects.

This is the new version of the New Project screen. Note that if the Visual Studio is installed on your development machine then the Location is automatically set to [User Profile]\Source\Repos folder. The new app will also be configured to use Git for source control.

New Project screen in Code On Time app generator of mobile and online apps.

Cloud On Time

The application framework has been changed to support Cloud Identity, the upcoming membership system based on claims.

If you are using Cloud On Time app for development then make sure to install the latest version. If the app is re-generated then it will become incompatible with the prior releases of Cloud On Time.

Summary of the Release

See release details below:

  • Many-To-Many fields are now compatible with inline editing.
  • Many-to-many fields based on tables with identity, guid-based, and comp0und primary keys now work uniformly correctly.
  • Action with command name Navigate and Result.NavigateUrl will now load in iframe embedded in the virtual Touch UI page if URL starts with “http” . Can force behavior with “_internal:” target, or use "_self" to load current tab, or "_blank" for separate tab.
  • Touch hyperlinks will now open in internal iframe if target = "_internal".
  • Touch UI - Read-only checkbox does not overlap the text of the field footer.
  • Classic UI – Data View property  AutoHighlightFirstRow works correctly with hidden child data views.
  • Classic and Touch UI - Corrected processing of NewValue and OldValue in _findKeyValue method, which was previously causing error when uploading binary data.
  • Project Wizard now captures Display Name and Group on the "Namespace and Framework" page. The same page also provides a link to open the project location.
  • The installer now includes folder ~/Library/_Explorer/Images. This folder was missing from the last release.
  • Cloud Identity request handler is now a part of the framework. Learn about this upcoming feature at http://codeontime.com/roadmap.
  • Framework now implements support for addons. This feature makes possible for us to introduce the first new product called Offline Sync Add-on. The upcoming  Code On Time v9 will be delivered as an add-on.
  • Important fixes to NewValue and OldValue processing are delivered in this release.  Value of the read-only fields is calculated as OldValue if not Modified and as NewValue when Modifed property has been assigned explicitly. Otherwise the OldValue is returned for ReadOnly fields. This addresses numerous issues on the forum in the past week.

Continue to Scrollbars