NF7.1 Multi Select
Feature: Multi Select Table/Search/List
Goal: User Experience
Developer: Heng Sin Low
Description
Now is possible to have window fields, and also report and process parameters that can contain reference to multiple foreign records.
How to Configure
Configuration is very simple, just select in the reference field one of the new three types:
- Chosen Multiple Selection Table
- Chosen Multiple Selection Search
- Chosen Multiple Selection List
And fill the Reference Key properly
Technical Info
Normal Reports
The usage in reports is just straight (unless the report has some pre-processing class, in such case you must see below the notes about Processes)
Jasper Reports
The parameter is passed to Jasper as a String with the record IDs separated by commas.
The Jasper Report must take care of parsing the parameter accordingly.
Example in PostgreSQL:
cbp.c_bpartner_id = any(string_to_array($P{param_c_bpartner_id}, ',')::int[]);
Processes
For processes, the parameter is passed a String with the record IDs separated by commas.
The process must take care of splitting and processing the parameters accordingly.
Windows
When used in windows, take into account that the value is saved in the database as a String with the record IDs separated by commas. (IMPORTANT: ColumnName can't ending with _ID)
IMPORTANT NOTES
- No foreign key management in the database, it means, is possible to delete the parent record, and the reference will be left orphan, you need to take care of checking this validation, for example in a BeforeDelete developed for the parent table
- The Copy Client functionality doesn't manage this foreign keys, you need to take care about processing this extra foreign keys, for example in a Pre or PostProcess for this process