Have you considered the PxPlus data classes? In particular, the new 'Dynamic' classes that came out with PxPlus 2018.
This will allow you to simply draw a control on the screen, then select its class. The system will fill in all the major properties such as validation, formatting, etc from the class definition.
Better yet, with Dynamic classes the system leaves the control pointing to the class definition so that a change to the class definition will change all the controls in the system of that class. For example if you have a key field in the system that you want to change from 10 characters to 15 and you use dynamic classes, simply changing the class definition will change ALL panels that used that class. Or perhaps you want to change the help text reference, tip, query specification, format, etc..; All of these can be kept in a the class definition so changing it in pone place can change all occurrences in your Nomads panels.
In PxPlus 2019 we also added the ability in the class definition to specify data file validation for input fields where you tell us what file you want the input validated against.
For example if you have a field of class "GLACCOUNT" you could have the system automatically validate the entry of that field against a table/file which contains a list of possible account numbers. It can even auto-populate separate display fields so when the user enters a account value, not only will it be validated against a master file, but it can display the account name.
For Drop and List boxes it also allows you to identify a file/table to used to load the list from. So if you had a drop list with a class such as "SHIPVIA", you could point it to a table of possible shipping codes and descriptions. The system could then display the descriptions in the drop list but return the internal codes to the applications.
Basically the Data Classes are designed to make it easier for developers to use common code elements throughout their application without having to re-enter the same settings or even copy/paste them repeatedly.