GenioWeb - Tables



Contents



Accessing the Tables Page

Data Menu

In the Data Menu, developers can start working with the database. It includes options to create tables, define primary and foreign keys, manage enumerations, and view indexes, among other functionalities.

1. Go to Data > Tables. You can access this option from the top-left corner of the screen or the shortcut card available on the main menu, as you can see in Figure 1.

Select tables from GenioWeb Homepage

Figure 1: Select tables from GenioWeb Homepage.

2. After doing that you will get on the page showed in Figure 2. On the Tables page, you can create a new table or edit/delete existing ones if needed.

Main page of Tables Section on GenioWeb

Figure 2: Main page of Tables Section on GenioWeb.

3. The Search Tables menu showed in Figure 3 allows you to apply filters to view/search specific tables. You can filter tables by type: Standard, System, and/or Domains. Use the Show button to enable or disable active filters.

Note: You can only select one option at a time. Selecting both Standard and System will show no results. To view all available tables in the database, leave the active filters options blank.

How to go to Search Tables on GenioWeb

Figure 3: How to go to Search Tables on GenioWeb.

4. You can also use the search box on the right to search for tables using advanced search terms such as Domain, Creation Date, Change Date, etc, as showed in Figure 4.

Search Tables page on GenioWeb

Figure 4: Search Tables page on GenioWeb.


Creating Your First Table

To create your first table in Genio, follow these simple steps:

1. On the main page regarding Tables (see Figure 2), click the + Insert button.

2. A new page with several tabs will open as you can see in Figure 5.

a. Identification Tab

When inserting a table, the default tab is the Identification tab, as illustrated in Figure 5. This tab is essential and must be filled out first to establish the table.

GenioWeb insert table form

Figure 5: GenioWeb insert table form.

1. Table Identifier (mandatory)

The table identifier is a required unique name within the development environment. This identifier will be used to create the table name in the database of the system being developed. It is limited to five (5) alphanumeric characters, with no spaces allowed between characters. You can use an underscore ( _ ) if needed.

2. Schema Name

This is the name displayed in the database. It can be used if you want the table name to be different in the database. If left empty, the table identifier will be used.

3. Display Name (mandatory)

This is the name displayed to the user in table form. This name is used by default in table forms created automatically by the development environment. It is limited to one hundred (100) alphanumeric characters and special characters.

4. Plural Display Name

Having both singular and plural names for display to the end-user is vital for several reasons:

  • Contextual Accuracy: Depending on the situation, the application might need to reference a single item (singular) or multiple items (plural). Both options ensure grammatical correctness and clarity for the user.
  • User Experience: Using singular and plural forms correctly enhances the user interface's intuitiveness and friendliness.
  • Flexibility: It offers more options in presenting and referencing information within the application.
  • Consistency: Regular use of singular and plural forms boosts the application's overall professionalism, improving user perception.
  • Localization: For multi-language applications, having both forms simplifies and improves the translation and localization process, considering the varied pluralization rules across languages.
5. Notes

It's a field where developers can write down any additional information about the table. These notes are only visible in the development environment and not by end users and are invaluable for:

  • Communication: It facilitates discussions among developers about specific code sections, especially in team projects.

  • Clarification: Comments can elucidate intricate code sections, aiding understanding.

  • Debugging: Comments can offer context and rationales for specific coding choices, impacting the code's execution.

  • Maintenance: They provide insights into coding decisions, simplifying future maintenance and updates.

  • Once all the mandatory fields are filled, click the Save button to proceed to the next tab. The Apply, Save and Cancel buttons are available at the bottom of the page but also have shortcuts on top of it as you can see on Figure 6.

    Note: Make sure to save the data before moving to the next tab; otherwise, the data will not carry over.

Save, Apply and Cancel of table edition on GenioWeb

Figure 6: Save, Apply and Cancel of table edition on GenioWeb.

6. Help collapsible zone
6.1. Identifier

These help elements are pre-configured pieces of assistance or guidance, such as tooltips, explanatory text, or even links to more detailed help resources. By associating a help identifier with a field, you can provide users with context-specific help right where they need it, enhancing the usability and user-friendliness of the final solution.

6.2. Succinct description

The "text field" mentioned is a designated area where the software developer can input and edit text. In this case, the text input by the developer is intended to be a help message for the end user. The developer "configures" this help message, meaning they determine what it will say. The aim is to provide useful information or guidance to the user.

7. Advanced options collapsible zone
7.1. Table type

Setup the Type of Table to be created:

  • Table: Data stored in a standard database table.
  • View: Data access determined by a query, with write operations depending on definition.
  • Custom: No generated persistence model, manual code determines read/write operations.
7.2. Data system to which the table belongs

Refers to the database that a specific table is part of. If the value is 0, it signifies that the table belongs to the main application database. If the value is greater than 0, it indicates that the table is part of a database that is external to the application. The configuration of these additional databases is carried out in the application's .ini file through the SERVERS property.

8. More collapsible zone
8.1. Scope

Mark this field with a D for tables that are domains.

8.2. Version

Table version number. Used to restrict the number of tables that have to be checked when installing a new client application version.

8.3. Number

Order of tables. This number is calculated so that the tables it depends on have a lower number than this one.

b. Fields Tab

Fields provide structure for a table and can be used to collect and display data for the end user, as well as establish relationships between tables. It's possible to see this tab in Figure 7.

Fields Tab on GenioWeb showing some different type of fields

Figure 7: Fields Tab on GenioWeb showing some different type of fields.

To create fields on your table:

1. First, create a Primary Key. Without it, you won't be able to add fields to the table. By default, the option to create a Primary Key is displayed as a button, as it's possible to see in Figure 8.

Fields Tab on GenioWeb showing Create primary key button

Figure 8: Fields Tab on GenioWeb showing Create primary key button.

2. Once the Primary Key is created, it will be displayed in the Fields list, as you can see in Figure 9. The button to add fields will become available.

Note: The Primary Key uses the name given to the table in the Identification > Table Identifier, and adds "COD" at the start. For example, if the table created is named "TEAM," the Primary Key created will be named "CODTEAM."

Fields Tab om GenioWeb after inserting PK on Team table

Figure 9: Fields Tab om GenioWeb after inserting PK on Team table.

3. To add fields to the table, press the + Insert button and it will appear the form presented in Figure 10, where is possible to see 5 tabs:

  • Identification;
  • Formula;
  • Conditions;
  • Display;
  • Advanced options.

4. To create formulas for special calculations, use the Formula tab. When you pick some types of formula, it will appear a field called Formula. You can click the f(x) button to open the formula builder, which provides templates and descriptions to help you construct your formula.

5. Remember to save the data before moving to the next tab to avoid any missing data errors when adding, for example, a Primary Key on the Fields tab.


Inserting Table Fields

1. Identification

As you can see in Figure 10, by default the insertion of a field opens on identification tab, that expect the following text input fields:

Field insertion on GenioWeb

Figure 10: Field insertion on GenioWeb.

1.1 Field Identifier

The Field Identifier is the name of the field as displayed in the development environment. It is limited to eight (8) alphanumeric characters with no spaces.

Note: It is not advisable to change the Field Identifier name after its creation, as it is used as a reference to establish relationships between tables.

1.2 Schema Name

The Schema Name is an extended version of the field name used in the database. It can supersede the Field Identifier. It's optional, and if omitted, the system defaults to the Field Identifier.

1.3 Display Name

The Display Name is the name displayed to the end user.

1.4 Data Type

The Data Type field contains a drop-down list with various options for the type of data that can be inserted.

1.5 Width

The Width is a field that only appears for certain data types and represents the number of elements that the field will have. For example, number of letters in a text or number of digits in a number.

1.6 Decimals

The Decimals is a field that only appears for certain data types and represents the number of digits that there will be after the decimal point, except in "Multiline text" data type, where it represents the number of lines (and Width represents the length of each sentence)

1.6 Notes

The Notes field works the same way as the ones showed for the table insertion. See more.

1.7 Help

Use the Help collapsible zone to provide information that aids the end user in understanding the purpose of the field. This information is displayed as a tooltip when hovering over the field. See more.

2. Formula

To create formulas for special calculations, use the Formula tab that is showed in Figure 11. Enter and implement the desired formula using the formula builder. In this tab you can see different fields to fill:

  • Default value,
  • Formula type,
  • Formula execution,
  • Calculation persistence, and
  • Condition to prevent recalculation.
Formula tab of field insertion GenioWeb

Figure 11: Formula tab of field insertion in GenioWeb.

2.1 Default value

Default value has two fields: value type and value, being the last one the default value of the field in case the default type is fixed.
Value type defines the type of predefined value to be displayed in the field in question, that can be:

  • Nothing: The field is not filled and is displayed blank to the user.
  • Last: It shows the last value to be calculated in the record.
  • Last+1: It shows the last value to be calculated in the record and adds one unit to it.
  • Today: The field is filled with the current date. The value is editable by the user.
  • Formula: The value to be displayed to the user is a formula.
  • Last Business Day: Displays the value of the last business day prior to the current date.
  • Yesterday: Displays the day before today.
  • 1st day of: Puts the first day of the current month.
  • 1st day of Last Month: Inserts the first day of the previous month.- January 1st: Defaults to the date of January 1st of the current year.
  • December 31st: Defaults to the date of December 31st of the current year.
  • Fixed value: The value displayed in the field is a fixed value and is defined in the "Value" field. This field is not editable by the user.
2.2 Formula type

There are multiple options regarding the choice of Formula type:

  • Arithmetic Formulas: These formulas allow you to perform any operation (Addition, subtraction, multiplication and division). Can be used with fields from the table itself or related fields.
  • Arithmetic Today Formulas: These are similar to arithmetic formulas but records are evaluated daily. This type of formula is ideal for age calculations. However, they're resource-heavy and should be used cautiously.
  • SR Linked Sum Formulas: Sums values from a field in the child table. Only considers related records. They are updated whenever a child element is changed.
  • ST Sum and Creates records: There are created intermediate records to group values, allowing the sum of such records. A complex pattern used to hold sums that are grouped by different tables.
  • CT Look Up Formula: CT formulas allow you to fill a field with a value from an unrelated table using the connection field.
  • U1 Last Value: U1 formulas allow filling a field in a table using the last record in a related table below, referring to the current value of history. This field is updated when a record from the child table is changed.
  • ++Replica: Replicas allow you to copy the value from an related table is written. This field is updated when the field from the source is updated.
  • FP End of Period: This formulas allow you to get an end date from the start date in the next record.
  • DF Default (always): DF formula allows specifying a default value, whenever a new record is created.
  • DG Default (once): DG formula allows specifying a default value, whenever a new record is created. These values are applied every time the form is edited. The value can be edited by users.
  • Concatenates Lines: The Concatenated Rows formula allows you to concatenate values from a related table.

As you can see in Figure 12, when you pick some types of formula, it will appear a field called Formula. You can click the f(x) button to open the formula builder, which provides templates and descriptions to help you construct your formula. If you open formula builder you can press Ctrl + Space bar to get hints about what you can fill, as you can see on Figure 13.

Copy paste the formula you wrote before closing Formula Builder and then paste under "Formula" on Formula Tab, if the formula doesn't appear there.

Open Formula Editor on GenioWeb

Figure 12: Open Formula Editor on GenioWeb.

Formula Editor on GenioWeb

Figure 13: Formula Editor on GenioWeb.

2.3 Formula execution

Where the field value will be calculated and how it will update to other locations.

2.4 Calculation persistence

Refers to the default setting for the persistence type in Genio's formula creation for table fields, which is "The application persists". In this setting, the application calculates the formula and sends the result to the database to be stored or "persisted". This means that the computed values become part of the stored data in the database. Alternatively, there's the "Virtual Database" option. In this setting, the values are calculated during the SELECT operation, which retrieves the data. This means that the application doesn't store the computed values in the database, but rather calculates them each time data is retrieved, effectively ignoring the application's persistence. On GenioWeb you have to choose between 2 options: Normal vs Computed.

2.4 Condition to prevent formula recalculation

Refers to a condition that, when met, prevents the recalculation of a registry value. In other words, if this particular condition occurs, the system will not recompute the value of a specific registry entry. This could be a rule set up to optimize system performance, prevent unnecessary computations, or maintain a certain state of data.

3. Conditions

This tab has the following fills:

  • Required,
  • Unique,
  • Filling rule and
  • Table conditions.
3.1 Required

A required field prevents saving a record when empty. In Web applications this fields are marked with a red * to inform the user that the value must be filled. If there are exceptions where this field may be empty or should not appear in a given form, required conditions should be considered instead of this option.

3.2 Unique

Set this field if there cannot be any duplicated values in the whole table. If this field cannot be duplicated only in a given context, the subset must be specified using the non duplication prefix.

3.3 Filling Rule

This corresponds to the field fill rule type. Allows you to define validation and formatting rules such as:

  • Zipcode - The "zipcode" control type formats the text accordingly for zipcode records.
  • VAT number - The field is adjusted to record VAT Number records.
  • Banking account number - The field is automatically adapted to record Banking Account numbers.
  • Password - The "password" control type for text fields encapsulates the text box within a mechanism that automatically conceals the value of the field. In view mode, the field value is always hidden.
  • QR code - The "QR code" control type for text fields converts the field value into a QR code representation. Since the output is an image, the field cannot be edited (even in edit mode).

Table conditions: it's also possible to set table conditions on field insertion.

4. Display

In terms of this tab it's possible to see the following fields:

  • Show when;
  • Fill in when;
  • Block when;
  • Placeholder;
  • Alignment.
4.1 Show when

This feature allows you to hide certain fields from the user based on a set condition, enhancing the user experience by only displaying relevant information. When creating a Table, you can set a condition under which a field will be hidden. If the condition is evaluated as 'false', the field will be hidden from the user. This is useful for managing complex data structures where not all fields are relevant to all users or scenarios.

4.2 Fill in when

Conditional Field Filling feature provides you with the ability to control data entry into fields based on specific conditions. This feature enhances data integrity and user experience by ensuring that data is only entered when appropriate. When a condition is set for a field, data can only be entered if the condition is evaluated as 'true'. If the condition is evaluated as 'false', data entry into the field is not allowed. Moreover, if a field already contains data and the condition is later evaluated as 'false' due to external factors, the existing field value is nullified. This ensures that your data is always consistent with the defined conditions. To use this feature, simply define the condition under which data can be entered into a field in the field settings. When the condition is met ('true'), data can be entered. If the condition is not met ('false'), the field will be cleared. Remember, this feature should be used responsibly to maintain data integrity and provide a seamless user experience.

4.3 Block when

Conditional Field Blocking feature allows you to control the accessibility of fields based on specific conditions. This feature enhances data integrity and user experience by ensuring that fields are only editable when appropriate. When a condition is set for a field, the field will be blocked if the condition is evaluated as 'true'. This means that data entry into the field is not allowed, preventing unwanted changes to the data. To use this feature, simply define the condition under which a field should be blocked in the field settings. When the condition is met ('true'), the field will be blocked and cannot be edited. Remember, this feature should be used responsibly to maintain data integrity and provide a seamless user experience.

4.4 Placeholder

Placeholder Text feature provides a way to guide users on the expected input in a text field, so it will only appears if it was define this type of input. This feature enhances user experience by providing helpful hints on the type of data that should be entered.
A placeholder is a short hint that describes the expected value of an input field. It is displayed in the input field before the user enters a value and disappears when the user starts typing.
For example, in a 'Phone Number' field, the placeholder could be 'Enter your 10-digit phone number'. This helps the user understand what is expected in the field before they start typing.
To use this feature, simply enter the desired placeholder text in the 'Placeholder' setting in the field settings. The placeholder text will then be displayed in the input field in the user interface.

4.5 Alignment

Genio's Field Alignment Type feature allows you to control the alignment of data within fields. This feature enhances data presentation and readability. With this feature, you can choose to right-align the data within a field. When data is right-aligned, Genio automatically fills the left side of the field with spaces. This ensures that your data is neatly presented, regardless of the length of the data entered. To use this feature, simply select 'Right' in the 'Field Alignment Type' setting in the field settings. When this setting is selected, data entered into the field will be right-aligned and the left side of the field will be filled with spaces.

5. Advanced options

These are the fields existent in advanced options tab of field insertion:

  • Clear on duplication;
  • Don't send to MQ;
  • Audit;
  • No sync;
  • Digital signature;
  • Human key;
  • Saves the history of this field in the table;
  • Content classification;
  • Add to Group of fields;
  • Extra options;
  • Advanced Query.
5.1 Clear on duplication

Genio's Record Duplication feature allows you to create a new record based on an existing one. This feature enhances efficiency by eliminating the need to manually enter data that is common across multiple records. When a record is duplicated, certain fields may be set to be created with their value empty. This is useful in situations where certain field values are unique for each record and should not be duplicated. To use this feature, simply select the 'Empty on Duplication' setting in the field settings. When a record is duplicated, the field will be created with its value empty.

5.2 Don't send to MQ

Genio's MQ Synchronization feature enables the seamless synchronization of data between different platforms (e.g., server and client). This feature enhances data consistency and accessibility across platforms. MQ is a queue that contains all fields that will be sent for synchronization. However, there might be situations where certain field data should not be sent to the server. For such cases, Genio allows you to exclude specific fields from the synchronization process. To use this feature, simply select the 'Exclude from Synchronization' option in the field settings. When this option is selected, the data in the field will not be included in the MQ and will not be sent to the server during synchronization.

5.3 Audit

Genio's audit feature is designed to keep track of changes made to specific fields in your data. When a field that has been flagged for auditing is changed, the system automatically creates a log record of the operation. This record includes the old value of the field, the new value, the date of the change, and the user who made the change. This feature can be extremely useful for maintaining data integrity and accountability within your system.

5.4 No sync

The No Sync feature in Genio is used when you don't want a specific field to be included in the replication script. By checking the "No Sync" box, you're telling the system to exclude this field from the synchronization process. This can be useful when you have fields that contain sensitive or irrelevant data that you don't want to be replicated.

5.5 Digital signature

The Digital Signature feature in Genio indicates that a certain field is part of the digital signature. This can be crucial when you're dealing with data that requires authentication or verification, as digital signatures provide a layer of security and trust.

5.6 Human key

The human key defines that this field is recognized by a human as a record identifier for choices and messages. A numeric value greater than zero defines the importance of this field in that identification.

5.7 Saves the history of this field in the table

Table from which the list will fetch the fields.

5.8 Content classification

The Content Classification option in Genio allows you to categorize or classify the data within a specific field. This can be particularly useful for fields that contain a variety of different types of data. For example, you might have a field that can contain text, numbers, or dates, and by classifying the content, you can more easily sort and search through your records. This can help to improve the efficiency of your database operations and make your data more manageable.

5.9 Add to Group of fields

The Field Group provides a convenient way to reuse a set of fields that are used together and refer to a complex attribute of an Entity. For example, the set of fields that make up the Address attribute of a Person table.

5.10 Extra options

The options available here can vary depending on the context, but they generally offer more advanced or specific settings that go beyond the standard parameters. For instance, "Extra Options" might include settings for complex validation rules, conditional formatting, or advanced database interactions. These options allow you to tailor the behavior of a specific field or function to better suit your unique requirements. They can provide a higher level of control over how your data is handled and manipulated within the system.

5.11 Advanced Query

The Inclusion Mode option in Genio determines when and how a field is included in the system. Specifically, it impacts how the field is used within the Advanced Query function. If a field's Inclusion Mode is set to "Always Included", it means that the field will always be a part of the system and will always be available for use in the Advanced Query, regardless of other settings. This could be important for fields that are critical to your operations and need to be consistently available for querying and data manipulation.

The Description used for Advanced Query (CAv) in Genio refers to the description or label that will be used for a particular field when it's utilized within the Advanced Query function. This description can help users to understand the purpose or content of the field when they're creating or modifying advanced queries. It's particularly useful in situations where the field name alone might not be sufficiently descriptive or intuitive.


c. Business Rules Tab

As you can see in Figure 14 In this tab it's possible to see Table conditions and 4 collapsile zones:

  • Control of records;
  • Cascading actions;
  • Year change;
  • Controlled records.
Business rules tab of Table creation on GenioWeb

Figure 14: Business rules tab of Table creation on GenioWeb.

1. Table conditions

To insert table conditions, press + Insert and you will obtain the form presented in Figure 15.

Form to set table conditions on GenioWeb

Figure 15: Form to set table conditions on GenioWeb.

1.1 Condition type

There are a lot of conditions that it's possible to chosen.

  • Write conditions: Write conditions are executed when a record of that table is saved. If the formula returns true nothing happens. If Validates on 'Apply' is checked, shows an error and the user can't save the form until the formula is evaluated to true. If unchecked, a warning will be displayed, but the record can still be saved.
  • Warning conditions: Write conditions are executed when a record of that table is saved. If the formula returns true nothing happens. If the formula returns false and Validates on ‘Apply' is checked, shows a warning and the user can't save the form until the formula is evaluated to true. If unchecked, a warning will be displayed, but the record can still be saved.
  • Required conditions: Sometimes you need a field to be mandatory only under certain conditions. In this case you can use this condition type to mark a field as mandatory. Not only will the field be marked with the mandatory character * but it will also enforce the user to enter value, returning the specified message when the user fails to do so.
  • Insertion: When an Insert conditions fails, the duplication actions will also be blocked.
  • Update: This condition is evaluated both before accessing the form in the specified mode and when saving the form. In case it fails, the corresponding Edit action button will be disabled.
  • View: When a View condition fails, the following actions are blocked: Edit, Duplicate and Delete.
  • Save: If the condition type is "Save", you can leave it empty to always display the message. If multiple conditions are specified for the same table, only one will be shown. If the conditions for all of them are true, only the last one will be displayed.
1.2 Table

Writing condition table. The condition must be valid at least in this table. If possible, it will also be executed in other tables of a domain table, if applicable.

1.3 Notice to user

The option to set a warning message that will be displayed to the user when a certain condition is not met. This can be particularly useful for providing immediate feedback to the user when they're entering data that doesn't meet the requirements for a particular field in a table. For example, if a field requires a unique value and the user tries to enter a value that's already been used in another record, a warning message could be displayed to the user indicating that the value must be unique. This warning message can also be set to appear as a support note in a small prompt when the user hovers over the concerned field. This can provide the user with helpful guidance as they're entering data, helping to prevent errors before they occur. Such can help the user understand the requirements for the field before they enter data, making the data entry process smoother and more efficient.

1.4 Rule

Allows conditional editing of fields in your table. Although certain fields are typically calculated and populated automatically, you may occasionally need to manually edit these fields. With the Conditional Field Editing feature, you can define specific conditions under which manual editing becomes possible. This gives you greater flexibility and control over your data. Remember, this feature should be used responsibly to maintain data integrity. Always ensure that manual edits are necessary and accurate.

1.5 Validate on 'Apply'

Validate write condition on "Apply". At the moment only works for MVC.

1.5 Notes

Field used in the development environment for developer comments.

2. Control of records

In Control of records collapsile zone, there are different fields:

  • Logging type - Options: "Doesn’t have log", "Log operations only", "Log changes"
  • Concurrency control - Options: "No", "Optimistic-error", "Optimistic-Warning"
  • Keep deleted records - Check when we want to generate a shadow table that keeps a copy of the records that are deleted from this table
  • High amount of records - When checked, it indicates whether we expect this table to be large, where large, heuristically, more than a thousand records can be considered. (An index on the ZZSTATE field of the table is also created)
  • Records subject to digital signature - Check whether the table is subject to a digital signature stamp. Once a record in this table has been signed, none of the fields that make up the signature can be modified.
  • Condition to be checked to copy record to history - Condition that must be checked for a record to effectively create a copy for history in the tables indicated.
  • Condition to be checked to prevent recalculation of formulas in record - Recalculate table records.
  • Calculate when - Indicates in terms of user interface at which timing we want to update formula results: “Writes character”, “Field loses focus”
  • Advanced Query - Indicates how this table enters the advanced query. By default it “Never creates”.
  • Maximum record limit - In the case of unlicensed programs, it sets a limit on the number of records that can be inserted into this table. To be used in prototypes and evaluation versions.

3. Cascading actions

In Figure 16 it's possible to see the form relative to cascading actions, where is possible to insert to add actions that occur if you delete or duplicate a record from the table being inserted. You can insert actions and tables on the first list for managing when a record is deleted and insert tables on the bottom one to set actions on duplication.

Cascading actions on table insertion in GenioWeb

Figure 16: Cascading actions on table insertion in GenioWeb.

In Figure 17 it's possible to see the form that appears when we insert an action on the first list (setting what to do when a record deletion occurs) and, as you can see, there are gray fields that will be automatically filled by the system as Table where you will delete records (Table corresponds to Table Identifier). In the Table affected by disposal of records you must choose the Affected Table and the Action to be carried out in the registers (that can be "Delete", "Clear", "Delete if new" or "Clears if New").

Cascading actions on table insertion in GenioWeb - When you eliminate action table registration

Figure 17: Cascading actions on table insertion in GenioWeb - When you eliminate action table registration.

In Figure 18 it's possible to see the form that appears to fill when the user insert a table that will also duplicate a duplicated record, being choose by the field Affected Table.

Cascading actions on table insertion in GenioWeb - Action when it duplicates table registration

Figure 18: Cascading actions on table insertion in GenioWeb - Action when it duplicates table registration.

4. Year change

Year change action - Action to be taken with the change of year (Keep all records, Clears all records, Deletes records with no dependents, Deletes records with conditions, Adds to this table the records, Move records to this table, Changes Records (Manual Routine)) Change of year in the Table 23 In some options for actions to be carried out with the change of year, you must indicate which table is affected. This field must be filled in with the name of the table.

Condition for change of year 171 A condition that will limit which records in the table automatically transition from year to those in which the condition evaluation gives true

5. Controlled records

It's possible to see a list of the controlled records and you can press + Insert to add more, filling the form presented in the left side of Figure 19 where you can define a Identifier and choose a Mode as "Create automatic", "Requests form" or "Throws error". On Record's fields it's possible to add inception record fields by pressing + Insert, what will make appear the form showed on the right.

Inserting inception record and record field

Figure 19: Inserting inception record (left) and record field (right).

d. Access Rights Tab

As you can see in Figure 20, it's possible to see the access level for different type of operations, as well as inserting new table level. You can choose between all the access levels defined and between the operations "Update", "Deletion", "View" and "Insertion".

Access rights tab of creating tables on GenioWeb

Figure 20: List of table levels defined on GenioWeb.

e. Forms Tab

In this tab is possible to see the forms associated with the current table and also inserting more forms by pressing + Insert. You can find more details on GenioWeb forms section of the documentation.

f. Relationships Tab

The Relationships tab provides a view of the relationships between tables through foreign keys. You can see in Figure 21 this tab for the system table PSW, correspondind to users passwords.

Relationships tab on PSW System Table on GenioWeb

Figure 21: Relationships tab on PSW System Table on GenioWeb.

g. Lists Tab

Similar to the Relationships tab, the Lists tab allows developers to view and edit table lists available in the table itself or tables linked via foreign keys.

h. Menu Items Tab

Developers can create and edit menu components that allow users to access and manipulate data in the GenioWeb solution. In this tab you can visualize the menu items associated to the table. But when you are creating a table, this will be empty because is mandatory to create first tables, then forms and only then menu items.

i. Indexes Tab

The Indexes tab displays the index IDs of menus that reference the data available in the database. It can improve data retrieval speed in SQL Server and provides an overview of menus directly related to the table.


Enumerations

Enumerations are short descriptions used to disambiguate items and provide an intuitive way for end users to categorize data. You can access enumerations main page in Data Menu besides Tables, as shown in Figure 22.

Enumeration's main page on GenioWeb

Figure 22: Enumeration's main page on GenioWeb.

In Figure 22 it's also possible to see the enumerations defined by default on GenioWeb, that corresponds to enumerations used on System Tables Fields. Also it's possible to "Search enumerations" and "Search elements", that can give different views of the enumerations already defined. The search enumerations's page is presented in Figure 23

Search enumeration page on GenioWeb

Figure 23: Search enumeration page on GenioWeb.

They can be created, edited, or deleted on the Enumerations page shown in Figure 24.

Enumeration's page on GenioWeb

Figure 24: Enumeration's page on GenioWeb.

In Figure 25 you can see s_result enumeration, showing his name and display name, type and width and, because isn't a dynamic enumeration it shows its elements. It's also possible to see wich fields are dependent on this enumeration.

View enumeration on GenioWeb

Figure 25: View enumeration on GenioWeb.

Enumerations Type and Width

Enumerations can have one of three types:

  • Text: The enumeration is of the text type and is not limited to a specific number of units.
  • Numeric: The enumeration is of the numeric type, and has no limits in terms of units. As numeric values, they can additionally be used in formulas and value calculations.
  • Logical: The enumeration is of the logical type, and is limited to two units (0 and 1). It can be used for calculation purposes, and the rendering of the enumeration is of the type "button".

The Widht of an enumerations relates to the length of the code you want to set.

Dynamic enumeration

Dynamic enumeration have elements filled dynamically, which is useful when the data source is external to the application (e.g., a web-service). As you can see in Figure 26, the provided functions allow you to choose roles and application modules. To use your own function, select "Custom" and use the manual tag ARRAYLIST.

Dynamic enumeration on GenioWeb

Figure 26: Dynamic enumeration on GenioWeb.

This definitions should not be used to show and hide elements according to context.

Indication of the Enumeration elements to be presented to the user sorted by Code if you check Sort by Code on Advanced options, otherwise they will be presented sorted by Designation.


Create the Enumeration Gender:

1. On the Enumerations page, click the + Insert button and you will get on enumeration edition form shown in Figure 27.

Enumeration edition form on GenioWeb

Figure 27: Enumeration edition form on GenioWeb.

2. The Name field is where you name the enumeration in the database. It is limited to eight (8) characters with no spaces. Fill with "Gender".

3. The Display Name is the name used to identify the enumeration in the development environment. Fill with "Gender".

4. Choose the type "Text" with Width of 1, so you can set one letter as the gender code.

5. To add Elements to the Enumeration, press "+Insert" under Content > Elements. We will get to an enumeration item edition form as shown in Figure 28.

  • 5.1. The Code can be used as a small identifier or abbreviation of the Display Name (e.g., "M" for Male).
  • 5.2. A Group is an ID that can be used in enumeration conditions to show specific options. It is not mandatory.
  • 5.3. An Image can be assigned to the item from the project resources.
Enumeration item edition form on GenioWeb

Figure 28: Enumeration item edition form on GenioWeb.

Apply created enumeration to a table field:

1. In the Data Type selection, choose Enumeration (Text), as shown in Figure 29.

2. The list of available enumerations will be displayed.

  • You can use the search box to find the desired enumeration.
  • Alternatively, you can create a new enumeration option directly from the Field Identification page by clicking "+ Insert".
Choosing the enumeration on field insertion

Figure 29: Choosing the enumeration on field insertion.

Now you're ready to create your first table, and how to create enumerations and apply them to table fields in GenioWeb!


Indexes

Besides Tables and Enumerations, it's possible to check indexes on Data menu, as you can see in Figure 30. These indexes have a indentifier whose uniqueness is crucial as it helps to prevent the unnecessary repetition of recalculating the same indices. In other words, each index in the database is given a unique name or tag (identifier) to help quickly locate and manage them, and to avoid wasting computational resources on recalculating the same index multiple times.

Indexes page on GenioWeb

Figure 30: Indexes page on GenioWeb.

The calculation of indexes, whether automatic or manual, is responsible for obtaining the list of system indexes and filling in the respective table.

A system with outdated indexes can have serious performance issues.


More

Besides Tables, Enumerations and Indexes there is a More option on Data where you can choose between:

  • Internal imports
  • Data classification
  • Groups of fields
  • Full-text search
  • Fixed fields
  • System tables

In Figure 31 it's possible to see the system tables by default on GenioWeb where PSW relates to the users login (whith username, email, phone number and password as some of the fields) and S_UA is the table who has defined the roles of the users.

More on Data Menu and System Tables

Figure 31: CMore on Data Menu and System Tables.