Forms, Reports, Apps

Build and deploy rapidly. Use offline, online, on-premises.


Monday, March 4, 2019PrintSubscribe
Batch Editing of Many-to-Many Fields
Batch editing and many-to-many fields are the built-in feature of apps created with Code On Time. Many-to-many fields are provided with an additional option in batch edit mode.

The screen shot shows the user changing Territories and Title or multiple employees. The former is the many-to-many field. It shows the territories that will be assigned to each employee in the batch. The highlighted option "keep original selection" will instruct the framework to expand the already assigned territories with the new values.

The alternative value "delete original selection" will wipe out all existing territories assigned to the user before assigning exactly the same assortment that is visible in the Batch Edit screen.

It is easy to enable batch editing and to present data as many-to-many field with Code On Time!

Select project settings, proceed to the features, and  under Grid Properties enable batch editing in all data controllers. Refresh your project to embed BatchEdit action everywhere.

End users will have access to this command when multiple selection is enabled and at least two items are selected.

The screenshot above shows many-to-many field Territories. Application framework automatically retrieves matching data rows from the junction table and presents child rows as a comma-separated list. Watch the video tutorial explaining configuration of many-to-many fields here.

Tuesday, February 12, 2019PrintSubscribe
Sort Order of Item in Data Lookups
This is the view createForm1 of Products controller. Lookup field CategoryID is configured as a radio button list. Each list item represents a row from Categories lookup table. Items are sorted in an alphabetical order.

The data model of Products controller is based on the table with the same name. A foreign key consisting of CategoryID column is referencing Categories table. Field CategoryName is borrowed from Categories table to be displayed as an alias of Products.CategoryID.

If a dedicated model for Categories table is created, then the app builder will produce a corresponding controller and configure Products.CategoryID field as a lookup.

App builder will set Items Data Controller property of CategoryID field to "Categories", Data Value Field to "CategoryID", and Data Text Field to "CategoryName". Both fields are referencing the fields of the controller specified as a source of items.

Field Items Data View property is left blank by default.

Categories will be ordered by CategoryName when selected from Categories table if Items Data View is not specified.
Set Products / Fields / CategoryID / Items Data View to "grid1". This will force your app to take into account the sort expression of Categories/views/grid1 view. If the sort expression is specified, then the items will be ordered accordingly.

You can set up sort order and sort type directly in the Categories model. For example, you can configure the model to sort categories in descending order.

Alternatively, select Categories/views/grid1 view and enter "CategoryName desc" without quotes in Sort Expression property.

Generate the app and observe the new sort order of categories in the lookup.

Note that the custom sort order will also apply to any other style of lookup.

Consider adding a numeric column to Categories table to have a a data-driven custom sort order.
Monday, February 11, 2019PrintSubscribe
Adding Assembly References and Keeping Them
Apps created with Code On Time are based on Microsoft.NET. You can take advantage of system and 3rd party libraries to extend your application.

Let's say you want to access some of the Microsoft Active Directory features available through System.DirectoryServices assembly. Select your app on the start page of the app generator and choose Visual Studio. Right-click the app node and choose Add|References option in the context menu. Choose required assemblies and press OK.

Adding an assembly reference to the app.

If your project was created with the framework packaged in a class library, then make sure to save the solution to preserve the reference. The reference will be stored in the project file of the app.

If the framework is included directly into the app and you have ~/App_Code folder, then the reference will be stored in ~/web.config file. App generator recreates this configuration file from scratch when the app is rebuild.

First, open web.config in Visual Studio and locate the new assembly references.

Custom assembly references in the app with a self-contained application framework.

Copy the definition of assembly reference to the clipboard and switch to the app generator.

Select the project name, choose Settings and proceed to Client & Server.  Locate Web.config modification instructions  in the Server section and enter the following:

AppendChild: /configuration/system.web/compilation/assemblies

Press Enter twice and paste the contents of the clipboard. You will end up having something like this:

Press Finish  and from now on the custom assembly references will be reproduced every time the project is generated.

Continue to Global Error Logging