Documentation YAML for OpenPetra Forms: Difference between revisions

From OpenPetra Wiki
Jump to navigation Jump to search
(Replaced content with "Deprecated: this only applied to the winforms client")
Tag: Replaced
 
(60 intermediate revisions by 6 users not shown)
Line 1: Line 1:
== Inheritance ==
Deprecated: this only applied to the winforms client
* 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. <code>Ict.Petra.Client.MFinance.Gui.AccountsPayable</code>
** 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. <code>Ict.Petra.Server.MFinance.AccountsPayable.WebConnectors</code>.
* TODO: '''BaseYaml''', '''FormTitle''', '''ClassName''', '''HasManualCodeInOtherFile''', '''WindowWidth''', '''WindowHeight'''
 
== Events ==
* '''Events''': here you can link form events to methods in your code
** eg. <code>Activated: {class=System.EventHandler,method=FTheObject.TFrmPetra_Activated}</code>
== 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. <code>actClose: {Label=&Close, ActionId=eClose, Tooltip=Closes this window, Image=Close.ico}</code>
** eg. <code>actMainMenu: {Label=Petra &Main Menu, ActionClick=FTheObject.OpenMainScreen}</code>
** '''Enabled''': Actions can depend on other actions or conditions; they will be disabled if the condition is false; eg <code>Enabled: cndSelectedSupplier</code>; this can be set in a grid, with '''SelectedRowActivates'''; eg <code>grdSupplierResult: {Dock=Fill, ActionDoubleClick=actSupplierTransactions, SelectedRowActivates=cndSelectedSupplier}</code>
== 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.

Latest revision as of 20:46, 11 Mayıs 2022

Deprecated: this only applied to the winforms client