Documentation YAML for OpenPetra Forms
Jump to navigation
Jump to search
Inheritance
- generally the yml files inherit from each other (BaseYaml)
- this allows us to only define the default menu items once, in PetraForm.yaml, and they will be included in all derived forms
Attributes of the root node
- FormType:
- abstract: if this is just used as a base form for other real forms
- navigation: the main window, the module windows
- edit: edit screens
- crud: CRUD screens (Create, Read, Update, Delete)
- find, browse: find screens
- MasterTable: if this is set, you will need to write less DataField attributes for the controls. The name of the controls will be matched to a field in the given table; if such a table field exists, it will be linked to the control.
- DetailTable: similar to MasterTable, but this is for the detail table; controls must have the word Detail after the prefix, eg. txtDetailAmount
- Namespace: this is the namespace that this screen should belong to. eg.
Ict.Petra.Client.MFinance.Gui.AccountsPayable
- if you want methods to be linked automatically to a web connector, you need to make sure that there is a webconnector in the same namespace (Server instead of Client, without Gui, but WebConnectors at the end), eg.
Ict.Petra.Server.MFinance.AccountsPayable.WebConnectors
.
- if you want methods to be linked automatically to a web connector, you need to make sure that there is a webconnector in the same namespace (Server instead of Client, without Gui, but WebConnectors at the end), eg.
- TODO: BaseYaml, FormTitle, ClassName, HasManualCodeInOtherFile, WindowWidth, WindowHeight
Events
- Events: here you can link form events to methods in your code
- eg.
Activated: {class=System.EventHandler,method=FTheObject.TFrmPetra_Activated}
- eg.
Actions
- Actions: actions can be used by menuitems, toolbarbuttons, and other controls; this is useful to be able to enable/disable an action on the whole screen, and to only define a certain action once, and refer to it from all controls that trigger the same action
- eg.
actClose: {Label=&Close, ActionId=eClose, Tooltip=Closes this window, Image=Close.ico}
- eg.
actMainMenu: {Label=Petra &Main Menu, ActionClick=FTheObject.OpenMainScreen}
- Enabled: Actions can depend on other actions or conditions; they will be disabled if the condition is false; eg
Enabled: cndSelectedSupplier
; this can be set in a grid, with SelectedRowActivates; eggrdSupplierResult: {Dock=Fill, ActionDoubleClick=actSupplierTransactions, SelectedRowActivates=cndSelectedSupplier}
- eg.
Controls
- Controls: see Screen scaffolding: controls
Menu & Toolbar
- Menu: TODO
- Toolbar: TODO
Layout
- Layout: TODO (Tabbed pages etc)
Another option for layout is the Controls property that can be used for Panels and GroupBoxes: You can use several rows to arrange the controls and they are aligned in a table layout.