Generating the Entity Level

Using K2BTools' patterns, several common interfaces can be built automatically. These interfaces are specified using an abstract description, and the developer can customize the interfaces after they are generated using that language. This page summarizes which interfaces can be generated this way.

Work With

Work With default interface

The WorkWith user interface is automatically generated by K2BEntityServices pattern. This interface allows the user to insert, update, delete and display instances of an entity.

One of the main components of this interface is a grid showing all the instances for the associated entity. All grids generated by K2BTools come with several features available out of the box that are generated automatically with no developer intervention. These features can be disabled by the developer if needed. Some of these features are: grid page size selection, runtime column selection, and common UI elements such as pagination, ordering, and filtering controls.

Depending on the transaction the developer can choose how the work with edit mode will be:

  • In a complex transaction with many attributes, the "Standard" Edit Mode will probably be better.
  • In a simple transaction the developer can choose between "TwoPane" and "PopUp" Edit Modes.

Edit Mode = "Standard" example. Work With and Entity Manager interfaces are shown separately

EditModeTwoPane EditModePopup
Edit Mode = "TwoPane" example Edit Mode = "Popup" example

For more information about the "Edit Mode" read Edit Mode property.

Also, the developer can choose to use other types of grids. For example, each instance is best represented by an image, a custom grid ban be selected to take advantage of that fact.

Custom grid example

Data filtering

When working with grids, K2BTools supports a wide range of filter types in order to enhance the user experience.

Generic filter

The first filtering option is the "Generic" filter. This filter allows the end user to quickly search for a term in several attributes. This frequently is the easiest way for the user to search for information, as the user simply provides the value and does not have to figure out where to look for that value. In the "Orion" design system, this filter is shown on the top-left corner above the grid.

Detailed filters

In many cases, users require more complex queries to find the information they need. For these scenarios K2BTools includes the "Detailed Filters" option. Using this filters, the end user can:

  1. Create queries by selecting search terms for independent fields.
  2. Create queries based on date ranges.
  3. Create queries selecting several values for a certain field.

In the "Orion" design system, detailed filters are included in a region that is collapsed by default. This is helpful to focus the user's attention to what's really important: the grid's data.

However, the user must also be able to tell which filters are being used quickly. To do so, K2BTools includes a summary of the filter values. For more information, read Filter Summaries.

Filter Summary

In the detailed filters, the developer can enhance the user experience by using these options:

  • Multiple filters: In many scenarios it is necessary to define filters that allow the user to select more than one value. K2BTools allows the creation of these filters with several possible user interfaces. For more information read Multiple filters
    MultipleFilterCombo MultipleFilterTags
    Multiple Filter Type = "Combo" Multiple Filter Type = "TagsCollection"

  • Date Range filters: These filters allow the user to define a date range from/to boundaries. It is also possible to select a “Semantic Date Filter” to simplify this process, by predefining intervals such as “Last 120 days”, “Last Month”, etc. For more information read Date Range filters
    Example of semantic date filter

  • In some cases grids contain lots of possible filters, and a large number of them are used sporadically. For this problem, there are two possible solutions in K2BTools.
    • Separate filters based on how much they are used by adding a line separator. The LineSeparator will generate a collapsible section to keep the filters invisible while they are not needed.
      LineSeparatorRuntimeOpen LineSeparatorRuntimeClose
      Appearance when opened Appearance when closed

    • Adding advanced filters. When using Advanced Filters, new filters can be added dynamically to the user interface.
      Advanced Filters Runtime Apperance

Filters shown in column titles

When using a standard grid, filters can be shown in the grid's column titles. All the filter types can be included in a column title.

DateRangeColumnFilter %3
Date range column filter %4

For more information, see Filters in column titles.

Entity Manager

Entity Manager default interface

The Entity Manager interface shows an Entity's data and how the entity relates to other entities in the system. Some relations are one to one (Parallel Components) and others are one to n (SubWorkWith components).

The SubWorkWith components are very similar to WorkWith interfaces. The only difference is that in these components, only the data related with the entity instance being shown in the Entity Manager is included.

By default, each component is shown in a Tab. However, the developer can choose to customize how the components are shown by combining cards and tabs to organize them semantically.

Some tips to take into consideration:

  • The most important components should be always visible by default using cards.
  • For less important components you may use:
    • Collapsible cards: A card may be collapsed by default, allowing the user to see the contents only when necessary.
      Units component appears collapsed by default.

    • Tabs
      Using tabs to separate components inside an Entity Manager.

    • Link List
      Link list runtime appearance

For more information read Component Group in Entity Manager and Edit Mode in General and Parallel Sections.

Basic Reporting

Basic reporting options allow the user to have basic pdf and excel reports of the data that is being shown in the user interface. These reports are generated automatically by the K2BEntityServices pattern in the WorkWith and SubWorkWith interfaces.

ReportUI PDFReport ExcelReport
Work With basic reports PDF Report Excel Report


Single selection

Prompt default interface

Single selection interfaces can be automatically generated by K2BPrompt pattern.

If the instance the user is searching for has not been created yet, it can be created within the selection interface. For more information read Modes (Prompt)

Multiple selection

Example of a multiple selection in runtime

Multiple selection interfaces can also be generated in very easily using K2BTools. Depending on the scenario, these user interfaces can be generated in the following ways:

  • Using RowSelection = "Multiple" in actions: In K2BTools user actions can be added. When the developer configures an action to have multiple selection, a checkbox appears in the grid, in order to allow the user to select which instances of the entity should be passed on to the action. K2BTools takes care of keeping track of the selected rows, so when data is filtered or pagination is applied to the grid, the selected rows remain selected while the user navigate. For more information read Row selection in actions.
  • Using Multiple Selection node: This option is best suited for an interface whose main objective is to allow the user to select several instances of an entity. For more information read MultipleSelection

Historic data

There are many scenarios in which given an entity instance the user needs to know the answer of some of these questions:

  • Who created this entity?
  • When was this entity created?
  • Which users updated this entity?
  • What was the value of the "X" attribute in a certain date for this entity instance?

K2BAudit provides an answer to all of these questions. K2BAudit can be easly integrated with K2BTools, allowing the developer to add an "HistoryComponent" node in the EntityManager in order to see the history of this entity.

"HistoryComponent" example