diff --git a/+=_statement/index.html b/+=_statement/index.html index 67722b35872..548118b2125 100644 --- a/+=_statement/index.html +++ b/+=_statement/index.html @@ -16,7 +16,7 @@ - + diff --git a/404.html b/404.html index 5a171dc5e52..6355e30c8e5 100644 --- a/404.html +++ b/404.html @@ -16,7 +16,7 @@ - + diff --git a/=_statement/index.html b/=_statement/index.html index 412d03881a6..3b938a5a4d8 100644 --- a/=_statement/index.html +++ b/=_statement/index.html @@ -16,7 +16,7 @@ - + diff --git a/=gt_statement/index.html b/=gt_statement/index.html index a039f8acb26..0f05d47e234 100644 --- a/=gt_statement/index.html +++ b/=gt_statement/index.html @@ -16,7 +16,7 @@ - + diff --git a/ABSTRACT_action_operator/index.html b/ABSTRACT_action_operator/index.html index bdd6a41bf03..10f38dbde3e 100644 --- a/ABSTRACT_action_operator/index.html +++ b/ABSTRACT_action_operator/index.html @@ -16,7 +16,7 @@ - + diff --git a/ABSTRACT_operator/index.html b/ABSTRACT_operator/index.html index 18f19d93493..b3031d1cf97 100644 --- a/ABSTRACT_operator/index.html +++ b/ABSTRACT_operator/index.html @@ -16,7 +16,7 @@ - + diff --git a/ACTION+_statement/index.html b/ACTION+_statement/index.html index 2f87439b9a3..19a2aae817e 100644 --- a/ACTION+_statement/index.html +++ b/ACTION+_statement/index.html @@ -16,7 +16,7 @@ - + diff --git a/ACTION_statement/index.html b/ACTION_statement/index.html index 022987eb45e..75d31b4a34f 100644 --- a/ACTION_statement/index.html +++ b/ACTION_statement/index.html @@ -16,7 +16,7 @@ - + diff --git a/ACTIVATE_operator/index.html b/ACTIVATE_operator/index.html index 7915b4447cb..dfc0ab135ee 100644 --- a/ACTIVATE_operator/index.html +++ b/ACTIVATE_operator/index.html @@ -16,7 +16,7 @@ - + diff --git a/ACTIVE_FORM_operator/index.html b/ACTIVE_FORM_operator/index.html index ec895fe426b..fb970177c26 100644 --- a/ACTIVE_FORM_operator/index.html +++ b/ACTIVE_FORM_operator/index.html @@ -16,7 +16,7 @@ - + diff --git a/ACTIVE_TAB_operator/index.html b/ACTIVE_TAB_operator/index.html index 27050053fcc..0f36e1259f2 100644 --- a/ACTIVE_TAB_operator/index.html +++ b/ACTIVE_TAB_operator/index.html @@ -16,7 +16,7 @@ - + diff --git a/AFTER_statement/index.html b/AFTER_statement/index.html index 1bdc6011d2d..f06d4c24ebe 100644 --- a/AFTER_statement/index.html +++ b/AFTER_statement/index.html @@ -16,7 +16,7 @@ - + diff --git a/AGGR_operator/index.html b/AGGR_operator/index.html index 29eeeaba319..ab42cb8593d 100644 --- a/AGGR_operator/index.html +++ b/AGGR_operator/index.html @@ -16,7 +16,7 @@ - + diff --git a/AND_OR_NOT_XOR_operators/index.html b/AND_OR_NOT_XOR_operators/index.html index 5b9d2a1b588..d5ec0762415 100644 --- a/AND_OR_NOT_XOR_operators/index.html +++ b/AND_OR_NOT_XOR_operators/index.html @@ -16,7 +16,7 @@ - + diff --git a/APPLY_operator/index.html b/APPLY_operator/index.html index 2256320fd0a..3697beac321 100644 --- a/APPLY_operator/index.html +++ b/APPLY_operator/index.html @@ -16,7 +16,7 @@ - + diff --git a/ASK_operator/index.html b/ASK_operator/index.html index 54bfabeda37..d6102269bca 100644 --- a/ASK_operator/index.html +++ b/ASK_operator/index.html @@ -16,7 +16,7 @@ - + diff --git a/Access_from_an_external_system/index.html b/Access_from_an_external_system/index.html index 2d2558b6b2b..da1ba444cd4 100644 --- a/Access_from_an_external_system/index.html +++ b/Access_from_an_external_system/index.html @@ -16,7 +16,7 @@ - + diff --git a/Access_from_an_internal_system/index.html b/Access_from_an_internal_system/index.html index 259b5bb9ffd..c4dc7727bf7 100644 --- a/Access_from_an_internal_system/index.html +++ b/Access_from_an_internal_system/index.html @@ -16,7 +16,7 @@ - + diff --git a/Access_to_an_external_system_EXTERNAL/index.html b/Access_to_an_external_system_EXTERNAL/index.html index 57cda96cd05..0f642aa59e8 100644 --- a/Access_to_an_external_system_EXTERNAL/index.html +++ b/Access_to_an_external_system_EXTERNAL/index.html @@ -16,7 +16,7 @@ - + diff --git a/Access_to_an_internal_system_INTERNAL_FORMULA/index.html b/Access_to_an_internal_system_INTERNAL_FORMULA/index.html index b7f4fcbc542..9a3a8c3d13d 100644 --- a/Access_to_an_internal_system_INTERNAL_FORMULA/index.html +++ b/Access_to_an_internal_system_INTERNAL_FORMULA/index.html @@ -16,7 +16,7 @@ - + diff --git a/Action_extension/index.html b/Action_extension/index.html index dd4d099630f..7f4b5a874a2 100644 --- a/Action_extension/index.html +++ b/Action_extension/index.html @@ -16,7 +16,7 @@ - + diff --git a/Action_operators/index.html b/Action_operators/index.html index 958ec66fc1e..bfb60eb0718 100644 --- a/Action_operators/index.html +++ b/Action_operators/index.html @@ -16,7 +16,7 @@ - + diff --git a/Action_operators_paradigm/index.html b/Action_operators_paradigm/index.html index 488326cdc01..c9342fba063 100644 --- a/Action_operators_paradigm/index.html +++ b/Action_operators_paradigm/index.html @@ -16,7 +16,7 @@ - + diff --git a/Action_options/index.html b/Action_options/index.html index 40339eeba57..a3c3d45eb02 100644 --- a/Action_options/index.html +++ b/Action_options/index.html @@ -16,7 +16,7 @@ - + diff --git a/Actions/index.html b/Actions/index.html index 98b40a1f3d9..5184aaca69f 100644 --- a/Actions/index.html +++ b/Actions/index.html @@ -16,7 +16,7 @@ - + diff --git a/Activation_ACTIVATE/index.html b/Activation_ACTIVATE/index.html index 8ea4592dd8b..7386e8aa83f 100644 --- a/Activation_ACTIVATE/index.html +++ b/Activation_ACTIVATE/index.html @@ -16,7 +16,7 @@ - + diff --git a/Activity_ACTIVE/index.html b/Activity_ACTIVE/index.html index f37895fbc3a..4bb22e5c3f3 100644 --- a/Activity_ACTIVE/index.html +++ b/Activity_ACTIVE/index.html @@ -16,7 +16,7 @@ - + diff --git a/Aggregations/index.html b/Aggregations/index.html index 688c37e7277..52c423036c0 100644 --- a/Aggregations/index.html +++ b/Aggregations/index.html @@ -16,7 +16,7 @@ - + diff --git a/Apply_changes_APPLY/index.html b/Apply_changes_APPLY/index.html index d60fa7963fd..207fbab2d4c 100644 --- a/Apply_changes_APPLY/index.html +++ b/Apply_changes_APPLY/index.html @@ -16,7 +16,7 @@ - + diff --git a/Arithmetic_operators/index.html b/Arithmetic_operators/index.html index 6cdd9e060c4..0b00525bcc9 100644 --- a/Arithmetic_operators/index.html +++ b/Arithmetic_operators/index.html @@ -16,7 +16,7 @@ - + diff --git a/Arithmetic_operators_+_-_etc/index.html b/Arithmetic_operators_+_-_etc/index.html index 3f810d1027b..65881dc85a9 100644 --- a/Arithmetic_operators_+_-_etc/index.html +++ b/Arithmetic_operators_+_-_etc/index.html @@ -16,7 +16,7 @@ - + diff --git a/Automatic_installation/index.html b/Automatic_installation/index.html index d1978dfc879..41fa1918be0 100644 --- a/Automatic_installation/index.html +++ b/Automatic_installation/index.html @@ -16,7 +16,7 @@ - + diff --git a/BEFORE_statement/index.html b/BEFORE_statement/index.html index 14904ab4ba3..653fb9b153b 100644 --- a/BEFORE_statement/index.html +++ b/BEFORE_statement/index.html @@ -16,7 +16,7 @@ - + diff --git a/BREAK_operator/index.html b/BREAK_operator/index.html index 08c093d1f5c..f6537fcbc87 100644 --- a/BREAK_operator/index.html +++ b/BREAK_operator/index.html @@ -16,7 +16,7 @@ - + diff --git a/Braces_operator/index.html b/Braces_operator/index.html index 6cdb797910a..c0279504670 100644 --- a/Braces_operator/index.html +++ b/Braces_operator/index.html @@ -16,7 +16,7 @@ - + diff --git a/Brackets_operator/index.html b/Brackets_operator/index.html index 0af24465adc..93fd454bd99 100644 --- a/Brackets_operator/index.html +++ b/Brackets_operator/index.html @@ -16,7 +16,7 @@ - + diff --git a/Branching_CASE_IF_MULTI/index.html b/Branching_CASE_IF_MULTI/index.html index 5c25aa817c6..fc997418b12 100644 --- a/Branching_CASE_IF_MULTI/index.html +++ b/Branching_CASE_IF_MULTI/index.html @@ -16,7 +16,7 @@ - + diff --git a/Built-in_classes/index.html b/Built-in_classes/index.html index e48f071d3f4..e1a99082c0f 100644 --- a/Built-in_classes/index.html +++ b/Built-in_classes/index.html @@ -16,7 +16,7 @@ - + diff --git a/CANCEL_operator/index.html b/CANCEL_operator/index.html index 9aef61d3c61..8fa51de9899 100644 --- a/CANCEL_operator/index.html +++ b/CANCEL_operator/index.html @@ -16,7 +16,7 @@ - + diff --git a/CASE_action_operator/index.html b/CASE_action_operator/index.html index fb4cd13b5bb..5e743773132 100644 --- a/CASE_action_operator/index.html +++ b/CASE_action_operator/index.html @@ -16,7 +16,7 @@ - + diff --git a/CASE_operator/index.html b/CASE_operator/index.html index d1456c08acc..4229fe37717 100644 --- a/CASE_operator/index.html +++ b/CASE_operator/index.html @@ -16,7 +16,7 @@ - + diff --git a/CHANGECLASS_operator/index.html b/CHANGECLASS_operator/index.html index 8bdb1906b03..134a038bee8 100644 --- a/CHANGECLASS_operator/index.html +++ b/CHANGECLASS_operator/index.html @@ -16,7 +16,7 @@ - + diff --git a/CHANGE_operator/index.html b/CHANGE_operator/index.html index 30da29c03f5..3fe062af43d 100644 --- a/CHANGE_operator/index.html +++ b/CHANGE_operator/index.html @@ -16,7 +16,7 @@ - + diff --git a/CLASS_operator/index.html b/CLASS_operator/index.html index 17e351661f7..17e91db6137 100644 --- a/CLASS_operator/index.html +++ b/CLASS_operator/index.html @@ -16,7 +16,7 @@ - + diff --git a/CLASS_statement/index.html b/CLASS_statement/index.html index 52a48de2abd..bab09a2d273 100644 --- a/CLASS_statement/index.html +++ b/CLASS_statement/index.html @@ -16,7 +16,7 @@ - + diff --git a/COLLAPSE_operator/index.html b/COLLAPSE_operator/index.html index d965fae2047..b30f345d5b3 100644 --- a/COLLAPSE_operator/index.html +++ b/COLLAPSE_operator/index.html @@ -16,7 +16,7 @@ - + diff --git a/CONCAT_operator/index.html b/CONCAT_operator/index.html index 935c629176d..d4a42067e98 100644 --- a/CONCAT_operator/index.html +++ b/CONCAT_operator/index.html @@ -16,7 +16,7 @@ - + diff --git a/CONSTRAINT_statement/index.html b/CONSTRAINT_statement/index.html index ac66871c718..f3acd983efc 100644 --- a/CONSTRAINT_statement/index.html +++ b/CONSTRAINT_statement/index.html @@ -16,7 +16,7 @@ - + diff --git a/Calculated_events/index.html b/Calculated_events/index.html index fea843a4270..b8ac3db0a73 100644 --- a/Calculated_events/index.html +++ b/Calculated_events/index.html @@ -16,7 +16,7 @@ - + diff --git a/Call_EXEC/index.html b/Call_EXEC/index.html index acf078347ab..7b9b7cff063 100644 --- a/Call_EXEC/index.html +++ b/Call_EXEC/index.html @@ -16,7 +16,7 @@ - + diff --git a/Cancel_changes_CANCEL/index.html b/Cancel_changes_CANCEL/index.html index b2dc240e320..98e34710f68 100644 --- a/Cancel_changes_CANCEL/index.html +++ b/Cancel_changes_CANCEL/index.html @@ -16,7 +16,7 @@ - + diff --git a/Change_operators/index.html b/Change_operators/index.html index 29d7ef4b554..e9d541ed1f4 100644 --- a/Change_operators/index.html +++ b/Change_operators/index.html @@ -16,7 +16,7 @@ - + diff --git a/Change_operators_SET_CHANGED_etc/index.html b/Change_operators_SET_CHANGED_etc/index.html index 7d362fe9844..806cb8fe9c7 100644 --- a/Change_operators_SET_CHANGED_etc/index.html +++ b/Change_operators_SET_CHANGED_etc/index.html @@ -16,7 +16,7 @@ - + diff --git a/Change_sessions/index.html b/Change_sessions/index.html index a95fb92ce1f..e7263ec9413 100644 --- a/Change_sessions/index.html +++ b/Change_sessions/index.html @@ -16,7 +16,7 @@ - + diff --git a/Chat/index.html b/Chat/index.html index ba952b895e6..14a5eb84c9d 100644 --- a/Chat/index.html +++ b/Chat/index.html @@ -16,7 +16,7 @@ - + diff --git a/Class_change_CHANGECLASS_DELETE/index.html b/Class_change_CHANGECLASS_DELETE/index.html index a918a9ea175..9b86a730ab8 100644 --- a/Class_change_CHANGECLASS_DELETE/index.html +++ b/Class_change_CHANGECLASS_DELETE/index.html @@ -16,7 +16,7 @@ - + diff --git a/Class_extension/index.html b/Class_extension/index.html index ab908f210d3..2fd7262ad95 100644 --- a/Class_extension/index.html +++ b/Class_extension/index.html @@ -16,7 +16,7 @@ - + diff --git a/Class_operators/index.html b/Class_operators/index.html index 8f48fca5dd1..40bcabf0eed 100644 --- a/Class_operators/index.html +++ b/Class_operators/index.html @@ -16,7 +16,7 @@ - + diff --git a/Classes/index.html b/Classes/index.html index 697f08de1d8..56d99c39264 100644 --- a/Classes/index.html +++ b/Classes/index.html @@ -16,7 +16,7 @@ - + diff --git a/Classification_IS_AS/index.html b/Classification_IS_AS/index.html index 45e8ab73a10..82ad03cad2d 100644 --- a/Classification_IS_AS/index.html +++ b/Classification_IS_AS/index.html @@ -16,7 +16,7 @@ - + diff --git a/Coding_conventions/index.html b/Coding_conventions/index.html index 493ada1ec85..5f2fb4282eb 100644 --- a/Coding_conventions/index.html +++ b/Coding_conventions/index.html @@ -16,7 +16,7 @@ - + diff --git a/Comparison_operators/index.html b/Comparison_operators/index.html index 52530285302..5293e9e511f 100644 --- a/Comparison_operators/index.html +++ b/Comparison_operators/index.html @@ -16,7 +16,7 @@ - + diff --git a/Comparison_operators_=_etc/index.html b/Comparison_operators_=_etc/index.html index 7446563ef28..9a2d2bde3df 100644 --- a/Comparison_operators_=_etc/index.html +++ b/Comparison_operators_=_etc/index.html @@ -16,7 +16,7 @@ - + diff --git a/Composition_JOIN/index.html b/Composition_JOIN/index.html index f3f7a8c2c4a..74377af51b8 100644 --- a/Composition_JOIN/index.html +++ b/Composition_JOIN/index.html @@ -16,7 +16,7 @@ - + diff --git a/Constant/index.html b/Constant/index.html index a6f319acba4..293b0681ece 100644 --- a/Constant/index.html +++ b/Constant/index.html @@ -16,7 +16,7 @@ - + diff --git a/Constraints/index.html b/Constraints/index.html index 7a5b75597d0..7b6f0fbc74e 100644 --- a/Constraints/index.html +++ b/Constraints/index.html @@ -16,7 +16,7 @@ - + diff --git a/Custom_formula_FORMULA/index.html b/Custom_formula_FORMULA/index.html index bb86f499ace..df4b950d384 100644 --- a/Custom_formula_FORMULA/index.html +++ b/Custom_formula_FORMULA/index.html @@ -16,7 +16,7 @@ - + diff --git a/DATA_operator/index.html b/DATA_operator/index.html index 723a5aaa47e..58393daa84b 100644 --- a/DATA_operator/index.html +++ b/DATA_operator/index.html @@ -16,7 +16,7 @@ - + diff --git a/DELETE_operator/index.html b/DELETE_operator/index.html index 3ac1a39122c..850f490b456 100644 --- a/DELETE_operator/index.html +++ b/DELETE_operator/index.html @@ -16,7 +16,7 @@ - + diff --git a/DESIGN_statement/index.html b/DESIGN_statement/index.html index 5bf14c94dff..bdb887c7f62 100644 --- a/DESIGN_statement/index.html +++ b/DESIGN_statement/index.html @@ -16,7 +16,7 @@ - + diff --git a/DIALOG_operator/index.html b/DIALOG_operator/index.html index 8e31dd841c7..81d9ab1baf5 100644 --- a/DIALOG_operator/index.html +++ b/DIALOG_operator/index.html @@ -16,7 +16,7 @@ - + diff --git a/Data_export_EXPORT/index.html b/Data_export_EXPORT/index.html index 3675aedbb77..37bf7ff38bc 100644 --- a/Data_export_EXPORT/index.html +++ b/Data_export_EXPORT/index.html @@ -16,7 +16,7 @@ - + diff --git a/Data_import_IMPORT/index.html b/Data_import_IMPORT/index.html index 73a9dde558f..1a1586ef1c5 100644 --- a/Data_import_IMPORT/index.html +++ b/Data_import_IMPORT/index.html @@ -16,7 +16,7 @@ - + diff --git a/Data_properties_DATA/index.html b/Data_properties_DATA/index.html index 05cceb41170..6d920580947 100644 --- a/Data_properties_DATA/index.html +++ b/Data_properties_DATA/index.html @@ -16,7 +16,7 @@ - + diff --git a/Development/index.html b/Development/index.html index 44a76901cde..9fa030e6fc5 100644 --- a/Development/index.html +++ b/Development/index.html @@ -16,7 +16,7 @@ - + diff --git a/Development_auto/index.html b/Development_auto/index.html index c2e002906c1..f195cf945fe 100644 --- a/Development_auto/index.html +++ b/Development_auto/index.html @@ -16,7 +16,7 @@ - + diff --git a/Development_manual/index.html b/Development_manual/index.html index 412bd5ff92c..cdd4580d212 100644 --- a/Development_manual/index.html +++ b/Development_manual/index.html @@ -16,7 +16,7 @@ - + diff --git a/Distribution_UNGROUP/index.html b/Distribution_UNGROUP/index.html index 274271e191a..0c4ef0e2a46 100644 --- a/Distribution_UNGROUP/index.html +++ b/Distribution_UNGROUP/index.html @@ -16,7 +16,7 @@ - + diff --git a/Domain_logic/index.html b/Domain_logic/index.html index 4fe6edd627a..ed0fb92a41e 100644 --- a/Domain_logic/index.html +++ b/Domain_logic/index.html @@ -16,7 +16,7 @@ - + diff --git a/EMAIL_operator/index.html b/EMAIL_operator/index.html index 9b6e8682dbe..abf6818b561 100644 --- a/EMAIL_operator/index.html +++ b/EMAIL_operator/index.html @@ -16,7 +16,7 @@ - + diff --git a/EVAL_operator/index.html b/EVAL_operator/index.html index fff3f6f37f7..8f098667473 100644 --- a/EVAL_operator/index.html +++ b/EVAL_operator/index.html @@ -16,7 +16,7 @@ - + diff --git a/EXCLUSIVE_operator/index.html b/EXCLUSIVE_operator/index.html index 4566cb571e1..64937eb88ee 100644 --- a/EXCLUSIVE_operator/index.html +++ b/EXCLUSIVE_operator/index.html @@ -16,7 +16,7 @@ - + diff --git a/EXEC_operator/index.html b/EXEC_operator/index.html index e8be9e8ca8b..6bf3efd0474 100644 --- a/EXEC_operator/index.html +++ b/EXEC_operator/index.html @@ -16,7 +16,7 @@ - + diff --git a/EXPAND_operator/index.html b/EXPAND_operator/index.html index 7c323b0507e..bb4c0e06b18 100644 --- a/EXPAND_operator/index.html +++ b/EXPAND_operator/index.html @@ -16,7 +16,7 @@ - + diff --git a/EXPORT_operator/index.html b/EXPORT_operator/index.html index 68b9beffaf5..1b52349716b 100644 --- a/EXPORT_operator/index.html +++ b/EXPORT_operator/index.html @@ -16,7 +16,7 @@ - + diff --git a/EXTEND_CLASS_statement/index.html b/EXTEND_CLASS_statement/index.html index eb964cb4c01..0169bb6f688 100644 --- a/EXTEND_CLASS_statement/index.html +++ b/EXTEND_CLASS_statement/index.html @@ -16,7 +16,7 @@ - + diff --git a/EXTEND_FORM_statement/index.html b/EXTEND_FORM_statement/index.html index 92bb381ef32..449dd1247a8 100644 --- a/EXTEND_FORM_statement/index.html +++ b/EXTEND_FORM_statement/index.html @@ -16,7 +16,7 @@ - + diff --git a/EXTERNAL_operator/index.html b/EXTERNAL_operator/index.html index 74bcb0558f6..15a465b3078 100644 --- a/EXTERNAL_operator/index.html +++ b/EXTERNAL_operator/index.html @@ -16,7 +16,7 @@ - + diff --git a/Element_identification/index.html b/Element_identification/index.html index 0af8be5427f..c8af7c09c95 100644 --- a/Element_identification/index.html +++ b/Element_identification/index.html @@ -16,7 +16,7 @@ - + diff --git a/Empty_statement/index.html b/Empty_statement/index.html index 86604f59386..04e411cff0c 100644 --- a/Empty_statement/index.html +++ b/Empty_statement/index.html @@ -16,7 +16,7 @@ - + diff --git a/Eval_EVAL/index.html b/Eval_EVAL/index.html index 2fbd221c9ab..d51aed221ee 100644 --- a/Eval_EVAL/index.html +++ b/Eval_EVAL/index.html @@ -16,7 +16,7 @@ - + diff --git a/Event_block/index.html b/Event_block/index.html index 0436daf9467..fc54d0dee70 100644 --- a/Event_block/index.html +++ b/Event_block/index.html @@ -16,7 +16,7 @@ - + diff --git a/Event_description_block/index.html b/Event_description_block/index.html index a13e8654135..d1f819ed647 100644 --- a/Event_description_block/index.html +++ b/Event_description_block/index.html @@ -16,7 +16,7 @@ - + diff --git a/Events/index.html b/Events/index.html index 3ac4b83bcea..c3138a25e14 100644 --- a/Events/index.html +++ b/Events/index.html @@ -16,7 +16,7 @@ - + diff --git a/Examples/index.html b/Examples/index.html index 258b2651ebe..7c0ff74f93e 100644 --- a/Examples/index.html +++ b/Examples/index.html @@ -16,7 +16,7 @@ - + diff --git a/Exception_handling_TRY/index.html b/Exception_handling_TRY/index.html index 78d49681c7f..19c8c6f7299 100644 --- a/Exception_handling_TRY/index.html +++ b/Exception_handling_TRY/index.html @@ -16,7 +16,7 @@ - + diff --git a/Execution/index.html b/Execution/index.html index eb08846a038..3960b334bbd 100644 --- a/Execution/index.html +++ b/Execution/index.html @@ -16,7 +16,7 @@ - + diff --git a/Execution_auto/index.html b/Execution_auto/index.html index ca15972d3ec..4e3d42d9241 100644 --- a/Execution_auto/index.html +++ b/Execution_auto/index.html @@ -16,7 +16,7 @@ - + diff --git a/Execution_manual/index.html b/Execution_manual/index.html index 6092f4f84f0..8a7d2184829 100644 --- a/Execution_manual/index.html +++ b/Execution_manual/index.html @@ -16,7 +16,7 @@ - + diff --git a/Execution_order/index.html b/Execution_order/index.html index 31e5bde3e46..f0d3a6cf378 100644 --- a/Execution_order/index.html +++ b/Execution_order/index.html @@ -16,7 +16,7 @@ - + diff --git a/Exit_RETURN/index.html b/Exit_RETURN/index.html index 8e5a50cdf02..bc4b1c49767 100644 --- a/Exit_RETURN/index.html +++ b/Exit_RETURN/index.html @@ -16,7 +16,7 @@ - + diff --git a/Expression/index.html b/Expression/index.html index 7c6386adbe0..ebd607e2997 100644 --- a/Expression/index.html +++ b/Expression/index.html @@ -16,7 +16,7 @@ - + diff --git a/Extensions/index.html b/Extensions/index.html index 1b561d5db2a..c1bf224db19 100644 --- a/Extensions/index.html +++ b/Extensions/index.html @@ -16,7 +16,7 @@ - + diff --git a/Extremum_MAX_MIN/index.html b/Extremum_MAX_MIN/index.html index 8a644b49d4f..c13fd265b03 100644 --- a/Extremum_MAX_MIN/index.html +++ b/Extremum_MAX_MIN/index.html @@ -16,7 +16,7 @@ - + diff --git a/FORMULA_operator/index.html b/FORMULA_operator/index.html index be5cdf5237f..637b7327037 100644 --- a/FORMULA_operator/index.html +++ b/FORMULA_operator/index.html @@ -16,7 +16,7 @@ - + diff --git a/FORM_statement/index.html b/FORM_statement/index.html index fee04e364f0..31a40f7a9d9 100644 --- a/FORM_statement/index.html +++ b/FORM_statement/index.html @@ -16,7 +16,7 @@ - + diff --git a/FOR_operator/index.html b/FOR_operator/index.html index 24f9376d985..ecbc6602ca5 100644 --- a/FOR_operator/index.html +++ b/FOR_operator/index.html @@ -16,7 +16,7 @@ - + diff --git a/File_operators/index.html b/File_operators/index.html index 6f12d27ce82..9cd6f22b49c 100644 --- a/File_operators/index.html +++ b/File_operators/index.html @@ -16,7 +16,7 @@ - + diff --git a/Filter_FILTER/index.html b/Filter_FILTER/index.html index 10cd7db1f54..749ca69e1e8 100644 --- a/Filter_FILTER/index.html +++ b/Filter_FILTER/index.html @@ -16,7 +16,7 @@ - + diff --git a/Filters_and_sortings_block/index.html b/Filters_and_sortings_block/index.html index 3de212b9c56..342015b5d9a 100644 --- a/Filters_and_sortings_block/index.html +++ b/Filters_and_sortings_block/index.html @@ -16,7 +16,7 @@ - + diff --git a/Focus_operators/index.html b/Focus_operators/index.html index 954383f0dfb..6741c6bf817 100644 --- a/Focus_operators/index.html +++ b/Focus_operators/index.html @@ -16,7 +16,7 @@ - + diff --git a/Form_design/index.html b/Form_design/index.html index b1b28ef315e..1cfcdbc5dff 100644 --- a/Form_design/index.html +++ b/Form_design/index.html @@ -16,7 +16,7 @@ - + diff --git a/Form_events/index.html b/Form_events/index.html index 6a0b29ba55d..b6f17bc5aa0 100644 --- a/Form_events/index.html +++ b/Form_events/index.html @@ -16,7 +16,7 @@ - + diff --git a/Form_extension/index.html b/Form_extension/index.html index 8572ef544dd..c57825b9ac7 100644 --- a/Form_extension/index.html +++ b/Form_extension/index.html @@ -16,7 +16,7 @@ - + diff --git a/Form_operators/index.html b/Form_operators/index.html index c3906d901e1..39046343b73 100644 --- a/Form_operators/index.html +++ b/Form_operators/index.html @@ -16,7 +16,7 @@ - + diff --git a/Form_structure/index.html b/Form_structure/index.html index bcbbb20803c..8d0eda08948 100644 --- a/Form_structure/index.html +++ b/Form_structure/index.html @@ -16,7 +16,7 @@ - + diff --git a/Form_views/index.html b/Form_views/index.html index 077524b6571..97d405f3d36 100644 --- a/Form_views/index.html +++ b/Form_views/index.html @@ -16,7 +16,7 @@ - + diff --git a/Forms/index.html b/Forms/index.html index c2d5c7ce320..b6eba932064 100644 --- a/Forms/index.html +++ b/Forms/index.html @@ -16,7 +16,7 @@ - + diff --git a/GROUP_operator/index.html b/GROUP_operator/index.html index fbc18e633e3..94323aa6e59 100644 --- a/GROUP_operator/index.html +++ b/GROUP_operator/index.html @@ -16,7 +16,7 @@ - + diff --git a/GROUP_statement/index.html b/GROUP_statement/index.html index 0c0dae7c953..283a7af6731 100644 --- a/GROUP_statement/index.html +++ b/GROUP_statement/index.html @@ -16,7 +16,7 @@ - + diff --git a/Grouping_GROUP/index.html b/Grouping_GROUP/index.html index a88a18b9a61..5fef1f4d660 100644 --- a/Grouping_GROUP/index.html +++ b/Grouping_GROUP/index.html @@ -16,7 +16,7 @@ - + diff --git a/Groups_of_properties_and_actions/index.html b/Groups_of_properties_and_actions/index.html index a03cb4bf696..81e4f71d901 100644 --- a/Groups_of_properties_and_actions/index.html +++ b/Groups_of_properties_and_actions/index.html @@ -16,7 +16,7 @@ - + diff --git a/How-to/index.html b/How-to/index.html index a348749d101..fd9ca569d77 100644 --- a/How-to/index.html +++ b/How-to/index.html @@ -16,7 +16,7 @@ - + diff --git a/How-to_Access_to_internal_systems/index.html b/How-to_Access_to_internal_systems/index.html index 99a9062b3dd..bcd637c9318 100644 --- a/How-to_Access_to_internal_systems/index.html +++ b/How-to_Access_to_internal_systems/index.html @@ -16,7 +16,7 @@ - + diff --git a/How-to_Action_extension/index.html b/How-to_Action_extension/index.html index 0367c010f53..7e907a8b141 100644 --- a/How-to_Action_extension/index.html +++ b/How-to_Action_extension/index.html @@ -16,7 +16,7 @@ - + diff --git a/How-to_Actions/index.html b/How-to_Actions/index.html index 3e0f9d11c53..64649372ef1 100644 --- a/How-to_Actions/index.html +++ b/How-to_Actions/index.html @@ -16,7 +16,7 @@ - + diff --git a/How-to_Binding_properties/index.html b/How-to_Binding_properties/index.html index 256a7925592..1b755220844 100644 --- a/How-to_Binding_properties/index.html +++ b/How-to_Binding_properties/index.html @@ -16,7 +16,7 @@ - + diff --git a/How-to_CASE_IF_OVERRIDE/index.html b/How-to_CASE_IF_OVERRIDE/index.html index 1f0f0218187..bedb9a64ec6 100644 --- a/How-to_CASE_IF_OVERRIDE/index.html +++ b/How-to_CASE_IF_OVERRIDE/index.html @@ -16,7 +16,7 @@ - + diff --git a/How-to_CHANGE/index.html b/How-to_CHANGE/index.html index 40d275216fb..ed20e62dc4f 100644 --- a/How-to_CHANGE/index.html +++ b/How-to_CHANGE/index.html @@ -16,7 +16,7 @@ - + diff --git a/How-to_CRUD/index.html b/How-to_CRUD/index.html index 8a6b0b31274..ec7d703c2a7 100644 --- a/How-to_CRUD/index.html +++ b/How-to_CRUD/index.html @@ -16,7 +16,7 @@ - + diff --git a/How-to_Class_extension/index.html b/How-to_Class_extension/index.html index 1a841a6c8a3..e2a1b76b2ff 100644 --- a/How-to_Class_extension/index.html +++ b/How-to_Class_extension/index.html @@ -16,7 +16,7 @@ - + diff --git a/How-to_Computations/index.html b/How-to_Computations/index.html index 855b42e0d27..e6d7836604d 100644 --- a/How-to_Computations/index.html +++ b/How-to_Computations/index.html @@ -16,7 +16,7 @@ - + diff --git a/How-to_Constraints/index.html b/How-to_Constraints/index.html index fa07a1c5523..273a1400a5e 100644 --- a/How-to_Constraints/index.html +++ b/How-to_Constraints/index.html @@ -16,7 +16,7 @@ - + diff --git a/How-to_Custom_components_objects/index.html b/How-to_Custom_components_objects/index.html index aab84837003..d73d171a8ce 100644 --- a/How-to_Custom_components_objects/index.html +++ b/How-to_Custom_components_objects/index.html @@ -16,7 +16,7 @@ - + diff --git a/How-to_Custom_components_properties/index.html b/How-to_Custom_components_properties/index.html index aae9a037031..8735e76beda 100644 --- a/How-to_Custom_components_properties/index.html +++ b/How-to_Custom_components_properties/index.html @@ -16,7 +16,7 @@ - + diff --git a/How-to_DELETE/index.html b/How-to_DELETE/index.html index 2ebaf62e07f..9c04c55f15c 100644 --- a/How-to_DELETE/index.html +++ b/How-to_DELETE/index.html @@ -16,7 +16,7 @@ - + diff --git a/How-to_Data_entry/index.html b/How-to_Data_entry/index.html index 8a66c23790e..4839c34cb22 100644 --- a/How-to_Data_entry/index.html +++ b/How-to_Data_entry/index.html @@ -16,7 +16,7 @@ - + diff --git a/How-to_Data_export/index.html b/How-to_Data_export/index.html index 5e092d42d91..e2547b36ed9 100644 --- a/How-to_Data_export/index.html +++ b/How-to_Data_export/index.html @@ -16,7 +16,7 @@ - + diff --git a/How-to_Data_import/index.html b/How-to_Data_import/index.html index 2f54425943b..cea6ffdad8f 100644 --- a/How-to_Data_import/index.html +++ b/How-to_Data_import/index.html @@ -16,7 +16,7 @@ - + diff --git a/How-to_Declarative_logic/index.html b/How-to_Declarative_logic/index.html index 24bcde4e689..08e2cfcf4ef 100644 --- a/How-to_Declarative_logic/index.html +++ b/How-to_Declarative_logic/index.html @@ -16,7 +16,7 @@ - + diff --git a/How-to_Design/index.html b/How-to_Design/index.html index 8022fd40cf2..453e522c5fd 100644 --- a/How-to_Design/index.html +++ b/How-to_Design/index.html @@ -16,7 +16,7 @@ - + diff --git a/How-to_Documents_with_lines/index.html b/How-to_Documents_with_lines/index.html index cd71cc22cfb..5933b1170bb 100644 --- a/How-to_Documents_with_lines/index.html +++ b/How-to_Documents_with_lines/index.html @@ -16,7 +16,7 @@ - + diff --git a/How-to_EXEC/index.html b/How-to_EXEC/index.html index 0c94c090f58..7370c540fd9 100644 --- a/How-to_EXEC/index.html +++ b/How-to_EXEC/index.html @@ -16,7 +16,7 @@ - + diff --git a/How-to_Events/index.html b/How-to_Events/index.html index 8c81558c341..ee02bb08fa7 100644 --- a/How-to_Events/index.html +++ b/How-to_Events/index.html @@ -16,7 +16,7 @@ - + diff --git a/How-to_Explicit_typing/index.html b/How-to_Explicit_typing/index.html index c85b1808ab3..eaa87c79306 100644 --- a/How-to_Explicit_typing/index.html +++ b/How-to_Explicit_typing/index.html @@ -16,7 +16,7 @@ - + diff --git a/How-to_Extensions/index.html b/How-to_Extensions/index.html index 60f8b1098ff..2b86156dcc5 100644 --- a/How-to_Extensions/index.html +++ b/How-to_Extensions/index.html @@ -16,7 +16,7 @@ - + diff --git a/How-to_FOR/index.html b/How-to_FOR/index.html index 088d1b67c06..e53472f3b1d 100644 --- a/How-to_FOR/index.html +++ b/How-to_FOR/index.html @@ -16,7 +16,7 @@ - + diff --git a/How-to_FORMULA/index.html b/How-to_FORMULA/index.html index cc9d5d73afb..e572f095d33 100644 --- a/How-to_FORMULA/index.html +++ b/How-to_FORMULA/index.html @@ -16,7 +16,7 @@ - + diff --git a/How-to_Filtering_and_ordering/index.html b/How-to_Filtering_and_ordering/index.html index 02f60b0d445..8bcce5eed4d 100644 --- a/How-to_Filtering_and_ordering/index.html +++ b/How-to_Filtering_and_ordering/index.html @@ -16,7 +16,7 @@ - + diff --git a/How-to_Form_extension/index.html b/How-to_Form_extension/index.html index b4fddf43a0f..080770558cb 100644 --- a/How-to_Form_extension/index.html +++ b/How-to_Form_extension/index.html @@ -16,7 +16,7 @@ - + diff --git a/How-to_Frontend/index.html b/How-to_Frontend/index.html index 7239089abd6..7079dd7fa3d 100644 --- a/How-to_Frontend/index.html +++ b/How-to_Frontend/index.html @@ -16,7 +16,7 @@ - + diff --git a/How-to_GROUP_CONCAT/index.html b/How-to_GROUP_CONCAT/index.html index e77158edb5f..ddbb15c1369 100644 --- a/How-to_GROUP_CONCAT/index.html +++ b/How-to_GROUP_CONCAT/index.html @@ -16,7 +16,7 @@ - + diff --git a/How-to_GROUP_LAST/index.html b/How-to_GROUP_LAST/index.html index c32eef9b625..1fdcb1dd22f 100644 --- a/How-to_GROUP_LAST/index.html +++ b/How-to_GROUP_LAST/index.html @@ -16,7 +16,7 @@ - + diff --git a/How-to_GROUP_MAX_MIN_AGGR/index.html b/How-to_GROUP_MAX_MIN_AGGR/index.html index 2ba14d737cf..d50c69f6f3a 100644 --- a/How-to_GROUP_MAX_MIN_AGGR/index.html +++ b/How-to_GROUP_MAX_MIN_AGGR/index.html @@ -16,7 +16,7 @@ - + diff --git a/How-to_GROUP_SUM/index.html b/How-to_GROUP_SUM/index.html index 9a336ceed56..f426cb09acb 100644 --- a/How-to_GROUP_SUM/index.html +++ b/How-to_GROUP_SUM/index.html @@ -16,7 +16,7 @@ - + diff --git a/How-to_GUI/index.html b/How-to_GUI/index.html index 4de39610dbe..b1e6385d965 100644 --- a/How-to_GUI/index.html +++ b/How-to_GUI/index.html @@ -16,7 +16,7 @@ - + diff --git a/How-to_IF_CASE/index.html b/How-to_IF_CASE/index.html index 4db2a93eba1..b12fa0bfd83 100644 --- a/How-to_IF_CASE/index.html +++ b/How-to_IF_CASE/index.html @@ -16,7 +16,7 @@ - + diff --git a/How-to_INTERNAL/index.html b/How-to_INTERNAL/index.html index 0dd94d15888..cf55c32060f 100644 --- a/How-to_INTERNAL/index.html +++ b/How-to_INTERNAL/index.html @@ -16,7 +16,7 @@ - + diff --git a/How-to_Imperative_logic/index.html b/How-to_Imperative_logic/index.html index 88c5aa99ccd..9248a9a1349 100644 --- a/How-to_Imperative_logic/index.html +++ b/How-to_Imperative_logic/index.html @@ -16,7 +16,7 @@ - + diff --git a/How-to_Inheritance_and_aggregation/index.html b/How-to_Inheritance_and_aggregation/index.html index 80ba92cb4c5..e2e8953ee1c 100644 --- a/How-to_Inheritance_and_aggregation/index.html +++ b/How-to_Inheritance_and_aggregation/index.html @@ -16,7 +16,7 @@ - + diff --git a/How-to_Integration/index.html b/How-to_Integration/index.html index 984b692013d..0cc573db5da 100644 --- a/How-to_Integration/index.html +++ b/How-to_Integration/index.html @@ -16,7 +16,7 @@ - + diff --git a/How-to_Interaction_via_HTTP_protocol/index.html b/How-to_Interaction_via_HTTP_protocol/index.html index 4d487a9a962..b32b6b234a2 100644 --- a/How-to_Interaction_via_HTTP_protocol/index.html +++ b/How-to_Interaction_via_HTTP_protocol/index.html @@ -16,7 +16,7 @@ - + diff --git a/How-to_Interactive_forms/index.html b/How-to_Interactive_forms/index.html index 27f193375d2..be1048fc3da 100644 --- a/How-to_Interactive_forms/index.html +++ b/How-to_Interactive_forms/index.html @@ -16,7 +16,7 @@ - + diff --git a/How-to_Internationalization/index.html b/How-to_Internationalization/index.html index 27ebd894aea..3b1b83fbf62 100644 --- a/How-to_Internationalization/index.html +++ b/How-to_Internationalization/index.html @@ -16,7 +16,7 @@ - + diff --git a/How-to_Matrix/index.html b/How-to_Matrix/index.html index 380b9e14771..ef5d22e0677 100644 --- a/How-to_Matrix/index.html +++ b/How-to_Matrix/index.html @@ -16,7 +16,7 @@ - + diff --git a/How-to_Metaprogramming/index.html b/How-to_Metaprogramming/index.html index 6e6c253fc38..bcc653fedda 100644 --- a/How-to_Metaprogramming/index.html +++ b/How-to_Metaprogramming/index.html @@ -16,7 +16,7 @@ - + diff --git a/How-to_NEW/index.html b/How-to_NEW/index.html index f5fc0aac0ef..a5339264f1b 100644 --- a/How-to_NEW/index.html +++ b/How-to_NEW/index.html @@ -16,7 +16,7 @@ - + diff --git a/How-to_NEWSESSION/index.html b/How-to_NEWSESSION/index.html index 747c23257b9..07839b67810 100644 --- a/How-to_NEWSESSION/index.html +++ b/How-to_NEWSESSION/index.html @@ -16,7 +16,7 @@ - + diff --git a/How-to_Namespaces/index.html b/How-to_Namespaces/index.html index 86e43f69d3a..057c21262e2 100644 --- a/How-to_Namespaces/index.html +++ b/How-to_Namespaces/index.html @@ -16,7 +16,7 @@ - + diff --git a/How-to_Navigator/index.html b/How-to_Navigator/index.html index 656cc47018d..21475487d24 100644 --- a/How-to_Navigator/index.html +++ b/How-to_Navigator/index.html @@ -16,7 +16,7 @@ - + diff --git a/How-to_Numbering/index.html b/How-to_Numbering/index.html index 71caf990037..1742155ddd9 100644 --- a/How-to_Numbering/index.html +++ b/How-to_Numbering/index.html @@ -16,7 +16,7 @@ - + diff --git a/How-to_Overriding_values/index.html b/How-to_Overriding_values/index.html index 599ac0c0044..cc0ee0a97da 100644 --- a/How-to_Overriding_values/index.html +++ b/How-to_Overriding_values/index.html @@ -16,7 +16,7 @@ - + diff --git a/How-to_PARTITION/index.html b/How-to_PARTITION/index.html index 75addec9f00..19a807366d6 100644 --- a/How-to_PARTITION/index.html +++ b/How-to_PARTITION/index.html @@ -16,7 +16,7 @@ - + diff --git a/How-to_Physical_model/index.html b/How-to_Physical_model/index.html index e0ace071265..02d0c4192be 100644 --- a/How-to_Physical_model/index.html +++ b/How-to_Physical_model/index.html @@ -16,7 +16,7 @@ - + diff --git a/How-to_Property_extension/index.html b/How-to_Property_extension/index.html index df1b2bda13a..dabf42c3a1b 100644 --- a/How-to_Property_extension/index.html +++ b/How-to_Property_extension/index.html @@ -16,7 +16,7 @@ - + diff --git a/How-to_Registers/index.html b/How-to_Registers/index.html index 774e2016954..d020470efca 100644 --- a/How-to_Registers/index.html +++ b/How-to_Registers/index.html @@ -16,7 +16,7 @@ - + diff --git a/How-to_Reports/index.html b/How-to_Reports/index.html index f23e61b9ba5..1b683e46779 100644 --- a/How-to_Reports/index.html +++ b/How-to_Reports/index.html @@ -16,7 +16,7 @@ - + diff --git a/How-to_SEEK/index.html b/How-to_SEEK/index.html index 6b8e5e5f2c0..95a771e871d 100644 --- a/How-to_SEEK/index.html +++ b/How-to_SEEK/index.html @@ -16,7 +16,7 @@ - + diff --git a/How-to_Searching_for_elements/index.html b/How-to_Searching_for_elements/index.html index 79937d52fbd..e4537ff8a8b 100644 --- a/How-to_Searching_for_elements/index.html +++ b/How-to_Searching_for_elements/index.html @@ -16,7 +16,7 @@ - + diff --git a/How-to_Table_status/index.html b/How-to_Table_status/index.html index 2dc2b6aaced..71dc2d0d380 100644 --- a/How-to_Table_status/index.html +++ b/How-to_Table_status/index.html @@ -16,7 +16,7 @@ - + diff --git a/How-to_Trees/index.html b/How-to_Trees/index.html index 8ef40d3e046..741740c8ae4 100644 --- a/How-to_Trees/index.html +++ b/How-to_Trees/index.html @@ -16,7 +16,7 @@ - + diff --git a/How-to_Use_Cases/index.html b/How-to_Use_Cases/index.html index 4e0d8ee491d..0efbf5c8061 100644 --- a/How-to_Use_Cases/index.html +++ b/How-to_Use_Cases/index.html @@ -16,7 +16,7 @@ - + diff --git a/How-to_Using_objects_as_templates/index.html b/How-to_Using_objects_as_templates/index.html index f0c4215b3d3..2d2e1e3eae8 100644 --- a/How-to_Using_objects_as_templates/index.html +++ b/How-to_Using_objects_as_templates/index.html @@ -16,7 +16,7 @@ - + diff --git a/How-to_WHILE/index.html b/How-to_WHILE/index.html index 590a334b93e..4e474ca0f6e 100644 --- a/How-to_WHILE/index.html +++ b/How-to_WHILE/index.html @@ -16,7 +16,7 @@ - + diff --git a/How-to_Working_with_documents/index.html b/How-to_Working_with_documents/index.html index 902b0603050..b708f1435bb 100644 --- a/How-to_Working_with_documents/index.html +++ b/How-to_Working_with_documents/index.html @@ -16,7 +16,7 @@ - + diff --git a/How-to_Working_with_external_formats/index.html b/How-to_Working_with_external_formats/index.html index 64ae767cbd2..5a4228e621b 100644 --- a/How-to_Working_with_external_formats/index.html +++ b/How-to_Working_with_external_formats/index.html @@ -16,7 +16,7 @@ - + diff --git a/IDE/index.html b/IDE/index.html index d504ba60e59..a7e2cc36f19 100644 --- a/IDE/index.html +++ b/IDE/index.html @@ -16,7 +16,7 @@ - + diff --git a/IDs/index.html b/IDs/index.html index 0392611c542..aa8bbb1adde 100644 --- a/IDs/index.html +++ b/IDs/index.html @@ -16,7 +16,7 @@ - + diff --git a/IF_..._THEN_action_operator/index.html b/IF_..._THEN_action_operator/index.html index 828a064623c..5ce30777d9e 100644 --- a/IF_..._THEN_action_operator/index.html +++ b/IF_..._THEN_action_operator/index.html @@ -16,7 +16,7 @@ - + diff --git a/IF_..._THEN_operator/index.html b/IF_..._THEN_operator/index.html index fba95c99d2b..2f24176ec38 100644 --- a/IF_..._THEN_operator/index.html +++ b/IF_..._THEN_operator/index.html @@ -16,7 +16,7 @@ - + diff --git a/IF_operator/index.html b/IF_operator/index.html index cdb989be50d..98398d01493 100644 --- a/IF_operator/index.html +++ b/IF_operator/index.html @@ -16,7 +16,7 @@ - + diff --git a/IMPORT_operator/index.html b/IMPORT_operator/index.html index 7daedf72d46..778ae5c317c 100644 --- a/IMPORT_operator/index.html +++ b/IMPORT_operator/index.html @@ -16,7 +16,7 @@ - + diff --git a/INDEX_statement/index.html b/INDEX_statement/index.html index 757956c6a61..fa801a8f34e 100644 --- a/INDEX_statement/index.html +++ b/INDEX_statement/index.html @@ -16,7 +16,7 @@ - + diff --git a/INPUT_operator/index.html b/INPUT_operator/index.html index 380269ec551..b155ff6e893 100644 --- a/INPUT_operator/index.html +++ b/INPUT_operator/index.html @@ -16,7 +16,7 @@ - + diff --git a/INTERNAL_operator/index.html b/INTERNAL_operator/index.html index 2e8fab24c77..c6eaa2d0836 100644 --- a/INTERNAL_operator/index.html +++ b/INTERNAL_operator/index.html @@ -16,7 +16,7 @@ - + diff --git a/IS_AS_operators/index.html b/IS_AS_operators/index.html index 56f905c002e..03a3b93541f 100644 --- a/IS_AS_operators/index.html +++ b/IS_AS_operators/index.html @@ -16,7 +16,7 @@ - + diff --git a/In_a_print_view_PRINT/index.html b/In_a_print_view_PRINT/index.html index 56ded08b949..5f31f9abd27 100644 --- a/In_a_print_view_PRINT/index.html +++ b/In_a_print_view_PRINT/index.html @@ -16,7 +16,7 @@ - + diff --git a/In_a_structured_view_EXPORT_IMPORT/index.html b/In_a_structured_view_EXPORT_IMPORT/index.html index a977125ddc2..637b716244a 100644 --- a/In_a_structured_view_EXPORT_IMPORT/index.html +++ b/In_a_structured_view_EXPORT_IMPORT/index.html @@ -16,7 +16,7 @@ - + diff --git a/In_an_interactive_view_SHOW_DIALOG/index.html b/In_an_interactive_view_SHOW_DIALOG/index.html index 80e56b38e36..a979665322d 100644 --- a/In_an_interactive_view_SHOW_DIALOG/index.html +++ b/In_an_interactive_view_SHOW_DIALOG/index.html @@ -16,7 +16,7 @@ - + diff --git a/Indexes/index.html b/Indexes/index.html index cd6d1a6e992..6e0f10c9e7c 100644 --- a/Indexes/index.html +++ b/Indexes/index.html @@ -16,7 +16,7 @@ - + diff --git a/Install/index.html b/Install/index.html index 0092dcce5d7..3b44d1def5a 100644 --- a/Install/index.html +++ b/Install/index.html @@ -16,7 +16,7 @@ - + diff --git a/Integration/index.html b/Integration/index.html index 732bd9312a0..b9c6078c10e 100644 --- a/Integration/index.html +++ b/Integration/index.html @@ -16,7 +16,7 @@ - + diff --git a/Interactive_view/index.html b/Interactive_view/index.html index 19879297edc..6c21699695c 100644 --- a/Interactive_view/index.html +++ b/Interactive_view/index.html @@ -16,7 +16,7 @@ - + diff --git a/Internal_call_INTERNAL/index.html b/Internal_call_INTERNAL/index.html index 8734c108012..8bb102438fe 100644 --- a/Internal_call_INTERNAL/index.html +++ b/Internal_call_INTERNAL/index.html @@ -16,7 +16,7 @@ - + diff --git a/Internationalization/index.html b/Internationalization/index.html index 6d59e4ec4a8..ff6483a52ca 100644 --- a/Internationalization/index.html +++ b/Internationalization/index.html @@ -16,7 +16,7 @@ - + diff --git a/Interpreter/index.html b/Interpreter/index.html index bd0bd5ea959..d316553b223 100644 --- a/Interpreter/index.html +++ b/Interpreter/index.html @@ -16,7 +16,7 @@ - + diff --git a/Interruption_BREAK/index.html b/Interruption_BREAK/index.html index aed0a6d710b..4ef9bb79327 100644 --- a/Interruption_BREAK/index.html +++ b/Interruption_BREAK/index.html @@ -16,7 +16,7 @@ - + diff --git a/JOIN_operator/index.html b/JOIN_operator/index.html index 00b56208f54..4fb5339cc9f 100644 --- a/JOIN_operator/index.html +++ b/JOIN_operator/index.html @@ -16,7 +16,7 @@ - + diff --git a/JSON_operator/index.html b/JSON_operator/index.html index 9a0ec1cc711..3f584828489 100644 --- a/JSON_operator/index.html +++ b/JSON_operator/index.html @@ -16,7 +16,7 @@ - + diff --git a/Journals_and_logs/index.html b/Journals_and_logs/index.html index 1aafe2e6e76..f94a125b48c 100644 --- a/Journals_and_logs/index.html +++ b/Journals_and_logs/index.html @@ -16,7 +16,7 @@ - + diff --git a/LIKE_operator/index.html b/LIKE_operator/index.html index 7f59613a9e1..dd21e5a9fee 100644 --- a/LIKE_operator/index.html +++ b/LIKE_operator/index.html @@ -16,7 +16,7 @@ - + diff --git a/Language/index.html b/Language/index.html index 6184750f347..33217e6e942 100644 --- a/Language/index.html +++ b/Language/index.html @@ -16,7 +16,7 @@ - + diff --git a/Launch_events/index.html b/Launch_events/index.html index 8d1307ecb51..761a40a7535 100644 --- a/Launch_events/index.html +++ b/Launch_events/index.html @@ -16,7 +16,7 @@ - + diff --git a/Launch_parameters/index.html b/Launch_parameters/index.html index 09019cdc87e..95c127d7d00 100644 --- a/Launch_parameters/index.html +++ b/Launch_parameters/index.html @@ -16,7 +16,7 @@ - + diff --git a/Learning_materials/index.html b/Learning_materials/index.html index d5a9d15b948..d4aa115d00c 100644 --- a/Learning_materials/index.html +++ b/Learning_materials/index.html @@ -16,7 +16,7 @@ - + diff --git a/Literals/index.html b/Literals/index.html index 5169a63f91d..159d25e9bee 100644 --- a/Literals/index.html +++ b/Literals/index.html @@ -16,7 +16,7 @@ - + diff --git a/Logical_model/index.html b/Logical_model/index.html index ede974e10c7..e74946c6773 100644 --- a/Logical_model/index.html +++ b/Logical_model/index.html @@ -16,7 +16,7 @@ - + diff --git a/Logical_operators_AND_OR_NOT_XOR/index.html b/Logical_operators_AND_OR_NOT_XOR/index.html index 3b60dcbb6ce..03985729b96 100644 --- a/Logical_operators_AND_OR_NOT_XOR/index.html +++ b/Logical_operators_AND_OR_NOT_XOR/index.html @@ -16,7 +16,7 @@ - + diff --git a/Loop_FOR/index.html b/Loop_FOR/index.html index 324fc52efe3..05fd259213d 100644 --- a/Loop_FOR/index.html +++ b/Loop_FOR/index.html @@ -16,7 +16,7 @@ - + diff --git a/MAX_operator/index.html b/MAX_operator/index.html index 2813c37728d..5f6475fde1c 100644 --- a/MAX_operator/index.html +++ b/MAX_operator/index.html @@ -16,7 +16,7 @@ - + diff --git a/MESSAGE_operator/index.html b/MESSAGE_operator/index.html index 12d8abf1472..aa69acf7271 100644 --- a/MESSAGE_operator/index.html +++ b/MESSAGE_operator/index.html @@ -16,7 +16,7 @@ - + diff --git a/META_statement/index.html b/META_statement/index.html index 539e7edbd6d..aedafad40b3 100644 --- a/META_statement/index.html +++ b/META_statement/index.html @@ -16,7 +16,7 @@ - + diff --git a/MIN_operator/index.html b/MIN_operator/index.html index 66a059e4753..b5097faa625 100644 --- a/MIN_operator/index.html +++ b/MIN_operator/index.html @@ -16,7 +16,7 @@ - + diff --git a/MULTI_action_operator/index.html b/MULTI_action_operator/index.html index 2cdc758a91d..a7953f955f4 100644 --- a/MULTI_action_operator/index.html +++ b/MULTI_action_operator/index.html @@ -16,7 +16,7 @@ - + diff --git a/MULTI_operator/index.html b/MULTI_operator/index.html index ed643e70d37..e4985699e9b 100644 --- a/MULTI_operator/index.html +++ b/MULTI_operator/index.html @@ -16,7 +16,7 @@ - + diff --git a/Management/index.html b/Management/index.html index f253f3ad813..0c3626b0d15 100644 --- a/Management/index.html +++ b/Management/index.html @@ -16,7 +16,7 @@ - + diff --git a/Manual_installation/index.html b/Manual_installation/index.html index 23094b4f414..746dadc1af5 100644 --- a/Manual_installation/index.html +++ b/Manual_installation/index.html @@ -16,7 +16,7 @@ - + diff --git a/Materializations/index.html b/Materializations/index.html index 4ee262e98f8..8f797ae7237 100644 --- a/Materializations/index.html +++ b/Materializations/index.html @@ -16,7 +16,7 @@ - + diff --git a/Materials_management/index.html b/Materials_management/index.html index 4c1b9b12639..2f2b332a279 100644 --- a/Materials_management/index.html +++ b/Materials_management/index.html @@ -16,7 +16,7 @@ - + diff --git a/Metaprogramming/index.html b/Metaprogramming/index.html index 33ad58dbcea..747fd1b6c95 100644 --- a/Metaprogramming/index.html +++ b/Metaprogramming/index.html @@ -16,7 +16,7 @@ - + diff --git a/Migration/index.html b/Migration/index.html index 5aaa1db33bd..dbb0b848c30 100644 --- a/Migration/index.html +++ b/Migration/index.html @@ -16,7 +16,7 @@ - + diff --git a/Modularity/index.html b/Modularity/index.html index 4fd0d2d4d94..51fb1e76d52 100644 --- a/Modularity/index.html +++ b/Modularity/index.html @@ -16,7 +16,7 @@ - + diff --git a/Module_header/index.html b/Module_header/index.html index 61190085b12..992294051bb 100644 --- a/Module_header/index.html +++ b/Module_header/index.html @@ -16,7 +16,7 @@ - + diff --git a/Modules/index.html b/Modules/index.html index deb5fda5754..09b99424c3e 100644 --- a/Modules/index.html +++ b/Modules/index.html @@ -16,7 +16,7 @@ - + diff --git a/NAVIGATOR_statement/index.html b/NAVIGATOR_statement/index.html index c37188faf17..0b5904e91b3 100644 --- a/NAVIGATOR_statement/index.html +++ b/NAVIGATOR_statement/index.html @@ -16,7 +16,7 @@ - + diff --git a/NESTEDSESSION_operator/index.html b/NESTEDSESSION_operator/index.html index 7cccd983125..0a544091085 100644 --- a/NESTEDSESSION_operator/index.html +++ b/NESTEDSESSION_operator/index.html @@ -16,7 +16,7 @@ - + diff --git a/NEWEXECUTOR_operator/index.html b/NEWEXECUTOR_operator/index.html index a826a6e0a40..183c0e144ba 100644 --- a/NEWEXECUTOR_operator/index.html +++ b/NEWEXECUTOR_operator/index.html @@ -16,7 +16,7 @@ - + diff --git a/NEWSESSION_operator/index.html b/NEWSESSION_operator/index.html index 5f9b071bec1..e57133c8ec1 100644 --- a/NEWSESSION_operator/index.html +++ b/NEWSESSION_operator/index.html @@ -16,7 +16,7 @@ - + diff --git a/NEWTHREAD_operator/index.html b/NEWTHREAD_operator/index.html index 0678d3671be..47bf49c4716 100644 --- a/NEWTHREAD_operator/index.html +++ b/NEWTHREAD_operator/index.html @@ -16,7 +16,7 @@ - + diff --git a/NEW_operator/index.html b/NEW_operator/index.html index 28b86c3554e..a9b38960d56 100644 --- a/NEW_operator/index.html +++ b/NEW_operator/index.html @@ -16,7 +16,7 @@ - + diff --git a/Naming/index.html b/Naming/index.html index b1e71f89753..cc684dda7c7 100644 --- a/Naming/index.html +++ b/Naming/index.html @@ -16,7 +16,7 @@ - + diff --git a/Navigator/index.html b/Navigator/index.html index d1f3ea52c2c..e3711bccd5e 100644 --- a/Navigator/index.html +++ b/Navigator/index.html @@ -16,7 +16,7 @@ - + diff --git a/Navigator_design/index.html b/Navigator_design/index.html index 177738e23f4..bfb7568ae52 100644 --- a/Navigator_design/index.html +++ b/Navigator_design/index.html @@ -16,7 +16,7 @@ - + diff --git a/New_object_NEW/index.html b/New_object_NEW/index.html index 1718076c562..6f423567d32 100644 --- a/New_object_NEW/index.html +++ b/New_object_NEW/index.html @@ -16,7 +16,7 @@ - + diff --git a/New_session_NEWSESSION_NESTEDSESSION/index.html b/New_session_NEWSESSION_NESTEDSESSION/index.html index 204806ce26d..d7e863b40d1 100644 --- a/New_session_NEWSESSION_NESTEDSESSION/index.html +++ b/New_session_NEWSESSION_NESTEDSESSION/index.html @@ -16,7 +16,7 @@ - + diff --git a/New_threads_NEWTHREAD_NEWEXECUTOR/index.html b/New_threads_NEWTHREAD_NEWEXECUTOR/index.html index f3fe197ee88..2c2368597aa 100644 --- a/New_threads_NEWTHREAD_NEWEXECUTOR/index.html +++ b/New_threads_NEWTHREAD_NEWEXECUTOR/index.html @@ -16,7 +16,7 @@ - + diff --git a/ON_statement/index.html b/ON_statement/index.html index 1f12a9893d4..dddcf3c6fd3 100644 --- a/ON_statement/index.html +++ b/ON_statement/index.html @@ -16,7 +16,7 @@ - + diff --git a/OVERRIDE_operator/index.html b/OVERRIDE_operator/index.html index 4afb627994c..b4a27b8a60a 100644 --- a/OVERRIDE_operator/index.html +++ b/OVERRIDE_operator/index.html @@ -16,7 +16,7 @@ - + diff --git a/Object_blocks/index.html b/Object_blocks/index.html index a06942ec83d..b89b6b8b142 100644 --- a/Object_blocks/index.html +++ b/Object_blocks/index.html @@ -3,7 +3,7 @@ -Object blocks | lsfusion documentation +Object blocks | lsfusion documentation @@ -16,11 +16,11 @@ - + -
Skip to main content
Version: 5.x

Object blocks

Object block of the FORM statement adds objects (including object groups) to the form structure, as well as object trees to the interactive form view.

+
Version: 5.x

Object blocks

Object blocks of the FORM statement - adding object groups to the form structure, and object trees to the interactive form view.

Object block

Syntax

OBJECTS groupDeclaration1 [groupOptions1], ...., groupDeclarationN [groupOptionsN]
@@ -29,11 +29,13 @@

Syntax
objectDeclaration

Each objectDeclaration declaring an object has the following syntax:

-
[[name] [caption] =] classId [ON CHANGE actionId(param1, ..., paramM) | { actionOperator } ]
-

The declaration of each object group may be followed by a set of options called groupOptions:

-
viewType
INIT | FIXED
PAGESIZE pageSize
AFTER groupName
BEFORE groupName
defaultObjectsType
IN propertyGroup
EXTID extID
SUBREPORT [subReportExpression]
+
[[name] [caption] =] classId objectOptions
+

Object options objectOptions can be listed one after another in any order. The following set of options is supported:

+
ON CHANGE actionId(param1, ..., paramM)
ON CHANGE actionOperator
EXTID objectExtID
+

After the declaration of each object group, the group options groupOptions can be listed in any order:

+
viewType
insertPosition
defaultObjectsType
PAGESIZE pageSize
IN propertyGroup
EXTID extID
EXTKEY
SUBREPORT [subReportExpression]
BACKGROUND backgroundExpr
FOREGROUND foregroundExpr

Description

-

A single OBJECTS block can contain several comma-delimited declarations of object groups. An object group can contain just one object or several ones. In case of a single object, you can use simplified syntax without specifying the name of an object group and using parentheses. The declaration of an object group may be followed by the options of this group. They are listed one after another in an arbitrary order.

+

A single OBJECTS block can contain several comma-delimited declarations of object groups. An object group can contain just one object or several ones. In case of a single object, you can use simplified syntax without specifying the name of an object group and using parentheses.

Parameters

+

Object options

+

Object group options

  • viewType

    -

    Default view for an object group. It is specified with one of the keywords:

    +

    The default view for properties of this object group. Specified by one of the following ways:

      -
    • PANEL - panel view.
    • -
    • TOOLBAR - toolbar display mode.
    • -
    • GRID - table column view;. Used by default.
    • +
    • +

      PANEL

      +

      Keyword that, when specified, selects the panel view type

      +
    • +
    • +

      TOOLBAR

      +

      Keyword that, when specified, selects the toolbar view type

      +
    • +
    • +

      GRID

      +

      Keyword that, when specified, selects the table column view type. Used by default.

      +
    • +
    • +

      PIVOT [pivotOptions]

      +

      When the PIVOT keyword is specified, the pivot table view type is selected. Options for this view type pivotOptions can be specified one after another in any order.

      +
        +
      • +

        pivotType

        +

        String literal that defines the initial display mode of the pivot table. Can be equal to one of the following values:

        +
          +
        • 'Table' (default value)
        • +
        • 'Table Bar Chart'
        • +
        • 'Table Heatmap'
        • +
        • 'Table Row Heatmap'
        • +
        • 'Table Col Heatmap'
        • +
        • 'Bar Chart'
        • +
        • 'Stacked Bar Chart'
        • +
        • 'Line Chart'
        • +
        • 'Area Chart'
        • +
        • 'Scatter Chart'
        • +
        • 'Multiple Pie Chart'
        • +
        • 'Horizontal Bar Chart'
        • +
        • 'Horizontal Stacked Bar Chart'
      • -

        PAGESIZE pageSize

        -

        Specification of the number of readable objects in the table. By default, the quantity is determined dynamically depending on the size of the component in the user interface and equals to 3 * <number of visible rows in the table>. A value of 0 means that all objects must be read.

        +

        calcType

        +

        Specifying the initial aggregation function. It can be set using one of the keywords:

          +
        • SUM - sum of values (default value)
        • +
        • MAX - maximum of values
        • +
        • MIN - minimum of values
        • +
        +
      • -

        pageSize

        -

        Number of objects read. Integer literal.

        +

        settingsType

        +

        Specifying whether the pivot table settings are shown to the user. It can be specified by one of the keywords:

        +
          +
        • SETTINGS - settings are shown (default value)
        • +
        • NOSETTINGS - settings are not shown
        • +
        +
      • +
      +
    • +
    • +

      MAP [tileProvider]

      +

      When the MAP keyword is specified, the map view type is selected. By default, this view uses OpenStreetMap maps. It is possible to use Google or Yandex maps. To do this you need to include the Geo.lsf module in the project, then obtain an API key for Google or Yandex and specify it in Administration > Application > Settings > Navigation.

      +
        +
      • +

        tileProvider

        +

        String literal that specifies the map source. Possible options: 'google' and 'yandex'. If not specified, OpenStreetMap will be used as the map source.

        +
      • +
      +
    • +
    • +

      CALENDAR

      +

      Keyword that, when specified, selects the calendar view type.

      +
    • +
    • +

      CUSTOM renderFunction [HEADER expr]

      +

      When the CUSTOM keyword is specified, the custom view type is selected.

      +
        +
      • +

        renderFunction

        +

        A string literal specifying the name of the JavaScript function that is responsible for displaying the data. This function must be located in a .js file included in the project resources and loaded for use on the client. It should return a JavaScript object that contains three functions:

        +
          +
        • render(element, controller)
        • +
        • update(element, controller, list, options)
        • +
        • clear(element) (optional)
        • +
        +

        A more detailed description of the mechanism can be found in the article How-to: Custom Components (Objects).

        +
      • +
      • +

        expr

        +

        Expression whose value must be an object of the JSON class. It is used to pass data that does not depend on the values of the described object group.

    • +
    +
  • +
+ +
  • -

    AFTER groupName

    +

    insertPosition

    +

    Specifying the insertion position of the object group within the list of object groups. Most often used together with the form extension mechanism. It can be specified in one of the following ways:

    +
      +
    • +

      AFTER groupName

    • -

      BEFORE groupName

      -

      Specifying that the object tree should be added to the form structure immediately before (keyword BEFORE) or after (keyword AFTER) of a specified object group. Typically used with the form extension mechanism . If a group is added before the group in a tree, then this group should the first in this tree. Accordingly, if a group is added after the group in a tree, this group should be the last in this tree.

      +

      BEFORE groupName

      +

      The object group will be added to the form structure directly before (keyword BEFORE) or after (keyword AFTER) the specified object group. If the group before (after) which it is to be added is in the tree, it must be the first (last) in that tree.

      +
    • +
    • +

      FIRST

      +

      Keyword indicating that the object group will be added to the beginning of the list.

      +
    • +
    • +

      LAST

      +

      Keyword indicating that the object group will be added to the end of the list.

      +
    • +
    • +

      DEFAULT

      +

      Keyword indicating that the object group is added in the order of declaration. This is the default value.

  • defaultObjectsType

    -

    Specifying which object collection from the added object group will be current after the change of the active filters:

    +

    Specifying which object collection from the added object group will be current after the active filters are changed. Specified by one of the keywords:

      -
    • FIRST– specifies that the first object collection will be the default objects
    • -
    • LAST - last one
    • -
    • PREV - previous one
    • +
    • FIRST– specifies that the first object collection (according to the current order) will be the default objects
    • +
    • LAST - last object collection
    • +
    • PREV - the previous (or closest possible) object collection
    • +
    • NULL - none (reset)

    If this option is not specified, the platform determines the option to be used depending on the current filters.

  • +

    PAGESIZE pageSize

    +

    Specification of the number of readable objects in the table. By default, the quantity is determined dynamically depending on the size of the component in the user interface and equals to 3 * <number of visible rows in the table>. A value of 0 means that all objects must be read.

    + +
  • +
  • IN propertyGroup

    -

    Specifying the property/action group that the object group belongs to. Used only in the hierarchical view.

    +

    Specifying the property and action group that the object group belongs to. Used only in the hierarchical view.

  • EXTID extID

    -

    Specifying the name to be used for export/import operations performed by this object group. Used only in the structured view.

    +

    Specifying the name to be used for export/import of this object group. Used only in the structured view.

    • extId

      @@ -137,6 +265,10 @@

      Object

  • +

    EXTKEY

    +

    When keyword EXTKEY is specified the values of objects and properties of this object group are represented in a structured view as key-value pairs, where the key is the value of the object (set of objects) and the value is the property values. By default, they are represented as an array with lists of property values.

    +
  • +
  • SUBREPORT [subReportExpression]

    Specifies that you need to generate a separate report file for this object group while building the report hierarchy.

      @@ -146,18 +278,36 @@

      Object

  • +
  • +

    BACKGROUND backgroundExpr

    +

    Specifying the background color of property cells belonging to this object group.

    +
      +
    • +

      backgroundExpr

      +

      Expression whose value determines the background color.

      +
    • +
    +
  • +
  • +

    FOREGROUND foregroundExpr

    +

    Specifying the foreground color of property cells belonging to this object group.

    +
      +
    • +

      foregroundExpr

      +

      Expression whose value determines the foreground color.

      +
    • +
    +

Examples

CLASS Shipment;
// declaring the delivery form
FORM shipments 'Deliveries'
OBJECTS s = Shipment // adding one object of the shipment class
PAGESIZE 100 // indicating that the table should always contain 100 rows

// ... adding properties and filters to the form
;

// Declaring a form that will display the turnover of the product for a specified interval
name = DATA STRING[100] (Item);
revenue = DATA NUMERIC[16,2] (Item, DATE, DATE);

FORM revenues 'Product turnovers'
// declaring a group of objects, consisting of 2 objects of the Date class with the appropriate captions,
// which will always be displayed as a panel
OBJECTS interval = (dateFrom 'Date (from)' = DATE, dateTo 'Date (to)' = DATE) PANEL,
i = Item // adding a list of products
// adding to the form the properties of the date objects values, with which the user can select dates
PROPERTIES VALUE(dateFrom), VALUE(dateTo)
// adding the product name and the property with the product turnover for the date interval
PROPERTIES name(i), revenue(i, dateFrom, dateTo)
;
// creating a form for printing a price tag for a product
labelFile = DATA STRING[100] (Item);
printLabelFile (Item i)= OVERRIDE labelFile(i), 'MyModule_printLabel_i.jrxml' IF i IS Item;
FORM printLabel 'Price tag printing'
OBJECTS i = Item // adding the product for which the price tag will be printed
// marking that a file whose name is stored in the printLabelFile property should be used as a template
// (it is assumed that the i value will be passed in the OBJECTS block)
REPORT printLabelFile(i)
// for example, the user can input myLabel1.jrxml there, then the system will use a file named myLabel1.jrxml
// ... other properties required for printing
;

Object tree block

Syntax

-
TREE [name] groupDeclaration1 [parentBlock1], ...., groupDeclarationN [parentBlockN] [treeOptions]
-

Each groupDeclaration is a declaration of an object group that is similar to the declaration in an object block described above. Each parentBlock can be described in one of the following ways:

-
PARENT propertyId
(PARENT propertyId1, ..., propertyIdK)
+
TREE [name] groupDeclaration1 [parentBlock1], ...., groupDeclarationN [parentBlockN] [insertPosition]
+

Each groupDeclaration is a declaration of an object group that is fully analogous to the declaration in the object block described above. Each parentBlock can be described in one of two ways:

+
PARENT parentExpr
(PARENT parentExpr1, ..., parentExprK)

The first option is used if an object group for which the block is specified consists of a single object, the second one is used for groups of two and more objects.

-

The treeOptions options set may be specified after the declaration of each object tree.

-
AFTER groupName
BEFORE groupName

Description

Object tree block lets you create an object tree. The first specified object group will form a list of top-level objects, each of which will have a child list of objects of the second specified object group and so on.

Use the PARENT block to create hierarchical object groups. To do that, specify a property that will define the parent element for an object (or several objects if an object group contains several ones).

@@ -169,29 +319,19 @@

ParametersThe name of the object tree being created. Simple ID.

  • -

    propertyId

    -

    ID of the property defining the hierarchy for an object group consisting of a single object. The specified property must have a single parameter and return the parent object of the passed object as its value (or NULL if the passed object is the top one).

    -
  • -
  • -

    propertyId1, ..., propertyIdK

    -

    A list of property ID's defining the hierarchy for an object group consisting of several objects. All specified properties must have the same number of parameters as the number of objects in the object group. Each of these properties must return one of the parent objects of the passed objects as a value (or NULL if the passed object collection is the top one). The first property should return the first parent object, the second property - the second object, etc. on.

    -
  • - -

    Object tree options

    -
      -
    • -

      AFTER groupName

      +

      parentExpr

      +

      Expression that defines a hierarchy for a group of objects consisting of a single object. This expression must create a property that has exactly one parameter and returns the parent object for the object passed as input (or NULL if the passed object is at the top level).

    • -

      BEFORE groupName

      -

      Specifying that the object tree should be added to the form structure immediately before (keyword BEFORE) or after (keyword AFTER) of a specified object group. Typically used with the form extension mechanism . If a group is added before the group in a tree, then this group should the first in this tree. Accordingly, if a group is added after the group in a tree, this group should be the last in this tree.

      +

      parentExpr1, ..., parentExprK

      +

      A list of expressions that define a hierarchy for an object group consisting of multiple objects. These expressions should create properties with a number of parameters equal to the number of objects in the group. Each of these properties should return one of the parent objects for the object collection passed as input (or NULL if the passed object collection is at the top level). The first property should return the first object of the parent object collection, the second property - the second object, and so on.

    • -

      groupName

      -

      Object group name.

      +

      insertPosition

      +

      Specifying the insertion position of tree object groups in the list of object groups. It has syntax fully analogous to the same option in the object block.

    Examples

    -
    CLASS SkuGroup;
    name = DATA ISTRING[100] (SkuGroup);
    active = DATA BOOLEAN (SkuGroup);
    parent = DATA SkuGroup (SkuGroup) AUTOSET;

    CLASS Sku;
    name = DATA ISTRING[100] (Sku);
    skuGroup = DATA SkuGroup (Sku);


    FORM skus 'Sku'
    TREE groupTree g=SkuGroup PARENT parent(g)
    PROPERTIES READONLY name(g)
    FILTERS active(g)

    OBJECTS s = Sku
    PROPERTIES(s) name
    FILTERS skuGroup(s) == g
    ;

    CLASS Group1;
    name = DATA STRING[100] (Group1);

    CLASS Group2;
    name = DATA STRING[100] (Group2);

    CLASS Group3;
    name = DATA STRING[100] (Group3);

    in = DATA BOOLEAN (Group1, Group2);
    in = DATA BOOLEAN (Group2, Group3);

    FORM groups
    TREE groups g1 = Group1, g2 = Group2, g3 = Group3
    PROPERTIES READONLY name(g1), name(g2), name(g3)
    FILTERS in(g1, g2), in(g2, g3)
    ;
    +
    CLASS SkuGroup;
    name = DATA ISTRING[100] (SkuGroup);
    active = DATA BOOLEAN (SkuGroup);
    parent = DATA SkuGroup (SkuGroup) AUTOSET;

    CLASS Sku;
    name = DATA ISTRING[100] (Sku);
    skuGroup = DATA SkuGroup (Sku);


    FORM skus 'Sku'
    TREE groupTree g=SkuGroup PARENT parent(g)
    PROPERTIES READONLY name(g)
    FILTERS active(g)

    OBJECTS s = Sku
    PROPERTIES(s) name
    FILTERS skuGroup(s) == g
    ;

    CLASS Group1;
    name = DATA STRING[100] (Group1);

    CLASS Group2;
    name = DATA STRING[100] (Group2);

    CLASS Group3;
    name = DATA STRING[100] (Group3);

    in = DATA BOOLEAN (Group1, Group2);
    in = DATA BOOLEAN (Group2, Group3);

    FORM groups
    TREE groups g1 = Group1, g2 = Group2, g3 = Group3
    PROPERTIES READONLY name(g1), name(g2), name(g3)
    FILTERS in(g1, g2), in(g2, g3)
    ;
    \ No newline at end of file diff --git a/Object_group_operator/index.html b/Object_group_operator/index.html index b95829e012c..cc399a519ac 100644 --- a/Object_group_operator/index.html +++ b/Object_group_operator/index.html @@ -16,7 +16,7 @@ - + diff --git a/Object_group_operators/index.html b/Object_group_operators/index.html index 0e5222ce49a..079868ac3a8 100644 --- a/Object_group_operators/index.html +++ b/Object_group_operators/index.html @@ -16,7 +16,7 @@ - + diff --git a/Object_tree_visibility_EXPAND_COLLAPSE/index.html b/Object_tree_visibility_EXPAND_COLLAPSE/index.html index 5cdeff4faf4..a9993c2c21c 100644 --- a/Object_tree_visibility_EXPAND_COLLAPSE/index.html +++ b/Object_tree_visibility_EXPAND_COLLAPSE/index.html @@ -16,7 +16,7 @@ - + diff --git a/Online_demo/index.html b/Online_demo/index.html index f6aa23bfb8b..859b9da6b50 100644 --- a/Online_demo/index.html +++ b/Online_demo/index.html @@ -16,7 +16,7 @@ - + diff --git a/Open_form/index.html b/Open_form/index.html index 4027948e65f..137257e58ca 100644 --- a/Open_form/index.html +++ b/Open_form/index.html @@ -16,7 +16,7 @@ - + diff --git a/Operations_with_primitives/index.html b/Operations_with_primitives/index.html index 193a676e521..850840372fa 100644 --- a/Operations_with_primitives/index.html +++ b/Operations_with_primitives/index.html @@ -16,7 +16,7 @@ - + diff --git a/Operator_priority/index.html b/Operator_priority/index.html index e3bd00533b2..b6979956cca 100644 --- a/Operator_priority/index.html +++ b/Operator_priority/index.html @@ -16,7 +16,7 @@ - + diff --git a/Order_ORDER/index.html b/Order_ORDER/index.html index 0c9f7caa81c..d7da6757701 100644 --- a/Order_ORDER/index.html +++ b/Order_ORDER/index.html @@ -16,7 +16,7 @@ - + diff --git a/PARTITION_operator/index.html b/PARTITION_operator/index.html index 2b228a05e60..4745fcbb05c 100644 --- a/PARTITION_operator/index.html +++ b/PARTITION_operator/index.html @@ -16,7 +16,7 @@ - + diff --git a/PREV_operator/index.html b/PREV_operator/index.html index 937de2169a2..66749f468c1 100644 --- a/PREV_operator/index.html +++ b/PREV_operator/index.html @@ -16,7 +16,7 @@ - + diff --git a/PRINT_operator/index.html b/PRINT_operator/index.html index e509c5032dc..86ff4eeae6e 100644 --- a/PRINT_operator/index.html +++ b/PRINT_operator/index.html @@ -16,7 +16,7 @@ - + diff --git a/Paradigm/index.html b/Paradigm/index.html index 12a93da7e31..8cd3f47c284 100644 --- a/Paradigm/index.html +++ b/Paradigm/index.html @@ -16,7 +16,7 @@ - + diff --git a/Partitioning_sorting_PARTITION_..._ORDER/index.html b/Partitioning_sorting_PARTITION_..._ORDER/index.html index 977e857e697..bb01c2b416f 100644 --- a/Partitioning_sorting_PARTITION_..._ORDER/index.html +++ b/Partitioning_sorting_PARTITION_..._ORDER/index.html @@ -16,7 +16,7 @@ - + diff --git a/Physical_model/index.html b/Physical_model/index.html index cdde15b590b..39f58ee8d65 100644 --- a/Physical_model/index.html +++ b/Physical_model/index.html @@ -16,7 +16,7 @@ - + diff --git a/Previous_value_PREV/index.html b/Previous_value_PREV/index.html index ac67c17c636..e4ec9cbda88 100644 --- a/Previous_value_PREV/index.html +++ b/Previous_value_PREV/index.html @@ -16,7 +16,7 @@ - + diff --git a/Primitive_input_INPUT/index.html b/Primitive_input_INPUT/index.html index c382b05d563..1453bbd2ae0 100644 --- a/Primitive_input_INPUT/index.html +++ b/Primitive_input_INPUT/index.html @@ -16,7 +16,7 @@ - + diff --git a/Print_view/index.html b/Print_view/index.html index e4d3b51dcf1..66c8781f4cf 100644 --- a/Print_view/index.html +++ b/Print_view/index.html @@ -16,7 +16,7 @@ - + diff --git a/Process_monitor/index.html b/Process_monitor/index.html index 0c1f6fe2cf4..439a92d1ad4 100644 --- a/Process_monitor/index.html +++ b/Process_monitor/index.html @@ -16,7 +16,7 @@ - + diff --git a/Profiler/index.html b/Profiler/index.html index 86bdc4afed0..1ff84fead45 100644 --- a/Profiler/index.html +++ b/Profiler/index.html @@ -16,7 +16,7 @@ - + diff --git a/Projects/index.html b/Projects/index.html index 0121d593808..287952d3e2c 100644 --- a/Projects/index.html +++ b/Projects/index.html @@ -16,7 +16,7 @@ - + diff --git a/Properties/index.html b/Properties/index.html index dda4369d026..c5302c008e3 100644 --- a/Properties/index.html +++ b/Properties/index.html @@ -16,7 +16,7 @@ - + diff --git a/Properties_and_actions_block/index.html b/Properties_and_actions_block/index.html index 9ef242cc1f8..5352aacf533 100644 --- a/Properties_and_actions_block/index.html +++ b/Properties_and_actions_block/index.html @@ -16,7 +16,7 @@ - + diff --git a/Property_change_CHANGE/index.html b/Property_change_CHANGE/index.html index c04a2c32ba3..a92e7372d4d 100644 --- a/Property_change_CHANGE/index.html +++ b/Property_change_CHANGE/index.html @@ -16,7 +16,7 @@ - + diff --git a/Property_extension/index.html b/Property_extension/index.html index 417cc64e8ee..817ea1b4d5e 100644 --- a/Property_extension/index.html +++ b/Property_extension/index.html @@ -16,7 +16,7 @@ - + diff --git a/Property_operators/index.html b/Property_operators/index.html index 3f3914f2683..ad267aadf6b 100644 --- a/Property_operators/index.html +++ b/Property_operators/index.html @@ -16,7 +16,7 @@ - + diff --git a/Property_operators_paradigm/index.html b/Property_operators_paradigm/index.html index fa670027da7..4e18ac28225 100644 --- a/Property_operators_paradigm/index.html +++ b/Property_operators_paradigm/index.html @@ -16,7 +16,7 @@ - + diff --git a/Property_options/index.html b/Property_options/index.html index e849878b71d..3efaa4632b6 100644 --- a/Property_options/index.html +++ b/Property_options/index.html @@ -16,7 +16,7 @@ - + diff --git a/Property_signature_CLASS/index.html b/Property_signature_CLASS/index.html index 96a094d4932..c2378ff97c2 100644 --- a/Property_signature_CLASS/index.html +++ b/Property_signature_CLASS/index.html @@ -16,7 +16,7 @@ - + diff --git a/READ_operator/index.html b/READ_operator/index.html index 6aceb7059c8..ec3a78f7cd3 100644 --- a/READ_operator/index.html +++ b/READ_operator/index.html @@ -16,7 +16,7 @@ - + diff --git a/RECURSION_operator/index.html b/RECURSION_operator/index.html index 32e66a7e525..a170eb70c27 100644 --- a/RECURSION_operator/index.html +++ b/RECURSION_operator/index.html @@ -16,7 +16,7 @@ - + diff --git a/REQUEST_operator/index.html b/REQUEST_operator/index.html index 60add0707f6..ca727fe4eb8 100644 --- a/REQUEST_operator/index.html +++ b/REQUEST_operator/index.html @@ -16,7 +16,7 @@ - + diff --git a/RETURN_operator/index.html b/RETURN_operator/index.html index f3148d5e79a..a5ad0dbf64d 100644 --- a/RETURN_operator/index.html +++ b/RETURN_operator/index.html @@ -16,7 +16,7 @@ - + diff --git a/ROUND_operator/index.html b/ROUND_operator/index.html index 3dab467e3aa..4764ebaa31e 100644 --- a/ROUND_operator/index.html +++ b/ROUND_operator/index.html @@ -16,7 +16,7 @@ - + diff --git a/Read_file_READ/index.html b/Read_file_READ/index.html index 4f0d1613fff..f8f64bda78d 100644 --- a/Read_file_READ/index.html +++ b/Read_file_READ/index.html @@ -16,7 +16,7 @@ - + diff --git a/Recursion_RECURSION/index.html b/Recursion_RECURSION/index.html index 237970a8a4a..8cfd471dede 100644 --- a/Recursion_RECURSION/index.html +++ b/Recursion_RECURSION/index.html @@ -16,7 +16,7 @@ - + diff --git a/Recursive_loop_WHILE/index.html b/Recursive_loop_WHILE/index.html index 6693a1096f8..0d96165dba7 100644 --- a/Recursive_loop_WHILE/index.html +++ b/Recursive_loop_WHILE/index.html @@ -16,7 +16,7 @@ - + diff --git a/Report_design/index.html b/Report_design/index.html index 657c384aa2e..2ea6755e6f4 100644 --- a/Report_design/index.html +++ b/Report_design/index.html @@ -16,7 +16,7 @@ - + diff --git a/Rounding_operator_ROUND/index.html b/Rounding_operator_ROUND/index.html index 844db2d568e..9667027e458 100644 --- a/Rounding_operator_ROUND/index.html +++ b/Rounding_operator_ROUND/index.html @@ -16,7 +16,7 @@ - + diff --git a/SEEK_operator/index.html b/SEEK_operator/index.html index cd989efc9fa..4a2f99e32e6 100644 --- a/SEEK_operator/index.html +++ b/SEEK_operator/index.html @@ -16,7 +16,7 @@ - + diff --git a/SHOW_operator/index.html b/SHOW_operator/index.html index 48aa63ce0cb..51efb3ed67d 100644 --- a/SHOW_operator/index.html +++ b/SHOW_operator/index.html @@ -16,7 +16,7 @@ - + diff --git a/STRUCT_operator/index.html b/STRUCT_operator/index.html index 5d7832cc39d..ed0503bda6f 100644 --- a/STRUCT_operator/index.html +++ b/STRUCT_operator/index.html @@ -16,7 +16,7 @@ - + diff --git a/Scheduler/index.html b/Scheduler/index.html index 9c276863d13..ef76dc97afa 100644 --- a/Scheduler/index.html +++ b/Scheduler/index.html @@ -16,7 +16,7 @@ - + diff --git a/Score_table/index.html b/Score_table/index.html index 2d005714c18..23cd1b804d7 100644 --- a/Score_table/index.html +++ b/Score_table/index.html @@ -16,7 +16,7 @@ - + diff --git a/Search_/index.html b/Search_/index.html index cf6b20a05a3..9fa3b7cd7e6 100644 --- a/Search_/index.html +++ b/Search_/index.html @@ -16,7 +16,7 @@ - + diff --git a/Search_SEEK/index.html b/Search_SEEK/index.html index 341647aa353..b2003156234 100644 --- a/Search_SEEK/index.html +++ b/Search_SEEK/index.html @@ -16,7 +16,7 @@ - + diff --git a/Security_policy/index.html b/Security_policy/index.html index cb93d8bbfcf..ec19b92ae5a 100644 --- a/Security_policy/index.html +++ b/Security_policy/index.html @@ -16,7 +16,7 @@ - + diff --git a/Selection_CASE_IF_MULTI_OVERRIDE_EXCLUSIVE/index.html b/Selection_CASE_IF_MULTI_OVERRIDE_EXCLUSIVE/index.html index 843d1fc8c9a..0fdc71c57b1 100644 --- a/Selection_CASE_IF_MULTI_OVERRIDE_EXCLUSIVE/index.html +++ b/Selection_CASE_IF_MULTI_OVERRIDE_EXCLUSIVE/index.html @@ -16,7 +16,7 @@ - + diff --git a/Send_mail_EMAIL/index.html b/Send_mail_EMAIL/index.html index 4e88da2b443..0a8b14344ad 100644 --- a/Send_mail_EMAIL/index.html +++ b/Send_mail_EMAIL/index.html @@ -16,7 +16,7 @@ - + diff --git a/Sequence/index.html b/Sequence/index.html index 15b7ad4bcdc..79f3eb319f0 100644 --- a/Sequence/index.html +++ b/Sequence/index.html @@ -16,7 +16,7 @@ - + diff --git a/Session_management/index.html b/Session_management/index.html index ab076cf9b99..eedeab31e52 100644 --- a/Session_management/index.html +++ b/Session_management/index.html @@ -16,7 +16,7 @@ - + diff --git a/Set_operations/index.html b/Set_operations/index.html index a279e08f748..9185a63192c 100644 --- a/Set_operations/index.html +++ b/Set_operations/index.html @@ -16,7 +16,7 @@ - + diff --git a/Show_message_MESSAGE_ASK/index.html b/Show_message_MESSAGE_ASK/index.html index a91372bf6a5..e0885d75041 100644 --- a/Show_message_MESSAGE_ASK/index.html +++ b/Show_message_MESSAGE_ASK/index.html @@ -16,7 +16,7 @@ - + diff --git a/Simple_constraints/index.html b/Simple_constraints/index.html index 94af6fdf7ed..6ce8a86db00 100644 --- a/Simple_constraints/index.html +++ b/Simple_constraints/index.html @@ -16,7 +16,7 @@ - + diff --git a/Simple_event/index.html b/Simple_event/index.html index 9df9f952b9a..8da706a2b51 100644 --- a/Simple_event/index.html +++ b/Simple_event/index.html @@ -16,7 +16,7 @@ - + diff --git a/State_change/index.html b/State_change/index.html index 38909909e2f..e884834901d 100644 --- a/State_change/index.html +++ b/State_change/index.html @@ -16,7 +16,7 @@ - + diff --git a/Statements/index.html b/Statements/index.html index b07594231c3..d30d696618e 100644 --- a/Statements/index.html +++ b/Statements/index.html @@ -16,7 +16,7 @@ - + diff --git a/Static_objects/index.html b/Static_objects/index.html index 74da8d6ca50..c5f5ad6958c 100644 --- a/Static_objects/index.html +++ b/Static_objects/index.html @@ -16,7 +16,7 @@ - + diff --git a/Static_view/index.html b/Static_view/index.html index 56c35121255..94fb1f50496 100644 --- a/Static_view/index.html +++ b/Static_view/index.html @@ -16,7 +16,7 @@ - + diff --git a/String_operators_+_CONCAT_SUBSTRING/index.html b/String_operators_+_CONCAT_SUBSTRING/index.html index 10f8880a1e2..1ddc256e986 100644 --- a/String_operators_+_CONCAT_SUBSTRING/index.html +++ b/String_operators_+_CONCAT_SUBSTRING/index.html @@ -16,7 +16,7 @@ - + diff --git a/Structure_operators_STRUCT/index.html b/Structure_operators_STRUCT/index.html index e40557182fd..c1bb53561be 100644 --- a/Structure_operators_STRUCT/index.html +++ b/Structure_operators_STRUCT/index.html @@ -16,7 +16,7 @@ - + diff --git a/Structured_view/index.html b/Structured_view/index.html index e3d99b0e980..4bdce7061b7 100644 --- a/Structured_view/index.html +++ b/Structured_view/index.html @@ -16,7 +16,7 @@ - + diff --git a/System_parameters/index.html b/System_parameters/index.html index afa8a9ed1fb..c7baa68dfdd 100644 --- a/System_parameters/index.html +++ b/System_parameters/index.html @@ -16,7 +16,7 @@ - + diff --git a/TABLE_statement/index.html b/TABLE_statement/index.html index 0c894b4ece6..00e695c5087 100644 --- a/TABLE_statement/index.html +++ b/TABLE_statement/index.html @@ -16,7 +16,7 @@ - + diff --git a/TRY_operator/index.html b/TRY_operator/index.html index 5129909c446..d3d75dd7000 100644 --- a/TRY_operator/index.html +++ b/TRY_operator/index.html @@ -16,7 +16,7 @@ - + diff --git a/Tables/index.html b/Tables/index.html index 42809bad6ac..43430e449d1 100644 --- a/Tables/index.html +++ b/Tables/index.html @@ -16,7 +16,7 @@ - + diff --git a/Tokens/index.html b/Tokens/index.html index 7998402c170..a5810b0ddb6 100644 --- a/Tokens/index.html +++ b/Tokens/index.html @@ -16,7 +16,7 @@ - + diff --git a/Type_conversion/index.html b/Type_conversion/index.html index ddd5518e982..69dc3d9f8d2 100644 --- a/Type_conversion/index.html +++ b/Type_conversion/index.html @@ -16,7 +16,7 @@ - + diff --git a/Type_conversion_operator/index.html b/Type_conversion_operator/index.html index 27052dd069c..5d163e7b270 100644 --- a/Type_conversion_operator/index.html +++ b/Type_conversion_operator/index.html @@ -16,7 +16,7 @@ - + diff --git a/UNGROUP_operator/index.html b/UNGROUP_operator/index.html index c2aa1d11e40..73446ea453e 100644 --- a/UNGROUP_operator/index.html +++ b/UNGROUP_operator/index.html @@ -16,7 +16,7 @@ - + diff --git a/User_IS_interaction/index.html b/User_IS_interaction/index.html index 83215031896..0d04879c3d9 100644 --- a/User_IS_interaction/index.html +++ b/User_IS_interaction/index.html @@ -16,7 +16,7 @@ - + diff --git a/User_classes/index.html b/User_classes/index.html index 5c19ab3e56c..eb4bac5ade9 100644 --- a/User_classes/index.html +++ b/User_classes/index.html @@ -16,7 +16,7 @@ - + diff --git a/User_interface/index.html b/User_interface/index.html index 66916079652..7ff9ab310e8 100644 --- a/User_interface/index.html +++ b/User_interface/index.html @@ -16,7 +16,7 @@ - + diff --git a/Value_input/index.html b/Value_input/index.html index 233fba86d31..54ec78ce0d7 100644 --- a/Value_input/index.html +++ b/Value_input/index.html @@ -16,7 +16,7 @@ - + diff --git a/Value_request_REQUEST/index.html b/Value_request_REQUEST/index.html index 859de20fbea..cd4fe95450d 100644 --- a/Value_request_REQUEST/index.html +++ b/Value_request_REQUEST/index.html @@ -16,7 +16,7 @@ - + diff --git a/View_VIEW/index.html b/View_VIEW/index.html index f29e7e7e0aa..1df1590fc20 100644 --- a/View_VIEW/index.html +++ b/View_VIEW/index.html @@ -16,7 +16,7 @@ - + diff --git a/View_logic/index.html b/View_logic/index.html index 11518a40e78..d0406fa15b1 100644 --- a/View_logic/index.html +++ b/View_logic/index.html @@ -16,7 +16,7 @@ - + diff --git a/WHEN_statement/index.html b/WHEN_statement/index.html index 9bca22e5810..ce2796eeeb7 100644 --- a/WHEN_statement/index.html +++ b/WHEN_statement/index.html @@ -16,7 +16,7 @@ - + diff --git a/WHILE_operator/index.html b/WHILE_operator/index.html index 1526a95e446..7bb88d5aedb 100644 --- a/WHILE_operator/index.html +++ b/WHILE_operator/index.html @@ -16,7 +16,7 @@ - + diff --git a/WINDOW_statement/index.html b/WINDOW_statement/index.html index 84ea36ac268..a17f6686d8f 100644 --- a/WINDOW_statement/index.html +++ b/WINDOW_statement/index.html @@ -16,7 +16,7 @@ - + diff --git a/WRITE_operator/index.html b/WRITE_operator/index.html index 663a51dcbde..68724e4a658 100644 --- a/WRITE_operator/index.html +++ b/WRITE_operator/index.html @@ -16,7 +16,7 @@ - + diff --git a/Working_parameters/index.html b/Working_parameters/index.html index b4d796068f5..211ada74aa0 100644 --- a/Working_parameters/index.html +++ b/Working_parameters/index.html @@ -16,7 +16,7 @@ - + diff --git a/Write_file_WRITE/index.html b/Write_file_WRITE/index.html index ad98670cb7f..3de39f76d09 100644 --- a/Write_file_WRITE/index.html +++ b/Write_file_WRITE/index.html @@ -16,7 +16,7 @@ - + diff --git a/assets/js/10a408ff.f8debfc3.js b/assets/js/10a408ff.dcaf984b.js similarity index 80% rename from assets/js/10a408ff.f8debfc3.js rename to assets/js/10a408ff.dcaf984b.js index f702a908c06..dd4becd467f 100644 --- a/assets/js/10a408ff.f8debfc3.js +++ b/assets/js/10a408ff.dcaf984b.js @@ -1 +1 @@ -"use strict";(self.webpackChunkls_fusion_docs=self.webpackChunkls_fusion_docs||[]).push([[91035],{47589:e=>{e.exports=JSON.parse('{"pluginId":"default","version":"v5","label":"5.x","banner":null,"badge":true,"noIndex":false,"className":"docs-version-v5","isLast":true,"docsSidebars":{"install":[{"type":"link","label":"Overview","href":"/Install","docId":"Install","unlisted":false},{"collapsed":false,"type":"category","label":"Automatic installation","items":[{"type":"link","label":"For development","href":"/Development_auto","docId":"Development_auto","unlisted":false},{"type":"link","label":"For production","href":"/Execution_auto","docId":"Execution_auto","unlisted":false}],"collapsible":true,"href":"/Automatic_installation"},{"collapsed":false,"type":"category","label":"Manual installation","items":[{"type":"link","label":"For development","href":"/Development_manual","docId":"Development_manual","unlisted":false},{"type":"link","label":"For production","href":"/Execution_manual","docId":"Execution_manual","unlisted":false}],"collapsible":true,"href":"/Manual_installation"}],"learn":[{"type":"link","label":"Overview","href":"/","docId":"Learn","unlisted":false},{"collapsed":false,"type":"category","label":"Paradigm","items":[{"type":"category","label":"Logical model","items":[{"type":"category","label":"Domain logic","items":[{"type":"category","label":"Properties","items":[{"type":"category","label":"Operators","items":[{"type":"link","label":"Data properties (DATA)","href":"/Data_properties_DATA","docId":"Data_properties_DATA","unlisted":false},{"type":"link","label":"Composition (JOIN)","href":"/Composition_JOIN","docId":"Composition_JOIN","unlisted":false},{"type":"link","label":"Constant","href":"/Constant","docId":"Constant","unlisted":false},{"type":"category","label":"Operations with primitives","items":[{"type":"link","label":"Arithmetic operators (+, -, *, ...)","href":"/Arithmetic_operators_+_-_etc","docId":"Arithmetic_operators_+_-_etc","unlisted":false},{"type":"link","label":"Logical operators (AND, OR, NOT, XOR)","href":"/Logical_operators_AND_OR_NOT_XOR","docId":"Logical_operators_AND_OR_NOT_XOR","unlisted":false},{"type":"link","label":"Comparison operators (=, >, <, ...)","href":"/Comparison_operators_=_etc","docId":"Comparison_operators_=_etc","unlisted":false},{"type":"link","label":"Rounding operator (ROUND)","href":"/Rounding_operator_ROUND","docId":"Rounding_operator_ROUND","unlisted":false},{"type":"link","label":"Extremum (MAX, MIN)","href":"/Extremum_MAX_MIN","docId":"Extremum_MAX_MIN","unlisted":false},{"type":"link","label":"String operators (+, CONCAT, SUBSTRING)","href":"/String_operators_+_CONCAT_SUBSTRING","docId":"String_operators_+_CONCAT_SUBSTRING","unlisted":false},{"type":"link","label":"Structure operators (STRUCT, [])","href":"/Structure_operators_STRUCT","docId":"Structure_operators_STRUCT","unlisted":false},{"type":"link","label":"Type conversion","href":"/Type_conversion","docId":"Type_conversion","unlisted":false}],"collapsed":true,"collapsible":true,"href":"/Operations_with_primitives"},{"type":"category","label":"Class operators","items":[{"type":"link","label":"Classification (IS/AS)","href":"/Classification_IS_AS","docId":"Classification_IS_AS","unlisted":false},{"type":"link","label":"Signature matching (ISCLASS)","href":"/Property_signature_CLASS","docId":"Property_signature_CLASS","unlisted":false}],"collapsed":true,"collapsible":true,"href":"/Class_operators"},{"type":"link","label":"Selection (CASE, IF, MULTI, OVERRIDE, EXCLUSIVE)","href":"/Selection_CASE_IF_MULTI_OVERRIDE_EXCLUSIVE","docId":"Selection_CASE_IF_MULTI_OVERRIDE_EXCLUSIVE","unlisted":false},{"type":"category","label":"Set operations","items":[{"type":"link","label":"Grouping (GROUP)","href":"/Grouping_GROUP","docId":"Grouping_GROUP","unlisted":false},{"type":"link","label":"Partitioning / sorting (PARTITION ... ORDER)","href":"/Partitioning_sorting_PARTITION_..._ORDER","docId":"Partitioning_sorting_PARTITION_..._ORDER","unlisted":false},{"type":"link","label":"Recursion (RECURSION)","href":"/Recursion_RECURSION","docId":"Recursion_RECURSION","unlisted":false},{"type":"link","label":"Distribution (UNGROUP)","href":"/Distribution_UNGROUP","docId":"Distribution_UNGROUP","unlisted":false}],"collapsed":true,"collapsible":true,"href":"/Set_operations"}],"collapsed":true,"collapsible":true,"href":"/Property_operators_paradigm"}],"collapsed":true,"collapsible":true,"href":"/Properties"},{"type":"category","label":"Actions","items":[{"type":"link","label":"Change sessions","href":"/Change_sessions","docId":"Change_sessions","unlisted":false},{"type":"category","label":"\u041eperators","items":[{"type":"category","label":"Execution order","items":[{"type":"link","label":"Sequence ({...})","href":"/Sequence","docId":"Sequence","unlisted":false},{"type":"link","label":"Call (EXEC)","href":"/Call_EXEC","docId":"Call_EXEC","unlisted":false},{"type":"link","label":"Loop (FOR)","href":"/Loop_FOR","docId":"Loop_FOR","unlisted":false},{"type":"link","label":"Branching (CASE, IF, MULTI)","href":"/Branching_CASE_IF_MULTI","docId":"Branching_CASE_IF_MULTI","unlisted":false},{"type":"link","label":"Recursive loop (WHILE)","href":"/Recursive_loop_WHILE","docId":"Recursive_loop_WHILE","unlisted":false},{"type":"link","label":"Interruption (BREAK)","href":"/Interruption_BREAK","docId":"Interruption_BREAK","unlisted":false},{"type":"link","label":"Exit (RETURN)","href":"/Exit_RETURN","docId":"Exit_RETURN","unlisted":false},{"type":"link","label":"New threads (NEWTHREAD, NEWEXECUTOR)","href":"/New_threads_NEWTHREAD_NEWEXECUTOR","docId":"New_threads_NEWTHREAD_NEWEXECUTOR","unlisted":false},{"type":"link","label":"Exception handling (TRY)","href":"/Exception_handling_TRY","docId":"Exception_handling_TRY","unlisted":false}],"collapsed":true,"collapsible":true,"href":"/Execution_order"},{"type":"category","label":"State change","items":[{"type":"link","label":"Property change (CHANGE)","href":"/Property_change_CHANGE","docId":"Property_change_CHANGE","unlisted":false},{"type":"link","label":"New object (NEW)","href":"/New_object_NEW","docId":"New_object_NEW","unlisted":false},{"type":"link","label":"Class change (CHANGECLASS, DELETE)","href":"/Class_change_CHANGECLASS_DELETE","docId":"Class_change_CHANGECLASS_DELETE","unlisted":false}],"collapsed":true,"collapsible":true,"href":"/State_change"},{"type":"category","label":"Session management","items":[{"type":"link","label":"Apply changes (APPLY)","href":"/Apply_changes_APPLY","docId":"Apply_changes_APPLY","unlisted":false},{"type":"link","label":"Cancel changes (CANCEL)","href":"/Cancel_changes_CANCEL","docId":"Cancel_changes_CANCEL","unlisted":false},{"type":"link","label":"New session (NEWSESSION, NESTEDSESSION)","href":"/New_session_NEWSESSION_NESTEDSESSION","docId":"New_session_NEWSESSION_NESTEDSESSION","unlisted":false},{"type":"link","label":"Previous value (PREV)","href":"/Previous_value_PREV","docId":"Previous_value_PREV","unlisted":false},{"type":"link","label":"Change operators (SET, CHANGED, ...)","href":"/Change_operators_SET_CHANGED_etc","docId":"Change_operators_SET_CHANGED_etc","unlisted":false}],"collapsed":true,"collapsible":true,"href":"/Session_management"},{"type":"category","label":"User/IS interaction","items":[{"type":"link","label":"Show message (MESSAGE, ASK)","href":"/Show_message_MESSAGE_ASK","docId":"Show_message_MESSAGE_ASK","unlisted":false},{"type":"category","label":"File operators","items":[{"type":"link","label":"Read file (READ)","href":"/Read_file_READ","docId":"Read_file_READ","unlisted":false},{"type":"link","label":"Write file (WRITE)","href":"/Write_file_WRITE","docId":"Write_file_WRITE","unlisted":false},{"type":"link","label":"Data import (IMPORT)","href":"/Data_import_IMPORT","docId":"Data_import_IMPORT","unlisted":false},{"type":"link","label":"Data export (EXPORT)","href":"/Data_export_EXPORT","docId":"Data_export_EXPORT","unlisted":false}],"collapsed":true,"collapsible":true,"href":"/File_operators"},{"type":"link","label":"Send mail (EMAIL)","href":"/Send_mail_EMAIL","docId":"Send_mail_EMAIL","unlisted":false}],"collapsed":true,"collapsible":true,"href":"/User_IS_interaction"}],"collapsed":true,"collapsible":true,"href":"/Action_operators_paradigm"}],"collapsed":true,"collapsible":true,"href":"/Actions"},{"type":"category","label":"Events","items":[{"type":"link","label":"Simple event","href":"/Simple_event","docId":"Simple_event","unlisted":false},{"type":"link","label":"Calculated events","href":"/Calculated_events","docId":"Calculated_events","unlisted":false}],"collapsed":true,"collapsible":true,"href":"/Events"},{"type":"category","label":"Constraints","items":[{"type":"link","label":"Simple constraints","href":"/Simple_constraints","docId":"Simple_constraints","unlisted":false},{"type":"category","label":"Classes","items":[{"type":"link","label":"Built-in classes","href":"/Built-in_classes","docId":"Built-in_classes","unlisted":false},{"type":"link","label":"User classes","href":"/User_classes","docId":"User_classes","unlisted":false},{"type":"link","label":"Static objects","href":"/Static_objects","docId":"Static_objects","unlisted":false}],"collapsed":true,"collapsible":true,"href":"/Classes"},{"type":"link","label":"Aggregations","href":"/Aggregations","docId":"Aggregations","unlisted":false}],"collapsed":true,"collapsible":true,"href":"/Constraints"}],"collapsed":true,"collapsible":true,"href":"/Domain_logic"},{"type":"category","label":"View logic","items":[{"type":"category","label":"Forms","items":[{"type":"category","label":"Form structure","items":[{"type":"link","label":"Groups of properties and actions","href":"/Groups_of_properties_and_actions","docId":"Groups_of_properties_and_actions","unlisted":false}],"collapsed":true,"collapsible":true,"href":"/Form_structure"},{"type":"category","label":"Form views","items":[{"type":"category","label":"Interactive view","items":[{"type":"link","label":"Form design","href":"/Form_design","docId":"Form_design","unlisted":false},{"type":"link","label":"Form events","href":"/Form_events","docId":"Form_events","unlisted":false},{"type":"category","label":"Form operators","items":[{"type":"category","label":"Value input","items":[{"type":"link","label":"Primitive input (INPUT)","href":"/Primitive_input_INPUT","docId":"Primitive_input_INPUT","unlisted":false},{"type":"link","label":"Value request (REQUEST)","href":"/Value_request_REQUEST","docId":"Value_request_REQUEST","unlisted":false}],"collapsed":true,"collapsible":true,"href":"/Value_input"},{"type":"category","label":"Object group operators","items":[{"type":"link","label":"Search (SEEK)","href":"/Search_SEEK","docId":"Search_SEEK","unlisted":false},{"type":"link","label":"Object tree visibility (EXPAND, COLLAPSE)","href":"/Object_tree_visibility_EXPAND_COLLAPSE","docId":"Object_tree_visibility_EXPAND_COLLAPSE","unlisted":false},{"type":"link","label":"Filter (FILTER)","href":"/Filter_FILTER","docId":"Filter_FILTER","unlisted":false},{"type":"link","label":"Order (ORDER)","href":"/Order_ORDER","docId":"Order_ORDER","unlisted":false},{"type":"link","label":"View (VIEW)","href":"/View_VIEW","docId":"View_VIEW","unlisted":false}],"collapsed":true,"collapsible":true,"href":"/Object_group_operators"},{"type":"category","label":"Focus operators","items":[{"type":"link","label":"Activation (ACTIVATE)","href":"/Activation_ACTIVATE","docId":"Activation_ACTIVATE","unlisted":false},{"type":"link","label":"Activity (ACTIVE)","href":"/Activity_ACTIVE","docId":"Activity_ACTIVE","unlisted":false}],"collapsed":true,"collapsible":true,"href":"/Focus_operators"}],"collapsed":true,"collapsible":true,"href":"/Form_operators"}],"collapsed":true,"collapsible":true,"href":"/Interactive_view"},{"type":"category","label":"Static view","items":[{"type":"category","label":"Print view","items":[{"type":"link","label":"Report design","href":"/Report_design","docId":"Report_design","unlisted":false}],"collapsed":true,"collapsible":true,"href":"/Print_view"},{"type":"link","label":"Structured view","href":"/Structured_view","docId":"Structured_view","unlisted":false}],"collapsed":true,"collapsible":true,"href":"/Static_view"}],"collapsed":true,"collapsible":true,"href":"/Form_views"},{"type":"category","label":"Open form","items":[{"type":"link","label":"In an interactive view (SHOW, DIALOG)","href":"/In_an_interactive_view_SHOW_DIALOG","docId":"In_an_interactive_view_SHOW_DIALOG","unlisted":false},{"type":"link","label":"In a print view (PRINT)","href":"/In_a_print_view_PRINT","docId":"In_a_print_view_PRINT","unlisted":false},{"type":"link","label":"In a structured view (EXPORT, IMPORT)","href":"/In_a_structured_view_EXPORT_IMPORT","docId":"In_a_structured_view_EXPORT_IMPORT","unlisted":false}],"collapsed":true,"collapsible":true,"href":"/Open_form"}],"collapsed":true,"collapsible":true,"href":"/Forms"},{"type":"category","label":"Navigator","items":[{"type":"link","label":"Navigator design","href":"/Navigator_design","docId":"Navigator_design","unlisted":false}],"collapsed":true,"collapsible":true,"href":"/Navigator"}],"collapsed":true,"collapsible":true,"href":"/View_logic"}],"collapsed":true,"collapsible":true,"href":"/Logical_model"},{"type":"category","label":"Physical model","items":[{"type":"category","label":"Development","items":[{"type":"category","label":"Element identification","items":[{"type":"link","label":"Naming","href":"/Naming","docId":"Naming","unlisted":false},{"type":"link","label":"Search","href":"/Search_","docId":"Search_","unlisted":false}],"collapsed":true,"collapsible":true,"href":"/Element_identification"},{"type":"category","label":"Modularity","items":[{"type":"link","label":"Modules","href":"/Modules","docId":"Modules","unlisted":false},{"type":"link","label":"Projects","href":"/Projects","docId":"Projects","unlisted":false},{"type":"category","label":"Extensions","items":[{"type":"link","label":"Class extension","href":"/Class_extension","docId":"Class_extension","unlisted":false},{"type":"link","label":"Property extension","href":"/Property_extension","docId":"Property_extension","unlisted":false},{"type":"link","label":"Action extension","href":"/Action_extension","docId":"Action_extension","unlisted":false},{"type":"link","label":"Form extension","href":"/Form_extension","docId":"Form_extension","unlisted":false}],"collapsed":true,"collapsible":true,"href":"/Extensions"}],"collapsed":true,"collapsible":true,"href":"/Modularity"},{"type":"link","label":"Metaprogramming","href":"/Metaprogramming","docId":"Metaprogramming","unlisted":false},{"type":"category","label":"Integration","items":[{"type":"link","label":"Access from an external system","href":"/Access_from_an_external_system","docId":"Access_from_an_external_system","unlisted":false},{"type":"link","label":"Access from an internal system","href":"/Access_from_an_internal_system","docId":"Access_from_an_internal_system","unlisted":false},{"type":"link","label":"Access to an external system (EXTERNAL)","href":"/Access_to_an_external_system_EXTERNAL","docId":"Access_to_an_external_system_EXTERNAL","unlisted":false},{"type":"category","label":"Access to an internal system (INTERNAL, FORMULA)","items":[{"type":"link","label":"Internal call (INTERNAL)","href":"/Internal_call_INTERNAL","docId":"Internal_call_INTERNAL","unlisted":false},{"type":"link","label":"Custom formula (FORMULA)","href":"/Custom_formula_FORMULA","docId":"Custom_formula_FORMULA","unlisted":false}],"collapsed":true,"collapsible":true,"href":"/Access_to_an_internal_system_INTERNAL_FORMULA"},{"type":"link","label":"Eval (EVAL)","href":"/Eval_EVAL","docId":"Eval_EVAL","unlisted":false}],"collapsed":true,"collapsible":true,"href":"/Integration"},{"type":"link","label":"Migration","href":"/Migration","docId":"Migration","unlisted":false},{"type":"link","label":"Internationalization","href":"/Internationalization","docId":"Internationalization","unlisted":false}],"collapsed":true,"collapsible":true,"href":"/Development"},{"type":"category","label":"Execution","items":[{"type":"link","label":"Materializations","href":"/Materializations","docId":"Materializations","unlisted":false},{"type":"link","label":"Indexes","href":"/Indexes","docId":"Indexes","unlisted":false},{"type":"link","label":"Tables","href":"/Tables","docId":"Tables","unlisted":false}],"collapsed":true,"collapsible":true,"href":"/Execution"},{"type":"category","label":"Management","items":[{"type":"category","label":"System parameters","items":[{"type":"category","label":"Launch parameters","items":[{"type":"link","label":"Launch events","href":"/Launch_events","docId":"Launch_events","unlisted":false}],"collapsed":true,"collapsible":true,"href":"/Launch_parameters"},{"type":"link","label":"Working parameters","href":"/Working_parameters","docId":"Working_parameters","unlisted":false}],"collapsed":true,"collapsible":true,"href":"/System_parameters"},{"type":"link","label":"User interface","href":"/User_interface","docId":"User_interface","unlisted":false},{"type":"link","label":"Interpreter","href":"/Interpreter","docId":"Interpreter","unlisted":false},{"type":"link","label":"Security policy","href":"/Security_policy","docId":"Security_policy","unlisted":false},{"type":"link","label":"Process monitor","href":"/Process_monitor","docId":"Process_monitor","unlisted":false},{"type":"link","label":"Scheduler","href":"/Scheduler","docId":"Scheduler","unlisted":false},{"type":"link","label":"Journals and logs","href":"/Journals_and_logs","docId":"Journals_and_logs","unlisted":false},{"type":"link","label":"Profiler","href":"/Profiler","docId":"Profiler","unlisted":false},{"type":"link","label":"Chat","href":"/Chat","docId":"Chat","unlisted":false}],"collapsed":true,"collapsible":true,"href":"/Management"}],"collapsed":true,"collapsible":true,"href":"/Physical_model"}],"collapsible":true,"href":"/Paradigm"},{"collapsed":false,"type":"category","label":"Language","items":[{"type":"link","label":"Tokens","href":"/Tokens","docId":"Tokens","unlisted":false},{"type":"link","label":"IDs","href":"/IDs","docId":"IDs","unlisted":false},{"type":"link","label":"Literals","href":"/Literals","docId":"Literals","unlisted":false},{"type":"category","label":"Statements","items":[{"type":"link","label":"Module header","href":"/Module_header","docId":"Module_header","unlisted":false},{"type":"category","label":"= statement","items":[{"type":"category","label":"Expression","items":[{"type":"link","label":"Operator priority","href":"/Operator_priority","docId":"Operator_priority","unlisted":false}],"collapsed":true,"collapsible":true,"href":"/Expression"},{"type":"category","label":"Property operators","items":[{"type":"link","label":"Arithmetic operators","href":"/Arithmetic_operators","docId":"Arithmetic_operators","unlisted":false},{"type":"link","label":"[] operator","href":"/Brackets_operator","docId":"Brackets_operator","unlisted":false},{"type":"link","label":"ABSTRACT operator","href":"/ABSTRACT_operator","docId":"ABSTRACT_operator","unlisted":false},{"type":"link","label":"ACTIVE TAB operator","href":"/ACTIVE_TAB_operator","docId":"ACTIVE_TAB_operator","unlisted":false},{"type":"link","label":"AGGR operator","href":"/AGGR_operator","docId":"AGGR_operator","unlisted":false},{"type":"link","label":"CASE operator","href":"/CASE_operator","docId":"CASE_operator","unlisted":false},{"type":"link","label":"CONCAT operator","href":"/CONCAT_operator","docId":"CONCAT_operator","unlisted":false},{"type":"link","label":"DATA operator","href":"/DATA_operator","docId":"DATA_operator","unlisted":false},{"type":"link","label":"EXCLUSIVE operator","href":"/EXCLUSIVE_operator","docId":"EXCLUSIVE_operator","unlisted":false},{"type":"link","label":"FORMULA operator","href":"/FORMULA_operator","docId":"FORMULA_operator","unlisted":false},{"type":"link","label":"GROUP operator","href":"/GROUP_operator","docId":"GROUP_operator","unlisted":false},{"type":"link","label":"IF operator","href":"/IF_operator","docId":"IF_operator","unlisted":false},{"type":"link","label":"IF ... THEN operator","href":"/IF_..._THEN_operator","docId":"IF_..._THEN_operator","unlisted":false},{"type":"link","label":"ISCLASS operator","href":"/CLASS_operator","docId":"CLASS_operator","unlisted":false},{"type":"link","label":"JOIN operator","href":"/JOIN_operator","docId":"JOIN_operator","unlisted":false},{"type":"link","label":"LIKE operator","href":"/LIKE_operator","docId":"LIKE_operator","unlisted":false},{"type":"link","label":"MAX operator","href":"/MAX_operator","docId":"MAX_operator","unlisted":false},{"type":"link","label":"MIN operator","href":"/MIN_operator","docId":"MIN_operator","unlisted":false},{"type":"link","label":"MULTI operator","href":"/MULTI_operator","docId":"MULTI_operator","unlisted":false},{"type":"link","label":"OVERRIDE operator","href":"/OVERRIDE_operator","docId":"OVERRIDE_operator","unlisted":false},{"type":"link","label":"PARTITION operator","href":"/PARTITION_operator","docId":"PARTITION_operator","unlisted":false},{"type":"link","label":"PREV operator","href":"/PREV_operator","docId":"PREV_operator","unlisted":false},{"type":"link","label":"RECURSION operator","href":"/RECURSION_operator","docId":"RECURSION_operator","unlisted":false},{"type":"link","label":"ROUND operator","href":"/ROUND_operator","docId":"ROUND_operator","unlisted":false},{"type":"link","label":"STRUCT operator","href":"/STRUCT_operator","docId":"STRUCT_operator","unlisted":false},{"type":"link","label":"UNGROUP operator","href":"/UNGROUP_operator","docId":"UNGROUP_operator","unlisted":false},{"type":"link","label":"Object group operator","href":"/Object_group_operator","docId":"Object_group_operator","unlisted":false},{"type":"link","label":"Type conversion operator","href":"/Type_conversion_operator","docId":"Type_conversion_operator","unlisted":false},{"type":"link","label":"AND, OR, NOT, XOR operators","href":"/AND_OR_NOT_XOR_operators","docId":"AND_OR_NOT_XOR_operators","unlisted":false},{"type":"link","label":"IS, AS operators","href":"/IS_AS_operators","docId":"IS_AS_operators","unlisted":false},{"type":"link","label":"Change operators","href":"/Change_operators","docId":"Change_operators","unlisted":false},{"type":"link","label":"Comparison operators","href":"/Comparison_operators","docId":"Comparison_operators","unlisted":false}],"collapsed":true,"collapsible":true,"href":"/Property_operators"},{"type":"link","label":"Property options","href":"/Property_options","docId":"Property_options","unlisted":false}],"collapsed":true,"collapsible":true,"href":"/=_statement"},{"type":"category","label":"ACTION statement","items":[{"type":"category","label":"Action operators","items":[{"type":"link","label":"{...} operator","href":"/Braces_operator","docId":"Braces_operator","unlisted":false},{"type":"link","label":"ABSTRACT operator","href":"/ABSTRACT_action_operator","docId":"ABSTRACT_action_operator","unlisted":false},{"type":"link","label":"ACTIVATE operator","href":"/ACTIVATE_operator","docId":"ACTIVATE_operator","unlisted":false},{"type":"link","label":"ACTIVE FORM operator","href":"/ACTIVE_FORM_operator","docId":"ACTIVE_FORM_operator","unlisted":false},{"type":"link","label":"APPLY operator","href":"/APPLY_operator","docId":"APPLY_operator","unlisted":false},{"type":"link","label":"ASK operator","href":"/ASK_operator","docId":"ASK_operator","unlisted":false},{"type":"link","label":"CHANGE operator","href":"/CHANGE_operator","docId":"CHANGE_operator","unlisted":false},{"type":"link","label":"BREAK operator","href":"/BREAK_operator","docId":"BREAK_operator","unlisted":false},{"type":"link","label":"CANCEL operator","href":"/CANCEL_operator","docId":"CANCEL_operator","unlisted":false},{"type":"link","label":"CASE operator","href":"/CASE_action_operator","docId":"CASE_action_operator","unlisted":false},{"type":"link","label":"CHANGECLASS operator","href":"/CHANGECLASS_operator","docId":"CHANGECLASS_operator","unlisted":false},{"type":"link","label":"COLLAPSE operator","href":"/COLLAPSE_operator","docId":"COLLAPSE_operator","unlisted":false},{"type":"link","label":"INTERNAL operator","href":"/INTERNAL_operator","docId":"INTERNAL_operator","unlisted":false},{"type":"link","label":"DELETE operator","href":"/DELETE_operator","docId":"DELETE_operator","unlisted":false},{"type":"link","label":"DIALOG operator","href":"/DIALOG_operator","docId":"DIALOG_operator","unlisted":false},{"type":"link","label":"EMAIL operator","href":"/EMAIL_operator","docId":"EMAIL_operator","unlisted":false},{"type":"link","label":"EVAL operator","href":"/EVAL_operator","docId":"EVAL_operator","unlisted":false},{"type":"link","label":"EXEC operator","href":"/EXEC_operator","docId":"EXEC_operator","unlisted":false},{"type":"link","label":"EXPAND operator","href":"/EXPAND_operator","docId":"EXPAND_operator","unlisted":false},{"type":"link","label":"EXPORT operator","href":"/EXPORT_operator","docId":"EXPORT_operator","unlisted":false},{"type":"link","label":"EXTERNAL operator","href":"/EXTERNAL_operator","docId":"EXTERNAL_operator","unlisted":false},{"type":"link","label":"FOR operator","href":"/FOR_operator","docId":"FOR_operator","unlisted":false},{"type":"link","label":"IF ... THEN operator","href":"/IF_..._THEN_action_operator","docId":"IF_..._THEN_action_operator","unlisted":false},{"type":"link","label":"IMPORT operator","href":"/IMPORT_operator","docId":"IMPORT_operator","unlisted":false},{"type":"link","label":"INPUT operator","href":"/INPUT_operator","docId":"INPUT_operator","unlisted":false},{"type":"link","label":"MESSAGE operator","href":"/MESSAGE_operator","docId":"MESSAGE_operator","unlisted":false},{"type":"link","label":"MULTI operator","href":"/MULTI_action_operator","docId":"MULTI_action_operator","unlisted":false},{"type":"link","label":"NEW operator","href":"/NEW_operator","docId":"NEW_operator","unlisted":false},{"type":"link","label":"NESTEDSESSION operator","href":"/NESTEDSESSION_operator","docId":"NESTEDSESSION_operator","unlisted":false},{"type":"link","label":"NEWEXECUTOR operator","href":"/NEWEXECUTOR_operator","docId":"NEWEXECUTOR_operator","unlisted":false},{"type":"link","label":"NEWSESSION operator","href":"/NEWSESSION_operator","docId":"NEWSESSION_operator","unlisted":false},{"type":"link","label":"NEWTHREAD operator","href":"/NEWTHREAD_operator","docId":"NEWTHREAD_operator","unlisted":false},{"type":"link","label":"PRINT operator","href":"/PRINT_operator","docId":"PRINT_operator","unlisted":false},{"type":"link","label":"READ operator","href":"/READ_operator","docId":"READ_operator","unlisted":false},{"type":"link","label":"REQUEST operator","href":"/REQUEST_operator","docId":"REQUEST_operator","unlisted":false},{"type":"link","label":"RETURN operator","href":"/RETURN_operator","docId":"RETURN_operator","unlisted":false},{"type":"link","label":"SEEK operator","href":"/SEEK_operator","docId":"SEEK_operator","unlisted":false},{"type":"link","label":"SHOW operator","href":"/SHOW_operator","docId":"SHOW_operator","unlisted":false},{"type":"link","label":"TRY operator","href":"/TRY_operator","docId":"TRY_operator","unlisted":false},{"type":"link","label":"WHILE operator","href":"/WHILE_operator","docId":"WHILE_operator","unlisted":false},{"type":"link","label":"WRITE operator","href":"/WRITE_operator","docId":"WRITE_operator","unlisted":false}],"collapsed":true,"collapsible":true,"href":"/Action_operators"},{"type":"link","label":"Action options","href":"/Action_options","docId":"Action_options","unlisted":false}],"collapsed":true,"collapsible":true,"href":"/ACTION_statement"},{"type":"link","label":"GROUP statement","href":"/GROUP_statement","docId":"GROUP_statement","unlisted":false},{"type":"category","label":"ON statement","items":[{"type":"link","label":"Event description block","href":"/Event_description_block","docId":"Event_description_block","unlisted":false}],"collapsed":true,"collapsible":true,"href":"/ON_statement"},{"type":"link","label":"WHEN statement","href":"/WHEN_statement","docId":"WHEN_statement","unlisted":false},{"type":"link","label":"<- WHEN statement","href":"/lt-_WHEN_statement","docId":"lt-_WHEN_statement","unlisted":false},{"type":"link","label":"CONSTRAINT statement","href":"/CONSTRAINT_statement","docId":"CONSTRAINT_statement","unlisted":false},{"type":"link","label":"=> statement","href":"/=gt_statement","docId":"=gt_statement","unlisted":false},{"type":"link","label":"CLASS statement","href":"/CLASS_statement","docId":"CLASS_statement","unlisted":false},{"type":"category","label":"FORM statement","items":[{"type":"link","label":"Object blocks","href":"/Object_blocks","docId":"Object_blocks","unlisted":false},{"type":"link","label":"Properties and actions block","href":"/Properties_and_actions_block","docId":"Properties_and_actions_block","unlisted":false},{"type":"link","label":"Filter and sorting blocks","href":"/Filters_and_sortings_block","docId":"Filters_and_sortings_block","unlisted":false},{"type":"link","label":"Event block","href":"/Event_block","docId":"Event_block","unlisted":false}],"collapsed":true,"collapsible":true,"href":"/FORM_statement"},{"type":"link","label":"DESIGN statement","href":"/DESIGN_statement","docId":"DESIGN_statement","unlisted":false},{"type":"link","label":"NAVIGATOR statement","href":"/NAVIGATOR_statement","docId":"NAVIGATOR_statement","unlisted":false},{"type":"link","label":"WINDOW statement","href":"/WINDOW_statement","docId":"WINDOW_statement","unlisted":false},{"type":"link","label":"EXTEND CLASS statement","href":"/EXTEND_CLASS_statement","docId":"EXTEND_CLASS_statement","unlisted":false},{"type":"link","label":"EXTEND FORM statement","href":"/EXTEND_FORM_statement","docId":"EXTEND_FORM_statement","unlisted":false},{"type":"link","label":"+= statement","href":"/+=_statement","docId":"+=_statement","unlisted":false},{"type":"link","label":"ACTION+ statement","href":"/ACTION+_statement","docId":"ACTION+_statement","unlisted":false},{"type":"link","label":"META statement","href":"/META_statement","docId":"META_statement","unlisted":false},{"type":"link","label":"@ statement","href":"/commat_statement","docId":"commat_statement","unlisted":false},{"type":"link","label":"TABLE statement","href":"/TABLE_statement","docId":"TABLE_statement","unlisted":false},{"type":"link","label":"INDEX statement","href":"/INDEX_statement","docId":"INDEX_statement","unlisted":false},{"type":"link","label":"BEFORE statement","href":"/BEFORE_statement","docId":"BEFORE_statement","unlisted":false},{"type":"link","label":"AFTER statement","href":"/AFTER_statement","docId":"AFTER_statement","unlisted":false},{"type":"link","label":"Empty statement","href":"/Empty_statement","docId":"Empty_statement","unlisted":false}],"collapsed":true,"collapsible":true,"href":"/Statements"},{"type":"link","label":"Coding conventions","href":"/Coding_conventions","docId":"Coding_conventions","unlisted":false}],"collapsible":true,"href":"/Language"},{"type":"link","label":"IDE","href":"/IDE","docId":"IDE","unlisted":false},{"collapsed":false,"type":"category","label":"Learning materials","items":[{"type":"category","label":"Examples","items":[{"type":"link","label":"Score table","href":"/Score_table","docId":"Score_table","unlisted":false},{"type":"link","label":"Materials management","href":"/Materials_management","docId":"Materials_management","unlisted":false}],"collapsed":true,"collapsible":true,"href":"/Examples"},{"type":"category","label":"How-to","items":[{"type":"category","label":"How-to: Computations","items":[{"type":"link","label":"How-to: GROUP SUM","href":"/How-to_GROUP_SUM","docId":"How-to_GROUP_SUM","unlisted":false},{"type":"link","label":"How-to: GROUP MAX/MIN/AGGR","href":"/How-to_GROUP_MAX_MIN_AGGR","docId":"How-to_GROUP_MAX_MIN_AGGR","unlisted":false},{"type":"link","label":"How-to: CASE/IF/OVERRIDE","href":"/How-to_CASE_IF_OVERRIDE","docId":"How-to_CASE_IF_OVERRIDE","unlisted":false},{"type":"link","label":"How-to: GROUP LAST","href":"/How-to_GROUP_LAST","docId":"How-to_GROUP_LAST","unlisted":false},{"type":"link","label":"How-to: GROUP CONCAT","href":"/How-to_GROUP_CONCAT","docId":"How-to_GROUP_CONCAT","unlisted":false},{"type":"link","label":"How-to: PARTITION","href":"/How-to_PARTITION","docId":"How-to_PARTITION","unlisted":false}],"collapsed":true,"collapsible":true,"href":"/How-to_Computations"},{"type":"category","label":"How-to: GUI","items":[{"type":"category","label":"How-to: Interactive forms","items":[{"type":"link","label":"How-to: CRUD","href":"/How-to_CRUD","docId":"How-to_CRUD","unlisted":false},{"type":"link","label":"How-to: Documents with lines","href":"/How-to_Documents_with_lines","docId":"How-to_Documents_with_lines","unlisted":false},{"type":"link","label":"How-to: Filtering and ordering","href":"/How-to_Filtering_and_ordering","docId":"How-to_Filtering_and_ordering","unlisted":false},{"type":"link","label":"How-to: Design","href":"/How-to_Design","docId":"How-to_Design","unlisted":false},{"type":"link","label":"How-to: Trees","href":"/How-to_Trees","docId":"How-to_Trees","unlisted":false},{"type":"link","label":"How-to: Data entry","href":"/How-to_Data_entry","docId":"How-to_Data_entry","unlisted":false},{"type":"link","label":"How-to: Navigator","href":"/How-to_Navigator","docId":"How-to_Navigator","unlisted":false},{"type":"link","label":"How-to: Matrix","href":"/How-to_Matrix","docId":"How-to_Matrix","unlisted":false},{"type":"link","label":"How-to: Table status","href":"/How-to_Table_status","docId":"How-to_Table_status","unlisted":false},{"type":"link","label":"How-to: Custom components (properties)","href":"/How-to_Custom_components_properties","docId":"How-to_Custom_components_properties","unlisted":false},{"type":"link","label":"How-to: Custom Components (objects)","href":"/How-to_Custom_components_objects","docId":"How-to_Custom_components_objects","unlisted":false}],"collapsed":true,"collapsible":true,"href":"/How-to_Interactive_forms"},{"type":"link","label":"How-to: Reports","href":"/How-to_Reports","docId":"How-to_Reports","unlisted":false}],"collapsed":true,"collapsible":true,"href":"/How-to_GUI"},{"type":"category","label":"How-to: Imperative logic","items":[{"type":"category","label":"How-to: Actions","items":[{"type":"link","label":"How-to: CHANGE","href":"/How-to_CHANGE","docId":"How-to_CHANGE","unlisted":false},{"type":"link","label":"How-to: EXEC","href":"/How-to_EXEC","docId":"How-to_EXEC","unlisted":false},{"type":"link","label":"How-to: NEW","href":"/How-to_NEW","docId":"How-to_NEW","unlisted":false},{"type":"link","label":"How-to: DELETE","href":"/How-to_DELETE","docId":"How-to_DELETE","unlisted":false},{"type":"link","label":"How-to: FOR","href":"/How-to_FOR","docId":"How-to_FOR","unlisted":false},{"type":"link","label":"How-to: IF/CASE","href":"/How-to_IF_CASE","docId":"How-to_IF_CASE","unlisted":false},{"type":"link","label":"How-to: WHILE","href":"/How-to_WHILE","docId":"How-to_WHILE","unlisted":false},{"type":"link","label":"How-to: NEWSESSION","href":"/How-to_NEWSESSION","docId":"How-to_NEWSESSION","unlisted":false},{"type":"link","label":"How-to: SEEK","href":"/How-to_SEEK","docId":"How-to_SEEK","unlisted":false}],"collapsed":true,"collapsible":true,"href":"/How-to_Actions"},{"type":"link","label":"How-to: Events","href":"/How-to_Events","docId":"How-to_Events","unlisted":false}],"collapsed":true,"collapsible":true,"href":"/How-to_Imperative_logic"},{"type":"category","label":"How-to: Declarative logic","items":[{"type":"link","label":"How-to: Constraints","href":"/How-to_Constraints","docId":"How-to_Constraints","unlisted":false},{"type":"link","label":"How-to: Inheritance and aggregation","href":"/How-to_Inheritance_and_aggregation","docId":"How-to_Inheritance_and_aggregation","unlisted":false}],"collapsed":true,"collapsible":true,"href":"/How-to_Declarative_logic"},{"type":"category","label":"How-to: Searching for elements","items":[{"type":"link","label":"How-to: Namespaces","href":"/How-to_Namespaces","docId":"How-to_Namespaces","unlisted":false},{"type":"link","label":"How-to: Explicit typing","href":"/How-to_Explicit_typing","docId":"How-to_Explicit_typing","unlisted":false}],"collapsed":true,"collapsible":true,"href":"/How-to_Searching_for_elements"},{"type":"category","label":"How-to: Extensions","items":[{"type":"link","label":"How-to: Class extension","href":"/How-to_Class_extension","docId":"How-to_Class_extension","unlisted":false},{"type":"link","label":"How-to: Property extension","href":"/How-to_Property_extension","docId":"How-to_Property_extension","unlisted":false},{"type":"link","label":"How-to: Action extension","href":"/How-to_Action_extension","docId":"How-to_Action_extension","unlisted":false},{"type":"link","label":"How-to: Form extension","href":"/How-to_Form_extension","docId":"How-to_Form_extension","unlisted":false}],"collapsed":true,"collapsible":true,"href":"/How-to_Extensions"},{"type":"category","label":"How-to: Integration","items":[{"type":"category","label":"How-to: Working with external formats","items":[{"type":"link","label":"How-to: Data export","href":"/How-to_Data_export","docId":"How-to_Data_export","unlisted":false},{"type":"link","label":"How-to: Data import","href":"/How-to_Data_import","docId":"How-to_Data_import","unlisted":false}],"collapsed":true,"collapsible":true,"href":"/How-to_Working_with_external_formats"},{"type":"link","label":"How-to: Interaction via HTTP protocol","href":"/How-to_Interaction_via_HTTP_protocol","docId":"How-to_Interaction_via_HTTP_protocol","unlisted":false},{"type":"link","label":"How-to: Frontend","href":"/How-to_Frontend","docId":"How-to_Frontend","unlisted":false},{"type":"category","label":"How-to: Access to internal systems","items":[{"type":"link","label":"How-to: FORMULA","href":"/How-to_FORMULA","docId":"How-to_FORMULA","unlisted":false},{"type":"link","label":"How-to: INTERNAL","href":"/How-to_INTERNAL","docId":"How-to_INTERNAL","unlisted":false}],"collapsed":true,"collapsible":true,"href":"/How-to_Access_to_internal_systems"}],"collapsed":true,"collapsible":true,"href":"/How-to_Integration"},{"type":"category","label":"How-to: Use Cases","items":[{"type":"link","label":"How-to: Working with documents","href":"/How-to_Working_with_documents","docId":"How-to_Working_with_documents","unlisted":false},{"type":"link","label":"How-to: Registers","href":"/How-to_Registers","docId":"How-to_Registers","unlisted":false},{"type":"link","label":"How-to: Numbering","href":"/How-to_Numbering","docId":"How-to_Numbering","unlisted":false},{"type":"link","label":"How-to: Using objects as templates","href":"/How-to_Using_objects_as_templates","docId":"How-to_Using_objects_as_templates","unlisted":false},{"type":"link","label":"How-to: Overriding values","href":"/How-to_Overriding_values","docId":"How-to_Overriding_values","unlisted":false},{"type":"link","label":"How-to: Binding properties","href":"/How-to_Binding_properties","docId":"How-to_Binding_properties","unlisted":false}],"collapsed":true,"collapsible":true,"href":"/How-to_Use_Cases"},{"type":"link","label":"How-to: Metaprogramming","href":"/How-to_Metaprogramming","docId":"How-to_Metaprogramming","unlisted":false},{"type":"link","label":"How-to: Physical model","href":"/How-to_Physical_model","docId":"How-to_Physical_model","unlisted":false},{"type":"link","label":"How-to: Internationalization","href":"/How-to_Internationalization","docId":"How-to_Internationalization","unlisted":false}],"collapsed":true,"collapsible":true,"href":"/How-to"}],"collapsible":true,"href":"/Learning_materials"},{"type":"link","label":"Online demo","href":"/Online_demo","docId":"Online_demo","unlisted":false}]},"docs":{"+=_statement":{"id":"+=_statement","title":"+= statement","description":"The += statement adds an implementation (selection option) to an abstract property.","sidebar":"learn"},"=_statement":{"id":"=_statement","title":"= statement","description":"The = statement creates a new property.","sidebar":"learn"},"=gt_statement":{"id":"=gt_statement","title":"=> statement","description":"The => statement creates a consequence.","sidebar":"learn"},"ABSTRACT_action_operator":{"id":"ABSTRACT_action_operator","title":"ABSTRACT operator","description":"The ABSTRACT operator - creating an abstract action.","sidebar":"learn"},"ABSTRACT_operator":{"id":"ABSTRACT_operator","title":"ABSTRACT operator","description":"The ABSTRACT operator creates an abstract property.","sidebar":"learn"},"Access_from_an_external_system":{"id":"Access_from_an_external_system","title":"Access from an external system","description":"Action API","sidebar":"learn"},"Access_from_an_internal_system":{"id":"Access_from_an_internal_system","title":"Access from an internal system","description":"Java interaction","sidebar":"learn"},"Access_to_an_external_system_EXTERNAL":{"id":"Access_to_an_external_system_EXTERNAL","title":"Access to an external system (EXTERNAL)","description":"The operator for accessing an external system executes a specified code in the language/paradigm of the external system specified. In addition, this operator allows passing objects of built-in classes as parameters of this type of call, and also writing the results of calls to the properties specified (without parameters).","sidebar":"learn"},"Access_to_an_internal_system_INTERNAL_FORMULA":{"id":"Access_to_an_internal_system_INTERNAL_FORMULA","title":"Access to an internal system (INTERNAL, FORMULA)","description":"Java interaction","sidebar":"learn"},"Action_extension":{"id":"Action_extension","title":"Action extension","description":"The actions extension technique allows the developer to declare an abstract action in one module and add to it an implementation in other modules. This technique is essentially a \\"postponed definition\\" of a branch operator, where the operator\u2019s title is defined when the property is declared, and branching conditions are added as new functionality (of classes or static objects) is added to the system. Furthermore, branching conditions (if branching is not mutually exclusive) can be added both to the beginning and to the end of the abstract action created. Similarly, this technique works with a sequence operator.","sidebar":"learn"},"Action_operators":{"id":"Action_operators","title":"Action operators","description":"Action operator is a syntax construct that describes an operator creating an action.","sidebar":"learn"},"Action_operators_paradigm":{"id":"Action_operators_paradigm","title":"\u041eperators","description":"Operators for creating actions can be divided into several categories:","sidebar":"learn"},"Action_options":{"id":"Action_options","title":"Action options","description":"When declaring an action in the ACTION statement a certain set of action options may be specified at the end of the declaration.","sidebar":"learn"},"ACTION_statement":{"id":"ACTION_statement","title":"ACTION statement","description":"The ACTION statement creates an action.","sidebar":"learn"},"ACTION+_statement":{"id":"ACTION+_statement","title":"ACTION+ statement","description":"The ACTION+ statement adds an implementation (branching condition) to an abstract action.","sidebar":"learn"},"Actions":{"id":"Actions","title":"Actions","description":"An action is an element of the system that takes a set of objects (parameters) and uses them in one way or another to change the system state (that of the system in which the action is executed, as well as the state of any other external system).","sidebar":"learn"},"ACTIVATE_operator":{"id":"ACTIVATE_operator","title":"ACTIVATE operator","description":"The ACTIVATE operator creates an action that activates a specified form, tab, property, or action on a form","sidebar":"learn"},"Activation_ACTIVATE":{"id":"Activation_ACTIVATE","title":"Activation (ACTIVATE)","description":"The activation operator creates an action that activates one of three form elements:","sidebar":"learn"},"ACTIVE_FORM_operator":{"id":"ACTIVE_FORM_operator","title":"ACTIVE FORM operator","description":"The ACTIVATE FORM operator creates an action that checks the activeness of a form.","sidebar":"learn"},"ACTIVE_TAB_operator":{"id":"ACTIVE_TAB_operator","title":"ACTIVE TAB operator","description":"The ACTIVE TAB operator creates a property that checks if specified tab is active.","sidebar":"learn"},"Activity_ACTIVE":{"id":"Activity_ACTIVE","title":"Activity (ACTIVE)","description":"The activity operator creates a property that determines whether one of the following form elements is active:","sidebar":"learn"},"AFTER_statement":{"id":"AFTER_statement","title":"AFTER statement","description":"The AFTER statement calls an action after calling another action.","sidebar":"learn"},"AGGR_operator":{"id":"AGGR_operator","title":"AGGR operator","description":"The AGGR operator creates an aggregation.","sidebar":"learn"},"Aggregations":{"id":"Aggregations","title":"Aggregations","description":"Aggregation is the creation of a unique (aggregate) of the object corresponding to each non-NULL value of some aggregated property. Each such object is assumed to have properties that map this object to each aggregated property parameter, and, conversely, a property that maps the aggregated property parameters to this object.","sidebar":"learn"},"AND_OR_NOT_XOR_operators":{"id":"AND_OR_NOT_XOR_operators","title":"AND, OR, NOT, XOR operators","description":"AND, OR, NOT, XOR operators that create properties that implement logical operations.","sidebar":"learn"},"Apply_changes_APPLY":{"id":"Apply_changes_APPLY","title":"Apply changes (APPLY)","description":"The apply changes operator saves all changes made to the database, and also triggers the handling of all synchronous global events.","sidebar":"learn"},"APPLY_operator":{"id":"APPLY_operator","title":"APPLY operator","description":"The APPLY operator creates an action that applies changes to the database.","sidebar":"learn"},"Arithmetic_operators":{"id":"Arithmetic_operators","title":"Arithmetic operators","description":"+, -, *, /, (+), (-) operators create properties responsible for arithmetic operations.","sidebar":"learn"},"Arithmetic_operators_+_-_etc":{"id":"Arithmetic_operators_+_-_etc","title":"Arithmetic operators (+, -, *, ...)","description":"Arithmetic operators create properties whose value is the result of an arithmetic operation. The arguments of these operators must be properties whose values are instances of number classes . The platform currently supports the following arithmetic operators:","sidebar":"learn"},"ASK_operator":{"id":"ASK_operator","title":"ASK operator","description":"The ASK operator creates an action that shows the user a message in a dialog form.","sidebar":"learn"},"Automatic_installation":{"id":"Automatic_installation","title":"Install automatically","description":"For development","sidebar":"install"},"BEFORE_statement":{"id":"BEFORE_statement","title":"BEFORE statement","description":"The BEFORE statement calls an action before calling another action.","sidebar":"learn"},"Braces_operator":{"id":"Braces_operator","title":"{...} operator","description":"The {...} operator creates actions that executes a sequence of other actions.","sidebar":"learn"},"Brackets_operator":{"id":"Brackets_operator","title":"[] operator","description":"The ] operator creates a [property that returns an object from a structure.","sidebar":"learn"},"Branching_CASE_IF_MULTI":{"id":"Branching_CASE_IF_MULTI","title":"Branching (CASE, IF, MULTI)","description":"The branching operator creates an action that determines for a set of conditions which condition is met, and calls the corresponding action.","sidebar":"learn"},"BREAK_operator":{"id":"BREAK_operator","title":"BREAK operator","description":"The BREAK operator creates an action that implements a loop interruption.","sidebar":"learn"},"Built-in_classes":{"id":"Built-in_classes","title":"Built-in classes","description":"Built-in classes are classes whose instances are objects belonging to primitive data types such as integers, strings, etc.","sidebar":"learn"},"Calculated_events":{"id":"Calculated_events","title":"Calculated events","description":"Calculated events are events that change the value of a property when the value of some other property (condition) changes to a non-NULL value. Moreover, unlike simple events, this change is not made at the moment the condition is changed but is calculated each time the changed property is accessed. If the property has already been changed in the same session, this change is considered higher priority than the change in the calculated event.","sidebar":"learn"},"Call_EXEC":{"id":"Call_EXEC","title":"Call (EXEC)","description":"The EXEC operator creates an action that executes another action, passing it specified properties (arguments).","sidebar":"learn"},"Cancel_changes_CANCEL":{"id":"Cancel_changes_CANCEL","title":"Cancel changes (CANCEL)","description":"The cancel changes operator completely clears the current change session.","sidebar":"learn"},"CANCEL_operator":{"id":"CANCEL_operator","title":"CANCEL operator","description":"The CANCEL operator creates an action that cancels changes in the current session.","sidebar":"learn"},"CASE_action_operator":{"id":"CASE_action_operator","title":"CASE operator","description":"The CASE operator creates an action that implements branching.","sidebar":"learn"},"CASE_operator":{"id":"CASE_operator","title":"CASE operator","description":"The CASE operator creates a property that selects a result by condition.","sidebar":"learn"},"CHANGE_operator":{"id":"CHANGE_operator","title":"CHANGE operator","description":"The CHANGE operator creates an action that changes properties.","sidebar":"learn"},"Change_operators":{"id":"Change_operators","title":"Change operators","description":"Change operators - a set of operators that determine various types of property value changes.","sidebar":"learn"},"Change_operators_SET_CHANGED_etc":{"id":"Change_operators_SET_CHANGED_etc","title":"Change operators (SET, CHANGED, ...)","description":"Change operators determine whether some types of changes have occurred for a certain property in the current session. All these operators are derived from the previous value operator (PREV), however, it is recommended to use them to improve readability and performance. The following table shows the supported types of changes and their description:","sidebar":"learn"},"Change_sessions":{"id":"Change_sessions","title":"Change sessions","description":"Actions can change the state of the system in which they are executed. It is not always desirable to write these changes directly to the database, both from the perspective of integrity and from the perspective of the ergonomics of the system. The platform therefore allows to accumulate these changes locally in change sessions.","sidebar":"learn"},"CHANGECLASS_operator":{"id":"CHANGECLASS_operator","title":"CHANGECLASS operator","description":"The CHANGECLASS operator creates an action that changes objects classes.","sidebar":"learn"},"Chat":{"id":"Chat","title":"Chat","description":"(Under development)","sidebar":"learn"},"Class_change_CHANGECLASS_DELETE":{"id":"Class_change_CHANGECLASS_DELETE","title":"Class change (CHANGECLASS, DELETE)","description":"The class change operator creates an action that assigns the given class to all objects where value of a particular property (condition) is not equal to NULL. The condition can be omitted, in which case it is considered to be equal to TRUE.","sidebar":"learn"},"Class_extension":{"id":"Class_extension","title":"Class extension","description":"The class extension technique allows the developer to inherit one class from another after its creation. Also, using this mechanism you can add extra static objects to a class.","sidebar":"learn"},"CLASS_operator":{"id":"CLASS_operator","title":"ISCLASS operator","description":"The ISCLASS operator creates a property that implements a signature matching operator.","sidebar":"learn"},"Class_operators":{"id":"Class_operators","title":"Class operators","description":"Class operators include the following operators:","sidebar":"learn"},"CLASS_statement":{"id":"CLASS_statement","title":"CLASS statement","description":"CLASS statement creates a new custom class.","sidebar":"learn"},"Classes":{"id":"Classes","title":"Classes","description":"The base element in lsFusion is the object. Each object is an instance of some class, which determines the qualities of all its instances. Classes in turn can be divided into built-in classes, which are responsible for primitive data types, and user classes.","sidebar":"learn"},"Classification_IS_AS":{"id":"Classification_IS_AS","title":"Classification (IS/AS)","description":"Classification operators create properties that determine whether an object belongs to the class specified. If the property argument does not belong to the class specified in the operator, the property returns NULL. Otherwise, the operator IS returns TRUE, and the operator AS returns the object passed as an argument.","sidebar":"learn"},"Coding_conventions":{"id":"Coding_conventions","title":"Coding conventions","description":"Common","sidebar":"learn"},"COLLAPSE_operator":{"id":"COLLAPSE_operator","title":"COLLAPSE operator","description":"The COLLAPSE operator is the creation of an action, that implements the collapse of elements in the object tree.","sidebar":"learn"},"commat_statement":{"id":"commat_statement","title":"@ statement","description":"The @ statement uses metacode.","sidebar":"learn"},"Comparison_operators":{"id":"Comparison_operators","title":"Comparison operators","description":"==, =, !=, `, =` operators create properties that implement comparison operations.","sidebar":"learn"},"Comparison_operators_=_etc":{"id":"Comparison_operators_=_etc","title":"Comparison operators (=, >, <, ...)","description":"Comparison operators create actions which return the result of the comparison operation. The values of the created properties belong to the built-in class BOOLEAN.","sidebar":"learn"},"Composition_JOIN":{"id":"Composition_JOIN","title":"Composition (JOIN)","description":"The composition operator allows you to use values of other properties as arguments for one (main) property.","sidebar":"learn"},"CONCAT_operator":{"id":"CONCAT_operator","title":"CONCAT operator","description":"The CONCAT operator creates a property that implements a string concatenation.","sidebar":"learn"},"Constant":{"id":"Constant","title":"Constant","description":"The constant operator is used to create properties without parameters which always return the same value. This value can be static objects of custom and built-in classes as well as the special NULL value.","sidebar":"learn"},"CONSTRAINT_statement":{"id":"CONSTRAINT_statement","title":"CONSTRAINT statement","description":"The CONSTRAINT statement creates a constraint.","sidebar":"learn"},"Constraints":{"id":"Constraints","title":"Constraints","description":"Constraints in the platform determine which values the data properties can have and which cannot. In general, a constraint is defined as a property which value should always be NULL.","sidebar":"learn"},"Custom_formula_FORMULA":{"id":"Custom_formula_FORMULA","title":"Custom formula (FORMULA)","description":"The custom formula operator allows you to create a property that calculates defined formula in SQL. You can specify different implementations of the formula for different SQL servers. The formula is defined as a string, within which the special character $ and the number of this parameter (starting from 1) are used to access the parameter. Accordingly, the number of parameters of the result property will be equal to the greatest of the numbers of the parameters used.","sidebar":"learn"},"Data_export_EXPORT":{"id":"Data_export_EXPORT","title":"Data export (EXPORT)","description":"The data export operator creates an action that reads values of the specified properties for all object collections where the value of the specified property (condition) is not NULL, and then saves these values to a file in a specified format.","sidebar":"learn"},"Data_import_IMPORT":{"id":"Data_import_IMPORT","title":"Data import (IMPORT)","description":"The data import operator creates an action which reads a file from the value of some property, then, depending on its format, defines the columns (fields) of data in this file, after which it writes the value of each column (field) to the corresponding property (parameter) - import assignment. The mapping of columns to properties can go in either column or name order.","sidebar":"learn"},"DATA_operator":{"id":"DATA_operator","title":"DATA operator","description":"The DATA operator creates a data property.","sidebar":"learn"},"Data_properties_DATA":{"id":"Data_properties_DATA","title":"Data properties (DATA)","description":"Data property is a property which value is stored in the database and may change through the execution of the corresponding action. Each parameter and the value of a data property must belong to a certain specified class. If a parameter does not belong to the specified class or is NULL, then the property value will return NULL.","sidebar":"learn"},"DELETE_operator":{"id":"DELETE_operator","title":"DELETE operator","description":"The DELETE operator creates an action that deletes objects.","sidebar":"learn"},"DESIGN_statement":{"id":"DESIGN_statement","title":"DESIGN statement","description":"The DESIGN statement changes form design.","sidebar":"learn"},"Development":{"id":"Development","title":"Development","description":"The development model includes the following concepts:","sidebar":"learn"},"Development_auto":{"id":"Development_auto","title":"For development","description":"On this page you can download installers that install everything needed for development in a single click. In addition to lsFusion, these installers also install OpenJDK, PostgreSQL, Tomcat, and IntelliJ IDEA Community Edition with the built-in lsFusion plugin. If any of these programs are already on your computer, you can exclude them during the installation process.","sidebar":"install"},"Development_manual":{"id":"Development_manual","title":"For development","description":"To install the application server, IDE, and client, Java version 8 or later must first be installed on the computer.","sidebar":"install"},"DIALOG_operator":{"id":"DIALOG_operator","title":"DIALOG operator","description":"The DIALOG operator creates an action that opens a form in an interactive view in dialog mode.","sidebar":"learn"},"Distribution_UNGROUP":{"id":"Distribution_UNGROUP","title":"Distribution (UNGROUP)","description":"The distribution operator creates a property, the grouping value of which using sum function will be equal to the value of the specified property (distributable). Accordingly, as for a group operator, for a distribution operator multiple properties (groups) must be set by which the grouping will take place.","sidebar":"learn"},"Domain_logic":{"id":"Domain_logic","title":"Domain logic","description":"Properties are the basic concept for business logic and are responsible for storing and calculating data.","sidebar":"learn"},"Element_identification":{"id":"Element_identification","title":"Element identification","description":"On the lsFusion platform, some elements of the system are named, meaning that they can be used by accessing them by name.","sidebar":"learn"},"EMAIL_operator":{"id":"EMAIL_operator","title":"EMAIL operator","description":"The EMAIL operator creates an action that sends email.","sidebar":"learn"},"Empty_statement":{"id":"Empty_statement","title":"Empty statement","description":"Empty statement - a special statement that consists of a single semicolon.","sidebar":"learn"},"Eval_EVAL":{"id":"Eval_EVAL","title":"Eval (EVAL)","description":"The eval operator creates an action that executes defined program code in the lsFusion language. Program code is defined as a property whose value should belong to the string class. This is implemented using an action which takes a line of code as an argument.","sidebar":"learn"},"EVAL_operator":{"id":"EVAL_operator","title":"EVAL operator","description":"The EVAL operator: creating an action that executes code in the lsFusion language.","sidebar":"learn"},"Event_block":{"id":"Event_block","title":"Event block","description":"The event block of the FORM statement - a set of constructions controlling events in an interactive form view.","sidebar":"learn"},"Event_description_block":{"id":"Event_description_block","title":"Event description block","description":"Event description block describes an event in different statements.","sidebar":"learn"},"Events":{"id":"Events","title":"Events","description":"Events are a mechanism that allows to execute certain actions at certain points in time (these actions shall be called event handlers).","sidebar":"learn"},"Examples":{"id":"Examples","title":"Examples","description":"Examples are intended to demonstrate the capabilities of the lsFusion platform.","sidebar":"learn"},"Exception_handling_TRY":{"id":"Exception_handling_TRY","title":"Exception handling (TRY)","description":"The exception handling operator enables you to execute an action and do the following if an error (exception) occurs:","sidebar":"learn"},"EXCLUSIVE_operator":{"id":"EXCLUSIVE_operator","title":"EXCLUSIVE operator","description":"The EXCLUSIVE operator creates a property that implements a selection of one of the values (polymorphic form).","sidebar":"learn"},"EXEC_operator":{"id":"EXEC_operator","title":"EXEC operator","description":"The EXEC operator creates an action that executes another action.","sidebar":"learn"},"Execution":{"id":"Execution","title":"Execution","description":"If the system is small and there is not much data in it, it usually works quite efficiently without any additional optimizations. But if the logic becomes more complex, and the amount of data increases significantly, it often makes sense to tell the platform how best to store and process all this data.","sidebar":"learn"},"Execution_auto":{"id":"Execution_auto","title":"For production","description":"Installation","sidebar":"install"},"Execution_manual":{"id":"Execution_manual","title":"For production","description":"To install the application server, web server and client, Java version 8 or later must first be installed on the computer.","sidebar":"install"},"Execution_order":{"id":"Execution_order","title":"Execution order","description":"The platform supports the following operators for managing the order in which actions are executed:","sidebar":"learn"},"Exit_RETURN":{"id":"Exit_RETURN","title":"Exit (RETURN)","description":"The exit operator creates an action that exits from the inmost action call. Control is passed to the first action following that call operator.","sidebar":"learn"},"EXPAND_operator":{"id":"EXPAND_operator","title":"EXPAND operator","description":"The EXPAND operator is the creation of an action, that implements the expansion of elements in the object tree.","sidebar":"learn"},"EXPORT_operator":{"id":"EXPORT_operator","title":"EXPORT operator","description":"The EXPORT operator: creates an action that exports specified properties to a file, or, in common case, that opens a form in a structured view.","sidebar":"learn"},"Expression":{"id":"Expression","title":"Expression","description":"An expression is a combination of property operators and parameters. When an expression is evaluated sequentially in priority order, all the operators are executed.","sidebar":"learn"},"EXTEND_CLASS_statement":{"id":"EXTEND_CLASS_statement","title":"EXTEND CLASS statement","description":"The EXTEND CLASS statement extends an existing class.","sidebar":"learn"},"EXTEND_FORM_statement":{"id":"EXTEND_FORM_statement","title":"EXTEND FORM statement","description":"The EXTEND FORM statement extends an existing form.","sidebar":"learn"},"Extensions":{"id":"Extensions","title":"Extensions","description":"Extension is a technique that allows a developer to extend the functionality of one module in another.","sidebar":"learn"},"EXTERNAL_operator":{"id":"EXTERNAL_operator","title":"EXTERNAL operator","description":"The EXTERNAL operator creates an action that implements accessing to an external system.","sidebar":"learn"},"Extremum_MAX_MIN":{"id":"Extremum_MAX_MIN","title":"Extremum (MAX, MIN)","description":"The extremum operator creates a property which calculates the maximum or minimum between several specified properties. If the value of any of these properties is NULL, this property is ignored. If the values of all properties are NULL, the result value is also NULL.","sidebar":"learn"},"File_operators":{"id":"File_operators","title":"File operators","description":"The platform supports the following file operators:","sidebar":"learn"},"Filter_FILTER":{"id":"Filter_FILTER","title":"Filter (FILTER)","description":"The filter operator creates a property that returns TRUE if the object collection matches the current filter of the specified object group, and NULL if it does not.","sidebar":"learn"},"Filters_and_sortings_block":{"id":"Filters_and_sortings_block","title":"Filter and sorting blocks","description":"The filter and order blocks of the FORM statement \u2013 adding filters and orderings to the form structure, as well as filter groups and user filters to the interactive form view.","sidebar":"learn"},"Focus_operators":{"id":"Focus_operators","title":"Focus operators","description":"This category includes operators responsible for managing component activity:","sidebar":"learn"},"FOR_operator":{"id":"FOR_operator","title":"FOR operator","description":"The FOR operator creates an action that implements loop.","sidebar":"learn"},"Form_design":{"id":"Form_design","title":"Form design","description":"The form design defines how a form is displayed in the interactive view.","sidebar":"learn"},"Form_events":{"id":"Form_events","title":"Form events","description":"While the application is running, there is a number of events for each form that occur as a result of certain user actions:","sidebar":"learn"},"Form_extension":{"id":"Form_extension","title":"Form extension","description":"The form extension technique allows the developer to extend the structure and design of a form created in another module.","sidebar":"learn"},"Form_operators":{"id":"Form_operators","title":"Form operators","description":"Form operators can be divided into several categories:","sidebar":"learn"},"FORM_statement":{"id":"FORM_statement","title":"FORM statement","description":"The FORM statement creates a form.","sidebar":"learn"},"Form_structure":{"id":"Form_structure","title":"Form structure","description":"The form structure is a complex of objects, properties, actions and relations between them.","sidebar":"learn"},"Form_views":{"id":"Form_views","title":"Form views","description":"A form view can be classified as follows:","sidebar":"learn"},"Forms":{"id":"Forms","title":"Forms","description":"Forms let you combine different types of information for one or more objects in a single interface. Logically, aform can be divided into two parts:","sidebar":"learn"},"FORMULA_operator":{"id":"FORMULA_operator","title":"FORMULA operator","description":"The FORMULA operator creates a property that implements a custom formula.","sidebar":"learn"},"GROUP_operator":{"id":"GROUP_operator","title":"GROUP operator","description":"The GROUP operator creates a property implementing grouping.","sidebar":"learn"},"GROUP_statement":{"id":"GROUP_statement","title":"GROUP statement","description":"The GROUP statement creates a new property group.","sidebar":"learn"},"Grouping_GROUP":{"id":"Grouping_GROUP","title":"Grouping (GROUP)","description":"The group operator creates a property that divides all object collections in the system into groups, and calculates an aggregating function for each group following specified order. Accordingly, the set for which this aggregating function is calculated is determined as all the object collections belonging to this group.","sidebar":"learn"},"Groups_of_properties_and_actions":{"id":"Groups_of_properties_and_actions","title":"Groups of properties and actions","description":"The behavior of properties and actions in the context of working with groups is absolutely identical, therefore, in the rest of this section, we will use only the term property (the behavior for actions is completely similar).","sidebar":"learn"},"How-to":{"id":"How-to","title":"How-to","description":"How to read these sections","sidebar":"learn"},"How-to_Access_to_internal_systems":{"id":"How-to_Access_to_internal_systems","title":"How-to: Access to internal systems","description":"How to read these sections","sidebar":"learn"},"How-to_Action_extension":{"id":"How-to_Action_extension","title":"How-to: Action extension","description":"We can use the following scheme to implement polymorphism:","sidebar":"learn"},"How-to_Actions":{"id":"How-to_Actions","title":"How-to: Actions","description":"How to read these sections","sidebar":"learn"},"How-to_Binding_properties":{"id":"How-to_Binding_properties","title":"How-to: Binding properties","description":"Example 1","sidebar":"learn"},"How-to_CASE_IF_OVERRIDE":{"id":"How-to_CASE_IF_OVERRIDE","title":"How-to: CASE/IF/OVERRIDE","description":"Example 1","sidebar":"learn"},"How-to_CHANGE":{"id":"How-to_CHANGE","title":"How-to: CHANGE","description":"Example 1","sidebar":"learn"},"How-to_Class_extension":{"id":"How-to_Class_extension","title":"How-to: Class extension","description":"The typical scheme for extracting relations between classes to a separate module is as follows:","sidebar":"learn"},"How-to_Computations":{"id":"How-to_Computations","title":"How-to: Computations","description":"How to read these sections","sidebar":"learn"},"How-to_Constraints":{"id":"How-to_Constraints","title":"How-to: Constraints","description":"Example 1","sidebar":"learn"},"How-to_CRUD":{"id":"How-to_CRUD","title":"How-to: CRUD","description":"Example 1","sidebar":"learn"},"How-to_Custom_components_objects":{"id":"How-to_Custom_components_objects","title":"How-to: Custom Components (objects)","description":"By default, each object on a form with GRID view is displayed on the form as a flat table with columns.","sidebar":"learn"},"How-to_Custom_components_properties":{"id":"How-to_Custom_components_properties","title":"How-to: Custom components (properties)","description":"For each property type, by default, a predefined visual component is used to display and edit the data.","sidebar":"learn"},"How-to_Data_entry":{"id":"How-to_Data_entry","title":"How-to: Data entry","description":"Example 1","sidebar":"learn"},"How-to_Data_export":{"id":"How-to_Data_export","title":"How-to: Data export","description":"Example 1","sidebar":"learn"},"How-to_Data_import":{"id":"How-to_Data_import","title":"How-to: Data import","description":"Example 1","sidebar":"learn"},"How-to_Declarative_logic":{"id":"How-to_Declarative_logic","title":"How-to: Declarative logic","description":"How to read these sections","sidebar":"learn"},"How-to_DELETE":{"id":"How-to_DELETE","title":"How-to: DELETE","description":"Example 1","sidebar":"learn"},"How-to_Design":{"id":"How-to_Design","title":"How-to: Design","description":"Example 1","sidebar":"learn"},"How-to_Documents_with_lines":{"id":"How-to_Documents_with_lines","title":"How-to: Documents with lines","description":"Example 1","sidebar":"learn"},"How-to_Events":{"id":"How-to_Events","title":"How-to: Events","description":"Example 1","sidebar":"learn"},"How-to_EXEC":{"id":"How-to_EXEC","title":"How-to: EXEC","description":"Example 1","sidebar":"learn"},"How-to_Explicit_typing":{"id":"How-to_Explicit_typing","title":"How-to: Explicit typing","description":"In certain situations, you may want to use the same name for different system properties or actions.","sidebar":"learn"},"How-to_Extensions":{"id":"How-to_Extensions","title":"How-to: Extensions","description":"Extensions are very important for providing the modularity and extensibility of applications.","sidebar":"learn"},"How-to_Filtering_and_ordering":{"id":"How-to_Filtering_and_ordering","title":"How-to: Filtering and ordering","description":"Example 1","sidebar":"learn"},"How-to_FOR":{"id":"How-to_FOR","title":"How-to: FOR","description":"Example 1","sidebar":"learn"},"How-to_Form_extension":{"id":"How-to_Form_extension","title":"How-to: Form extension","description":"Let\'s assume there is a module that describes the Sku form that is used to edit SKU values:","sidebar":"learn"},"How-to_FORMULA":{"id":"How-to_FORMULA","title":"How-to: FORMULA","description":"Example 1","sidebar":"learn"},"How-to_Frontend":{"id":"How-to_Frontend","title":"How-to: Frontend","description":"The easiest way to organize the interaction of a React application with an application based on lsFusion is communication via the HTTP protocol through the JSON API. To export a list of objects meeting a specified condition, it is most convenient to use the interface located at the eval/action Url. You can pass lsFusion program code to it in BODY, and it will then be executed. If you need to return data from your request, use the EXPORT operator. By default it returns data in JSON format, which is then easily processed using JavaScript.","sidebar":"learn"},"How-to_GROUP_CONCAT":{"id":"How-to_GROUP_CONCAT","title":"How-to: GROUP CONCAT","description":"Example 1","sidebar":"learn"},"How-to_GROUP_LAST":{"id":"How-to_GROUP_LAST","title":"How-to: GROUP LAST","description":"Example 1","sidebar":"learn"},"How-to_GROUP_MAX_MIN_AGGR":{"id":"How-to_GROUP_MAX_MIN_AGGR","title":"How-to: GROUP MAX/MIN/AGGR","description":"Example 1","sidebar":"learn"},"How-to_GROUP_SUM":{"id":"How-to_GROUP_SUM","title":"How-to: GROUP SUM","description":"Example 1","sidebar":"learn"},"How-to_GUI":{"id":"How-to_GUI","title":"How-to: GUI","description":"How to read these sections","sidebar":"learn"},"How-to_IF_CASE":{"id":"How-to_IF_CASE","title":"How-to: IF/CASE","description":"Example 1","sidebar":"learn"},"How-to_Imperative_logic":{"id":"How-to_Imperative_logic","title":"How-to: Imperative logic","description":"How to read these sections","sidebar":"learn"},"How-to_Inheritance_and_aggregation":{"id":"How-to_Inheritance_and_aggregation","title":"How-to: Inheritance and aggregation","description":"In order to demonstrate the principles of object inheritance and aggregation, let\'s implement the logic of creating batches based on receipts and production documents. Let\'s make it so that each new document with a Posted property will automatically generate exactly one new product batch.","sidebar":"learn"},"How-to_Integration":{"id":"How-to_Integration","title":"How-to: Integration","description":"How to read these sections","sidebar":"learn"},"How-to_Interaction_via_HTTP_protocol":{"id":"How-to_Interaction_via_HTTP_protocol","title":"How-to: Interaction via HTTP protocol","description":"Example 1","sidebar":"learn"},"How-to_Interactive_forms":{"id":"How-to_Interactive_forms","title":"How-to: Interactive forms","description":"How to read these sections","sidebar":"learn"},"How-to_INTERNAL":{"id":"How-to_INTERNAL","title":"How-to: INTERNAL","description":"Example 1","sidebar":"learn"},"How-to_Internationalization":{"id":"How-to_Internationalization","title":"How-to: Internationalization","description":"The system supports internationalization by passing to the client values localized according to the language chosen by the user. All values in braces are localized. Let\'s assume that we need to implement a simple form with a list of books and their prices that we can create/delete.","sidebar":"learn"},"How-to_Matrix":{"id":"How-to_Matrix","title":"How-to: Matrix","description":"Example 1","sidebar":"learn"},"How-to_Metaprogramming":{"id":"How-to_Metaprogramming","title":"How-to: Metaprogramming","description":"You may often need to write \\"similar\\" code for certain cases. The META statement exists for this purpose, and makes it possible to create a code template or metacode. It can contain parameters that will be replaced by certain values when this metacode is used. Such an approach is called metaprogramming.","sidebar":"learn"},"How-to_Namespaces":{"id":"How-to_Namespaces","title":"How-to: Namespaces","description":"Occasionally, you will find yourself in situations where you will need to use the same name for different system elements. For this purpose, you can assign them to different namespaces that are defined for a module using the NAMESPACE statement. By default, the namespace matches the name of the module.","sidebar":"learn"},"How-to_Navigator":{"id":"How-to_Navigator","title":"How-to: Navigator","description":"Example 1","sidebar":"learn"},"How-to_NEW":{"id":"How-to_NEW","title":"How-to: NEW","description":"Example 1","sidebar":"learn"},"How-to_NEWSESSION":{"id":"How-to_NEWSESSION","title":"How-to: NEWSESSION","description":"Example 1","sidebar":"learn"},"How-to_Numbering":{"id":"How-to_Numbering","title":"How-to: Numbering","description":"Let\'s suppose we have a set of books. For each of these books, we define a number as an integer.","sidebar":"learn"},"How-to_Overriding_values":{"id":"How-to_Overriding_values","title":"How-to: Overriding values","description":"Often there are tasks when it is necessary to give the user opportunity to enter the value of some attribute for some general object and then override it for some specific object.","sidebar":"learn"},"How-to_PARTITION":{"id":"How-to_PARTITION","title":"How-to: PARTITION","description":"Example 1","sidebar":"learn"},"How-to_Physical_model":{"id":"How-to_Physical_model","title":"How-to: Physical model","description":"By default, each class in the database creates a separate table that stores all those properties whose only parameter is an object of this class. The key in this table is a field that stores a unique object ID. For properties with several parameters, a table will be created with the IDs of parameter objects as keys.","sidebar":"learn"},"How-to_Property_extension":{"id":"How-to_Property_extension","title":"How-to: Property extension","description":"The classic approach for implementing polymorphism can look as follows:","sidebar":"learn"},"How-to_Registers":{"id":"How-to_Registers","title":"How-to: Registers","description":"Accumulation ledger","sidebar":"learn"},"How-to_Reports":{"id":"How-to_Reports","title":"How-to: Reports","description":"Example 1","sidebar":"learn"},"How-to_Searching_for_elements":{"id":"How-to_Searching_for_elements","title":"How-to: Searching for elements","description":"How to read these sections","sidebar":"learn"},"How-to_SEEK":{"id":"How-to_SEEK","title":"How-to: SEEK","description":"Example 1","sidebar":"learn"},"How-to_Table_status":{"id":"How-to_Table_status","title":"How-to: Table status","description":"Example 1","sidebar":"learn"},"How-to_Trees":{"id":"How-to_Trees","title":"How-to: Trees","description":"Example 1","sidebar":"learn"},"How-to_Use_Cases":{"id":"How-to_Use_Cases","title":"How-to: Use Cases","description":"How to read these sections","sidebar":"learn"},"How-to_Using_objects_as_templates":{"id":"How-to_Using_objects_as_templates","title":"How-to: Using objects as templates","description":"Example 1","sidebar":"learn"},"How-to_WHILE":{"id":"How-to_WHILE","title":"How-to: WHILE","description":"Example 1","sidebar":"learn"},"How-to_Working_with_documents":{"id":"How-to_Working_with_documents","title":"How-to: Working with documents","description":"Posting documents","sidebar":"learn"},"How-to_Working_with_external_formats":{"id":"How-to_Working_with_external_formats","title":"How-to: Working with external formats","description":"How to read these sections","sidebar":"learn"},"IDE":{"id":"IDE","title":"IDE","description":"Creating a new lsFusion project","sidebar":"learn"},"IDs":{"id":"IDs","title":"IDs","description":"|Name |Examples|Use|Description|Technical description|","sidebar":"learn"},"IF_..._THEN_action_operator":{"id":"IF_..._THEN_action_operator","title":"IF ... THEN operator","description":"The IF ... THEN operator creates an action that implements branching with one condition (single form).","sidebar":"learn"},"IF_..._THEN_operator":{"id":"IF_..._THEN_operator","title":"IF ... THEN operator","description":"The IF ... THEN operator creates a property that implements selection with one condition (single form).","sidebar":"learn"},"IF_operator":{"id":"IF_operator","title":"IF operator","description":"The IF operator - creating a property implementing selection of a value by condition (single form).","sidebar":"learn"},"IMPORT_operator":{"id":"IMPORT_operator","title":"IMPORT operator","description":"The IMPORT operator creates an action that imports data from a specified file into specified properties (parameters) or, in general, into a specified form.","sidebar":"learn"},"In_a_print_view_PRINT":{"id":"In_a_print_view_PRINT","title":"In a print view (PRINT)","description":"This operator creates an action that opens a form in the print view.","sidebar":"learn"},"In_a_structured_view_EXPORT_IMPORT":{"id":"In_a_structured_view_EXPORT_IMPORT","title":"In a structured view (EXPORT, IMPORT)","description":"This operator creates an action that opens a form in the structured view.","sidebar":"learn"},"In_an_interactive_view_SHOW_DIALOG":{"id":"In_an_interactive_view_SHOW_DIALOG","title":"In an interactive view (SHOW, DIALOG)","description":"This operator creates an action that opens a form in the interactive view.","sidebar":"learn"},"INDEX_statement":{"id":"INDEX_statement","title":"INDEX statement","description":"The INDEX statement creates a new index.","sidebar":"learn"},"Indexes":{"id":"Indexes","title":"Indexes","description":"Building an index by property allows storing all the values of this property in the database in an ordered form. Accordingly, the index is updated with every change of the indexed property value. Due to the index, if, for example, you filter by an indexed property, you can find the objects you need very quickly, rather than viewing all the objects that exist in the system.","sidebar":"learn"},"INPUT_operator":{"id":"INPUT_operator","title":"INPUT operator","description":"The INPUT operator creates an action that inputs a primitive.","sidebar":"learn"},"Install":{"id":"Install","title":"Install","description":"Install automatically","sidebar":"install"},"Integration":{"id":"Integration","title":"Integration","description":"Integration includes everything related to interaction of the lsFusion system with other systems. In terms of the direction of this interaction, integration can be divided into:","sidebar":"learn"},"Interactive_view":{"id":"Interactive_view","title":"Interactive view","description":"A form opened in interactive mode is a graphical component with a certain design in which the user can trigger various events and thereby navigate through system objects, view and change property values, execute actions, and so on. Developers can also use an additional set of operators with this view, making it possible to manage the open form.","sidebar":"learn"},"Internal_call_INTERNAL":{"id":"Internal_call_INTERNAL","title":"Internal call (INTERNAL)","description":"The internal call operator allows to create actions in programming languages other than the lsFusion language. The platform currently supports external actions only in the Java language.","sidebar":"learn"},"INTERNAL_operator":{"id":"INTERNAL_operator","title":"INTERNAL operator","description":"The INTERNAL operator creates an action that executes an internal call.","sidebar":"learn"},"Internationalization":{"id":"Internationalization","title":"Internationalization","description":"Internationalization consists of software development techniques that allow adapting the software to the linguistic and cultural particularities of different countries and regions.","sidebar":"learn"},"Interpreter":{"id":"Interpreter","title":"Interpreter","description":"(Under development)","sidebar":"learn"},"Interruption_BREAK":{"id":"Interruption_BREAK","title":"Interruption (BREAK)","description":"The interrupt operator creates an action that exits the most nested loop (normal or recursive) within which this action is located. Control is transferred to the first action following the loop. If the created action is not inside a loop, its behavior becomes similar to the action created by the exit operator.","sidebar":"learn"},"IS_AS_operators":{"id":"IS_AS_operators","title":"IS, AS operators","description":"IS, AS operators create an action that implements classification.","sidebar":"learn"},"JOIN_operator":{"id":"JOIN_operator","title":"JOIN operator","description":"The JOIN operator creates a property that implements a composition.","sidebar":"learn"},"Journals_and_logs":{"id":"Journals_and_logs","title":"Journals and logs","description":"Logs","sidebar":"learn"},"JSON_operator":{"id":"JSON_operator","title":"JSON operator","description":"The JSON operator is property that creates JSON from specified properties or, in common case, from form."},"Language":{"id":"Language","title":"Language","description":"lsFusion is a programming language that describes lsFusion modules.","sidebar":"learn"},"Launch_events":{"id":"Launch_events","title":"Launch events","description":"There are several predefined actions in the platform that are called when various components of the platform are launched:","sidebar":"learn"},"Launch_parameters":{"id":"Launch_parameters","title":"Launch parameters","description":"Application server (Server)","sidebar":"learn"},"Learn":{"id":"Learn","title":"Learn","description":"Overview","sidebar":"learn"},"Learning_materials":{"id":"Learning_materials","title":"Learning materials","description":"In addition to the documentation, the following materials can be used to explore the features of the lsFusion platform.","sidebar":"learn"},"LIKE_operator":{"id":"LIKE_operator","title":"LIKE operator","description":"The LIKE operator is the creation of a property that implements the operation of comparing a string with a pattern.","sidebar":"learn"},"Literals":{"id":"Literals","title":"Literals","description":"|Name|Example|Class|Description|Constraints|","sidebar":"learn"},"Logical_model":{"id":"Logical_model","title":"Logical model","description":"The logical model is traditionally divided into two parts:","sidebar":"learn"},"Logical_operators_AND_OR_NOT_XOR":{"id":"Logical_operators_AND_OR_NOT_XOR","title":"Logical operators (AND, OR, NOT, XOR)","description":"Logical operators create properties that consider their arguments as logical values of class BOOLEAN and whose return value is also a value of class BOOLEAN. If the value of an argument of an logical operator is not NULL, then the argument is treated as the value TRUE of class BOOLEAN, otherwise as NULL.","sidebar":"learn"},"Loop_FOR":{"id":"Loop_FOR","title":"Loop (FOR)","description":"The loop operator creates an action that iterates all object collections for which the defined condition is met, and executes a defined action for each such object collection (let\'s call it the main one). You can also define an alternative action that will be executed only if no object collections have been found that meet the condition. The condition itself is defined as a certain property. Let\'s say that the condition is satisfied if the value of this property is not NULL.","sidebar":"learn"},"lt-_WHEN_statement":{"id":"lt-_WHEN_statement","title":"<- WHEN statement","description":"The <- WHEN statement creates a calculated event.","sidebar":"learn"},"Management":{"id":"Management","title":"Management","description":"System parameters","sidebar":"learn"},"Manual_installation":{"id":"Manual_installation","title":"Install manually","description":"For development","sidebar":"install"},"Materializations":{"id":"Materializations","title":"Materializations","description":"Almost any aggregated property in the platform can be materialized. In this case, the property will be stored in the database permanently and automatically updated when the data on which this property depends is changed. At the same time, when reading the values of the materialized property, these values will be read directly from the database, as if the property was data (and not calculated every time). Accordingly, all data properties are materialized by definition.","sidebar":"learn"},"Materials_management":{"id":"Materials_management","title":"Materials management","description":"Description of the \\"Materials management\\" task","sidebar":"learn"},"MAX_operator":{"id":"MAX_operator","title":"MAX operator","description":"The MAX operator creates a property that implements finding maximum value.","sidebar":"learn"},"MESSAGE_operator":{"id":"MESSAGE_operator","title":"MESSAGE operator","description":"The MESSAGE operator creates an action that shows the user a message.","sidebar":"learn"},"META_statement":{"id":"META_statement","title":"META statement","description":"The META statement creates a new metacode.","sidebar":"learn"},"Metaprogramming":{"id":"Metaprogramming","title":"Metaprogramming","description":"Metaprogramming is a type of programming associated with writing software code that results in the generation of more software code. Metaprogramming is used for code reusability and to speed up development.","sidebar":"learn"},"Migration":{"id":"Migration","title":"Migration","description":"An lsFusion-based information system uses a relational database management system for permanent data storage. It should be remembered that after certain changes to the system logic, the platform is unable to determine how the data should be migrated. In these cases, the developer must explicitly define the migration method by creating the special migration file migration.script, which should be in the CLASSPATH of the application server.","sidebar":"learn"},"MIN_operator":{"id":"MIN_operator","title":"MIN operator","description":"The MIN operator creates a property that implements finding the minimum value.","sidebar":"learn"},"Modularity":{"id":"Modularity","title":"Modularity","description":"Modularity is a key mechanism for providing extensibility, reusability, and effective interaction among the development team.","sidebar":"learn"},"Module_header":{"id":"Module_header","title":"Module header","description":"Each module begins with a header.","sidebar":"learn"},"Modules":{"id":"Modules","title":"Modules","description":"A module is a functionally complete part of a project. A module consists of declarations of properties, actions, events, constraints, and other system elements.","sidebar":"learn"},"MULTI_action_operator":{"id":"MULTI_action_operator","title":"MULTI operator","description":"The MULTI operator creates an action that implements branching (polymorphic form).","sidebar":"learn"},"MULTI_operator":{"id":"MULTI_operator","title":"MULTI operator","description":"The MULTI operator creates a property that implements selection of one of the values (polymorphic form).","sidebar":"learn"},"Naming":{"id":"Naming","title":"Naming","description":"Each system element may have a *name* which can be used to access the element.","sidebar":"learn"},"Navigator":{"id":"Navigator","title":"Navigator","description":"Navigator is a hierarchical structure (tree) consisting of navigator elements. There are three types of navigator elements:","sidebar":"learn"},"Navigator_design":{"id":"Navigator_design","title":"Navigator design","description":"Navigator design determines how the navigator is displayed to the user on the screen of his device (we will call the screen space on which the navigator is displayed the desktop).","sidebar":"learn"},"NAVIGATOR_statement":{"id":"NAVIGATOR_statement","title":"NAVIGATOR statement","description":"The NAVIGATOR statement is used to modify the navigator.","sidebar":"learn"},"NESTEDSESSION_operator":{"id":"NESTEDSESSION_operator","title":"NESTEDSESSION operator","description":"The NESTEDSESSION operator creates an action that executes the other action in a nested session.","sidebar":"learn"},"New_object_NEW":{"id":"New_object_NEW","title":"New object (NEW)","description":"The new object operator creates an action that creates objects of a specified custom class for object collections where the value of some property (condition) is not NULL. The condition can be omitted, in which case it is considered to be equal to TRUE.","sidebar":"learn"},"NEW_operator":{"id":"NEW_operator","title":"NEW operator","description":"The NEW operator creates an action that creates objects of the specified class.","sidebar":"learn"},"New_session_NEWSESSION_NESTEDSESSION":{"id":"New_session_NEWSESSION_NESTEDSESSION","title":"New session (NEWSESSION, NESTEDSESSION)","description":"The new session operator allows you to execute an action in a session different from the current one.","sidebar":"learn"},"New_threads_NEWTHREAD_NEWEXECUTOR":{"id":"New_threads_NEWTHREAD_NEWEXECUTOR","title":"New threads (NEWTHREAD, NEWEXECUTOR)","description":"The new thread operator allows you to execute an action in a thread other than the current one.","sidebar":"learn"},"NEWEXECUTOR_operator":{"id":"NEWEXECUTOR_operator","title":"NEWEXECUTOR operator","description":"The NEWEXECUTOR operator is the creation of an action that allows the execution of other actions in a new thread pool.","sidebar":"learn"},"NEWSESSION_operator":{"id":"NEWSESSION_operator","title":"NEWSESSION operator","description":"The NEWSESSION operator creates an action that executes the other action in a new session.","sidebar":"learn"},"NEWTHREAD_operator":{"id":"NEWTHREAD_operator","title":"NEWTHREAD operator","description":"The NEWTHREAD operator creates an action that executes another action in a new thread.","sidebar":"learn"},"Object_blocks":{"id":"Object_blocks","title":"Object blocks","description":"Object block of the FORM statement adds objects (including object groups) to the form structure, as well as object trees to the interactive form view.","sidebar":"learn"},"Object_group_operator":{"id":"Object_group_operator","title":"Object group operator","description":"Object group operators are used for creating properties working with the current state of the object group on the form.","sidebar":"learn"},"Object_group_operators":{"id":"Object_group_operators","title":"Object group operators","description":"Object group operators include the following operators:","sidebar":"learn"},"Object_tree_visibility_EXPAND_COLLAPSE":{"id":"Object_tree_visibility_EXPAND_COLLAPSE","title":"Object tree visibility (EXPAND, COLLAPSE)","description":"Object tree *expansion* and *collapse* operators provide control over the visibility of elements within a tree displayed on a form. As input to these operators, the object group to which the operation is applied is passed. It is also specified over which tree elements (each corresponding to a specific object collection in the mentioned group) the operation needs to be performed:","sidebar":"learn"},"ON_statement":{"id":"ON_statement","title":"ON statement","description":"The ON statement adds an event handler.","sidebar":"learn"},"Online_demo":{"id":"Online_demo","title":"Online demo","description":"All demos support the following browsers: Chrome (recommended), Safari, Firefox, Opera, and Internet Explorer.","sidebar":"learn"},"Open_form":{"id":"Open_form","title":"Open form","description":"The open form operator creates an action that opens the specified form.","sidebar":"learn"},"Operations_with_primitives":{"id":"Operations_with_primitives","title":"Operations with primitives","description":"\u041eperations with primitives include operators for working with properties which values belong to the built-in classes. The platform supports the following operators:","sidebar":"learn"},"Operator_priority":{"id":"Operator_priority","title":"Operator priority","description":"When evaluating an expression, operators are evaluated in a specific order depending on operator priority. The higher the operator\u2019s priority, the earlier it will be executed. The table below lists the priorities of all operators in descending order.","sidebar":"learn"},"Order_ORDER":{"id":"Order_ORDER","title":"Order (ORDER)","description":"The order operator creates a property that returns the sequence number of an object collection in the specified group of objects, in accordance with the current order of this group.","sidebar":"learn"},"OVERRIDE_operator":{"id":"OVERRIDE_operator","title":"OVERRIDE operator","description":"The OVERRIDE operator creates a property that implements the selection of one of the values (polymorphic form).","sidebar":"learn"},"Paradigm":{"id":"Paradigm","title":"Paradigm","description":"The paradigm can be divided into two parts:","sidebar":"learn"},"PARTITION_operator":{"id":"PARTITION_operator","title":"PARTITION operator","description":"The PARTITION operator creates a property that implements partition/order or simple distribution.","sidebar":"learn"},"Partitioning_sorting_PARTITION_..._ORDER":{"id":"Partitioning_sorting_PARTITION_..._ORDER","title":"Partitioning / sorting (PARTITION ... ORDER)","description":"The partition/order operator creates a property that partitions all objects collections in the system into groups, and using the specified order calculates an aggregate function for each objects collection. Accordingly, the set on which this aggregating function is calculated is determined as following: all object collections of the group of this object collection, and the order of which is less than or equal to the order of this object collection.","sidebar":"learn"},"Physical_model":{"id":"Physical_model","title":"Physical model","description":"The physical model consists of three parts:","sidebar":"learn"},"PREV_operator":{"id":"PREV_operator","title":"PREV operator","description":"The PREV operator creates a property using a previous value operator.","sidebar":"learn"},"Previous_value_PREV":{"id":"Previous_value_PREV","title":"Previous value (PREV)","description":"The previous value operator creates a property that returns the value of the specified property at the beginning of the session (that is, the current value in the database ignoring the session changes).","sidebar":"learn"},"Primitive_input_INPUT":{"id":"Primitive_input_INPUT","title":"Primitive input (INPUT)","description":"The primitive input operator creates an action that requests the client to input a value of a builtin class. The user can cancel the input, for example by pressing the Esc key on the keyboard.","sidebar":"learn"},"PRINT_operator":{"id":"PRINT_operator","title":"PRINT operator","description":"The PRINT operator creates an action that opens a form in print view.","sidebar":"learn"},"Print_view":{"id":"Print_view","title":"Print view","description":"Print view of the form consists of a set of templates (reports). When data is substituted in these templates, a document is formed in graphic (with pixel positioning) or pseudographic (with cell positioning) format. This document is displayed to the user using a special graphic component, inside which the user can navigate through pages, zoom in/out within pages and print the contents of the component or export it to various formats (for example, PDF or Excel). If necessary, it is possible to skip the display of the component to the user and send the document for printing or save it into a selected file in the specified format.","sidebar":"learn"},"Process_monitor":{"id":"Process_monitor","title":"Process monitor","description":"(Under development)","sidebar":"learn"},"Profiler":{"id":"Profiler","title":"Profiler","description":"(Under development)","sidebar":"learn"},"Projects":{"id":"Projects","title":"Projects","description":"Project is a collection of modules and additional information (pictures, report design files, etc.) that fully describe the functionality of the information system being created.","sidebar":"learn"},"Properties":{"id":"Properties","title":"Properties","description":"A property is an element of the system that takes a set of objects (parameters) and returns exactly one object (the return value).","sidebar":"learn"},"Properties_and_actions_block":{"id":"Properties_and_actions_block","title":"Properties and actions block","description":"The property and action block of the FORM statement adds properties and actions to the form structure.","sidebar":"learn"},"Property_change_CHANGE":{"id":"Property_change_CHANGE","title":"Property change (CHANGE)","description":"The property change operator allows you to change the values of one property (write) to the value of another property (read) for all object collections for which the value of a third property (condition) is not NULL. The condition can be omitted (in which case it is considered to be equal to TRUE).","sidebar":"learn"},"Property_extension":{"id":"Property_extension","title":"Property extension","description":"The properties extension technique allows the developer to declare an abstract action in one module and define its implementation in other modules. This technique is essentially a \\"postponed definition\\" of a selection operator, where the operator\u2019s title is defined when the property is declared, and as new functionality (of classes or static objects) is added, selection options are added to the system. Furthermore, variants of selection (if it is not mutually exclusive) can be added both to the beginning and to the end of the abstract property created.","sidebar":"learn"},"Property_operators":{"id":"Property_operators","title":"Property operators","description":"Property operator is a syntax construct that describes an operator creating a property.","sidebar":"learn"},"Property_operators_paradigm":{"id":"Property_operators_paradigm","title":"Operators","description":"The platform currently supports the following property creation operators:","sidebar":"learn"},"Property_options":{"id":"Property_options","title":"Property options","description":"When a property is declared in the = statement a set of property options can be specified at the end of the declaration","sidebar":"learn"},"Property_signature_CLASS":{"id":"Property_signature_CLASS","title":"Signature matching (ISCLASS)","description":"The signature matching operator creates a property that determines, from a class perspective, whether the property specified in the operator can have a non-NULL value for the given arguments. In fact, this operator infers the possible classes of a given property from its semantics, and then, using logical operators and the classification operator, creates the required property.","sidebar":"learn"},"Read_file_READ":{"id":"Read_file_READ","title":"Read file (READ)","description":"The read file operator creates an action that reads a file from a defined source and writes this file to the specified local data property without parameters.","sidebar":"learn"},"READ_operator":{"id":"READ_operator","title":"READ operator","description":"The READ operator creates an action that reads a file to a property from an external resource.","sidebar":"learn"},"RECURSION_operator":{"id":"RECURSION_operator","title":"RECURSION operator","description":"The RECURSION operator creates a property that implements recursion.","sidebar":"learn"},"Recursion_RECURSION":{"id":"Recursion_RECURSION","title":"Recursion (RECURSION)","description":"The recursion operator is an operator that creates a property which sequentially performs two operations:","sidebar":"learn"},"Recursive_loop_WHILE":{"id":"Recursive_loop_WHILE","title":"Recursive loop (WHILE)","description":"The recursive loop operator is similar to a regular loop operator, with the only difference being that iteration is performed recursively until at a certain point the set of objects collections satisfying the condition becomes empty. As a result, there is no sense in defining alternative actions with this operator.","sidebar":"learn"},"Report_design":{"id":"Report_design","title":"Report design","description":"For each report you need to specify a special file (template) which will be used to build the result document. The name of the template for a specific report is `. An empty object group is considered to have no name, so if the first object group is empty, the name of the template is simply equal to the name of the form (without the _` postfix).","sidebar":"learn"},"REQUEST_operator":{"id":"REQUEST_operator","title":"REQUEST operator","description":"The REQUEST operator creates an action that requests a value.","sidebar":"learn"},"RETURN_operator":{"id":"RETURN_operator","title":"RETURN operator","description":"The RETURN operator creates an action that implements exit from an action created by the EXEC operator.","sidebar":"learn"},"ROUND_operator":{"id":"ROUND_operator","title":"ROUND operator","description":"ROUND operator creates a property that implements the rounding operation.","sidebar":"learn"},"Rounding_operator_ROUND":{"id":"Rounding_operator_ROUND","title":"Rounding operator (ROUND)","description":"The rounding operator creates a property whose value is the result of rounding a number to the specified number of digits. The arguments of this operator must be properties that determine the number and the rounding precision. Negative precision values indicate the number of least significant digits to be rounded in the integer part of the number, allowing you to round the number to tens, hundreds, etc.","sidebar":"learn"},"Scheduler":{"id":"Scheduler","title":"Scheduler","description":"The scheduler is designed to automatically execute certain tasks with specified frequency.","sidebar":"learn"},"Score_table":{"id":"Score_table","title":"Score table","description":"\\"Score table\\" task description","sidebar":"learn"},"Search_":{"id":"Search_","title":"Search","description":"Each element in the system contains certain information that allows it to be uniquely identified among other elements of the system. However, providing all the information about the element in each place it is used is rather cumbersome; so the platform has a special search algorithm, which allows you to find the desired element with only part of the information about it (for example, only a short name and the module which uses the item you are searching for).","sidebar":"learn"},"Search_SEEK":{"id":"Search_SEEK","title":"Search (SEEK)","description":"Search operator tries to make the specified object collection current for the specified form object group. The objects from the specified object collection shall be called seek objects.","sidebar":"learn"},"Security_policy":{"id":"Security_policy","title":"Security policy","description":"Customizing user roles","sidebar":"learn"},"SEEK_operator":{"id":"SEEK_operator","title":"SEEK operator","description":"The SEEK operator creates an action that seeks specified objects on a form.","sidebar":"learn"},"Selection_CASE_IF_MULTI_OVERRIDE_EXCLUSIVE":{"id":"Selection_CASE_IF_MULTI_OVERRIDE_EXCLUSIVE","title":"Selection (CASE, IF, MULTI, OVERRIDE, EXCLUSIVE)","description":"The selection operator creates a property that determines for a set of conditions which condition is met, and returns the value of the result corresponding to that condition. If none of the conditions is met, then the value of the created property will be NULL.","sidebar":"learn"},"Send_mail_EMAIL":{"id":"Send_mail_EMAIL","title":"Send mail (EMAIL)","description":"The send mail operator creates an action that sends an email to the specified email addresses. As with any email, you can define the sender, recipient, body text, attachment files with specified names and other parameters.","sidebar":"learn"},"Sequence":{"id":"Sequence","title":"Sequence ({...})","description":"To create an action that performs a sequence of other actions, the {...} operator is used - a block enclosed by curly brackets. The body of this block must contain a sequence of action operators and local property declarations.","sidebar":"learn"},"Session_management":{"id":"Session_management","title":"Session management","description":"The system has the following operators for working with sessions:","sidebar":"learn"},"Set_operations":{"id":"Set_operations","title":"Set operations","description":"One of the key features of the platform is the ability to execute certain operations for all object collections for which the values of one or more properties are not NULL. In the property logic such an operation is the calculation of various aggregate functions.","sidebar":"learn"},"Show_message_MESSAGE_ASK":{"id":"Show_message_MESSAGE_ASK","title":"Show message (MESSAGE, ASK)","description":"The show message operators create actions that show a text message to the user. The message is defined as a property whose value will be used as the message content. This message can be displayed either using a dialog box or in the System.log system window.","sidebar":"learn"},"SHOW_operator":{"id":"SHOW_operator","title":"SHOW operator","description":"The SHOW operator creates an action that opens a form in interactive view.","sidebar":"learn"},"Simple_constraints":{"id":"Simple_constraints","title":"Simple constraints","description":"The platform currently supports four types of simple constraints: consequence, exception, equality, and definiteness. For all simple constraints, an automatic resolution mechanism is supported. When this is enabled, instead of throwing an error the platform itself restores system integrity.","sidebar":"learn"},"Simple_event":{"id":"Simple_event","title":"Simple event","description":"Simple event - an event that occurs when the value of the specified property (which shall be called an event condition) changes to non-NULL. This event is a kind of extension of a basic event (adding an additional condition), which means that all the same parameters must be set as for an basic event, in particular:","sidebar":"learn"},"State_change":{"id":"State_change","title":"State change","description":"System state change operators include the following.","sidebar":"learn"},"Statements":{"id":"Statements","title":"Statements","description":"The code of any module in lsFusion consists of a sequence of statements.","sidebar":"learn"},"Static_objects":{"id":"Static_objects","title":"Static objects","description":"Static (or built-in) objects are objects that are defined by the developer and are automatically created on system startup (if they are not present in the system at launch time). Also, such objects are prohibited from being deleted.","sidebar":"learn"},"Static_view":{"id":"Static_view","title":"Static view","description":"In static view, all form data is read at the time the form is opened, after which the obtained data is converted:","sidebar":"learn"},"String_operators_+_CONCAT_SUBSTRING":{"id":"String_operators_+_CONCAT_SUBSTRING","title":"String operators (+, CONCAT, SUBSTRING)","description":"String operators are operators which parameters and result are the properties which values are instances of the string classes. The platform currently supports the following string operators:","sidebar":"learn"},"STRUCT_operator":{"id":"STRUCT_operator","title":"STRUCT operator","description":"The STRUCT operator creates a property that creates a structure.","sidebar":"learn"},"Structure_operators_STRUCT":{"id":"Structure_operators_STRUCT","title":"Structure operators (STRUCT, [])","description":"The term structure is used in the platform to refer to the classes which objects consist of a collection of other objects in a fixed order. The platform supports two operators for working with structures:","sidebar":"learn"},"Structured_view":{"id":"Structured_view","title":"Structured view","description":"All structured views (formats) can be divided into two types:","sidebar":"learn"},"System_parameters":{"id":"System_parameters","title":"System parameters","description":"Launch parameters","sidebar":"learn"},"TABLE_statement":{"id":"TABLE_statement","title":"TABLE statement","description":"The TABLE statement creates an new table.","sidebar":"learn"},"Tables":{"id":"Tables","title":"Tables","description":"For storing and calculating values of the properties the lsFusion platform uses a relational database. All data properties, as well as all calculated properties marked as materialized, are stored in the fields of the tables in the database. For each table, there is a set of key fields with the names key0, key1, ..., keyN, where the object IDs are stored. All other fields store property values in such a way that in the corresponding field of each row there is a property value for the objects with IDs from the key fields. Objects of built-in classes can also be used as table keys.","sidebar":"learn"},"Tokens":{"id":"Tokens","title":"Tokens","description":"A token in a programming language is the smallest significant sequence of characters. In the lsFusion language tokens are keywords, IDs, literals and special character sequences.","sidebar":"learn"},"TRY_operator":{"id":"TRY_operator","title":"TRY operator","description":"The TRY operator creates an action that executes another action with exception handling.","sidebar":"learn"},"Type_conversion":{"id":"Type_conversion","title":"Type conversion","description":"The type conversion operator creates a property that converts an object of one built-in class to an object of another built-in class. If type conversion is not possible, the property value will be NULL.","sidebar":"learn"},"Type_conversion_operator":{"id":"Type_conversion_operator","title":"Type conversion operator","description":"The type conversion operator creates a property that performs type conversion.","sidebar":"learn"},"UNGROUP_operator":{"id":"UNGROUP_operator","title":"UNGROUP operator","description":"At the moment, the UNGROUP operator is not implemented.","sidebar":"learn"},"User_classes":{"id":"User_classes","title":"User classes","description":"Classes that a developer can create and the instances of which a user can create are called custom classes.","sidebar":"learn"},"User_interface":{"id":"User_interface","title":"User interface","description":"(Under development)","sidebar":"learn"},"User_IS_interaction":{"id":"User_IS_interaction","title":"User/IS interaction","description":"This category includes operators for interacting with the user and with other information systems:","sidebar":"learn"},"Value_input":{"id":"Value_input","title":"Value input","description":"This category includes operators responsible for inputting a value:","sidebar":"learn"},"Value_request_REQUEST":{"id":"Value_request_REQUEST","title":"Value request (REQUEST)","description":"The value request operator creates an action in which requesting value(s) is separated from directly processing the value(s). Accordingly, this operator allows not to perform a value request if its result is known in advance in the context of the call (the value of the System.requestPushed property is equal to TRUE). This, in turn, automatically gives you the following capabilities in various use cases:","sidebar":"learn"},"View_logic":{"id":"View_logic","title":"View logic","description":"The key element of the view logic is the form. Forms are used in the platform to organize the input and output of information into the system (from the system).","sidebar":"learn"},"View_VIEW":{"id":"View_VIEW","title":"View (VIEW)","description":"The view operator creates a property that returns TRUE if the object collection is visible to the user in the specified object group, and NULL otherwise.","sidebar":"learn"},"WHEN_statement":{"id":"WHEN_statement","title":"WHEN statement","description":"The WHEN statement adds a simple event handler.","sidebar":"learn"},"WHILE_operator":{"id":"WHILE_operator","title":"WHILE operator","description":"The WHILE operator creates an action that implements a recursive loop.","sidebar":"learn"},"WINDOW_statement":{"id":"WINDOW_statement","title":"WINDOW statement","description":"The WINDOW statement creates a new window.","sidebar":"learn"},"Working_parameters":{"id":"Working_parameters","title":"Working parameters","description":"The platform working parameters can be set in one of the following ways (in the order of their priorities, lower priority at the bottom):","sidebar":"learn"},"Write_file_WRITE":{"id":"Write_file_WRITE","title":"Write file (WRITE)","description":"The write file operator creates an action which reads a file from the value of some property and saves it to the defined source.","sidebar":"learn"},"WRITE_operator":{"id":"WRITE_operator","title":"WRITE operator","description":"The WRITE operator creates an action that writes a file from a property to an external resource.","sidebar":"learn"}}}')}}]); \ No newline at end of file +"use strict";(self.webpackChunkls_fusion_docs=self.webpackChunkls_fusion_docs||[]).push([[91035],{47589:e=>{e.exports=JSON.parse('{"pluginId":"default","version":"v5","label":"5.x","banner":null,"badge":true,"noIndex":false,"className":"docs-version-v5","isLast":true,"docsSidebars":{"install":[{"type":"link","label":"Overview","href":"/Install","docId":"Install","unlisted":false},{"collapsed":false,"type":"category","label":"Automatic installation","items":[{"type":"link","label":"For development","href":"/Development_auto","docId":"Development_auto","unlisted":false},{"type":"link","label":"For production","href":"/Execution_auto","docId":"Execution_auto","unlisted":false}],"collapsible":true,"href":"/Automatic_installation"},{"collapsed":false,"type":"category","label":"Manual installation","items":[{"type":"link","label":"For development","href":"/Development_manual","docId":"Development_manual","unlisted":false},{"type":"link","label":"For production","href":"/Execution_manual","docId":"Execution_manual","unlisted":false}],"collapsible":true,"href":"/Manual_installation"}],"learn":[{"type":"link","label":"Overview","href":"/","docId":"Learn","unlisted":false},{"collapsed":false,"type":"category","label":"Paradigm","items":[{"type":"category","label":"Logical model","items":[{"type":"category","label":"Domain logic","items":[{"type":"category","label":"Properties","items":[{"type":"category","label":"Operators","items":[{"type":"link","label":"Data properties (DATA)","href":"/Data_properties_DATA","docId":"Data_properties_DATA","unlisted":false},{"type":"link","label":"Composition (JOIN)","href":"/Composition_JOIN","docId":"Composition_JOIN","unlisted":false},{"type":"link","label":"Constant","href":"/Constant","docId":"Constant","unlisted":false},{"type":"category","label":"Operations with primitives","items":[{"type":"link","label":"Arithmetic operators (+, -, *, ...)","href":"/Arithmetic_operators_+_-_etc","docId":"Arithmetic_operators_+_-_etc","unlisted":false},{"type":"link","label":"Logical operators (AND, OR, NOT, XOR)","href":"/Logical_operators_AND_OR_NOT_XOR","docId":"Logical_operators_AND_OR_NOT_XOR","unlisted":false},{"type":"link","label":"Comparison operators (=, >, <, ...)","href":"/Comparison_operators_=_etc","docId":"Comparison_operators_=_etc","unlisted":false},{"type":"link","label":"Rounding operator (ROUND)","href":"/Rounding_operator_ROUND","docId":"Rounding_operator_ROUND","unlisted":false},{"type":"link","label":"Extremum (MAX, MIN)","href":"/Extremum_MAX_MIN","docId":"Extremum_MAX_MIN","unlisted":false},{"type":"link","label":"String operators (+, CONCAT, SUBSTRING)","href":"/String_operators_+_CONCAT_SUBSTRING","docId":"String_operators_+_CONCAT_SUBSTRING","unlisted":false},{"type":"link","label":"Structure operators (STRUCT, [])","href":"/Structure_operators_STRUCT","docId":"Structure_operators_STRUCT","unlisted":false},{"type":"link","label":"Type conversion","href":"/Type_conversion","docId":"Type_conversion","unlisted":false}],"collapsed":true,"collapsible":true,"href":"/Operations_with_primitives"},{"type":"category","label":"Class operators","items":[{"type":"link","label":"Classification (IS/AS)","href":"/Classification_IS_AS","docId":"Classification_IS_AS","unlisted":false},{"type":"link","label":"Signature matching (ISCLASS)","href":"/Property_signature_CLASS","docId":"Property_signature_CLASS","unlisted":false}],"collapsed":true,"collapsible":true,"href":"/Class_operators"},{"type":"link","label":"Selection (CASE, IF, MULTI, OVERRIDE, EXCLUSIVE)","href":"/Selection_CASE_IF_MULTI_OVERRIDE_EXCLUSIVE","docId":"Selection_CASE_IF_MULTI_OVERRIDE_EXCLUSIVE","unlisted":false},{"type":"category","label":"Set operations","items":[{"type":"link","label":"Grouping (GROUP)","href":"/Grouping_GROUP","docId":"Grouping_GROUP","unlisted":false},{"type":"link","label":"Partitioning / sorting (PARTITION ... ORDER)","href":"/Partitioning_sorting_PARTITION_..._ORDER","docId":"Partitioning_sorting_PARTITION_..._ORDER","unlisted":false},{"type":"link","label":"Recursion (RECURSION)","href":"/Recursion_RECURSION","docId":"Recursion_RECURSION","unlisted":false},{"type":"link","label":"Distribution (UNGROUP)","href":"/Distribution_UNGROUP","docId":"Distribution_UNGROUP","unlisted":false}],"collapsed":true,"collapsible":true,"href":"/Set_operations"}],"collapsed":true,"collapsible":true,"href":"/Property_operators_paradigm"}],"collapsed":true,"collapsible":true,"href":"/Properties"},{"type":"category","label":"Actions","items":[{"type":"link","label":"Change sessions","href":"/Change_sessions","docId":"Change_sessions","unlisted":false},{"type":"category","label":"\u041eperators","items":[{"type":"category","label":"Execution order","items":[{"type":"link","label":"Sequence ({...})","href":"/Sequence","docId":"Sequence","unlisted":false},{"type":"link","label":"Call (EXEC)","href":"/Call_EXEC","docId":"Call_EXEC","unlisted":false},{"type":"link","label":"Loop (FOR)","href":"/Loop_FOR","docId":"Loop_FOR","unlisted":false},{"type":"link","label":"Branching (CASE, IF, MULTI)","href":"/Branching_CASE_IF_MULTI","docId":"Branching_CASE_IF_MULTI","unlisted":false},{"type":"link","label":"Recursive loop (WHILE)","href":"/Recursive_loop_WHILE","docId":"Recursive_loop_WHILE","unlisted":false},{"type":"link","label":"Interruption (BREAK)","href":"/Interruption_BREAK","docId":"Interruption_BREAK","unlisted":false},{"type":"link","label":"Exit (RETURN)","href":"/Exit_RETURN","docId":"Exit_RETURN","unlisted":false},{"type":"link","label":"New threads (NEWTHREAD, NEWEXECUTOR)","href":"/New_threads_NEWTHREAD_NEWEXECUTOR","docId":"New_threads_NEWTHREAD_NEWEXECUTOR","unlisted":false},{"type":"link","label":"Exception handling (TRY)","href":"/Exception_handling_TRY","docId":"Exception_handling_TRY","unlisted":false}],"collapsed":true,"collapsible":true,"href":"/Execution_order"},{"type":"category","label":"State change","items":[{"type":"link","label":"Property change (CHANGE)","href":"/Property_change_CHANGE","docId":"Property_change_CHANGE","unlisted":false},{"type":"link","label":"New object (NEW)","href":"/New_object_NEW","docId":"New_object_NEW","unlisted":false},{"type":"link","label":"Class change (CHANGECLASS, DELETE)","href":"/Class_change_CHANGECLASS_DELETE","docId":"Class_change_CHANGECLASS_DELETE","unlisted":false}],"collapsed":true,"collapsible":true,"href":"/State_change"},{"type":"category","label":"Session management","items":[{"type":"link","label":"Apply changes (APPLY)","href":"/Apply_changes_APPLY","docId":"Apply_changes_APPLY","unlisted":false},{"type":"link","label":"Cancel changes (CANCEL)","href":"/Cancel_changes_CANCEL","docId":"Cancel_changes_CANCEL","unlisted":false},{"type":"link","label":"New session (NEWSESSION, NESTEDSESSION)","href":"/New_session_NEWSESSION_NESTEDSESSION","docId":"New_session_NEWSESSION_NESTEDSESSION","unlisted":false},{"type":"link","label":"Previous value (PREV)","href":"/Previous_value_PREV","docId":"Previous_value_PREV","unlisted":false},{"type":"link","label":"Change operators (SET, CHANGED, ...)","href":"/Change_operators_SET_CHANGED_etc","docId":"Change_operators_SET_CHANGED_etc","unlisted":false}],"collapsed":true,"collapsible":true,"href":"/Session_management"},{"type":"category","label":"User/IS interaction","items":[{"type":"link","label":"Show message (MESSAGE, ASK)","href":"/Show_message_MESSAGE_ASK","docId":"Show_message_MESSAGE_ASK","unlisted":false},{"type":"category","label":"File operators","items":[{"type":"link","label":"Read file (READ)","href":"/Read_file_READ","docId":"Read_file_READ","unlisted":false},{"type":"link","label":"Write file (WRITE)","href":"/Write_file_WRITE","docId":"Write_file_WRITE","unlisted":false},{"type":"link","label":"Data import (IMPORT)","href":"/Data_import_IMPORT","docId":"Data_import_IMPORT","unlisted":false},{"type":"link","label":"Data export (EXPORT)","href":"/Data_export_EXPORT","docId":"Data_export_EXPORT","unlisted":false}],"collapsed":true,"collapsible":true,"href":"/File_operators"},{"type":"link","label":"Send mail (EMAIL)","href":"/Send_mail_EMAIL","docId":"Send_mail_EMAIL","unlisted":false}],"collapsed":true,"collapsible":true,"href":"/User_IS_interaction"}],"collapsed":true,"collapsible":true,"href":"/Action_operators_paradigm"}],"collapsed":true,"collapsible":true,"href":"/Actions"},{"type":"category","label":"Events","items":[{"type":"link","label":"Simple event","href":"/Simple_event","docId":"Simple_event","unlisted":false},{"type":"link","label":"Calculated events","href":"/Calculated_events","docId":"Calculated_events","unlisted":false}],"collapsed":true,"collapsible":true,"href":"/Events"},{"type":"category","label":"Constraints","items":[{"type":"link","label":"Simple constraints","href":"/Simple_constraints","docId":"Simple_constraints","unlisted":false},{"type":"category","label":"Classes","items":[{"type":"link","label":"Built-in classes","href":"/Built-in_classes","docId":"Built-in_classes","unlisted":false},{"type":"link","label":"User classes","href":"/User_classes","docId":"User_classes","unlisted":false},{"type":"link","label":"Static objects","href":"/Static_objects","docId":"Static_objects","unlisted":false}],"collapsed":true,"collapsible":true,"href":"/Classes"},{"type":"link","label":"Aggregations","href":"/Aggregations","docId":"Aggregations","unlisted":false}],"collapsed":true,"collapsible":true,"href":"/Constraints"}],"collapsed":true,"collapsible":true,"href":"/Domain_logic"},{"type":"category","label":"View logic","items":[{"type":"category","label":"Forms","items":[{"type":"category","label":"Form structure","items":[{"type":"link","label":"Groups of properties and actions","href":"/Groups_of_properties_and_actions","docId":"Groups_of_properties_and_actions","unlisted":false}],"collapsed":true,"collapsible":true,"href":"/Form_structure"},{"type":"category","label":"Form views","items":[{"type":"category","label":"Interactive view","items":[{"type":"link","label":"Form design","href":"/Form_design","docId":"Form_design","unlisted":false},{"type":"link","label":"Form events","href":"/Form_events","docId":"Form_events","unlisted":false},{"type":"category","label":"Form operators","items":[{"type":"category","label":"Value input","items":[{"type":"link","label":"Primitive input (INPUT)","href":"/Primitive_input_INPUT","docId":"Primitive_input_INPUT","unlisted":false},{"type":"link","label":"Value request (REQUEST)","href":"/Value_request_REQUEST","docId":"Value_request_REQUEST","unlisted":false}],"collapsed":true,"collapsible":true,"href":"/Value_input"},{"type":"category","label":"Object group operators","items":[{"type":"link","label":"Search (SEEK)","href":"/Search_SEEK","docId":"Search_SEEK","unlisted":false},{"type":"link","label":"Object tree visibility (EXPAND, COLLAPSE)","href":"/Object_tree_visibility_EXPAND_COLLAPSE","docId":"Object_tree_visibility_EXPAND_COLLAPSE","unlisted":false},{"type":"link","label":"Filter (FILTER)","href":"/Filter_FILTER","docId":"Filter_FILTER","unlisted":false},{"type":"link","label":"Order (ORDER)","href":"/Order_ORDER","docId":"Order_ORDER","unlisted":false},{"type":"link","label":"View (VIEW)","href":"/View_VIEW","docId":"View_VIEW","unlisted":false}],"collapsed":true,"collapsible":true,"href":"/Object_group_operators"},{"type":"category","label":"Focus operators","items":[{"type":"link","label":"Activation (ACTIVATE)","href":"/Activation_ACTIVATE","docId":"Activation_ACTIVATE","unlisted":false},{"type":"link","label":"Activity (ACTIVE)","href":"/Activity_ACTIVE","docId":"Activity_ACTIVE","unlisted":false}],"collapsed":true,"collapsible":true,"href":"/Focus_operators"}],"collapsed":true,"collapsible":true,"href":"/Form_operators"}],"collapsed":true,"collapsible":true,"href":"/Interactive_view"},{"type":"category","label":"Static view","items":[{"type":"category","label":"Print view","items":[{"type":"link","label":"Report design","href":"/Report_design","docId":"Report_design","unlisted":false}],"collapsed":true,"collapsible":true,"href":"/Print_view"},{"type":"link","label":"Structured view","href":"/Structured_view","docId":"Structured_view","unlisted":false}],"collapsed":true,"collapsible":true,"href":"/Static_view"}],"collapsed":true,"collapsible":true,"href":"/Form_views"},{"type":"category","label":"Open form","items":[{"type":"link","label":"In an interactive view (SHOW, DIALOG)","href":"/In_an_interactive_view_SHOW_DIALOG","docId":"In_an_interactive_view_SHOW_DIALOG","unlisted":false},{"type":"link","label":"In a print view (PRINT)","href":"/In_a_print_view_PRINT","docId":"In_a_print_view_PRINT","unlisted":false},{"type":"link","label":"In a structured view (EXPORT, IMPORT)","href":"/In_a_structured_view_EXPORT_IMPORT","docId":"In_a_structured_view_EXPORT_IMPORT","unlisted":false}],"collapsed":true,"collapsible":true,"href":"/Open_form"}],"collapsed":true,"collapsible":true,"href":"/Forms"},{"type":"category","label":"Navigator","items":[{"type":"link","label":"Navigator design","href":"/Navigator_design","docId":"Navigator_design","unlisted":false}],"collapsed":true,"collapsible":true,"href":"/Navigator"}],"collapsed":true,"collapsible":true,"href":"/View_logic"}],"collapsed":true,"collapsible":true,"href":"/Logical_model"},{"type":"category","label":"Physical model","items":[{"type":"category","label":"Development","items":[{"type":"category","label":"Element identification","items":[{"type":"link","label":"Naming","href":"/Naming","docId":"Naming","unlisted":false},{"type":"link","label":"Search","href":"/Search_","docId":"Search_","unlisted":false}],"collapsed":true,"collapsible":true,"href":"/Element_identification"},{"type":"category","label":"Modularity","items":[{"type":"link","label":"Modules","href":"/Modules","docId":"Modules","unlisted":false},{"type":"link","label":"Projects","href":"/Projects","docId":"Projects","unlisted":false},{"type":"category","label":"Extensions","items":[{"type":"link","label":"Class extension","href":"/Class_extension","docId":"Class_extension","unlisted":false},{"type":"link","label":"Property extension","href":"/Property_extension","docId":"Property_extension","unlisted":false},{"type":"link","label":"Action extension","href":"/Action_extension","docId":"Action_extension","unlisted":false},{"type":"link","label":"Form extension","href":"/Form_extension","docId":"Form_extension","unlisted":false}],"collapsed":true,"collapsible":true,"href":"/Extensions"}],"collapsed":true,"collapsible":true,"href":"/Modularity"},{"type":"link","label":"Metaprogramming","href":"/Metaprogramming","docId":"Metaprogramming","unlisted":false},{"type":"category","label":"Integration","items":[{"type":"link","label":"Access from an external system","href":"/Access_from_an_external_system","docId":"Access_from_an_external_system","unlisted":false},{"type":"link","label":"Access from an internal system","href":"/Access_from_an_internal_system","docId":"Access_from_an_internal_system","unlisted":false},{"type":"link","label":"Access to an external system (EXTERNAL)","href":"/Access_to_an_external_system_EXTERNAL","docId":"Access_to_an_external_system_EXTERNAL","unlisted":false},{"type":"category","label":"Access to an internal system (INTERNAL, FORMULA)","items":[{"type":"link","label":"Internal call (INTERNAL)","href":"/Internal_call_INTERNAL","docId":"Internal_call_INTERNAL","unlisted":false},{"type":"link","label":"Custom formula (FORMULA)","href":"/Custom_formula_FORMULA","docId":"Custom_formula_FORMULA","unlisted":false}],"collapsed":true,"collapsible":true,"href":"/Access_to_an_internal_system_INTERNAL_FORMULA"},{"type":"link","label":"Eval (EVAL)","href":"/Eval_EVAL","docId":"Eval_EVAL","unlisted":false}],"collapsed":true,"collapsible":true,"href":"/Integration"},{"type":"link","label":"Migration","href":"/Migration","docId":"Migration","unlisted":false},{"type":"link","label":"Internationalization","href":"/Internationalization","docId":"Internationalization","unlisted":false}],"collapsed":true,"collapsible":true,"href":"/Development"},{"type":"category","label":"Execution","items":[{"type":"link","label":"Materializations","href":"/Materializations","docId":"Materializations","unlisted":false},{"type":"link","label":"Indexes","href":"/Indexes","docId":"Indexes","unlisted":false},{"type":"link","label":"Tables","href":"/Tables","docId":"Tables","unlisted":false}],"collapsed":true,"collapsible":true,"href":"/Execution"},{"type":"category","label":"Management","items":[{"type":"category","label":"System parameters","items":[{"type":"category","label":"Launch parameters","items":[{"type":"link","label":"Launch events","href":"/Launch_events","docId":"Launch_events","unlisted":false}],"collapsed":true,"collapsible":true,"href":"/Launch_parameters"},{"type":"link","label":"Working parameters","href":"/Working_parameters","docId":"Working_parameters","unlisted":false}],"collapsed":true,"collapsible":true,"href":"/System_parameters"},{"type":"link","label":"User interface","href":"/User_interface","docId":"User_interface","unlisted":false},{"type":"link","label":"Interpreter","href":"/Interpreter","docId":"Interpreter","unlisted":false},{"type":"link","label":"Security policy","href":"/Security_policy","docId":"Security_policy","unlisted":false},{"type":"link","label":"Process monitor","href":"/Process_monitor","docId":"Process_monitor","unlisted":false},{"type":"link","label":"Scheduler","href":"/Scheduler","docId":"Scheduler","unlisted":false},{"type":"link","label":"Journals and logs","href":"/Journals_and_logs","docId":"Journals_and_logs","unlisted":false},{"type":"link","label":"Profiler","href":"/Profiler","docId":"Profiler","unlisted":false},{"type":"link","label":"Chat","href":"/Chat","docId":"Chat","unlisted":false}],"collapsed":true,"collapsible":true,"href":"/Management"}],"collapsed":true,"collapsible":true,"href":"/Physical_model"}],"collapsible":true,"href":"/Paradigm"},{"collapsed":false,"type":"category","label":"Language","items":[{"type":"link","label":"Tokens","href":"/Tokens","docId":"Tokens","unlisted":false},{"type":"link","label":"IDs","href":"/IDs","docId":"IDs","unlisted":false},{"type":"link","label":"Literals","href":"/Literals","docId":"Literals","unlisted":false},{"type":"category","label":"Statements","items":[{"type":"link","label":"Module header","href":"/Module_header","docId":"Module_header","unlisted":false},{"type":"category","label":"= statement","items":[{"type":"category","label":"Expression","items":[{"type":"link","label":"Operator priority","href":"/Operator_priority","docId":"Operator_priority","unlisted":false}],"collapsed":true,"collapsible":true,"href":"/Expression"},{"type":"category","label":"Property operators","items":[{"type":"link","label":"Arithmetic operators","href":"/Arithmetic_operators","docId":"Arithmetic_operators","unlisted":false},{"type":"link","label":"[] operator","href":"/Brackets_operator","docId":"Brackets_operator","unlisted":false},{"type":"link","label":"ABSTRACT operator","href":"/ABSTRACT_operator","docId":"ABSTRACT_operator","unlisted":false},{"type":"link","label":"ACTIVE TAB operator","href":"/ACTIVE_TAB_operator","docId":"ACTIVE_TAB_operator","unlisted":false},{"type":"link","label":"AGGR operator","href":"/AGGR_operator","docId":"AGGR_operator","unlisted":false},{"type":"link","label":"CASE operator","href":"/CASE_operator","docId":"CASE_operator","unlisted":false},{"type":"link","label":"CONCAT operator","href":"/CONCAT_operator","docId":"CONCAT_operator","unlisted":false},{"type":"link","label":"DATA operator","href":"/DATA_operator","docId":"DATA_operator","unlisted":false},{"type":"link","label":"EXCLUSIVE operator","href":"/EXCLUSIVE_operator","docId":"EXCLUSIVE_operator","unlisted":false},{"type":"link","label":"FORMULA operator","href":"/FORMULA_operator","docId":"FORMULA_operator","unlisted":false},{"type":"link","label":"GROUP operator","href":"/GROUP_operator","docId":"GROUP_operator","unlisted":false},{"type":"link","label":"IF operator","href":"/IF_operator","docId":"IF_operator","unlisted":false},{"type":"link","label":"IF ... THEN operator","href":"/IF_..._THEN_operator","docId":"IF_..._THEN_operator","unlisted":false},{"type":"link","label":"ISCLASS operator","href":"/CLASS_operator","docId":"CLASS_operator","unlisted":false},{"type":"link","label":"JOIN operator","href":"/JOIN_operator","docId":"JOIN_operator","unlisted":false},{"type":"link","label":"LIKE operator","href":"/LIKE_operator","docId":"LIKE_operator","unlisted":false},{"type":"link","label":"MAX operator","href":"/MAX_operator","docId":"MAX_operator","unlisted":false},{"type":"link","label":"MIN operator","href":"/MIN_operator","docId":"MIN_operator","unlisted":false},{"type":"link","label":"MULTI operator","href":"/MULTI_operator","docId":"MULTI_operator","unlisted":false},{"type":"link","label":"OVERRIDE operator","href":"/OVERRIDE_operator","docId":"OVERRIDE_operator","unlisted":false},{"type":"link","label":"PARTITION operator","href":"/PARTITION_operator","docId":"PARTITION_operator","unlisted":false},{"type":"link","label":"PREV operator","href":"/PREV_operator","docId":"PREV_operator","unlisted":false},{"type":"link","label":"RECURSION operator","href":"/RECURSION_operator","docId":"RECURSION_operator","unlisted":false},{"type":"link","label":"ROUND operator","href":"/ROUND_operator","docId":"ROUND_operator","unlisted":false},{"type":"link","label":"STRUCT operator","href":"/STRUCT_operator","docId":"STRUCT_operator","unlisted":false},{"type":"link","label":"UNGROUP operator","href":"/UNGROUP_operator","docId":"UNGROUP_operator","unlisted":false},{"type":"link","label":"Object group operator","href":"/Object_group_operator","docId":"Object_group_operator","unlisted":false},{"type":"link","label":"Type conversion operator","href":"/Type_conversion_operator","docId":"Type_conversion_operator","unlisted":false},{"type":"link","label":"AND, OR, NOT, XOR operators","href":"/AND_OR_NOT_XOR_operators","docId":"AND_OR_NOT_XOR_operators","unlisted":false},{"type":"link","label":"IS, AS operators","href":"/IS_AS_operators","docId":"IS_AS_operators","unlisted":false},{"type":"link","label":"Change operators","href":"/Change_operators","docId":"Change_operators","unlisted":false},{"type":"link","label":"Comparison operators","href":"/Comparison_operators","docId":"Comparison_operators","unlisted":false}],"collapsed":true,"collapsible":true,"href":"/Property_operators"},{"type":"link","label":"Property options","href":"/Property_options","docId":"Property_options","unlisted":false}],"collapsed":true,"collapsible":true,"href":"/=_statement"},{"type":"category","label":"ACTION statement","items":[{"type":"category","label":"Action operators","items":[{"type":"link","label":"{...} operator","href":"/Braces_operator","docId":"Braces_operator","unlisted":false},{"type":"link","label":"ABSTRACT operator","href":"/ABSTRACT_action_operator","docId":"ABSTRACT_action_operator","unlisted":false},{"type":"link","label":"ACTIVATE operator","href":"/ACTIVATE_operator","docId":"ACTIVATE_operator","unlisted":false},{"type":"link","label":"ACTIVE FORM operator","href":"/ACTIVE_FORM_operator","docId":"ACTIVE_FORM_operator","unlisted":false},{"type":"link","label":"APPLY operator","href":"/APPLY_operator","docId":"APPLY_operator","unlisted":false},{"type":"link","label":"ASK operator","href":"/ASK_operator","docId":"ASK_operator","unlisted":false},{"type":"link","label":"CHANGE operator","href":"/CHANGE_operator","docId":"CHANGE_operator","unlisted":false},{"type":"link","label":"BREAK operator","href":"/BREAK_operator","docId":"BREAK_operator","unlisted":false},{"type":"link","label":"CANCEL operator","href":"/CANCEL_operator","docId":"CANCEL_operator","unlisted":false},{"type":"link","label":"CASE operator","href":"/CASE_action_operator","docId":"CASE_action_operator","unlisted":false},{"type":"link","label":"CHANGECLASS operator","href":"/CHANGECLASS_operator","docId":"CHANGECLASS_operator","unlisted":false},{"type":"link","label":"COLLAPSE operator","href":"/COLLAPSE_operator","docId":"COLLAPSE_operator","unlisted":false},{"type":"link","label":"INTERNAL operator","href":"/INTERNAL_operator","docId":"INTERNAL_operator","unlisted":false},{"type":"link","label":"DELETE operator","href":"/DELETE_operator","docId":"DELETE_operator","unlisted":false},{"type":"link","label":"DIALOG operator","href":"/DIALOG_operator","docId":"DIALOG_operator","unlisted":false},{"type":"link","label":"EMAIL operator","href":"/EMAIL_operator","docId":"EMAIL_operator","unlisted":false},{"type":"link","label":"EVAL operator","href":"/EVAL_operator","docId":"EVAL_operator","unlisted":false},{"type":"link","label":"EXEC operator","href":"/EXEC_operator","docId":"EXEC_operator","unlisted":false},{"type":"link","label":"EXPAND operator","href":"/EXPAND_operator","docId":"EXPAND_operator","unlisted":false},{"type":"link","label":"EXPORT operator","href":"/EXPORT_operator","docId":"EXPORT_operator","unlisted":false},{"type":"link","label":"EXTERNAL operator","href":"/EXTERNAL_operator","docId":"EXTERNAL_operator","unlisted":false},{"type":"link","label":"FOR operator","href":"/FOR_operator","docId":"FOR_operator","unlisted":false},{"type":"link","label":"IF ... THEN operator","href":"/IF_..._THEN_action_operator","docId":"IF_..._THEN_action_operator","unlisted":false},{"type":"link","label":"IMPORT operator","href":"/IMPORT_operator","docId":"IMPORT_operator","unlisted":false},{"type":"link","label":"INPUT operator","href":"/INPUT_operator","docId":"INPUT_operator","unlisted":false},{"type":"link","label":"MESSAGE operator","href":"/MESSAGE_operator","docId":"MESSAGE_operator","unlisted":false},{"type":"link","label":"MULTI operator","href":"/MULTI_action_operator","docId":"MULTI_action_operator","unlisted":false},{"type":"link","label":"NEW operator","href":"/NEW_operator","docId":"NEW_operator","unlisted":false},{"type":"link","label":"NESTEDSESSION operator","href":"/NESTEDSESSION_operator","docId":"NESTEDSESSION_operator","unlisted":false},{"type":"link","label":"NEWEXECUTOR operator","href":"/NEWEXECUTOR_operator","docId":"NEWEXECUTOR_operator","unlisted":false},{"type":"link","label":"NEWSESSION operator","href":"/NEWSESSION_operator","docId":"NEWSESSION_operator","unlisted":false},{"type":"link","label":"NEWTHREAD operator","href":"/NEWTHREAD_operator","docId":"NEWTHREAD_operator","unlisted":false},{"type":"link","label":"PRINT operator","href":"/PRINT_operator","docId":"PRINT_operator","unlisted":false},{"type":"link","label":"READ operator","href":"/READ_operator","docId":"READ_operator","unlisted":false},{"type":"link","label":"REQUEST operator","href":"/REQUEST_operator","docId":"REQUEST_operator","unlisted":false},{"type":"link","label":"RETURN operator","href":"/RETURN_operator","docId":"RETURN_operator","unlisted":false},{"type":"link","label":"SEEK operator","href":"/SEEK_operator","docId":"SEEK_operator","unlisted":false},{"type":"link","label":"SHOW operator","href":"/SHOW_operator","docId":"SHOW_operator","unlisted":false},{"type":"link","label":"TRY operator","href":"/TRY_operator","docId":"TRY_operator","unlisted":false},{"type":"link","label":"WHILE operator","href":"/WHILE_operator","docId":"WHILE_operator","unlisted":false},{"type":"link","label":"WRITE operator","href":"/WRITE_operator","docId":"WRITE_operator","unlisted":false}],"collapsed":true,"collapsible":true,"href":"/Action_operators"},{"type":"link","label":"Action options","href":"/Action_options","docId":"Action_options","unlisted":false}],"collapsed":true,"collapsible":true,"href":"/ACTION_statement"},{"type":"link","label":"GROUP statement","href":"/GROUP_statement","docId":"GROUP_statement","unlisted":false},{"type":"category","label":"ON statement","items":[{"type":"link","label":"Event description block","href":"/Event_description_block","docId":"Event_description_block","unlisted":false}],"collapsed":true,"collapsible":true,"href":"/ON_statement"},{"type":"link","label":"WHEN statement","href":"/WHEN_statement","docId":"WHEN_statement","unlisted":false},{"type":"link","label":"<- WHEN statement","href":"/lt-_WHEN_statement","docId":"lt-_WHEN_statement","unlisted":false},{"type":"link","label":"CONSTRAINT statement","href":"/CONSTRAINT_statement","docId":"CONSTRAINT_statement","unlisted":false},{"type":"link","label":"=> statement","href":"/=gt_statement","docId":"=gt_statement","unlisted":false},{"type":"link","label":"CLASS statement","href":"/CLASS_statement","docId":"CLASS_statement","unlisted":false},{"type":"category","label":"FORM statement","items":[{"type":"link","label":"Object blocks","href":"/Object_blocks","docId":"Object_blocks","unlisted":false},{"type":"link","label":"Properties and actions block","href":"/Properties_and_actions_block","docId":"Properties_and_actions_block","unlisted":false},{"type":"link","label":"Filter and sorting blocks","href":"/Filters_and_sortings_block","docId":"Filters_and_sortings_block","unlisted":false},{"type":"link","label":"Event block","href":"/Event_block","docId":"Event_block","unlisted":false}],"collapsed":true,"collapsible":true,"href":"/FORM_statement"},{"type":"link","label":"DESIGN statement","href":"/DESIGN_statement","docId":"DESIGN_statement","unlisted":false},{"type":"link","label":"NAVIGATOR statement","href":"/NAVIGATOR_statement","docId":"NAVIGATOR_statement","unlisted":false},{"type":"link","label":"WINDOW statement","href":"/WINDOW_statement","docId":"WINDOW_statement","unlisted":false},{"type":"link","label":"EXTEND CLASS statement","href":"/EXTEND_CLASS_statement","docId":"EXTEND_CLASS_statement","unlisted":false},{"type":"link","label":"EXTEND FORM statement","href":"/EXTEND_FORM_statement","docId":"EXTEND_FORM_statement","unlisted":false},{"type":"link","label":"+= statement","href":"/+=_statement","docId":"+=_statement","unlisted":false},{"type":"link","label":"ACTION+ statement","href":"/ACTION+_statement","docId":"ACTION+_statement","unlisted":false},{"type":"link","label":"META statement","href":"/META_statement","docId":"META_statement","unlisted":false},{"type":"link","label":"@ statement","href":"/commat_statement","docId":"commat_statement","unlisted":false},{"type":"link","label":"TABLE statement","href":"/TABLE_statement","docId":"TABLE_statement","unlisted":false},{"type":"link","label":"INDEX statement","href":"/INDEX_statement","docId":"INDEX_statement","unlisted":false},{"type":"link","label":"BEFORE statement","href":"/BEFORE_statement","docId":"BEFORE_statement","unlisted":false},{"type":"link","label":"AFTER statement","href":"/AFTER_statement","docId":"AFTER_statement","unlisted":false},{"type":"link","label":"Empty statement","href":"/Empty_statement","docId":"Empty_statement","unlisted":false}],"collapsed":true,"collapsible":true,"href":"/Statements"},{"type":"link","label":"Coding conventions","href":"/Coding_conventions","docId":"Coding_conventions","unlisted":false}],"collapsible":true,"href":"/Language"},{"type":"link","label":"IDE","href":"/IDE","docId":"IDE","unlisted":false},{"collapsed":false,"type":"category","label":"Learning materials","items":[{"type":"category","label":"Examples","items":[{"type":"link","label":"Score table","href":"/Score_table","docId":"Score_table","unlisted":false},{"type":"link","label":"Materials management","href":"/Materials_management","docId":"Materials_management","unlisted":false}],"collapsed":true,"collapsible":true,"href":"/Examples"},{"type":"category","label":"How-to","items":[{"type":"category","label":"How-to: Computations","items":[{"type":"link","label":"How-to: GROUP SUM","href":"/How-to_GROUP_SUM","docId":"How-to_GROUP_SUM","unlisted":false},{"type":"link","label":"How-to: GROUP MAX/MIN/AGGR","href":"/How-to_GROUP_MAX_MIN_AGGR","docId":"How-to_GROUP_MAX_MIN_AGGR","unlisted":false},{"type":"link","label":"How-to: CASE/IF/OVERRIDE","href":"/How-to_CASE_IF_OVERRIDE","docId":"How-to_CASE_IF_OVERRIDE","unlisted":false},{"type":"link","label":"How-to: GROUP LAST","href":"/How-to_GROUP_LAST","docId":"How-to_GROUP_LAST","unlisted":false},{"type":"link","label":"How-to: GROUP CONCAT","href":"/How-to_GROUP_CONCAT","docId":"How-to_GROUP_CONCAT","unlisted":false},{"type":"link","label":"How-to: PARTITION","href":"/How-to_PARTITION","docId":"How-to_PARTITION","unlisted":false}],"collapsed":true,"collapsible":true,"href":"/How-to_Computations"},{"type":"category","label":"How-to: GUI","items":[{"type":"category","label":"How-to: Interactive forms","items":[{"type":"link","label":"How-to: CRUD","href":"/How-to_CRUD","docId":"How-to_CRUD","unlisted":false},{"type":"link","label":"How-to: Documents with lines","href":"/How-to_Documents_with_lines","docId":"How-to_Documents_with_lines","unlisted":false},{"type":"link","label":"How-to: Filtering and ordering","href":"/How-to_Filtering_and_ordering","docId":"How-to_Filtering_and_ordering","unlisted":false},{"type":"link","label":"How-to: Design","href":"/How-to_Design","docId":"How-to_Design","unlisted":false},{"type":"link","label":"How-to: Trees","href":"/How-to_Trees","docId":"How-to_Trees","unlisted":false},{"type":"link","label":"How-to: Data entry","href":"/How-to_Data_entry","docId":"How-to_Data_entry","unlisted":false},{"type":"link","label":"How-to: Navigator","href":"/How-to_Navigator","docId":"How-to_Navigator","unlisted":false},{"type":"link","label":"How-to: Matrix","href":"/How-to_Matrix","docId":"How-to_Matrix","unlisted":false},{"type":"link","label":"How-to: Table status","href":"/How-to_Table_status","docId":"How-to_Table_status","unlisted":false},{"type":"link","label":"How-to: Custom components (properties)","href":"/How-to_Custom_components_properties","docId":"How-to_Custom_components_properties","unlisted":false},{"type":"link","label":"How-to: Custom Components (objects)","href":"/How-to_Custom_components_objects","docId":"How-to_Custom_components_objects","unlisted":false}],"collapsed":true,"collapsible":true,"href":"/How-to_Interactive_forms"},{"type":"link","label":"How-to: Reports","href":"/How-to_Reports","docId":"How-to_Reports","unlisted":false}],"collapsed":true,"collapsible":true,"href":"/How-to_GUI"},{"type":"category","label":"How-to: Imperative logic","items":[{"type":"category","label":"How-to: Actions","items":[{"type":"link","label":"How-to: CHANGE","href":"/How-to_CHANGE","docId":"How-to_CHANGE","unlisted":false},{"type":"link","label":"How-to: EXEC","href":"/How-to_EXEC","docId":"How-to_EXEC","unlisted":false},{"type":"link","label":"How-to: NEW","href":"/How-to_NEW","docId":"How-to_NEW","unlisted":false},{"type":"link","label":"How-to: DELETE","href":"/How-to_DELETE","docId":"How-to_DELETE","unlisted":false},{"type":"link","label":"How-to: FOR","href":"/How-to_FOR","docId":"How-to_FOR","unlisted":false},{"type":"link","label":"How-to: IF/CASE","href":"/How-to_IF_CASE","docId":"How-to_IF_CASE","unlisted":false},{"type":"link","label":"How-to: WHILE","href":"/How-to_WHILE","docId":"How-to_WHILE","unlisted":false},{"type":"link","label":"How-to: NEWSESSION","href":"/How-to_NEWSESSION","docId":"How-to_NEWSESSION","unlisted":false},{"type":"link","label":"How-to: SEEK","href":"/How-to_SEEK","docId":"How-to_SEEK","unlisted":false}],"collapsed":true,"collapsible":true,"href":"/How-to_Actions"},{"type":"link","label":"How-to: Events","href":"/How-to_Events","docId":"How-to_Events","unlisted":false}],"collapsed":true,"collapsible":true,"href":"/How-to_Imperative_logic"},{"type":"category","label":"How-to: Declarative logic","items":[{"type":"link","label":"How-to: Constraints","href":"/How-to_Constraints","docId":"How-to_Constraints","unlisted":false},{"type":"link","label":"How-to: Inheritance and aggregation","href":"/How-to_Inheritance_and_aggregation","docId":"How-to_Inheritance_and_aggregation","unlisted":false}],"collapsed":true,"collapsible":true,"href":"/How-to_Declarative_logic"},{"type":"category","label":"How-to: Searching for elements","items":[{"type":"link","label":"How-to: Namespaces","href":"/How-to_Namespaces","docId":"How-to_Namespaces","unlisted":false},{"type":"link","label":"How-to: Explicit typing","href":"/How-to_Explicit_typing","docId":"How-to_Explicit_typing","unlisted":false}],"collapsed":true,"collapsible":true,"href":"/How-to_Searching_for_elements"},{"type":"category","label":"How-to: Extensions","items":[{"type":"link","label":"How-to: Class extension","href":"/How-to_Class_extension","docId":"How-to_Class_extension","unlisted":false},{"type":"link","label":"How-to: Property extension","href":"/How-to_Property_extension","docId":"How-to_Property_extension","unlisted":false},{"type":"link","label":"How-to: Action extension","href":"/How-to_Action_extension","docId":"How-to_Action_extension","unlisted":false},{"type":"link","label":"How-to: Form extension","href":"/How-to_Form_extension","docId":"How-to_Form_extension","unlisted":false}],"collapsed":true,"collapsible":true,"href":"/How-to_Extensions"},{"type":"category","label":"How-to: Integration","items":[{"type":"category","label":"How-to: Working with external formats","items":[{"type":"link","label":"How-to: Data export","href":"/How-to_Data_export","docId":"How-to_Data_export","unlisted":false},{"type":"link","label":"How-to: Data import","href":"/How-to_Data_import","docId":"How-to_Data_import","unlisted":false}],"collapsed":true,"collapsible":true,"href":"/How-to_Working_with_external_formats"},{"type":"link","label":"How-to: Interaction via HTTP protocol","href":"/How-to_Interaction_via_HTTP_protocol","docId":"How-to_Interaction_via_HTTP_protocol","unlisted":false},{"type":"link","label":"How-to: Frontend","href":"/How-to_Frontend","docId":"How-to_Frontend","unlisted":false},{"type":"category","label":"How-to: Access to internal systems","items":[{"type":"link","label":"How-to: FORMULA","href":"/How-to_FORMULA","docId":"How-to_FORMULA","unlisted":false},{"type":"link","label":"How-to: INTERNAL","href":"/How-to_INTERNAL","docId":"How-to_INTERNAL","unlisted":false}],"collapsed":true,"collapsible":true,"href":"/How-to_Access_to_internal_systems"}],"collapsed":true,"collapsible":true,"href":"/How-to_Integration"},{"type":"category","label":"How-to: Use Cases","items":[{"type":"link","label":"How-to: Working with documents","href":"/How-to_Working_with_documents","docId":"How-to_Working_with_documents","unlisted":false},{"type":"link","label":"How-to: Registers","href":"/How-to_Registers","docId":"How-to_Registers","unlisted":false},{"type":"link","label":"How-to: Numbering","href":"/How-to_Numbering","docId":"How-to_Numbering","unlisted":false},{"type":"link","label":"How-to: Using objects as templates","href":"/How-to_Using_objects_as_templates","docId":"How-to_Using_objects_as_templates","unlisted":false},{"type":"link","label":"How-to: Overriding values","href":"/How-to_Overriding_values","docId":"How-to_Overriding_values","unlisted":false},{"type":"link","label":"How-to: Binding properties","href":"/How-to_Binding_properties","docId":"How-to_Binding_properties","unlisted":false}],"collapsed":true,"collapsible":true,"href":"/How-to_Use_Cases"},{"type":"link","label":"How-to: Metaprogramming","href":"/How-to_Metaprogramming","docId":"How-to_Metaprogramming","unlisted":false},{"type":"link","label":"How-to: Physical model","href":"/How-to_Physical_model","docId":"How-to_Physical_model","unlisted":false},{"type":"link","label":"How-to: Internationalization","href":"/How-to_Internationalization","docId":"How-to_Internationalization","unlisted":false}],"collapsed":true,"collapsible":true,"href":"/How-to"}],"collapsible":true,"href":"/Learning_materials"},{"type":"link","label":"Online demo","href":"/Online_demo","docId":"Online_demo","unlisted":false}]},"docs":{"+=_statement":{"id":"+=_statement","title":"+= statement","description":"The += statement adds an implementation (selection option) to an abstract property.","sidebar":"learn"},"=_statement":{"id":"=_statement","title":"= statement","description":"The = statement creates a new property.","sidebar":"learn"},"=gt_statement":{"id":"=gt_statement","title":"=> statement","description":"The => statement creates a consequence.","sidebar":"learn"},"ABSTRACT_action_operator":{"id":"ABSTRACT_action_operator","title":"ABSTRACT operator","description":"The ABSTRACT operator - creating an abstract action.","sidebar":"learn"},"ABSTRACT_operator":{"id":"ABSTRACT_operator","title":"ABSTRACT operator","description":"The ABSTRACT operator creates an abstract property.","sidebar":"learn"},"Access_from_an_external_system":{"id":"Access_from_an_external_system","title":"Access from an external system","description":"Action API","sidebar":"learn"},"Access_from_an_internal_system":{"id":"Access_from_an_internal_system","title":"Access from an internal system","description":"Java interaction","sidebar":"learn"},"Access_to_an_external_system_EXTERNAL":{"id":"Access_to_an_external_system_EXTERNAL","title":"Access to an external system (EXTERNAL)","description":"The operator for accessing an external system executes a specified code in the language/paradigm of the external system specified. In addition, this operator allows passing objects of built-in classes as parameters of this type of call, and also writing the results of calls to the properties specified (without parameters).","sidebar":"learn"},"Access_to_an_internal_system_INTERNAL_FORMULA":{"id":"Access_to_an_internal_system_INTERNAL_FORMULA","title":"Access to an internal system (INTERNAL, FORMULA)","description":"Java interaction","sidebar":"learn"},"Action_extension":{"id":"Action_extension","title":"Action extension","description":"The actions extension technique allows the developer to declare an abstract action in one module and add to it an implementation in other modules. This technique is essentially a \\"postponed definition\\" of a branch operator, where the operator\u2019s title is defined when the property is declared, and branching conditions are added as new functionality (of classes or static objects) is added to the system. Furthermore, branching conditions (if branching is not mutually exclusive) can be added both to the beginning and to the end of the abstract action created. Similarly, this technique works with a sequence operator.","sidebar":"learn"},"Action_operators":{"id":"Action_operators","title":"Action operators","description":"Action operator is a syntax construct that describes an operator creating an action.","sidebar":"learn"},"Action_operators_paradigm":{"id":"Action_operators_paradigm","title":"\u041eperators","description":"Operators for creating actions can be divided into several categories:","sidebar":"learn"},"Action_options":{"id":"Action_options","title":"Action options","description":"When declaring an action in the ACTION statement a certain set of action options may be specified at the end of the declaration.","sidebar":"learn"},"ACTION_statement":{"id":"ACTION_statement","title":"ACTION statement","description":"The ACTION statement creates an action.","sidebar":"learn"},"ACTION+_statement":{"id":"ACTION+_statement","title":"ACTION+ statement","description":"The ACTION+ statement adds an implementation (branching condition) to an abstract action.","sidebar":"learn"},"Actions":{"id":"Actions","title":"Actions","description":"An action is an element of the system that takes a set of objects (parameters) and uses them in one way or another to change the system state (that of the system in which the action is executed, as well as the state of any other external system).","sidebar":"learn"},"ACTIVATE_operator":{"id":"ACTIVATE_operator","title":"ACTIVATE operator","description":"The ACTIVATE operator creates an action that activates a specified form, tab, property, or action on a form","sidebar":"learn"},"Activation_ACTIVATE":{"id":"Activation_ACTIVATE","title":"Activation (ACTIVATE)","description":"The activation operator creates an action that activates one of three form elements:","sidebar":"learn"},"ACTIVE_FORM_operator":{"id":"ACTIVE_FORM_operator","title":"ACTIVE FORM operator","description":"The ACTIVATE FORM operator creates an action that checks the activeness of a form.","sidebar":"learn"},"ACTIVE_TAB_operator":{"id":"ACTIVE_TAB_operator","title":"ACTIVE TAB operator","description":"The ACTIVE TAB operator creates a property that checks if specified tab is active.","sidebar":"learn"},"Activity_ACTIVE":{"id":"Activity_ACTIVE","title":"Activity (ACTIVE)","description":"The activity operator creates a property that determines whether one of the following form elements is active:","sidebar":"learn"},"AFTER_statement":{"id":"AFTER_statement","title":"AFTER statement","description":"The AFTER statement calls an action after calling another action.","sidebar":"learn"},"AGGR_operator":{"id":"AGGR_operator","title":"AGGR operator","description":"The AGGR operator creates an aggregation.","sidebar":"learn"},"Aggregations":{"id":"Aggregations","title":"Aggregations","description":"Aggregation is the creation of a unique (aggregate) of the object corresponding to each non-NULL value of some aggregated property. Each such object is assumed to have properties that map this object to each aggregated property parameter, and, conversely, a property that maps the aggregated property parameters to this object.","sidebar":"learn"},"AND_OR_NOT_XOR_operators":{"id":"AND_OR_NOT_XOR_operators","title":"AND, OR, NOT, XOR operators","description":"AND, OR, NOT, XOR operators that create properties that implement logical operations.","sidebar":"learn"},"Apply_changes_APPLY":{"id":"Apply_changes_APPLY","title":"Apply changes (APPLY)","description":"The apply changes operator saves all changes made to the database, and also triggers the handling of all synchronous global events.","sidebar":"learn"},"APPLY_operator":{"id":"APPLY_operator","title":"APPLY operator","description":"The APPLY operator creates an action that applies changes to the database.","sidebar":"learn"},"Arithmetic_operators":{"id":"Arithmetic_operators","title":"Arithmetic operators","description":"+, -, *, /, (+), (-) operators create properties responsible for arithmetic operations.","sidebar":"learn"},"Arithmetic_operators_+_-_etc":{"id":"Arithmetic_operators_+_-_etc","title":"Arithmetic operators (+, -, *, ...)","description":"Arithmetic operators create properties whose value is the result of an arithmetic operation. The arguments of these operators must be properties whose values are instances of number classes . The platform currently supports the following arithmetic operators:","sidebar":"learn"},"ASK_operator":{"id":"ASK_operator","title":"ASK operator","description":"The ASK operator creates an action that shows the user a message in a dialog form.","sidebar":"learn"},"Automatic_installation":{"id":"Automatic_installation","title":"Install automatically","description":"For development","sidebar":"install"},"BEFORE_statement":{"id":"BEFORE_statement","title":"BEFORE statement","description":"The BEFORE statement calls an action before calling another action.","sidebar":"learn"},"Braces_operator":{"id":"Braces_operator","title":"{...} operator","description":"The {...} operator creates actions that executes a sequence of other actions.","sidebar":"learn"},"Brackets_operator":{"id":"Brackets_operator","title":"[] operator","description":"The ] operator creates a [property that returns an object from a structure.","sidebar":"learn"},"Branching_CASE_IF_MULTI":{"id":"Branching_CASE_IF_MULTI","title":"Branching (CASE, IF, MULTI)","description":"The branching operator creates an action that determines for a set of conditions which condition is met, and calls the corresponding action.","sidebar":"learn"},"BREAK_operator":{"id":"BREAK_operator","title":"BREAK operator","description":"The BREAK operator creates an action that implements a loop interruption.","sidebar":"learn"},"Built-in_classes":{"id":"Built-in_classes","title":"Built-in classes","description":"Built-in classes are classes whose instances are objects belonging to primitive data types such as integers, strings, etc.","sidebar":"learn"},"Calculated_events":{"id":"Calculated_events","title":"Calculated events","description":"Calculated events are events that change the value of a property when the value of some other property (condition) changes to a non-NULL value. Moreover, unlike simple events, this change is not made at the moment the condition is changed but is calculated each time the changed property is accessed. If the property has already been changed in the same session, this change is considered higher priority than the change in the calculated event.","sidebar":"learn"},"Call_EXEC":{"id":"Call_EXEC","title":"Call (EXEC)","description":"The EXEC operator creates an action that executes another action, passing it specified properties (arguments).","sidebar":"learn"},"Cancel_changes_CANCEL":{"id":"Cancel_changes_CANCEL","title":"Cancel changes (CANCEL)","description":"The cancel changes operator completely clears the current change session.","sidebar":"learn"},"CANCEL_operator":{"id":"CANCEL_operator","title":"CANCEL operator","description":"The CANCEL operator creates an action that cancels changes in the current session.","sidebar":"learn"},"CASE_action_operator":{"id":"CASE_action_operator","title":"CASE operator","description":"The CASE operator creates an action that implements branching.","sidebar":"learn"},"CASE_operator":{"id":"CASE_operator","title":"CASE operator","description":"The CASE operator creates a property that selects a result by condition.","sidebar":"learn"},"CHANGE_operator":{"id":"CHANGE_operator","title":"CHANGE operator","description":"The CHANGE operator creates an action that changes properties.","sidebar":"learn"},"Change_operators":{"id":"Change_operators","title":"Change operators","description":"Change operators - a set of operators that determine various types of property value changes.","sidebar":"learn"},"Change_operators_SET_CHANGED_etc":{"id":"Change_operators_SET_CHANGED_etc","title":"Change operators (SET, CHANGED, ...)","description":"Change operators determine whether some types of changes have occurred for a certain property in the current session. All these operators are derived from the previous value operator (PREV), however, it is recommended to use them to improve readability and performance. The following table shows the supported types of changes and their description:","sidebar":"learn"},"Change_sessions":{"id":"Change_sessions","title":"Change sessions","description":"Actions can change the state of the system in which they are executed. It is not always desirable to write these changes directly to the database, both from the perspective of integrity and from the perspective of the ergonomics of the system. The platform therefore allows to accumulate these changes locally in change sessions.","sidebar":"learn"},"CHANGECLASS_operator":{"id":"CHANGECLASS_operator","title":"CHANGECLASS operator","description":"The CHANGECLASS operator creates an action that changes objects classes.","sidebar":"learn"},"Chat":{"id":"Chat","title":"Chat","description":"(Under development)","sidebar":"learn"},"Class_change_CHANGECLASS_DELETE":{"id":"Class_change_CHANGECLASS_DELETE","title":"Class change (CHANGECLASS, DELETE)","description":"The class change operator creates an action that assigns the given class to all objects where value of a particular property (condition) is not equal to NULL. The condition can be omitted, in which case it is considered to be equal to TRUE.","sidebar":"learn"},"Class_extension":{"id":"Class_extension","title":"Class extension","description":"The class extension technique allows the developer to inherit one class from another after its creation. Also, using this mechanism you can add extra static objects to a class.","sidebar":"learn"},"CLASS_operator":{"id":"CLASS_operator","title":"ISCLASS operator","description":"The ISCLASS operator creates a property that implements a signature matching operator.","sidebar":"learn"},"Class_operators":{"id":"Class_operators","title":"Class operators","description":"Class operators include the following operators:","sidebar":"learn"},"CLASS_statement":{"id":"CLASS_statement","title":"CLASS statement","description":"CLASS statement creates a new custom class.","sidebar":"learn"},"Classes":{"id":"Classes","title":"Classes","description":"The base element in lsFusion is the object. Each object is an instance of some class, which determines the qualities of all its instances. Classes in turn can be divided into built-in classes, which are responsible for primitive data types, and user classes.","sidebar":"learn"},"Classification_IS_AS":{"id":"Classification_IS_AS","title":"Classification (IS/AS)","description":"Classification operators create properties that determine whether an object belongs to the class specified. If the property argument does not belong to the class specified in the operator, the property returns NULL. Otherwise, the operator IS returns TRUE, and the operator AS returns the object passed as an argument.","sidebar":"learn"},"Coding_conventions":{"id":"Coding_conventions","title":"Coding conventions","description":"Common","sidebar":"learn"},"COLLAPSE_operator":{"id":"COLLAPSE_operator","title":"COLLAPSE operator","description":"The COLLAPSE operator is the creation of an action, that implements the collapse of elements in the object tree.","sidebar":"learn"},"commat_statement":{"id":"commat_statement","title":"@ statement","description":"The @ statement uses metacode.","sidebar":"learn"},"Comparison_operators":{"id":"Comparison_operators","title":"Comparison operators","description":"==, =, !=, `, =` operators create properties that implement comparison operations.","sidebar":"learn"},"Comparison_operators_=_etc":{"id":"Comparison_operators_=_etc","title":"Comparison operators (=, >, <, ...)","description":"Comparison operators create actions which return the result of the comparison operation. The values of the created properties belong to the built-in class BOOLEAN.","sidebar":"learn"},"Composition_JOIN":{"id":"Composition_JOIN","title":"Composition (JOIN)","description":"The composition operator allows you to use values of other properties as arguments for one (main) property.","sidebar":"learn"},"CONCAT_operator":{"id":"CONCAT_operator","title":"CONCAT operator","description":"The CONCAT operator creates a property that implements a string concatenation.","sidebar":"learn"},"Constant":{"id":"Constant","title":"Constant","description":"The constant operator is used to create properties without parameters which always return the same value. This value can be static objects of custom and built-in classes as well as the special NULL value.","sidebar":"learn"},"CONSTRAINT_statement":{"id":"CONSTRAINT_statement","title":"CONSTRAINT statement","description":"The CONSTRAINT statement creates a constraint.","sidebar":"learn"},"Constraints":{"id":"Constraints","title":"Constraints","description":"Constraints in the platform determine which values the data properties can have and which cannot. In general, a constraint is defined as a property which value should always be NULL.","sidebar":"learn"},"Custom_formula_FORMULA":{"id":"Custom_formula_FORMULA","title":"Custom formula (FORMULA)","description":"The custom formula operator allows you to create a property that calculates defined formula in SQL. You can specify different implementations of the formula for different SQL servers. The formula is defined as a string, within which the special character $ and the number of this parameter (starting from 1) are used to access the parameter. Accordingly, the number of parameters of the result property will be equal to the greatest of the numbers of the parameters used.","sidebar":"learn"},"Data_export_EXPORT":{"id":"Data_export_EXPORT","title":"Data export (EXPORT)","description":"The data export operator creates an action that reads values of the specified properties for all object collections where the value of the specified property (condition) is not NULL, and then saves these values to a file in a specified format.","sidebar":"learn"},"Data_import_IMPORT":{"id":"Data_import_IMPORT","title":"Data import (IMPORT)","description":"The data import operator creates an action which reads a file from the value of some property, then, depending on its format, defines the columns (fields) of data in this file, after which it writes the value of each column (field) to the corresponding property (parameter) - import assignment. The mapping of columns to properties can go in either column or name order.","sidebar":"learn"},"DATA_operator":{"id":"DATA_operator","title":"DATA operator","description":"The DATA operator creates a data property.","sidebar":"learn"},"Data_properties_DATA":{"id":"Data_properties_DATA","title":"Data properties (DATA)","description":"Data property is a property which value is stored in the database and may change through the execution of the corresponding action. Each parameter and the value of a data property must belong to a certain specified class. If a parameter does not belong to the specified class or is NULL, then the property value will return NULL.","sidebar":"learn"},"DELETE_operator":{"id":"DELETE_operator","title":"DELETE operator","description":"The DELETE operator creates an action that deletes objects.","sidebar":"learn"},"DESIGN_statement":{"id":"DESIGN_statement","title":"DESIGN statement","description":"The DESIGN statement changes form design.","sidebar":"learn"},"Development":{"id":"Development","title":"Development","description":"The development model includes the following concepts:","sidebar":"learn"},"Development_auto":{"id":"Development_auto","title":"For development","description":"On this page you can download installers that install everything needed for development in a single click. In addition to lsFusion, these installers also install OpenJDK, PostgreSQL, Tomcat, and IntelliJ IDEA Community Edition with the built-in lsFusion plugin. If any of these programs are already on your computer, you can exclude them during the installation process.","sidebar":"install"},"Development_manual":{"id":"Development_manual","title":"For development","description":"To install the application server, IDE, and client, Java version 8 or later must first be installed on the computer.","sidebar":"install"},"DIALOG_operator":{"id":"DIALOG_operator","title":"DIALOG operator","description":"The DIALOG operator creates an action that opens a form in an interactive view in dialog mode.","sidebar":"learn"},"Distribution_UNGROUP":{"id":"Distribution_UNGROUP","title":"Distribution (UNGROUP)","description":"The distribution operator creates a property, the grouping value of which using sum function will be equal to the value of the specified property (distributable). Accordingly, as for a group operator, for a distribution operator multiple properties (groups) must be set by which the grouping will take place.","sidebar":"learn"},"Domain_logic":{"id":"Domain_logic","title":"Domain logic","description":"Properties are the basic concept for business logic and are responsible for storing and calculating data.","sidebar":"learn"},"Element_identification":{"id":"Element_identification","title":"Element identification","description":"On the lsFusion platform, some elements of the system are named, meaning that they can be used by accessing them by name.","sidebar":"learn"},"EMAIL_operator":{"id":"EMAIL_operator","title":"EMAIL operator","description":"The EMAIL operator creates an action that sends email.","sidebar":"learn"},"Empty_statement":{"id":"Empty_statement","title":"Empty statement","description":"Empty statement - a special statement that consists of a single semicolon.","sidebar":"learn"},"Eval_EVAL":{"id":"Eval_EVAL","title":"Eval (EVAL)","description":"The eval operator creates an action that executes defined program code in the lsFusion language. Program code is defined as a property whose value should belong to the string class. This is implemented using an action which takes a line of code as an argument.","sidebar":"learn"},"EVAL_operator":{"id":"EVAL_operator","title":"EVAL operator","description":"The EVAL operator: creating an action that executes code in the lsFusion language.","sidebar":"learn"},"Event_block":{"id":"Event_block","title":"Event block","description":"The event block of the FORM statement - a set of constructions controlling events in an interactive form view.","sidebar":"learn"},"Event_description_block":{"id":"Event_description_block","title":"Event description block","description":"Event description block describes an event in different statements.","sidebar":"learn"},"Events":{"id":"Events","title":"Events","description":"Events are a mechanism that allows to execute certain actions at certain points in time (these actions shall be called event handlers).","sidebar":"learn"},"Examples":{"id":"Examples","title":"Examples","description":"Examples are intended to demonstrate the capabilities of the lsFusion platform.","sidebar":"learn"},"Exception_handling_TRY":{"id":"Exception_handling_TRY","title":"Exception handling (TRY)","description":"The exception handling operator enables you to execute an action and do the following if an error (exception) occurs:","sidebar":"learn"},"EXCLUSIVE_operator":{"id":"EXCLUSIVE_operator","title":"EXCLUSIVE operator","description":"The EXCLUSIVE operator creates a property that implements a selection of one of the values (polymorphic form).","sidebar":"learn"},"EXEC_operator":{"id":"EXEC_operator","title":"EXEC operator","description":"The EXEC operator creates an action that executes another action.","sidebar":"learn"},"Execution":{"id":"Execution","title":"Execution","description":"If the system is small and there is not much data in it, it usually works quite efficiently without any additional optimizations. But if the logic becomes more complex, and the amount of data increases significantly, it often makes sense to tell the platform how best to store and process all this data.","sidebar":"learn"},"Execution_auto":{"id":"Execution_auto","title":"For production","description":"Installation","sidebar":"install"},"Execution_manual":{"id":"Execution_manual","title":"For production","description":"To install the application server, web server and client, Java version 8 or later must first be installed on the computer.","sidebar":"install"},"Execution_order":{"id":"Execution_order","title":"Execution order","description":"The platform supports the following operators for managing the order in which actions are executed:","sidebar":"learn"},"Exit_RETURN":{"id":"Exit_RETURN","title":"Exit (RETURN)","description":"The exit operator creates an action that exits from the inmost action call. Control is passed to the first action following that call operator.","sidebar":"learn"},"EXPAND_operator":{"id":"EXPAND_operator","title":"EXPAND operator","description":"The EXPAND operator is the creation of an action, that implements the expansion of elements in the object tree.","sidebar":"learn"},"EXPORT_operator":{"id":"EXPORT_operator","title":"EXPORT operator","description":"The EXPORT operator: creates an action that exports specified properties to a file, or, in common case, that opens a form in a structured view.","sidebar":"learn"},"Expression":{"id":"Expression","title":"Expression","description":"An expression is a combination of property operators and parameters. When an expression is evaluated sequentially in priority order, all the operators are executed.","sidebar":"learn"},"EXTEND_CLASS_statement":{"id":"EXTEND_CLASS_statement","title":"EXTEND CLASS statement","description":"The EXTEND CLASS statement extends an existing class.","sidebar":"learn"},"EXTEND_FORM_statement":{"id":"EXTEND_FORM_statement","title":"EXTEND FORM statement","description":"The EXTEND FORM statement extends an existing form.","sidebar":"learn"},"Extensions":{"id":"Extensions","title":"Extensions","description":"Extension is a technique that allows a developer to extend the functionality of one module in another.","sidebar":"learn"},"EXTERNAL_operator":{"id":"EXTERNAL_operator","title":"EXTERNAL operator","description":"The EXTERNAL operator creates an action that implements accessing to an external system.","sidebar":"learn"},"Extremum_MAX_MIN":{"id":"Extremum_MAX_MIN","title":"Extremum (MAX, MIN)","description":"The extremum operator creates a property which calculates the maximum or minimum between several specified properties. If the value of any of these properties is NULL, this property is ignored. If the values of all properties are NULL, the result value is also NULL.","sidebar":"learn"},"File_operators":{"id":"File_operators","title":"File operators","description":"The platform supports the following file operators:","sidebar":"learn"},"Filter_FILTER":{"id":"Filter_FILTER","title":"Filter (FILTER)","description":"The filter operator creates a property that returns TRUE if the object collection matches the current filter of the specified object group, and NULL if it does not.","sidebar":"learn"},"Filters_and_sortings_block":{"id":"Filters_and_sortings_block","title":"Filter and sorting blocks","description":"The filter and order blocks of the FORM statement \u2013 adding filters and orderings to the form structure, as well as filter groups and user filters to the interactive form view.","sidebar":"learn"},"Focus_operators":{"id":"Focus_operators","title":"Focus operators","description":"This category includes operators responsible for managing component activity:","sidebar":"learn"},"FOR_operator":{"id":"FOR_operator","title":"FOR operator","description":"The FOR operator creates an action that implements loop.","sidebar":"learn"},"Form_design":{"id":"Form_design","title":"Form design","description":"The form design defines how a form is displayed in the interactive view.","sidebar":"learn"},"Form_events":{"id":"Form_events","title":"Form events","description":"While the application is running, there is a number of events for each form that occur as a result of certain user actions:","sidebar":"learn"},"Form_extension":{"id":"Form_extension","title":"Form extension","description":"The form extension technique allows the developer to extend the structure and design of a form created in another module.","sidebar":"learn"},"Form_operators":{"id":"Form_operators","title":"Form operators","description":"Form operators can be divided into several categories:","sidebar":"learn"},"FORM_statement":{"id":"FORM_statement","title":"FORM statement","description":"The FORM statement creates a form.","sidebar":"learn"},"Form_structure":{"id":"Form_structure","title":"Form structure","description":"The form structure is a complex of objects, properties, actions and relations between them.","sidebar":"learn"},"Form_views":{"id":"Form_views","title":"Form views","description":"A form view can be classified as follows:","sidebar":"learn"},"Forms":{"id":"Forms","title":"Forms","description":"Forms let you combine different types of information for one or more objects in a single interface. Logically, aform can be divided into two parts:","sidebar":"learn"},"FORMULA_operator":{"id":"FORMULA_operator","title":"FORMULA operator","description":"The FORMULA operator creates a property that implements a custom formula.","sidebar":"learn"},"GROUP_operator":{"id":"GROUP_operator","title":"GROUP operator","description":"The GROUP operator creates a property implementing grouping.","sidebar":"learn"},"GROUP_statement":{"id":"GROUP_statement","title":"GROUP statement","description":"The GROUP statement creates a new property group.","sidebar":"learn"},"Grouping_GROUP":{"id":"Grouping_GROUP","title":"Grouping (GROUP)","description":"The group operator creates a property that divides all object collections in the system into groups, and calculates an aggregating function for each group following specified order. Accordingly, the set for which this aggregating function is calculated is determined as all the object collections belonging to this group.","sidebar":"learn"},"Groups_of_properties_and_actions":{"id":"Groups_of_properties_and_actions","title":"Groups of properties and actions","description":"The behavior of properties and actions in the context of working with groups is absolutely identical, therefore, in the rest of this section, we will use only the term property (the behavior for actions is completely similar).","sidebar":"learn"},"How-to":{"id":"How-to","title":"How-to","description":"How to read these sections","sidebar":"learn"},"How-to_Access_to_internal_systems":{"id":"How-to_Access_to_internal_systems","title":"How-to: Access to internal systems","description":"How to read these sections","sidebar":"learn"},"How-to_Action_extension":{"id":"How-to_Action_extension","title":"How-to: Action extension","description":"We can use the following scheme to implement polymorphism:","sidebar":"learn"},"How-to_Actions":{"id":"How-to_Actions","title":"How-to: Actions","description":"How to read these sections","sidebar":"learn"},"How-to_Binding_properties":{"id":"How-to_Binding_properties","title":"How-to: Binding properties","description":"Example 1","sidebar":"learn"},"How-to_CASE_IF_OVERRIDE":{"id":"How-to_CASE_IF_OVERRIDE","title":"How-to: CASE/IF/OVERRIDE","description":"Example 1","sidebar":"learn"},"How-to_CHANGE":{"id":"How-to_CHANGE","title":"How-to: CHANGE","description":"Example 1","sidebar":"learn"},"How-to_Class_extension":{"id":"How-to_Class_extension","title":"How-to: Class extension","description":"The typical scheme for extracting relations between classes to a separate module is as follows:","sidebar":"learn"},"How-to_Computations":{"id":"How-to_Computations","title":"How-to: Computations","description":"How to read these sections","sidebar":"learn"},"How-to_Constraints":{"id":"How-to_Constraints","title":"How-to: Constraints","description":"Example 1","sidebar":"learn"},"How-to_CRUD":{"id":"How-to_CRUD","title":"How-to: CRUD","description":"Example 1","sidebar":"learn"},"How-to_Custom_components_objects":{"id":"How-to_Custom_components_objects","title":"How-to: Custom Components (objects)","description":"By default, each object on a form with GRID view is displayed on the form as a flat table with columns.","sidebar":"learn"},"How-to_Custom_components_properties":{"id":"How-to_Custom_components_properties","title":"How-to: Custom components (properties)","description":"For each property type, by default, a predefined visual component is used to display and edit the data.","sidebar":"learn"},"How-to_Data_entry":{"id":"How-to_Data_entry","title":"How-to: Data entry","description":"Example 1","sidebar":"learn"},"How-to_Data_export":{"id":"How-to_Data_export","title":"How-to: Data export","description":"Example 1","sidebar":"learn"},"How-to_Data_import":{"id":"How-to_Data_import","title":"How-to: Data import","description":"Example 1","sidebar":"learn"},"How-to_Declarative_logic":{"id":"How-to_Declarative_logic","title":"How-to: Declarative logic","description":"How to read these sections","sidebar":"learn"},"How-to_DELETE":{"id":"How-to_DELETE","title":"How-to: DELETE","description":"Example 1","sidebar":"learn"},"How-to_Design":{"id":"How-to_Design","title":"How-to: Design","description":"Example 1","sidebar":"learn"},"How-to_Documents_with_lines":{"id":"How-to_Documents_with_lines","title":"How-to: Documents with lines","description":"Example 1","sidebar":"learn"},"How-to_Events":{"id":"How-to_Events","title":"How-to: Events","description":"Example 1","sidebar":"learn"},"How-to_EXEC":{"id":"How-to_EXEC","title":"How-to: EXEC","description":"Example 1","sidebar":"learn"},"How-to_Explicit_typing":{"id":"How-to_Explicit_typing","title":"How-to: Explicit typing","description":"In certain situations, you may want to use the same name for different system properties or actions.","sidebar":"learn"},"How-to_Extensions":{"id":"How-to_Extensions","title":"How-to: Extensions","description":"Extensions are very important for providing the modularity and extensibility of applications.","sidebar":"learn"},"How-to_Filtering_and_ordering":{"id":"How-to_Filtering_and_ordering","title":"How-to: Filtering and ordering","description":"Example 1","sidebar":"learn"},"How-to_FOR":{"id":"How-to_FOR","title":"How-to: FOR","description":"Example 1","sidebar":"learn"},"How-to_Form_extension":{"id":"How-to_Form_extension","title":"How-to: Form extension","description":"Let\'s assume there is a module that describes the Sku form that is used to edit SKU values:","sidebar":"learn"},"How-to_FORMULA":{"id":"How-to_FORMULA","title":"How-to: FORMULA","description":"Example 1","sidebar":"learn"},"How-to_Frontend":{"id":"How-to_Frontend","title":"How-to: Frontend","description":"The easiest way to organize the interaction of a React application with an application based on lsFusion is communication via the HTTP protocol through the JSON API. To export a list of objects meeting a specified condition, it is most convenient to use the interface located at the eval/action Url. You can pass lsFusion program code to it in BODY, and it will then be executed. If you need to return data from your request, use the EXPORT operator. By default it returns data in JSON format, which is then easily processed using JavaScript.","sidebar":"learn"},"How-to_GROUP_CONCAT":{"id":"How-to_GROUP_CONCAT","title":"How-to: GROUP CONCAT","description":"Example 1","sidebar":"learn"},"How-to_GROUP_LAST":{"id":"How-to_GROUP_LAST","title":"How-to: GROUP LAST","description":"Example 1","sidebar":"learn"},"How-to_GROUP_MAX_MIN_AGGR":{"id":"How-to_GROUP_MAX_MIN_AGGR","title":"How-to: GROUP MAX/MIN/AGGR","description":"Example 1","sidebar":"learn"},"How-to_GROUP_SUM":{"id":"How-to_GROUP_SUM","title":"How-to: GROUP SUM","description":"Example 1","sidebar":"learn"},"How-to_GUI":{"id":"How-to_GUI","title":"How-to: GUI","description":"How to read these sections","sidebar":"learn"},"How-to_IF_CASE":{"id":"How-to_IF_CASE","title":"How-to: IF/CASE","description":"Example 1","sidebar":"learn"},"How-to_Imperative_logic":{"id":"How-to_Imperative_logic","title":"How-to: Imperative logic","description":"How to read these sections","sidebar":"learn"},"How-to_Inheritance_and_aggregation":{"id":"How-to_Inheritance_and_aggregation","title":"How-to: Inheritance and aggregation","description":"In order to demonstrate the principles of object inheritance and aggregation, let\'s implement the logic of creating batches based on receipts and production documents. Let\'s make it so that each new document with a Posted property will automatically generate exactly one new product batch.","sidebar":"learn"},"How-to_Integration":{"id":"How-to_Integration","title":"How-to: Integration","description":"How to read these sections","sidebar":"learn"},"How-to_Interaction_via_HTTP_protocol":{"id":"How-to_Interaction_via_HTTP_protocol","title":"How-to: Interaction via HTTP protocol","description":"Example 1","sidebar":"learn"},"How-to_Interactive_forms":{"id":"How-to_Interactive_forms","title":"How-to: Interactive forms","description":"How to read these sections","sidebar":"learn"},"How-to_INTERNAL":{"id":"How-to_INTERNAL","title":"How-to: INTERNAL","description":"Example 1","sidebar":"learn"},"How-to_Internationalization":{"id":"How-to_Internationalization","title":"How-to: Internationalization","description":"The system supports internationalization by passing to the client values localized according to the language chosen by the user. All values in braces are localized. Let\'s assume that we need to implement a simple form with a list of books and their prices that we can create/delete.","sidebar":"learn"},"How-to_Matrix":{"id":"How-to_Matrix","title":"How-to: Matrix","description":"Example 1","sidebar":"learn"},"How-to_Metaprogramming":{"id":"How-to_Metaprogramming","title":"How-to: Metaprogramming","description":"You may often need to write \\"similar\\" code for certain cases. The META statement exists for this purpose, and makes it possible to create a code template or metacode. It can contain parameters that will be replaced by certain values when this metacode is used. Such an approach is called metaprogramming.","sidebar":"learn"},"How-to_Namespaces":{"id":"How-to_Namespaces","title":"How-to: Namespaces","description":"Occasionally, you will find yourself in situations where you will need to use the same name for different system elements. For this purpose, you can assign them to different namespaces that are defined for a module using the NAMESPACE statement. By default, the namespace matches the name of the module.","sidebar":"learn"},"How-to_Navigator":{"id":"How-to_Navigator","title":"How-to: Navigator","description":"Example 1","sidebar":"learn"},"How-to_NEW":{"id":"How-to_NEW","title":"How-to: NEW","description":"Example 1","sidebar":"learn"},"How-to_NEWSESSION":{"id":"How-to_NEWSESSION","title":"How-to: NEWSESSION","description":"Example 1","sidebar":"learn"},"How-to_Numbering":{"id":"How-to_Numbering","title":"How-to: Numbering","description":"Let\'s suppose we have a set of books. For each of these books, we define a number as an integer.","sidebar":"learn"},"How-to_Overriding_values":{"id":"How-to_Overriding_values","title":"How-to: Overriding values","description":"Often there are tasks when it is necessary to give the user opportunity to enter the value of some attribute for some general object and then override it for some specific object.","sidebar":"learn"},"How-to_PARTITION":{"id":"How-to_PARTITION","title":"How-to: PARTITION","description":"Example 1","sidebar":"learn"},"How-to_Physical_model":{"id":"How-to_Physical_model","title":"How-to: Physical model","description":"By default, each class in the database creates a separate table that stores all those properties whose only parameter is an object of this class. The key in this table is a field that stores a unique object ID. For properties with several parameters, a table will be created with the IDs of parameter objects as keys.","sidebar":"learn"},"How-to_Property_extension":{"id":"How-to_Property_extension","title":"How-to: Property extension","description":"The classic approach for implementing polymorphism can look as follows:","sidebar":"learn"},"How-to_Registers":{"id":"How-to_Registers","title":"How-to: Registers","description":"Accumulation ledger","sidebar":"learn"},"How-to_Reports":{"id":"How-to_Reports","title":"How-to: Reports","description":"Example 1","sidebar":"learn"},"How-to_Searching_for_elements":{"id":"How-to_Searching_for_elements","title":"How-to: Searching for elements","description":"How to read these sections","sidebar":"learn"},"How-to_SEEK":{"id":"How-to_SEEK","title":"How-to: SEEK","description":"Example 1","sidebar":"learn"},"How-to_Table_status":{"id":"How-to_Table_status","title":"How-to: Table status","description":"Example 1","sidebar":"learn"},"How-to_Trees":{"id":"How-to_Trees","title":"How-to: Trees","description":"Example 1","sidebar":"learn"},"How-to_Use_Cases":{"id":"How-to_Use_Cases","title":"How-to: Use Cases","description":"How to read these sections","sidebar":"learn"},"How-to_Using_objects_as_templates":{"id":"How-to_Using_objects_as_templates","title":"How-to: Using objects as templates","description":"Example 1","sidebar":"learn"},"How-to_WHILE":{"id":"How-to_WHILE","title":"How-to: WHILE","description":"Example 1","sidebar":"learn"},"How-to_Working_with_documents":{"id":"How-to_Working_with_documents","title":"How-to: Working with documents","description":"Posting documents","sidebar":"learn"},"How-to_Working_with_external_formats":{"id":"How-to_Working_with_external_formats","title":"How-to: Working with external formats","description":"How to read these sections","sidebar":"learn"},"IDE":{"id":"IDE","title":"IDE","description":"Creating a new lsFusion project","sidebar":"learn"},"IDs":{"id":"IDs","title":"IDs","description":"|Name |Examples|Use|Description|Technical description|","sidebar":"learn"},"IF_..._THEN_action_operator":{"id":"IF_..._THEN_action_operator","title":"IF ... THEN operator","description":"The IF ... THEN operator creates an action that implements branching with one condition (single form).","sidebar":"learn"},"IF_..._THEN_operator":{"id":"IF_..._THEN_operator","title":"IF ... THEN operator","description":"The IF ... THEN operator creates a property that implements selection with one condition (single form).","sidebar":"learn"},"IF_operator":{"id":"IF_operator","title":"IF operator","description":"The IF operator - creating a property implementing selection of a value by condition (single form).","sidebar":"learn"},"IMPORT_operator":{"id":"IMPORT_operator","title":"IMPORT operator","description":"The IMPORT operator creates an action that imports data from a specified file into specified properties (parameters) or, in general, into a specified form.","sidebar":"learn"},"In_a_print_view_PRINT":{"id":"In_a_print_view_PRINT","title":"In a print view (PRINT)","description":"This operator creates an action that opens a form in the print view.","sidebar":"learn"},"In_a_structured_view_EXPORT_IMPORT":{"id":"In_a_structured_view_EXPORT_IMPORT","title":"In a structured view (EXPORT, IMPORT)","description":"This operator creates an action that opens a form in the structured view.","sidebar":"learn"},"In_an_interactive_view_SHOW_DIALOG":{"id":"In_an_interactive_view_SHOW_DIALOG","title":"In an interactive view (SHOW, DIALOG)","description":"This operator creates an action that opens a form in the interactive view.","sidebar":"learn"},"INDEX_statement":{"id":"INDEX_statement","title":"INDEX statement","description":"The INDEX statement creates a new index.","sidebar":"learn"},"Indexes":{"id":"Indexes","title":"Indexes","description":"Building an index by property allows storing all the values of this property in the database in an ordered form. Accordingly, the index is updated with every change of the indexed property value. Due to the index, if, for example, you filter by an indexed property, you can find the objects you need very quickly, rather than viewing all the objects that exist in the system.","sidebar":"learn"},"INPUT_operator":{"id":"INPUT_operator","title":"INPUT operator","description":"The INPUT operator creates an action that inputs a primitive.","sidebar":"learn"},"Install":{"id":"Install","title":"Install","description":"Install automatically","sidebar":"install"},"Integration":{"id":"Integration","title":"Integration","description":"Integration includes everything related to interaction of the lsFusion system with other systems. In terms of the direction of this interaction, integration can be divided into:","sidebar":"learn"},"Interactive_view":{"id":"Interactive_view","title":"Interactive view","description":"A form opened in interactive mode is a graphical component with a certain design in which the user can trigger various events and thereby navigate through system objects, view and change property values, execute actions, and so on. Developers can also use an additional set of operators with this view, making it possible to manage the open form.","sidebar":"learn"},"Internal_call_INTERNAL":{"id":"Internal_call_INTERNAL","title":"Internal call (INTERNAL)","description":"The internal call operator allows to create actions in programming languages other than the lsFusion language. The platform currently supports external actions only in the Java language.","sidebar":"learn"},"INTERNAL_operator":{"id":"INTERNAL_operator","title":"INTERNAL operator","description":"The INTERNAL operator creates an action that executes an internal call.","sidebar":"learn"},"Internationalization":{"id":"Internationalization","title":"Internationalization","description":"Internationalization consists of software development techniques that allow adapting the software to the linguistic and cultural particularities of different countries and regions.","sidebar":"learn"},"Interpreter":{"id":"Interpreter","title":"Interpreter","description":"(Under development)","sidebar":"learn"},"Interruption_BREAK":{"id":"Interruption_BREAK","title":"Interruption (BREAK)","description":"The interrupt operator creates an action that exits the most nested loop (normal or recursive) within which this action is located. Control is transferred to the first action following the loop. If the created action is not inside a loop, its behavior becomes similar to the action created by the exit operator.","sidebar":"learn"},"IS_AS_operators":{"id":"IS_AS_operators","title":"IS, AS operators","description":"IS, AS operators create an action that implements classification.","sidebar":"learn"},"JOIN_operator":{"id":"JOIN_operator","title":"JOIN operator","description":"The JOIN operator creates a property that implements a composition.","sidebar":"learn"},"Journals_and_logs":{"id":"Journals_and_logs","title":"Journals and logs","description":"Logs","sidebar":"learn"},"JSON_operator":{"id":"JSON_operator","title":"JSON operator","description":"The JSON operator is property that creates JSON from specified properties or, in common case, from form."},"Language":{"id":"Language","title":"Language","description":"lsFusion is a programming language that describes lsFusion modules.","sidebar":"learn"},"Launch_events":{"id":"Launch_events","title":"Launch events","description":"There are several predefined actions in the platform that are called when various components of the platform are launched:","sidebar":"learn"},"Launch_parameters":{"id":"Launch_parameters","title":"Launch parameters","description":"Application server (Server)","sidebar":"learn"},"Learn":{"id":"Learn","title":"Learn","description":"Overview","sidebar":"learn"},"Learning_materials":{"id":"Learning_materials","title":"Learning materials","description":"In addition to the documentation, the following materials can be used to explore the features of the lsFusion platform.","sidebar":"learn"},"LIKE_operator":{"id":"LIKE_operator","title":"LIKE operator","description":"The LIKE operator is the creation of a property that implements the operation of comparing a string with a pattern.","sidebar":"learn"},"Literals":{"id":"Literals","title":"Literals","description":"|Name|Example|Class|Description|Constraints|","sidebar":"learn"},"Logical_model":{"id":"Logical_model","title":"Logical model","description":"The logical model is traditionally divided into two parts:","sidebar":"learn"},"Logical_operators_AND_OR_NOT_XOR":{"id":"Logical_operators_AND_OR_NOT_XOR","title":"Logical operators (AND, OR, NOT, XOR)","description":"Logical operators create properties that consider their arguments as logical values of class BOOLEAN and whose return value is also a value of class BOOLEAN. If the value of an argument of an logical operator is not NULL, then the argument is treated as the value TRUE of class BOOLEAN, otherwise as NULL.","sidebar":"learn"},"Loop_FOR":{"id":"Loop_FOR","title":"Loop (FOR)","description":"The loop operator creates an action that iterates all object collections for which the defined condition is met, and executes a defined action for each such object collection (let\'s call it the main one). You can also define an alternative action that will be executed only if no object collections have been found that meet the condition. The condition itself is defined as a certain property. Let\'s say that the condition is satisfied if the value of this property is not NULL.","sidebar":"learn"},"lt-_WHEN_statement":{"id":"lt-_WHEN_statement","title":"<- WHEN statement","description":"The <- WHEN statement creates a calculated event.","sidebar":"learn"},"Management":{"id":"Management","title":"Management","description":"System parameters","sidebar":"learn"},"Manual_installation":{"id":"Manual_installation","title":"Install manually","description":"For development","sidebar":"install"},"Materializations":{"id":"Materializations","title":"Materializations","description":"Almost any aggregated property in the platform can be materialized. In this case, the property will be stored in the database permanently and automatically updated when the data on which this property depends is changed. At the same time, when reading the values of the materialized property, these values will be read directly from the database, as if the property was data (and not calculated every time). Accordingly, all data properties are materialized by definition.","sidebar":"learn"},"Materials_management":{"id":"Materials_management","title":"Materials management","description":"Description of the \\"Materials management\\" task","sidebar":"learn"},"MAX_operator":{"id":"MAX_operator","title":"MAX operator","description":"The MAX operator creates a property that implements finding maximum value.","sidebar":"learn"},"MESSAGE_operator":{"id":"MESSAGE_operator","title":"MESSAGE operator","description":"The MESSAGE operator creates an action that shows the user a message.","sidebar":"learn"},"META_statement":{"id":"META_statement","title":"META statement","description":"The META statement creates a new metacode.","sidebar":"learn"},"Metaprogramming":{"id":"Metaprogramming","title":"Metaprogramming","description":"Metaprogramming is a type of programming associated with writing software code that results in the generation of more software code. Metaprogramming is used for code reusability and to speed up development.","sidebar":"learn"},"Migration":{"id":"Migration","title":"Migration","description":"An lsFusion-based information system uses a relational database management system for permanent data storage. It should be remembered that after certain changes to the system logic, the platform is unable to determine how the data should be migrated. In these cases, the developer must explicitly define the migration method by creating the special migration file migration.script, which should be in the CLASSPATH of the application server.","sidebar":"learn"},"MIN_operator":{"id":"MIN_operator","title":"MIN operator","description":"The MIN operator creates a property that implements finding the minimum value.","sidebar":"learn"},"Modularity":{"id":"Modularity","title":"Modularity","description":"Modularity is a key mechanism for providing extensibility, reusability, and effective interaction among the development team.","sidebar":"learn"},"Module_header":{"id":"Module_header","title":"Module header","description":"Each module begins with a header.","sidebar":"learn"},"Modules":{"id":"Modules","title":"Modules","description":"A module is a functionally complete part of a project. A module consists of declarations of properties, actions, events, constraints, and other system elements.","sidebar":"learn"},"MULTI_action_operator":{"id":"MULTI_action_operator","title":"MULTI operator","description":"The MULTI operator creates an action that implements branching (polymorphic form).","sidebar":"learn"},"MULTI_operator":{"id":"MULTI_operator","title":"MULTI operator","description":"The MULTI operator creates a property that implements selection of one of the values (polymorphic form).","sidebar":"learn"},"Naming":{"id":"Naming","title":"Naming","description":"Each system element may have a *name* which can be used to access the element.","sidebar":"learn"},"Navigator":{"id":"Navigator","title":"Navigator","description":"Navigator is a hierarchical structure (tree) consisting of navigator elements. There are three types of navigator elements:","sidebar":"learn"},"Navigator_design":{"id":"Navigator_design","title":"Navigator design","description":"Navigator design determines how the navigator is displayed to the user on the screen of his device (we will call the screen space on which the navigator is displayed the desktop).","sidebar":"learn"},"NAVIGATOR_statement":{"id":"NAVIGATOR_statement","title":"NAVIGATOR statement","description":"The NAVIGATOR statement is used to modify the navigator.","sidebar":"learn"},"NESTEDSESSION_operator":{"id":"NESTEDSESSION_operator","title":"NESTEDSESSION operator","description":"The NESTEDSESSION operator creates an action that executes the other action in a nested session.","sidebar":"learn"},"New_object_NEW":{"id":"New_object_NEW","title":"New object (NEW)","description":"The new object operator creates an action that creates objects of a specified custom class for object collections where the value of some property (condition) is not NULL. The condition can be omitted, in which case it is considered to be equal to TRUE.","sidebar":"learn"},"NEW_operator":{"id":"NEW_operator","title":"NEW operator","description":"The NEW operator creates an action that creates objects of the specified class.","sidebar":"learn"},"New_session_NEWSESSION_NESTEDSESSION":{"id":"New_session_NEWSESSION_NESTEDSESSION","title":"New session (NEWSESSION, NESTEDSESSION)","description":"The new session operator allows you to execute an action in a session different from the current one.","sidebar":"learn"},"New_threads_NEWTHREAD_NEWEXECUTOR":{"id":"New_threads_NEWTHREAD_NEWEXECUTOR","title":"New threads (NEWTHREAD, NEWEXECUTOR)","description":"The new thread operator allows you to execute an action in a thread other than the current one.","sidebar":"learn"},"NEWEXECUTOR_operator":{"id":"NEWEXECUTOR_operator","title":"NEWEXECUTOR operator","description":"The NEWEXECUTOR operator is the creation of an action that allows the execution of other actions in a new thread pool.","sidebar":"learn"},"NEWSESSION_operator":{"id":"NEWSESSION_operator","title":"NEWSESSION operator","description":"The NEWSESSION operator creates an action that executes the other action in a new session.","sidebar":"learn"},"NEWTHREAD_operator":{"id":"NEWTHREAD_operator","title":"NEWTHREAD operator","description":"The NEWTHREAD operator creates an action that executes another action in a new thread.","sidebar":"learn"},"Object_blocks":{"id":"Object_blocks","title":"Object blocks","description":"Object blocks of the FORM statement - adding object groups to the form structure, and object trees to the interactive form view.","sidebar":"learn"},"Object_group_operator":{"id":"Object_group_operator","title":"Object group operator","description":"Object group operators are used for creating properties working with the current state of the object group on the form.","sidebar":"learn"},"Object_group_operators":{"id":"Object_group_operators","title":"Object group operators","description":"Object group operators include the following operators:","sidebar":"learn"},"Object_tree_visibility_EXPAND_COLLAPSE":{"id":"Object_tree_visibility_EXPAND_COLLAPSE","title":"Object tree visibility (EXPAND, COLLAPSE)","description":"Object tree *expansion* and *collapse* operators provide control over the visibility of elements within a tree displayed on a form. As input to these operators, the object group to which the operation is applied is passed. It is also specified over which tree elements (each corresponding to a specific object collection in the mentioned group) the operation needs to be performed:","sidebar":"learn"},"ON_statement":{"id":"ON_statement","title":"ON statement","description":"The ON statement adds an event handler.","sidebar":"learn"},"Online_demo":{"id":"Online_demo","title":"Online demo","description":"All demos support the following browsers: Chrome (recommended), Safari, Firefox, Opera, and Internet Explorer.","sidebar":"learn"},"Open_form":{"id":"Open_form","title":"Open form","description":"The open form operator creates an action that opens the specified form.","sidebar":"learn"},"Operations_with_primitives":{"id":"Operations_with_primitives","title":"Operations with primitives","description":"\u041eperations with primitives include operators for working with properties which values belong to the built-in classes. The platform supports the following operators:","sidebar":"learn"},"Operator_priority":{"id":"Operator_priority","title":"Operator priority","description":"When evaluating an expression, operators are evaluated in a specific order depending on operator priority. The higher the operator\u2019s priority, the earlier it will be executed. The table below lists the priorities of all operators in descending order.","sidebar":"learn"},"Order_ORDER":{"id":"Order_ORDER","title":"Order (ORDER)","description":"The order operator creates a property that returns the sequence number of an object collection in the specified group of objects, in accordance with the current order of this group.","sidebar":"learn"},"OVERRIDE_operator":{"id":"OVERRIDE_operator","title":"OVERRIDE operator","description":"The OVERRIDE operator creates a property that implements the selection of one of the values (polymorphic form).","sidebar":"learn"},"Paradigm":{"id":"Paradigm","title":"Paradigm","description":"The paradigm can be divided into two parts:","sidebar":"learn"},"PARTITION_operator":{"id":"PARTITION_operator","title":"PARTITION operator","description":"The PARTITION operator creates a property that implements partition/order or simple distribution.","sidebar":"learn"},"Partitioning_sorting_PARTITION_..._ORDER":{"id":"Partitioning_sorting_PARTITION_..._ORDER","title":"Partitioning / sorting (PARTITION ... ORDER)","description":"The partition/order operator creates a property that partitions all objects collections in the system into groups, and using the specified order calculates an aggregate function for each objects collection. Accordingly, the set on which this aggregating function is calculated is determined as following: all object collections of the group of this object collection, and the order of which is less than or equal to the order of this object collection.","sidebar":"learn"},"Physical_model":{"id":"Physical_model","title":"Physical model","description":"The physical model consists of three parts:","sidebar":"learn"},"PREV_operator":{"id":"PREV_operator","title":"PREV operator","description":"The PREV operator creates a property using a previous value operator.","sidebar":"learn"},"Previous_value_PREV":{"id":"Previous_value_PREV","title":"Previous value (PREV)","description":"The previous value operator creates a property that returns the value of the specified property at the beginning of the session (that is, the current value in the database ignoring the session changes).","sidebar":"learn"},"Primitive_input_INPUT":{"id":"Primitive_input_INPUT","title":"Primitive input (INPUT)","description":"The primitive input operator creates an action that requests the client to input a value of a builtin class. The user can cancel the input, for example by pressing the Esc key on the keyboard.","sidebar":"learn"},"PRINT_operator":{"id":"PRINT_operator","title":"PRINT operator","description":"The PRINT operator creates an action that opens a form in print view.","sidebar":"learn"},"Print_view":{"id":"Print_view","title":"Print view","description":"Print view of the form consists of a set of templates (reports). When data is substituted in these templates, a document is formed in graphic (with pixel positioning) or pseudographic (with cell positioning) format. This document is displayed to the user using a special graphic component, inside which the user can navigate through pages, zoom in/out within pages and print the contents of the component or export it to various formats (for example, PDF or Excel). If necessary, it is possible to skip the display of the component to the user and send the document for printing or save it into a selected file in the specified format.","sidebar":"learn"},"Process_monitor":{"id":"Process_monitor","title":"Process monitor","description":"(Under development)","sidebar":"learn"},"Profiler":{"id":"Profiler","title":"Profiler","description":"(Under development)","sidebar":"learn"},"Projects":{"id":"Projects","title":"Projects","description":"Project is a collection of modules and additional information (pictures, report design files, etc.) that fully describe the functionality of the information system being created.","sidebar":"learn"},"Properties":{"id":"Properties","title":"Properties","description":"A property is an element of the system that takes a set of objects (parameters) and returns exactly one object (the return value).","sidebar":"learn"},"Properties_and_actions_block":{"id":"Properties_and_actions_block","title":"Properties and actions block","description":"The property and action block of the FORM statement adds properties and actions to the form structure.","sidebar":"learn"},"Property_change_CHANGE":{"id":"Property_change_CHANGE","title":"Property change (CHANGE)","description":"The property change operator allows you to change the values of one property (write) to the value of another property (read) for all object collections for which the value of a third property (condition) is not NULL. The condition can be omitted (in which case it is considered to be equal to TRUE).","sidebar":"learn"},"Property_extension":{"id":"Property_extension","title":"Property extension","description":"The properties extension technique allows the developer to declare an abstract action in one module and define its implementation in other modules. This technique is essentially a \\"postponed definition\\" of a selection operator, where the operator\u2019s title is defined when the property is declared, and as new functionality (of classes or static objects) is added, selection options are added to the system. Furthermore, variants of selection (if it is not mutually exclusive) can be added both to the beginning and to the end of the abstract property created.","sidebar":"learn"},"Property_operators":{"id":"Property_operators","title":"Property operators","description":"Property operator is a syntax construct that describes an operator creating a property.","sidebar":"learn"},"Property_operators_paradigm":{"id":"Property_operators_paradigm","title":"Operators","description":"The platform currently supports the following property creation operators:","sidebar":"learn"},"Property_options":{"id":"Property_options","title":"Property options","description":"When a property is declared in the = statement a set of property options can be specified at the end of the declaration","sidebar":"learn"},"Property_signature_CLASS":{"id":"Property_signature_CLASS","title":"Signature matching (ISCLASS)","description":"The signature matching operator creates a property that determines, from a class perspective, whether the property specified in the operator can have a non-NULL value for the given arguments. In fact, this operator infers the possible classes of a given property from its semantics, and then, using logical operators and the classification operator, creates the required property.","sidebar":"learn"},"Read_file_READ":{"id":"Read_file_READ","title":"Read file (READ)","description":"The read file operator creates an action that reads a file from a defined source and writes this file to the specified local data property without parameters.","sidebar":"learn"},"READ_operator":{"id":"READ_operator","title":"READ operator","description":"The READ operator creates an action that reads a file to a property from an external resource.","sidebar":"learn"},"RECURSION_operator":{"id":"RECURSION_operator","title":"RECURSION operator","description":"The RECURSION operator creates a property that implements recursion.","sidebar":"learn"},"Recursion_RECURSION":{"id":"Recursion_RECURSION","title":"Recursion (RECURSION)","description":"The recursion operator is an operator that creates a property which sequentially performs two operations:","sidebar":"learn"},"Recursive_loop_WHILE":{"id":"Recursive_loop_WHILE","title":"Recursive loop (WHILE)","description":"The recursive loop operator is similar to a regular loop operator, with the only difference being that iteration is performed recursively until at a certain point the set of objects collections satisfying the condition becomes empty. As a result, there is no sense in defining alternative actions with this operator.","sidebar":"learn"},"Report_design":{"id":"Report_design","title":"Report design","description":"For each report you need to specify a special file (template) which will be used to build the result document. The name of the template for a specific report is `. An empty object group is considered to have no name, so if the first object group is empty, the name of the template is simply equal to the name of the form (without the _` postfix).","sidebar":"learn"},"REQUEST_operator":{"id":"REQUEST_operator","title":"REQUEST operator","description":"The REQUEST operator creates an action that requests a value.","sidebar":"learn"},"RETURN_operator":{"id":"RETURN_operator","title":"RETURN operator","description":"The RETURN operator creates an action that implements exit from an action created by the EXEC operator.","sidebar":"learn"},"ROUND_operator":{"id":"ROUND_operator","title":"ROUND operator","description":"ROUND operator creates a property that implements the rounding operation.","sidebar":"learn"},"Rounding_operator_ROUND":{"id":"Rounding_operator_ROUND","title":"Rounding operator (ROUND)","description":"The rounding operator creates a property whose value is the result of rounding a number to the specified number of digits. The arguments of this operator must be properties that determine the number and the rounding precision. Negative precision values indicate the number of least significant digits to be rounded in the integer part of the number, allowing you to round the number to tens, hundreds, etc.","sidebar":"learn"},"Scheduler":{"id":"Scheduler","title":"Scheduler","description":"The scheduler is designed to automatically execute certain tasks with specified frequency.","sidebar":"learn"},"Score_table":{"id":"Score_table","title":"Score table","description":"\\"Score table\\" task description","sidebar":"learn"},"Search_":{"id":"Search_","title":"Search","description":"Each element in the system contains certain information that allows it to be uniquely identified among other elements of the system. However, providing all the information about the element in each place it is used is rather cumbersome; so the platform has a special search algorithm, which allows you to find the desired element with only part of the information about it (for example, only a short name and the module which uses the item you are searching for).","sidebar":"learn"},"Search_SEEK":{"id":"Search_SEEK","title":"Search (SEEK)","description":"Search operator tries to make the specified object collection current for the specified form object group. The objects from the specified object collection shall be called seek objects.","sidebar":"learn"},"Security_policy":{"id":"Security_policy","title":"Security policy","description":"Customizing user roles","sidebar":"learn"},"SEEK_operator":{"id":"SEEK_operator","title":"SEEK operator","description":"The SEEK operator creates an action that seeks specified objects on a form.","sidebar":"learn"},"Selection_CASE_IF_MULTI_OVERRIDE_EXCLUSIVE":{"id":"Selection_CASE_IF_MULTI_OVERRIDE_EXCLUSIVE","title":"Selection (CASE, IF, MULTI, OVERRIDE, EXCLUSIVE)","description":"The selection operator creates a property that determines for a set of conditions which condition is met, and returns the value of the result corresponding to that condition. If none of the conditions is met, then the value of the created property will be NULL.","sidebar":"learn"},"Send_mail_EMAIL":{"id":"Send_mail_EMAIL","title":"Send mail (EMAIL)","description":"The send mail operator creates an action that sends an email to the specified email addresses. As with any email, you can define the sender, recipient, body text, attachment files with specified names and other parameters.","sidebar":"learn"},"Sequence":{"id":"Sequence","title":"Sequence ({...})","description":"To create an action that performs a sequence of other actions, the {...} operator is used - a block enclosed by curly brackets. The body of this block must contain a sequence of action operators and local property declarations.","sidebar":"learn"},"Session_management":{"id":"Session_management","title":"Session management","description":"The system has the following operators for working with sessions:","sidebar":"learn"},"Set_operations":{"id":"Set_operations","title":"Set operations","description":"One of the key features of the platform is the ability to execute certain operations for all object collections for which the values of one or more properties are not NULL. In the property logic such an operation is the calculation of various aggregate functions.","sidebar":"learn"},"Show_message_MESSAGE_ASK":{"id":"Show_message_MESSAGE_ASK","title":"Show message (MESSAGE, ASK)","description":"The show message operators create actions that show a text message to the user. The message is defined as a property whose value will be used as the message content. This message can be displayed either using a dialog box or in the System.log system window.","sidebar":"learn"},"SHOW_operator":{"id":"SHOW_operator","title":"SHOW operator","description":"The SHOW operator creates an action that opens a form in interactive view.","sidebar":"learn"},"Simple_constraints":{"id":"Simple_constraints","title":"Simple constraints","description":"The platform currently supports four types of simple constraints: consequence, exception, equality, and definiteness. For all simple constraints, an automatic resolution mechanism is supported. When this is enabled, instead of throwing an error the platform itself restores system integrity.","sidebar":"learn"},"Simple_event":{"id":"Simple_event","title":"Simple event","description":"Simple event - an event that occurs when the value of the specified property (which shall be called an event condition) changes to non-NULL. This event is a kind of extension of a basic event (adding an additional condition), which means that all the same parameters must be set as for an basic event, in particular:","sidebar":"learn"},"State_change":{"id":"State_change","title":"State change","description":"System state change operators include the following.","sidebar":"learn"},"Statements":{"id":"Statements","title":"Statements","description":"The code of any module in lsFusion consists of a sequence of statements.","sidebar":"learn"},"Static_objects":{"id":"Static_objects","title":"Static objects","description":"Static (or built-in) objects are objects that are defined by the developer and are automatically created on system startup (if they are not present in the system at launch time). Also, such objects are prohibited from being deleted.","sidebar":"learn"},"Static_view":{"id":"Static_view","title":"Static view","description":"In static view, all form data is read at the time the form is opened, after which the obtained data is converted:","sidebar":"learn"},"String_operators_+_CONCAT_SUBSTRING":{"id":"String_operators_+_CONCAT_SUBSTRING","title":"String operators (+, CONCAT, SUBSTRING)","description":"String operators are operators which parameters and result are the properties which values are instances of the string classes. The platform currently supports the following string operators:","sidebar":"learn"},"STRUCT_operator":{"id":"STRUCT_operator","title":"STRUCT operator","description":"The STRUCT operator creates a property that creates a structure.","sidebar":"learn"},"Structure_operators_STRUCT":{"id":"Structure_operators_STRUCT","title":"Structure operators (STRUCT, [])","description":"The term structure is used in the platform to refer to the classes which objects consist of a collection of other objects in a fixed order. The platform supports two operators for working with structures:","sidebar":"learn"},"Structured_view":{"id":"Structured_view","title":"Structured view","description":"All structured views (formats) can be divided into two types:","sidebar":"learn"},"System_parameters":{"id":"System_parameters","title":"System parameters","description":"Launch parameters","sidebar":"learn"},"TABLE_statement":{"id":"TABLE_statement","title":"TABLE statement","description":"The TABLE statement creates an new table.","sidebar":"learn"},"Tables":{"id":"Tables","title":"Tables","description":"For storing and calculating values of the properties the lsFusion platform uses a relational database. All data properties, as well as all calculated properties marked as materialized, are stored in the fields of the tables in the database. For each table, there is a set of key fields with the names key0, key1, ..., keyN, where the object IDs are stored. All other fields store property values in such a way that in the corresponding field of each row there is a property value for the objects with IDs from the key fields. Objects of built-in classes can also be used as table keys.","sidebar":"learn"},"Tokens":{"id":"Tokens","title":"Tokens","description":"A token in a programming language is the smallest significant sequence of characters. In the lsFusion language tokens are keywords, IDs, literals and special character sequences.","sidebar":"learn"},"TRY_operator":{"id":"TRY_operator","title":"TRY operator","description":"The TRY operator creates an action that executes another action with exception handling.","sidebar":"learn"},"Type_conversion":{"id":"Type_conversion","title":"Type conversion","description":"The type conversion operator creates a property that converts an object of one built-in class to an object of another built-in class. If type conversion is not possible, the property value will be NULL.","sidebar":"learn"},"Type_conversion_operator":{"id":"Type_conversion_operator","title":"Type conversion operator","description":"The type conversion operator creates a property that performs type conversion.","sidebar":"learn"},"UNGROUP_operator":{"id":"UNGROUP_operator","title":"UNGROUP operator","description":"At the moment, the UNGROUP operator is not implemented.","sidebar":"learn"},"User_classes":{"id":"User_classes","title":"User classes","description":"Classes that a developer can create and the instances of which a user can create are called custom classes.","sidebar":"learn"},"User_interface":{"id":"User_interface","title":"User interface","description":"(Under development)","sidebar":"learn"},"User_IS_interaction":{"id":"User_IS_interaction","title":"User/IS interaction","description":"This category includes operators for interacting with the user and with other information systems:","sidebar":"learn"},"Value_input":{"id":"Value_input","title":"Value input","description":"This category includes operators responsible for inputting a value:","sidebar":"learn"},"Value_request_REQUEST":{"id":"Value_request_REQUEST","title":"Value request (REQUEST)","description":"The value request operator creates an action in which requesting value(s) is separated from directly processing the value(s). Accordingly, this operator allows not to perform a value request if its result is known in advance in the context of the call (the value of the System.requestPushed property is equal to TRUE). This, in turn, automatically gives you the following capabilities in various use cases:","sidebar":"learn"},"View_logic":{"id":"View_logic","title":"View logic","description":"The key element of the view logic is the form. Forms are used in the platform to organize the input and output of information into the system (from the system).","sidebar":"learn"},"View_VIEW":{"id":"View_VIEW","title":"View (VIEW)","description":"The view operator creates a property that returns TRUE if the object collection is visible to the user in the specified object group, and NULL otherwise.","sidebar":"learn"},"WHEN_statement":{"id":"WHEN_statement","title":"WHEN statement","description":"The WHEN statement adds a simple event handler.","sidebar":"learn"},"WHILE_operator":{"id":"WHILE_operator","title":"WHILE operator","description":"The WHILE operator creates an action that implements a recursive loop.","sidebar":"learn"},"WINDOW_statement":{"id":"WINDOW_statement","title":"WINDOW statement","description":"The WINDOW statement creates a new window.","sidebar":"learn"},"Working_parameters":{"id":"Working_parameters","title":"Working parameters","description":"The platform working parameters can be set in one of the following ways (in the order of their priorities, lower priority at the bottom):","sidebar":"learn"},"Write_file_WRITE":{"id":"Write_file_WRITE","title":"Write file (WRITE)","description":"The write file operator creates an action which reads a file from the value of some property and saves it to the defined source.","sidebar":"learn"},"WRITE_operator":{"id":"WRITE_operator","title":"WRITE operator","description":"The WRITE operator creates an action that writes a file from a property to an external resource.","sidebar":"learn"}}}')}}]); \ No newline at end of file diff --git a/assets/js/935f2afb.a61add9f.js b/assets/js/935f2afb.dd0a4b70.js similarity index 80% rename from assets/js/935f2afb.a61add9f.js rename to assets/js/935f2afb.dd0a4b70.js index 202a08c5250..1349c19c4be 100644 --- a/assets/js/935f2afb.a61add9f.js +++ b/assets/js/935f2afb.dd0a4b70.js @@ -1 +1 @@ -"use strict";(self.webpackChunkls_fusion_docs=self.webpackChunkls_fusion_docs||[]).push([[98581],{35610:e=>{e.exports=JSON.parse('{"pluginId":"default","version":"current","label":"6.x","banner":"unreleased","badge":true,"noIndex":false,"className":"docs-version-current","isLast":false,"docsSidebars":{"install":[{"type":"link","label":"Overview","href":"/next/Install","docId":"Install","unlisted":false},{"collapsed":false,"type":"category","label":"Automatic installation","items":[{"type":"link","label":"For development","href":"/next/Development_auto","docId":"Development_auto","unlisted":false},{"type":"link","label":"For production","href":"/next/Execution_auto","docId":"Execution_auto","unlisted":false}],"collapsible":true,"href":"/next/Automatic_installation"},{"collapsed":false,"type":"category","label":"Manual installation","items":[{"type":"link","label":"For development","href":"/next/Development_manual","docId":"Development_manual","unlisted":false},{"type":"link","label":"For production","href":"/next/Execution_manual","docId":"Execution_manual","unlisted":false}],"collapsible":true,"href":"/next/Manual_installation"}],"learn":[{"type":"link","label":"Overview","href":"/next/","docId":"Learn","unlisted":false},{"collapsed":false,"type":"category","label":"Paradigm","items":[{"type":"category","label":"Logical model","items":[{"type":"category","label":"Domain logic","items":[{"type":"category","label":"Properties","items":[{"type":"category","label":"Operators","items":[{"type":"link","label":"Data properties (DATA)","href":"/next/Data_properties_DATA","docId":"Data_properties_DATA","unlisted":false},{"type":"link","label":"Composition (JOIN)","href":"/next/Composition_JOIN","docId":"Composition_JOIN","unlisted":false},{"type":"link","label":"Constant","href":"/next/Constant","docId":"Constant","unlisted":false},{"type":"category","label":"Operations with primitives","items":[{"type":"link","label":"Arithmetic operators (+, -, *, ...)","href":"/next/Arithmetic_operators_+_-_etc","docId":"Arithmetic_operators_+_-_etc","unlisted":false},{"type":"link","label":"Logical operators (AND, OR, NOT, XOR)","href":"/next/Logical_operators_AND_OR_NOT_XOR","docId":"Logical_operators_AND_OR_NOT_XOR","unlisted":false},{"type":"link","label":"Comparison operators (=, >, <, ...)","href":"/next/Comparison_operators_=_etc","docId":"Comparison_operators_=_etc","unlisted":false},{"type":"link","label":"Rounding operator (ROUND)","href":"/next/Rounding_operator_ROUND","docId":"Rounding_operator_ROUND","unlisted":false},{"type":"link","label":"Extremum (MAX, MIN)","href":"/next/Extremum_MAX_MIN","docId":"Extremum_MAX_MIN","unlisted":false},{"type":"link","label":"String operators (+, CONCAT, SUBSTRING)","href":"/next/String_operators_+_CONCAT_SUBSTRING","docId":"String_operators_+_CONCAT_SUBSTRING","unlisted":false},{"type":"link","label":"Structure operators (STRUCT, [])","href":"/next/Structure_operators_STRUCT","docId":"Structure_operators_STRUCT","unlisted":false},{"type":"link","label":"Type conversion","href":"/next/Type_conversion","docId":"Type_conversion","unlisted":false}],"collapsed":true,"collapsible":true,"href":"/next/Operations_with_primitives"},{"type":"category","label":"Class operators","items":[{"type":"link","label":"Classification (IS/AS)","href":"/next/Classification_IS_AS","docId":"Classification_IS_AS","unlisted":false},{"type":"link","label":"Signature matching (ISCLASS)","href":"/next/Property_signature_CLASS","docId":"Property_signature_CLASS","unlisted":false}],"collapsed":true,"collapsible":true,"href":"/next/Class_operators"},{"type":"link","label":"Selection (CASE, IF, MULTI, OVERRIDE, EXCLUSIVE)","href":"/next/Selection_CASE_IF_MULTI_OVERRIDE_EXCLUSIVE","docId":"Selection_CASE_IF_MULTI_OVERRIDE_EXCLUSIVE","unlisted":false},{"type":"category","label":"Set operations","items":[{"type":"link","label":"Grouping (GROUP)","href":"/next/Grouping_GROUP","docId":"Grouping_GROUP","unlisted":false},{"type":"link","label":"Partitioning / sorting (PARTITION ... ORDER)","href":"/next/Partitioning_sorting_PARTITION_..._ORDER","docId":"Partitioning_sorting_PARTITION_..._ORDER","unlisted":false},{"type":"link","label":"Recursion (RECURSION)","href":"/next/Recursion_RECURSION","docId":"Recursion_RECURSION","unlisted":false},{"type":"link","label":"Distribution (UNGROUP)","href":"/next/Distribution_UNGROUP","docId":"Distribution_UNGROUP","unlisted":false}],"collapsed":true,"collapsible":true,"href":"/next/Set_operations"}],"collapsed":true,"collapsible":true,"href":"/next/Property_operators_paradigm"}],"collapsed":true,"collapsible":true,"href":"/next/Properties"},{"type":"category","label":"Actions","items":[{"type":"link","label":"Change sessions","href":"/next/Change_sessions","docId":"Change_sessions","unlisted":false},{"type":"category","label":"\u041eperators","items":[{"type":"category","label":"Execution order","items":[{"type":"link","label":"Sequence ({...})","href":"/next/Sequence","docId":"Sequence","unlisted":false},{"type":"link","label":"Call (EXEC)","href":"/next/Call_EXEC","docId":"Call_EXEC","unlisted":false},{"type":"link","label":"Loop (FOR)","href":"/next/Loop_FOR","docId":"Loop_FOR","unlisted":false},{"type":"link","label":"Branching (CASE, IF, MULTI)","href":"/next/Branching_CASE_IF_MULTI","docId":"Branching_CASE_IF_MULTI","unlisted":false},{"type":"link","label":"Recursive loop (WHILE)","href":"/next/Recursive_loop_WHILE","docId":"Recursive_loop_WHILE","unlisted":false},{"type":"link","label":"Interruption (BREAK)","href":"/next/Interruption_BREAK","docId":"Interruption_BREAK","unlisted":false},{"type":"link","label":"Exit (RETURN)","href":"/next/Exit_RETURN","docId":"Exit_RETURN","unlisted":false},{"type":"link","label":"New threads (NEWTHREAD, NEWEXECUTOR)","href":"/next/New_threads_NEWTHREAD_NEWEXECUTOR","docId":"New_threads_NEWTHREAD_NEWEXECUTOR","unlisted":false},{"type":"link","label":"Exception handling (TRY)","href":"/next/Exception_handling_TRY","docId":"Exception_handling_TRY","unlisted":false}],"collapsed":true,"collapsible":true,"href":"/next/Execution_order"},{"type":"category","label":"State change","items":[{"type":"link","label":"Property change (CHANGE)","href":"/next/Property_change_CHANGE","docId":"Property_change_CHANGE","unlisted":false},{"type":"link","label":"New object (NEW)","href":"/next/New_object_NEW","docId":"New_object_NEW","unlisted":false},{"type":"link","label":"Class change (CHANGECLASS, DELETE)","href":"/next/Class_change_CHANGECLASS_DELETE","docId":"Class_change_CHANGECLASS_DELETE","unlisted":false}],"collapsed":true,"collapsible":true,"href":"/next/State_change"},{"type":"category","label":"Session management","items":[{"type":"link","label":"Apply changes (APPLY)","href":"/next/Apply_changes_APPLY","docId":"Apply_changes_APPLY","unlisted":false},{"type":"link","label":"Cancel changes (CANCEL)","href":"/next/Cancel_changes_CANCEL","docId":"Cancel_changes_CANCEL","unlisted":false},{"type":"link","label":"New session (NEWSESSION, NESTEDSESSION)","href":"/next/New_session_NEWSESSION_NESTEDSESSION","docId":"New_session_NEWSESSION_NESTEDSESSION","unlisted":false},{"type":"link","label":"Previous value (PREV)","href":"/next/Previous_value_PREV","docId":"Previous_value_PREV","unlisted":false},{"type":"link","label":"Change operators (SET, CHANGED, ...)","href":"/next/Change_operators_SET_CHANGED_etc","docId":"Change_operators_SET_CHANGED_etc","unlisted":false}],"collapsed":true,"collapsible":true,"href":"/next/Session_management"},{"type":"category","label":"User/IS interaction","items":[{"type":"link","label":"Show message (MESSAGE, ASK)","href":"/next/Show_message_MESSAGE_ASK","docId":"Show_message_MESSAGE_ASK","unlisted":false},{"type":"category","label":"File operators","items":[{"type":"link","label":"Read file (READ)","href":"/next/Read_file_READ","docId":"Read_file_READ","unlisted":false},{"type":"link","label":"Write file (WRITE)","href":"/next/Write_file_WRITE","docId":"Write_file_WRITE","unlisted":false},{"type":"link","label":"Data import (IMPORT)","href":"/next/Data_import_IMPORT","docId":"Data_import_IMPORT","unlisted":false},{"type":"link","label":"Data export (EXPORT)","href":"/next/Data_export_EXPORT","docId":"Data_export_EXPORT","unlisted":false}],"collapsed":true,"collapsible":true,"href":"/next/File_operators"},{"type":"link","label":"Send mail (EMAIL)","href":"/next/Send_mail_EMAIL","docId":"Send_mail_EMAIL","unlisted":false}],"collapsed":true,"collapsible":true,"href":"/next/User_IS_interaction"}],"collapsed":true,"collapsible":true,"href":"/next/Action_operators_paradigm"}],"collapsed":true,"collapsible":true,"href":"/next/Actions"},{"type":"category","label":"Events","items":[{"type":"link","label":"Simple event","href":"/next/Simple_event","docId":"Simple_event","unlisted":false},{"type":"link","label":"Calculated events","href":"/next/Calculated_events","docId":"Calculated_events","unlisted":false}],"collapsed":true,"collapsible":true,"href":"/next/Events"},{"type":"category","label":"Constraints","items":[{"type":"link","label":"Simple constraints","href":"/next/Simple_constraints","docId":"Simple_constraints","unlisted":false},{"type":"category","label":"Classes","items":[{"type":"link","label":"Built-in classes","href":"/next/Built-in_classes","docId":"Built-in_classes","unlisted":false},{"type":"link","label":"User classes","href":"/next/User_classes","docId":"User_classes","unlisted":false},{"type":"link","label":"Static objects","href":"/next/Static_objects","docId":"Static_objects","unlisted":false}],"collapsed":true,"collapsible":true,"href":"/next/Classes"},{"type":"link","label":"Aggregations","href":"/next/Aggregations","docId":"Aggregations","unlisted":false}],"collapsed":true,"collapsible":true,"href":"/next/Constraints"}],"collapsed":true,"collapsible":true,"href":"/next/Domain_logic"},{"type":"category","label":"View logic","items":[{"type":"category","label":"Forms","items":[{"type":"category","label":"Form structure","items":[{"type":"link","label":"Groups of properties and actions","href":"/next/Groups_of_properties_and_actions","docId":"Groups_of_properties_and_actions","unlisted":false}],"collapsed":true,"collapsible":true,"href":"/next/Form_structure"},{"type":"category","label":"Form views","items":[{"type":"category","label":"Interactive view","items":[{"type":"link","label":"Form design","href":"/next/Form_design","docId":"Form_design","unlisted":false},{"type":"link","label":"Form events","href":"/next/Form_events","docId":"Form_events","unlisted":false},{"type":"category","label":"Form operators","items":[{"type":"category","label":"Value input","items":[{"type":"link","label":"Primitive input (INPUT)","href":"/next/Primitive_input_INPUT","docId":"Primitive_input_INPUT","unlisted":false},{"type":"link","label":"Value request (REQUEST)","href":"/next/Value_request_REQUEST","docId":"Value_request_REQUEST","unlisted":false}],"collapsed":true,"collapsible":true,"href":"/next/Value_input"},{"type":"category","label":"Object group operators","items":[{"type":"link","label":"Search (SEEK)","href":"/next/Search_SEEK","docId":"Search_SEEK","unlisted":false},{"type":"link","label":"Object tree visibility (EXPAND, COLLAPSE)","href":"/next/Object_tree_visibility_EXPAND_COLLAPSE","docId":"Object_tree_visibility_EXPAND_COLLAPSE","unlisted":false},{"type":"link","label":"Filter (FILTER)","href":"/next/Filter_FILTER","docId":"Filter_FILTER","unlisted":false},{"type":"link","label":"Order (ORDER)","href":"/next/Order_ORDER","docId":"Order_ORDER","unlisted":false},{"type":"link","label":"View (VIEW)","href":"/next/View_VIEW","docId":"View_VIEW","unlisted":false}],"collapsed":true,"collapsible":true,"href":"/next/Object_group_operators"},{"type":"category","label":"Focus operators","items":[{"type":"link","label":"Activation (ACTIVATE)","href":"/next/Activation_ACTIVATE","docId":"Activation_ACTIVATE","unlisted":false},{"type":"link","label":"Activity (ACTIVE)","href":"/next/Activity_ACTIVE","docId":"Activity_ACTIVE","unlisted":false}],"collapsed":true,"collapsible":true,"href":"/next/Focus_operators"}],"collapsed":true,"collapsible":true,"href":"/next/Form_operators"}],"collapsed":true,"collapsible":true,"href":"/next/Interactive_view"},{"type":"category","label":"Static view","items":[{"type":"category","label":"Print view","items":[{"type":"link","label":"Report design","href":"/next/Report_design","docId":"Report_design","unlisted":false}],"collapsed":true,"collapsible":true,"href":"/next/Print_view"},{"type":"link","label":"Structured view","href":"/next/Structured_view","docId":"Structured_view","unlisted":false}],"collapsed":true,"collapsible":true,"href":"/next/Static_view"}],"collapsed":true,"collapsible":true,"href":"/next/Form_views"},{"type":"category","label":"Open form","items":[{"type":"link","label":"In an interactive view (SHOW, DIALOG)","href":"/next/In_an_interactive_view_SHOW_DIALOG","docId":"In_an_interactive_view_SHOW_DIALOG","unlisted":false},{"type":"link","label":"In a print view (PRINT)","href":"/next/In_a_print_view_PRINT","docId":"In_a_print_view_PRINT","unlisted":false},{"type":"link","label":"In a structured view (EXPORT, IMPORT)","href":"/next/In_a_structured_view_EXPORT_IMPORT","docId":"In_a_structured_view_EXPORT_IMPORT","unlisted":false}],"collapsed":true,"collapsible":true,"href":"/next/Open_form"}],"collapsed":true,"collapsible":true,"href":"/next/Forms"},{"type":"category","label":"Navigator","items":[{"type":"link","label":"Navigator design","href":"/next/Navigator_design","docId":"Navigator_design","unlisted":false}],"collapsed":true,"collapsible":true,"href":"/next/Navigator"}],"collapsed":true,"collapsible":true,"href":"/next/View_logic"}],"collapsed":true,"collapsible":true,"href":"/next/Logical_model"},{"type":"category","label":"Physical model","items":[{"type":"category","label":"Development","items":[{"type":"category","label":"Element identification","items":[{"type":"link","label":"Naming","href":"/next/Naming","docId":"Naming","unlisted":false},{"type":"link","label":"Search","href":"/next/Search_","docId":"Search_","unlisted":false}],"collapsed":true,"collapsible":true,"href":"/next/Element_identification"},{"type":"category","label":"Modularity","items":[{"type":"link","label":"Modules","href":"/next/Modules","docId":"Modules","unlisted":false},{"type":"link","label":"Projects","href":"/next/Projects","docId":"Projects","unlisted":false},{"type":"category","label":"Extensions","items":[{"type":"link","label":"Class extension","href":"/next/Class_extension","docId":"Class_extension","unlisted":false},{"type":"link","label":"Property extension","href":"/next/Property_extension","docId":"Property_extension","unlisted":false},{"type":"link","label":"Action extension","href":"/next/Action_extension","docId":"Action_extension","unlisted":false},{"type":"link","label":"Form extension","href":"/next/Form_extension","docId":"Form_extension","unlisted":false}],"collapsed":true,"collapsible":true,"href":"/next/Extensions"}],"collapsed":true,"collapsible":true,"href":"/next/Modularity"},{"type":"link","label":"Metaprogramming","href":"/next/Metaprogramming","docId":"Metaprogramming","unlisted":false},{"type":"category","label":"Integration","items":[{"type":"link","label":"Access from an external system","href":"/next/Access_from_an_external_system","docId":"Access_from_an_external_system","unlisted":false},{"type":"link","label":"Access from an internal system","href":"/next/Access_from_an_internal_system","docId":"Access_from_an_internal_system","unlisted":false},{"type":"link","label":"Access to an external system (EXTERNAL)","href":"/next/Access_to_an_external_system_EXTERNAL","docId":"Access_to_an_external_system_EXTERNAL","unlisted":false},{"type":"category","label":"Access to an internal system (INTERNAL, FORMULA)","items":[{"type":"link","label":"Internal call (INTERNAL)","href":"/next/Internal_call_INTERNAL","docId":"Internal_call_INTERNAL","unlisted":false},{"type":"link","label":"Custom formula (FORMULA)","href":"/next/Custom_formula_FORMULA","docId":"Custom_formula_FORMULA","unlisted":false}],"collapsed":true,"collapsible":true,"href":"/next/Access_to_an_internal_system_INTERNAL_FORMULA"},{"type":"link","label":"Eval (EVAL)","href":"/next/Eval_EVAL","docId":"Eval_EVAL","unlisted":false}],"collapsed":true,"collapsible":true,"href":"/next/Integration"},{"type":"link","label":"Migration","href":"/next/Migration","docId":"Migration","unlisted":false},{"type":"link","label":"Internationalization","href":"/next/Internationalization","docId":"Internationalization","unlisted":false}],"collapsed":true,"collapsible":true,"href":"/next/Development"},{"type":"category","label":"Execution","items":[{"type":"link","label":"Materializations","href":"/next/Materializations","docId":"Materializations","unlisted":false},{"type":"link","label":"Indexes","href":"/next/Indexes","docId":"Indexes","unlisted":false},{"type":"link","label":"Tables","href":"/next/Tables","docId":"Tables","unlisted":false}],"collapsed":true,"collapsible":true,"href":"/next/Execution"},{"type":"category","label":"Management","items":[{"type":"category","label":"System parameters","items":[{"type":"category","label":"Launch parameters","items":[{"type":"link","label":"Launch events","href":"/next/Launch_events","docId":"Launch_events","unlisted":false}],"collapsed":true,"collapsible":true,"href":"/next/Launch_parameters"},{"type":"link","label":"Working parameters","href":"/next/Working_parameters","docId":"Working_parameters","unlisted":false}],"collapsed":true,"collapsible":true,"href":"/next/System_parameters"},{"type":"link","label":"User interface","href":"/next/User_interface","docId":"User_interface","unlisted":false},{"type":"link","label":"Interpreter","href":"/next/Interpreter","docId":"Interpreter","unlisted":false},{"type":"link","label":"Security policy","href":"/next/Security_policy","docId":"Security_policy","unlisted":false},{"type":"link","label":"Process monitor","href":"/next/Process_monitor","docId":"Process_monitor","unlisted":false},{"type":"link","label":"Scheduler","href":"/next/Scheduler","docId":"Scheduler","unlisted":false},{"type":"link","label":"Journals and logs","href":"/next/Journals_and_logs","docId":"Journals_and_logs","unlisted":false},{"type":"link","label":"Profiler","href":"/next/Profiler","docId":"Profiler","unlisted":false},{"type":"link","label":"Chat","href":"/next/Chat","docId":"Chat","unlisted":false}],"collapsed":true,"collapsible":true,"href":"/next/Management"}],"collapsed":true,"collapsible":true,"href":"/next/Physical_model"}],"collapsible":true,"href":"/next/Paradigm"},{"collapsed":false,"type":"category","label":"Language","items":[{"type":"link","label":"Tokens","href":"/next/Tokens","docId":"Tokens","unlisted":false},{"type":"link","label":"IDs","href":"/next/IDs","docId":"IDs","unlisted":false},{"type":"link","label":"Literals","href":"/next/Literals","docId":"Literals","unlisted":false},{"type":"category","label":"Statements","items":[{"type":"link","label":"Module header","href":"/next/Module_header","docId":"Module_header","unlisted":false},{"type":"category","label":"= statement","items":[{"type":"category","label":"Expression","items":[{"type":"link","label":"Operator priority","href":"/next/Operator_priority","docId":"Operator_priority","unlisted":false}],"collapsed":true,"collapsible":true,"href":"/next/Expression"},{"type":"category","label":"Property operators","items":[{"type":"link","label":"Arithmetic operators","href":"/next/Arithmetic_operators","docId":"Arithmetic_operators","unlisted":false},{"type":"link","label":"[] operator","href":"/next/Brackets_operator","docId":"Brackets_operator","unlisted":false},{"type":"link","label":"ABSTRACT operator","href":"/next/ABSTRACT_operator","docId":"ABSTRACT_operator","unlisted":false},{"type":"link","label":"ACTIVE TAB operator","href":"/next/ACTIVE_TAB_operator","docId":"ACTIVE_TAB_operator","unlisted":false},{"type":"link","label":"AGGR operator","href":"/next/AGGR_operator","docId":"AGGR_operator","unlisted":false},{"type":"link","label":"CASE operator","href":"/next/CASE_operator","docId":"CASE_operator","unlisted":false},{"type":"link","label":"CONCAT operator","href":"/next/CONCAT_operator","docId":"CONCAT_operator","unlisted":false},{"type":"link","label":"DATA operator","href":"/next/DATA_operator","docId":"DATA_operator","unlisted":false},{"type":"link","label":"EXCLUSIVE operator","href":"/next/EXCLUSIVE_operator","docId":"EXCLUSIVE_operator","unlisted":false},{"type":"link","label":"FORMULA operator","href":"/next/FORMULA_operator","docId":"FORMULA_operator","unlisted":false},{"type":"link","label":"GROUP operator","href":"/next/GROUP_operator","docId":"GROUP_operator","unlisted":false},{"type":"link","label":"IF operator","href":"/next/IF_operator","docId":"IF_operator","unlisted":false},{"type":"link","label":"IF ... THEN operator","href":"/next/IF_..._THEN_operator","docId":"IF_..._THEN_operator","unlisted":false},{"type":"link","label":"ISCLASS operator","href":"/next/CLASS_operator","docId":"CLASS_operator","unlisted":false},{"type":"link","label":"JOIN operator","href":"/next/JOIN_operator","docId":"JOIN_operator","unlisted":false},{"type":"link","label":"LIKE operator","href":"/next/LIKE_operator","docId":"LIKE_operator","unlisted":false},{"type":"link","label":"MAX operator","href":"/next/MAX_operator","docId":"MAX_operator","unlisted":false},{"type":"link","label":"MIN operator","href":"/next/MIN_operator","docId":"MIN_operator","unlisted":false},{"type":"link","label":"MULTI operator","href":"/next/MULTI_operator","docId":"MULTI_operator","unlisted":false},{"type":"link","label":"OVERRIDE operator","href":"/next/OVERRIDE_operator","docId":"OVERRIDE_operator","unlisted":false},{"type":"link","label":"PARTITION operator","href":"/next/PARTITION_operator","docId":"PARTITION_operator","unlisted":false},{"type":"link","label":"PREV operator","href":"/next/PREV_operator","docId":"PREV_operator","unlisted":false},{"type":"link","label":"RECURSION operator","href":"/next/RECURSION_operator","docId":"RECURSION_operator","unlisted":false},{"type":"link","label":"ROUND operator","href":"/next/ROUND_operator","docId":"ROUND_operator","unlisted":false},{"type":"link","label":"STRUCT operator","href":"/next/STRUCT_operator","docId":"STRUCT_operator","unlisted":false},{"type":"link","label":"UNGROUP operator","href":"/next/UNGROUP_operator","docId":"UNGROUP_operator","unlisted":false},{"type":"link","label":"Object group operator","href":"/next/Object_group_operator","docId":"Object_group_operator","unlisted":false},{"type":"link","label":"Type conversion operator","href":"/next/Type_conversion_operator","docId":"Type_conversion_operator","unlisted":false},{"type":"link","label":"AND, OR, NOT, XOR operators","href":"/next/AND_OR_NOT_XOR_operators","docId":"AND_OR_NOT_XOR_operators","unlisted":false},{"type":"link","label":"IS, AS operators","href":"/next/IS_AS_operators","docId":"IS_AS_operators","unlisted":false},{"type":"link","label":"Change operators","href":"/next/Change_operators","docId":"Change_operators","unlisted":false},{"type":"link","label":"Comparison operators","href":"/next/Comparison_operators","docId":"Comparison_operators","unlisted":false}],"collapsed":true,"collapsible":true,"href":"/next/Property_operators"},{"type":"link","label":"Property options","href":"/next/Property_options","docId":"Property_options","unlisted":false}],"collapsed":true,"collapsible":true,"href":"/next/=_statement"},{"type":"category","label":"ACTION statement","items":[{"type":"category","label":"Action operators","items":[{"type":"link","label":"{...} operator","href":"/next/Braces_operator","docId":"Braces_operator","unlisted":false},{"type":"link","label":"ABSTRACT operator","href":"/next/ABSTRACT_action_operator","docId":"ABSTRACT_action_operator","unlisted":false},{"type":"link","label":"ACTIVATE operator","href":"/next/ACTIVATE_operator","docId":"ACTIVATE_operator","unlisted":false},{"type":"link","label":"ACTIVE FORM operator","href":"/next/ACTIVE_FORM_operator","docId":"ACTIVE_FORM_operator","unlisted":false},{"type":"link","label":"APPLY operator","href":"/next/APPLY_operator","docId":"APPLY_operator","unlisted":false},{"type":"link","label":"ASK operator","href":"/next/ASK_operator","docId":"ASK_operator","unlisted":false},{"type":"link","label":"CHANGE operator","href":"/next/CHANGE_operator","docId":"CHANGE_operator","unlisted":false},{"type":"link","label":"BREAK operator","href":"/next/BREAK_operator","docId":"BREAK_operator","unlisted":false},{"type":"link","label":"CANCEL operator","href":"/next/CANCEL_operator","docId":"CANCEL_operator","unlisted":false},{"type":"link","label":"CASE operator","href":"/next/CASE_action_operator","docId":"CASE_action_operator","unlisted":false},{"type":"link","label":"CHANGECLASS operator","href":"/next/CHANGECLASS_operator","docId":"CHANGECLASS_operator","unlisted":false},{"type":"link","label":"COLLAPSE operator","href":"/next/COLLAPSE_operator","docId":"COLLAPSE_operator","unlisted":false},{"type":"link","label":"INTERNAL operator","href":"/next/INTERNAL_operator","docId":"INTERNAL_operator","unlisted":false},{"type":"link","label":"DELETE operator","href":"/next/DELETE_operator","docId":"DELETE_operator","unlisted":false},{"type":"link","label":"DIALOG operator","href":"/next/DIALOG_operator","docId":"DIALOG_operator","unlisted":false},{"type":"link","label":"EMAIL operator","href":"/next/EMAIL_operator","docId":"EMAIL_operator","unlisted":false},{"type":"link","label":"EVAL operator","href":"/next/EVAL_operator","docId":"EVAL_operator","unlisted":false},{"type":"link","label":"EXEC operator","href":"/next/EXEC_operator","docId":"EXEC_operator","unlisted":false},{"type":"link","label":"EXPAND operator","href":"/next/EXPAND_operator","docId":"EXPAND_operator","unlisted":false},{"type":"link","label":"EXPORT operator","href":"/next/EXPORT_operator","docId":"EXPORT_operator","unlisted":false},{"type":"link","label":"EXTERNAL operator","href":"/next/EXTERNAL_operator","docId":"EXTERNAL_operator","unlisted":false},{"type":"link","label":"FOR operator","href":"/next/FOR_operator","docId":"FOR_operator","unlisted":false},{"type":"link","label":"IF ... THEN operator","href":"/next/IF_..._THEN_action_operator","docId":"IF_..._THEN_action_operator","unlisted":false},{"type":"link","label":"IMPORT operator","href":"/next/IMPORT_operator","docId":"IMPORT_operator","unlisted":false},{"type":"link","label":"INPUT operator","href":"/next/INPUT_operator","docId":"INPUT_operator","unlisted":false},{"type":"link","label":"MESSAGE operator","href":"/next/MESSAGE_operator","docId":"MESSAGE_operator","unlisted":false},{"type":"link","label":"MULTI operator","href":"/next/MULTI_action_operator","docId":"MULTI_action_operator","unlisted":false},{"type":"link","label":"NEW operator","href":"/next/NEW_operator","docId":"NEW_operator","unlisted":false},{"type":"link","label":"NESTEDSESSION operator","href":"/next/NESTEDSESSION_operator","docId":"NESTEDSESSION_operator","unlisted":false},{"type":"link","label":"NEWEXECUTOR operator","href":"/next/NEWEXECUTOR_operator","docId":"NEWEXECUTOR_operator","unlisted":false},{"type":"link","label":"NEWSESSION operator","href":"/next/NEWSESSION_operator","docId":"NEWSESSION_operator","unlisted":false},{"type":"link","label":"NEWTHREAD operator","href":"/next/NEWTHREAD_operator","docId":"NEWTHREAD_operator","unlisted":false},{"type":"link","label":"PRINT operator","href":"/next/PRINT_operator","docId":"PRINT_operator","unlisted":false},{"type":"link","label":"READ operator","href":"/next/READ_operator","docId":"READ_operator","unlisted":false},{"type":"link","label":"REQUEST operator","href":"/next/REQUEST_operator","docId":"REQUEST_operator","unlisted":false},{"type":"link","label":"RETURN operator","href":"/next/RETURN_operator","docId":"RETURN_operator","unlisted":false},{"type":"link","label":"SEEK operator","href":"/next/SEEK_operator","docId":"SEEK_operator","unlisted":false},{"type":"link","label":"SHOW operator","href":"/next/SHOW_operator","docId":"SHOW_operator","unlisted":false},{"type":"link","label":"TRY operator","href":"/next/TRY_operator","docId":"TRY_operator","unlisted":false},{"type":"link","label":"WHILE operator","href":"/next/WHILE_operator","docId":"WHILE_operator","unlisted":false},{"type":"link","label":"WRITE operator","href":"/next/WRITE_operator","docId":"WRITE_operator","unlisted":false}],"collapsed":true,"collapsible":true,"href":"/next/Action_operators"},{"type":"link","label":"Action options","href":"/next/Action_options","docId":"Action_options","unlisted":false}],"collapsed":true,"collapsible":true,"href":"/next/ACTION_statement"},{"type":"link","label":"GROUP statement","href":"/next/GROUP_statement","docId":"GROUP_statement","unlisted":false},{"type":"category","label":"ON statement","items":[{"type":"link","label":"Event description block","href":"/next/Event_description_block","docId":"Event_description_block","unlisted":false}],"collapsed":true,"collapsible":true,"href":"/next/ON_statement"},{"type":"link","label":"WHEN statement","href":"/next/WHEN_statement","docId":"WHEN_statement","unlisted":false},{"type":"link","label":"<- WHEN statement","href":"/next/lt-_WHEN_statement","docId":"lt-_WHEN_statement","unlisted":false},{"type":"link","label":"CONSTRAINT statement","href":"/next/CONSTRAINT_statement","docId":"CONSTRAINT_statement","unlisted":false},{"type":"link","label":"=> statement","href":"/next/=gt_statement","docId":"=gt_statement","unlisted":false},{"type":"link","label":"CLASS statement","href":"/next/CLASS_statement","docId":"CLASS_statement","unlisted":false},{"type":"category","label":"FORM statement","items":[{"type":"link","label":"Object blocks","href":"/next/Object_blocks","docId":"Object_blocks","unlisted":false},{"type":"link","label":"Properties and actions block","href":"/next/Properties_and_actions_block","docId":"Properties_and_actions_block","unlisted":false},{"type":"link","label":"Filter and sorting blocks","href":"/next/Filters_and_sortings_block","docId":"Filters_and_sortings_block","unlisted":false},{"type":"link","label":"Event block","href":"/next/Event_block","docId":"Event_block","unlisted":false}],"collapsed":true,"collapsible":true,"href":"/next/FORM_statement"},{"type":"link","label":"DESIGN statement","href":"/next/DESIGN_statement","docId":"DESIGN_statement","unlisted":false},{"type":"link","label":"NAVIGATOR statement","href":"/next/NAVIGATOR_statement","docId":"NAVIGATOR_statement","unlisted":false},{"type":"link","label":"WINDOW statement","href":"/next/WINDOW_statement","docId":"WINDOW_statement","unlisted":false},{"type":"link","label":"EXTEND CLASS statement","href":"/next/EXTEND_CLASS_statement","docId":"EXTEND_CLASS_statement","unlisted":false},{"type":"link","label":"EXTEND FORM statement","href":"/next/EXTEND_FORM_statement","docId":"EXTEND_FORM_statement","unlisted":false},{"type":"link","label":"+= statement","href":"/next/+=_statement","docId":"+=_statement","unlisted":false},{"type":"link","label":"ACTION+ statement","href":"/next/ACTION+_statement","docId":"ACTION+_statement","unlisted":false},{"type":"link","label":"META statement","href":"/next/META_statement","docId":"META_statement","unlisted":false},{"type":"link","label":"@ statement","href":"/next/commat_statement","docId":"commat_statement","unlisted":false},{"type":"link","label":"TABLE statement","href":"/next/TABLE_statement","docId":"TABLE_statement","unlisted":false},{"type":"link","label":"INDEX statement","href":"/next/INDEX_statement","docId":"INDEX_statement","unlisted":false},{"type":"link","label":"BEFORE statement","href":"/next/BEFORE_statement","docId":"BEFORE_statement","unlisted":false},{"type":"link","label":"AFTER statement","href":"/next/AFTER_statement","docId":"AFTER_statement","unlisted":false},{"type":"link","label":"Empty statement","href":"/next/Empty_statement","docId":"Empty_statement","unlisted":false}],"collapsed":true,"collapsible":true,"href":"/next/Statements"},{"type":"link","label":"Coding conventions","href":"/next/Coding_conventions","docId":"Coding_conventions","unlisted":false}],"collapsible":true,"href":"/next/Language"},{"type":"link","label":"IDE","href":"/next/IDE","docId":"IDE","unlisted":false},{"collapsed":false,"type":"category","label":"Learning materials","items":[{"type":"category","label":"Examples","items":[{"type":"link","label":"Score table","href":"/next/Score_table","docId":"Score_table","unlisted":false},{"type":"link","label":"Materials management","href":"/next/Materials_management","docId":"Materials_management","unlisted":false}],"collapsed":true,"collapsible":true,"href":"/next/Examples"},{"type":"category","label":"How-to","items":[{"type":"category","label":"How-to: Computations","items":[{"type":"link","label":"How-to: GROUP SUM","href":"/next/How-to_GROUP_SUM","docId":"How-to_GROUP_SUM","unlisted":false},{"type":"link","label":"How-to: GROUP MAX/MIN/AGGR","href":"/next/How-to_GROUP_MAX_MIN_AGGR","docId":"How-to_GROUP_MAX_MIN_AGGR","unlisted":false},{"type":"link","label":"How-to: CASE/IF/OVERRIDE","href":"/next/How-to_CASE_IF_OVERRIDE","docId":"How-to_CASE_IF_OVERRIDE","unlisted":false},{"type":"link","label":"How-to: GROUP LAST","href":"/next/How-to_GROUP_LAST","docId":"How-to_GROUP_LAST","unlisted":false},{"type":"link","label":"How-to: GROUP CONCAT","href":"/next/How-to_GROUP_CONCAT","docId":"How-to_GROUP_CONCAT","unlisted":false},{"type":"link","label":"How-to: PARTITION","href":"/next/How-to_PARTITION","docId":"How-to_PARTITION","unlisted":false}],"collapsed":true,"collapsible":true,"href":"/next/How-to_Computations"},{"type":"category","label":"How-to: GUI","items":[{"type":"category","label":"How-to: Interactive forms","items":[{"type":"link","label":"How-to: CRUD","href":"/next/How-to_CRUD","docId":"How-to_CRUD","unlisted":false},{"type":"link","label":"How-to: Documents with lines","href":"/next/How-to_Documents_with_lines","docId":"How-to_Documents_with_lines","unlisted":false},{"type":"link","label":"How-to: Filtering and ordering","href":"/next/How-to_Filtering_and_ordering","docId":"How-to_Filtering_and_ordering","unlisted":false},{"type":"link","label":"How-to: Design","href":"/next/How-to_Design","docId":"How-to_Design","unlisted":false},{"type":"link","label":"How-to: Trees","href":"/next/How-to_Trees","docId":"How-to_Trees","unlisted":false},{"type":"link","label":"How-to: Data entry","href":"/next/How-to_Data_entry","docId":"How-to_Data_entry","unlisted":false},{"type":"link","label":"How-to: Navigator","href":"/next/How-to_Navigator","docId":"How-to_Navigator","unlisted":false},{"type":"link","label":"How-to: Matrix","href":"/next/How-to_Matrix","docId":"How-to_Matrix","unlisted":false},{"type":"link","label":"How-to: Table status","href":"/next/How-to_Table_status","docId":"How-to_Table_status","unlisted":false},{"type":"link","label":"How-to: Custom components (properties)","href":"/next/How-to_Custom_components_properties","docId":"How-to_Custom_components_properties","unlisted":false},{"type":"link","label":"How-to: Custom Components (objects)","href":"/next/How-to_Custom_components_objects","docId":"How-to_Custom_components_objects","unlisted":false}],"collapsed":true,"collapsible":true,"href":"/next/How-to_Interactive_forms"},{"type":"link","label":"How-to: Reports","href":"/next/How-to_Reports","docId":"How-to_Reports","unlisted":false}],"collapsed":true,"collapsible":true,"href":"/next/How-to_GUI"},{"type":"category","label":"How-to: Imperative logic","items":[{"type":"category","label":"How-to: Actions","items":[{"type":"link","label":"How-to: CHANGE","href":"/next/How-to_CHANGE","docId":"How-to_CHANGE","unlisted":false},{"type":"link","label":"How-to: EXEC","href":"/next/How-to_EXEC","docId":"How-to_EXEC","unlisted":false},{"type":"link","label":"How-to: NEW","href":"/next/How-to_NEW","docId":"How-to_NEW","unlisted":false},{"type":"link","label":"How-to: DELETE","href":"/next/How-to_DELETE","docId":"How-to_DELETE","unlisted":false},{"type":"link","label":"How-to: FOR","href":"/next/How-to_FOR","docId":"How-to_FOR","unlisted":false},{"type":"link","label":"How-to: IF/CASE","href":"/next/How-to_IF_CASE","docId":"How-to_IF_CASE","unlisted":false},{"type":"link","label":"How-to: WHILE","href":"/next/How-to_WHILE","docId":"How-to_WHILE","unlisted":false},{"type":"link","label":"How-to: NEWSESSION","href":"/next/How-to_NEWSESSION","docId":"How-to_NEWSESSION","unlisted":false},{"type":"link","label":"How-to: SEEK","href":"/next/How-to_SEEK","docId":"How-to_SEEK","unlisted":false}],"collapsed":true,"collapsible":true,"href":"/next/How-to_Actions"},{"type":"link","label":"How-to: Events","href":"/next/How-to_Events","docId":"How-to_Events","unlisted":false}],"collapsed":true,"collapsible":true,"href":"/next/How-to_Imperative_logic"},{"type":"category","label":"How-to: Declarative logic","items":[{"type":"link","label":"How-to: Constraints","href":"/next/How-to_Constraints","docId":"How-to_Constraints","unlisted":false},{"type":"link","label":"How-to: Inheritance and aggregation","href":"/next/How-to_Inheritance_and_aggregation","docId":"How-to_Inheritance_and_aggregation","unlisted":false}],"collapsed":true,"collapsible":true,"href":"/next/How-to_Declarative_logic"},{"type":"category","label":"How-to: Searching for elements","items":[{"type":"link","label":"How-to: Namespaces","href":"/next/How-to_Namespaces","docId":"How-to_Namespaces","unlisted":false},{"type":"link","label":"How-to: Explicit typing","href":"/next/How-to_Explicit_typing","docId":"How-to_Explicit_typing","unlisted":false}],"collapsed":true,"collapsible":true,"href":"/next/How-to_Searching_for_elements"},{"type":"category","label":"How-to: Extensions","items":[{"type":"link","label":"How-to: Class extension","href":"/next/How-to_Class_extension","docId":"How-to_Class_extension","unlisted":false},{"type":"link","label":"How-to: Property extension","href":"/next/How-to_Property_extension","docId":"How-to_Property_extension","unlisted":false},{"type":"link","label":"How-to: Action extension","href":"/next/How-to_Action_extension","docId":"How-to_Action_extension","unlisted":false},{"type":"link","label":"How-to: Form extension","href":"/next/How-to_Form_extension","docId":"How-to_Form_extension","unlisted":false}],"collapsed":true,"collapsible":true,"href":"/next/How-to_Extensions"},{"type":"category","label":"How-to: Integration","items":[{"type":"category","label":"How-to: Working with external formats","items":[{"type":"link","label":"How-to: Data export","href":"/next/How-to_Data_export","docId":"How-to_Data_export","unlisted":false},{"type":"link","label":"How-to: Data import","href":"/next/How-to_Data_import","docId":"How-to_Data_import","unlisted":false}],"collapsed":true,"collapsible":true,"href":"/next/How-to_Working_with_external_formats"},{"type":"link","label":"How-to: Interaction via HTTP protocol","href":"/next/How-to_Interaction_via_HTTP_protocol","docId":"How-to_Interaction_via_HTTP_protocol","unlisted":false},{"type":"link","label":"How-to: Frontend","href":"/next/How-to_Frontend","docId":"How-to_Frontend","unlisted":false},{"type":"category","label":"How-to: Access to internal systems","items":[{"type":"link","label":"How-to: FORMULA","href":"/next/How-to_FORMULA","docId":"How-to_FORMULA","unlisted":false},{"type":"link","label":"How-to: INTERNAL","href":"/next/How-to_INTERNAL","docId":"How-to_INTERNAL","unlisted":false}],"collapsed":true,"collapsible":true,"href":"/next/How-to_Access_to_internal_systems"}],"collapsed":true,"collapsible":true,"href":"/next/How-to_Integration"},{"type":"category","label":"How-to: Use Cases","items":[{"type":"link","label":"How-to: Working with documents","href":"/next/How-to_Working_with_documents","docId":"How-to_Working_with_documents","unlisted":false},{"type":"link","label":"How-to: Registers","href":"/next/How-to_Registers","docId":"How-to_Registers","unlisted":false},{"type":"link","label":"How-to: Numbering","href":"/next/How-to_Numbering","docId":"How-to_Numbering","unlisted":false},{"type":"link","label":"How-to: Using objects as templates","href":"/next/How-to_Using_objects_as_templates","docId":"How-to_Using_objects_as_templates","unlisted":false},{"type":"link","label":"How-to: Overriding values","href":"/next/How-to_Overriding_values","docId":"How-to_Overriding_values","unlisted":false},{"type":"link","label":"How-to: Binding properties","href":"/next/How-to_Binding_properties","docId":"How-to_Binding_properties","unlisted":false}],"collapsed":true,"collapsible":true,"href":"/next/How-to_Use_Cases"},{"type":"link","label":"How-to: Metaprogramming","href":"/next/How-to_Metaprogramming","docId":"How-to_Metaprogramming","unlisted":false},{"type":"link","label":"How-to: Physical model","href":"/next/How-to_Physical_model","docId":"How-to_Physical_model","unlisted":false},{"type":"link","label":"How-to: Internationalization","href":"/next/How-to_Internationalization","docId":"How-to_Internationalization","unlisted":false}],"collapsed":true,"collapsible":true,"href":"/next/How-to"}],"collapsible":true,"href":"/next/Learning_materials"},{"type":"link","label":"Online demo","href":"/next/Online_demo","docId":"Online_demo","unlisted":false}]},"docs":{"+=_statement":{"id":"+=_statement","title":"+= statement","description":"The += statement adds an implementation (selection option) to an abstract property.","sidebar":"learn"},"=_statement":{"id":"=_statement","title":"= statement","description":"The = statement creates a new property.","sidebar":"learn"},"=gt_statement":{"id":"=gt_statement","title":"=> statement","description":"The => statement creates a consequence.","sidebar":"learn"},"ABSTRACT_action_operator":{"id":"ABSTRACT_action_operator","title":"ABSTRACT operator","description":"The ABSTRACT operator - creating an abstract action.","sidebar":"learn"},"ABSTRACT_operator":{"id":"ABSTRACT_operator","title":"ABSTRACT operator","description":"The ABSTRACT operator creates an abstract property.","sidebar":"learn"},"Access_from_an_external_system":{"id":"Access_from_an_external_system","title":"Access from an external system","description":"Action API","sidebar":"learn"},"Access_from_an_internal_system":{"id":"Access_from_an_internal_system","title":"Access from an internal system","description":"Java interaction","sidebar":"learn"},"Access_to_an_external_system_EXTERNAL":{"id":"Access_to_an_external_system_EXTERNAL","title":"Access to an external system (EXTERNAL)","description":"The operator for accessing an external system executes a specified code in the language/paradigm of the external system specified. In addition, this operator allows passing objects of built-in classes as parameters of this type of call, and also writing the results of calls to the properties specified (without parameters).","sidebar":"learn"},"Access_to_an_internal_system_INTERNAL_FORMULA":{"id":"Access_to_an_internal_system_INTERNAL_FORMULA","title":"Access to an internal system (INTERNAL, FORMULA)","description":"Java interaction","sidebar":"learn"},"Action_extension":{"id":"Action_extension","title":"Action extension","description":"The actions extension technique allows the developer to declare an abstract action in one module and add to it an implementation in other modules. This technique is essentially a \\"postponed definition\\" of a branch operator, where the operator\u2019s title is defined when the property is declared, and branching conditions are added as new functionality (of classes or static objects) is added to the system. Furthermore, branching conditions (if branching is not mutually exclusive) can be added both to the beginning and to the end of the abstract action created. Similarly, this technique works with a sequence operator.","sidebar":"learn"},"Action_operators":{"id":"Action_operators","title":"Action operators","description":"Action operator is a syntax construct that describes an operator creating an action.","sidebar":"learn"},"Action_operators_paradigm":{"id":"Action_operators_paradigm","title":"\u041eperators","description":"Operators for creating actions can be divided into several categories:","sidebar":"learn"},"Action_options":{"id":"Action_options","title":"Action options","description":"When declaring an action in the ACTION statement a certain set of action options may be specified at the end of the declaration.","sidebar":"learn"},"ACTION_statement":{"id":"ACTION_statement","title":"ACTION statement","description":"The ACTION statement creates an action.","sidebar":"learn"},"ACTION+_statement":{"id":"ACTION+_statement","title":"ACTION+ statement","description":"The ACTION+ statement adds an implementation (branching condition) to an abstract action.","sidebar":"learn"},"Actions":{"id":"Actions","title":"Actions","description":"An action is an element of the system that takes a set of objects (parameters) and uses them in one way or another to change the system state (that of the system in which the action is executed, as well as the state of any other external system).","sidebar":"learn"},"ACTIVATE_operator":{"id":"ACTIVATE_operator","title":"ACTIVATE operator","description":"The ACTIVATE operator creates an action that activates a specified form, tab, property, or action on a form","sidebar":"learn"},"Activation_ACTIVATE":{"id":"Activation_ACTIVATE","title":"Activation (ACTIVATE)","description":"The activation operator creates an action that activates one of three form elements:","sidebar":"learn"},"ACTIVE_FORM_operator":{"id":"ACTIVE_FORM_operator","title":"ACTIVE FORM operator","description":"The ACTIVATE FORM operator creates an action that checks the activeness of a form.","sidebar":"learn"},"ACTIVE_TAB_operator":{"id":"ACTIVE_TAB_operator","title":"ACTIVE TAB operator","description":"The ACTIVE TAB operator creates a property that checks if specified tab is active.","sidebar":"learn"},"Activity_ACTIVE":{"id":"Activity_ACTIVE","title":"Activity (ACTIVE)","description":"The activity operator creates a property that determines whether one of the following form elements is active:","sidebar":"learn"},"AFTER_statement":{"id":"AFTER_statement","title":"AFTER statement","description":"The AFTER statement calls an action after calling another action.","sidebar":"learn"},"AGGR_operator":{"id":"AGGR_operator","title":"AGGR operator","description":"The AGGR operator creates an aggregation.","sidebar":"learn"},"Aggregations":{"id":"Aggregations","title":"Aggregations","description":"Aggregation is the creation of a unique (aggregate) of the object corresponding to each non-NULL value of some aggregated property. Each such object is assumed to have properties that map this object to each aggregated property parameter, and, conversely, a property that maps the aggregated property parameters to this object.","sidebar":"learn"},"AND_OR_NOT_XOR_operators":{"id":"AND_OR_NOT_XOR_operators","title":"AND, OR, NOT, XOR operators","description":"AND, OR, NOT, XOR operators that create properties that implement logical operations.","sidebar":"learn"},"Apply_changes_APPLY":{"id":"Apply_changes_APPLY","title":"Apply changes (APPLY)","description":"The apply changes operator saves all changes made to the database, and also triggers the handling of all synchronous global events.","sidebar":"learn"},"APPLY_operator":{"id":"APPLY_operator","title":"APPLY operator","description":"The APPLY operator creates an action that applies changes to the database.","sidebar":"learn"},"Arithmetic_operators":{"id":"Arithmetic_operators","title":"Arithmetic operators","description":"+, -, *, /, (+), (-) operators create properties responsible for arithmetic operations.","sidebar":"learn"},"Arithmetic_operators_+_-_etc":{"id":"Arithmetic_operators_+_-_etc","title":"Arithmetic operators (+, -, *, ...)","description":"Arithmetic operators create properties whose value is the result of an arithmetic operation. The arguments of these operators must be properties whose values are instances of number classes . The platform currently supports the following arithmetic operators:","sidebar":"learn"},"ASK_operator":{"id":"ASK_operator","title":"ASK operator","description":"The ASK operator creates an action that shows the user a message in a dialog form.","sidebar":"learn"},"Automatic_installation":{"id":"Automatic_installation","title":"Install automatically","description":"For development","sidebar":"install"},"BEFORE_statement":{"id":"BEFORE_statement","title":"BEFORE statement","description":"The BEFORE statement calls an action before calling another action.","sidebar":"learn"},"Braces_operator":{"id":"Braces_operator","title":"{...} operator","description":"The {...} operator creates actions that executes a sequence of other actions.","sidebar":"learn"},"Brackets_operator":{"id":"Brackets_operator","title":"[] operator","description":"The ] operator creates a [property that returns an object from a structure.","sidebar":"learn"},"Branching_CASE_IF_MULTI":{"id":"Branching_CASE_IF_MULTI","title":"Branching (CASE, IF, MULTI)","description":"The branching operator creates an action that determines for a set of conditions which condition is met, and calls the corresponding action.","sidebar":"learn"},"BREAK_operator":{"id":"BREAK_operator","title":"BREAK operator","description":"The BREAK operator creates an action that implements a loop interruption.","sidebar":"learn"},"Built-in_classes":{"id":"Built-in_classes","title":"Built-in classes","description":"Built-in classes are classes whose instances are objects belonging to primitive data types such as integers, strings, etc.","sidebar":"learn"},"Calculated_events":{"id":"Calculated_events","title":"Calculated events","description":"Calculated events are events that change the value of a property when the value of some other property (condition) changes to a non-NULL value. Moreover, unlike simple events, this change is not made at the moment the condition is changed but is calculated each time the changed property is accessed. If the property has already been changed in the same session, this change is considered higher priority than the change in the calculated event.","sidebar":"learn"},"Call_EXEC":{"id":"Call_EXEC","title":"Call (EXEC)","description":"The EXEC operator creates an action that executes another action, passing it specified properties (arguments).","sidebar":"learn"},"Cancel_changes_CANCEL":{"id":"Cancel_changes_CANCEL","title":"Cancel changes (CANCEL)","description":"The cancel changes operator completely clears the current change session.","sidebar":"learn"},"CANCEL_operator":{"id":"CANCEL_operator","title":"CANCEL operator","description":"The CANCEL operator creates an action that cancels changes in the current session.","sidebar":"learn"},"CASE_action_operator":{"id":"CASE_action_operator","title":"CASE operator","description":"The CASE operator creates an action that implements branching.","sidebar":"learn"},"CASE_operator":{"id":"CASE_operator","title":"CASE operator","description":"The CASE operator creates a property that selects a result by condition.","sidebar":"learn"},"CHANGE_operator":{"id":"CHANGE_operator","title":"CHANGE operator","description":"The CHANGE operator creates an action that changes properties.","sidebar":"learn"},"Change_operators":{"id":"Change_operators","title":"Change operators","description":"Change operators - a set of operators that determine various types of property value changes.","sidebar":"learn"},"Change_operators_SET_CHANGED_etc":{"id":"Change_operators_SET_CHANGED_etc","title":"Change operators (SET, CHANGED, ...)","description":"Change operators determine whether some types of changes have occurred for a certain property in the current session. All these operators are derived from the previous value operator (PREV), however, it is recommended to use them to improve readability and performance. The following table shows the supported types of changes and their description:","sidebar":"learn"},"Change_sessions":{"id":"Change_sessions","title":"Change sessions","description":"Actions can change the state of the system in which they are executed. It is not always desirable to write these changes directly to the database, both from the perspective of integrity and from the perspective of the ergonomics of the system. The platform therefore allows to accumulate these changes locally in change sessions.","sidebar":"learn"},"CHANGECLASS_operator":{"id":"CHANGECLASS_operator","title":"CHANGECLASS operator","description":"The CHANGECLASS operator creates an action that changes objects classes.","sidebar":"learn"},"Chat":{"id":"Chat","title":"Chat","description":"(Under development)","sidebar":"learn"},"Class_change_CHANGECLASS_DELETE":{"id":"Class_change_CHANGECLASS_DELETE","title":"Class change (CHANGECLASS, DELETE)","description":"The class change operator creates an action that assigns the given class to all objects where value of a particular property (condition) is not equal to NULL. The condition can be omitted, in which case it is considered to be equal to TRUE.","sidebar":"learn"},"Class_extension":{"id":"Class_extension","title":"Class extension","description":"The class extension technique allows the developer to inherit one class from another after its creation. Also, using this mechanism you can add extra static objects to a class.","sidebar":"learn"},"CLASS_operator":{"id":"CLASS_operator","title":"ISCLASS operator","description":"The ISCLASS operator creates a property that implements a signature matching operator.","sidebar":"learn"},"Class_operators":{"id":"Class_operators","title":"Class operators","description":"Class operators include the following operators:","sidebar":"learn"},"CLASS_statement":{"id":"CLASS_statement","title":"CLASS statement","description":"CLASS statement creates a new custom class.","sidebar":"learn"},"Classes":{"id":"Classes","title":"Classes","description":"The base element in lsFusion is the object. Each object is an instance of some class, which determines the qualities of all its instances. Classes in turn can be divided into built-in classes, which are responsible for primitive data types, and user classes.","sidebar":"learn"},"Classification_IS_AS":{"id":"Classification_IS_AS","title":"Classification (IS/AS)","description":"Classification operators create properties that determine whether an object belongs to the class specified. If the property argument does not belong to the class specified in the operator, the property returns NULL. Otherwise, the operator IS returns TRUE, and the operator AS returns the object passed as an argument.","sidebar":"learn"},"Coding_conventions":{"id":"Coding_conventions","title":"Coding conventions","description":"Common","sidebar":"learn"},"COLLAPSE_operator":{"id":"COLLAPSE_operator","title":"COLLAPSE operator","description":"The COLLAPSE operator is the creation of an action, that implements the collapse of elements in the object tree.","sidebar":"learn"},"commat_statement":{"id":"commat_statement","title":"@ statement","description":"The @ statement uses metacode.","sidebar":"learn"},"Comparison_operators":{"id":"Comparison_operators","title":"Comparison operators","description":"==, =, !=, `, =` operators create properties that implement comparison operations.","sidebar":"learn"},"Comparison_operators_=_etc":{"id":"Comparison_operators_=_etc","title":"Comparison operators (=, >, <, ...)","description":"Comparison operators create actions which return the result of the comparison operation. The values of the created properties belong to the built-in class BOOLEAN.","sidebar":"learn"},"Composition_JOIN":{"id":"Composition_JOIN","title":"Composition (JOIN)","description":"The composition operator allows you to use values of other properties as arguments for one (main) property.","sidebar":"learn"},"CONCAT_operator":{"id":"CONCAT_operator","title":"CONCAT operator","description":"The CONCAT operator creates a property that implements a string concatenation.","sidebar":"learn"},"Constant":{"id":"Constant","title":"Constant","description":"The constant operator is used to create properties without parameters which always return the same value. This value can be static objects of custom and built-in classes as well as the special NULL value.","sidebar":"learn"},"CONSTRAINT_statement":{"id":"CONSTRAINT_statement","title":"CONSTRAINT statement","description":"The CONSTRAINT statement creates a constraint.","sidebar":"learn"},"Constraints":{"id":"Constraints","title":"Constraints","description":"Constraints in the platform determine which values the data properties can have and which cannot. In general, a constraint is defined as a property which value should always be NULL.","sidebar":"learn"},"CONTINUE_operator":{"id":"CONTINUE_operator","title":"CONTINUE operator","description":"The CONTINUE operator creates an action that implements move to the next iteration of the cycle."},"Custom_formula_FORMULA":{"id":"Custom_formula_FORMULA","title":"Custom formula (FORMULA)","description":"The custom formula operator allows you to create a property that calculates defined formula in SQL. You can specify different implementations of the formula for different SQL servers. The formula is defined as a string, within which the special character $ and the number of this parameter (starting from 1) are used to access the parameter. Accordingly, the number of parameters of the result property will be equal to the greatest of the numbers of the parameters used.","sidebar":"learn"},"Data_export_EXPORT":{"id":"Data_export_EXPORT","title":"Data export (EXPORT)","description":"The data export operator creates an action that reads values of the specified properties for all object collections where the value of the specified property (condition) is not NULL, and then saves these values to a file in a specified format.","sidebar":"learn"},"Data_import_IMPORT":{"id":"Data_import_IMPORT","title":"Data import (IMPORT)","description":"The data import operator creates an action which reads a file from the value of some property, then, depending on its format, defines the columns (fields) of data in this file, after which it writes the value of each column (field) to the corresponding property (parameter) - import assignment. The mapping of columns to properties can go in either column or name order.","sidebar":"learn"},"DATA_operator":{"id":"DATA_operator","title":"DATA operator","description":"The DATA operator creates a data property.","sidebar":"learn"},"Data_properties_DATA":{"id":"Data_properties_DATA","title":"Data properties (DATA)","description":"Data property is a property which value is stored in the database and may change through the execution of the corresponding action. Each parameter and the value of a data property must belong to a certain specified class. If a parameter does not belong to the specified class or is NULL, then the property value will return NULL.","sidebar":"learn"},"DELETE_operator":{"id":"DELETE_operator","title":"DELETE operator","description":"The DELETE operator creates an action that deletes objects.","sidebar":"learn"},"DESIGN_statement":{"id":"DESIGN_statement","title":"DESIGN statement","description":"The DESIGN statement changes form design.","sidebar":"learn"},"Development":{"id":"Development","title":"Development","description":"The development model includes the following concepts:","sidebar":"learn"},"Development_auto":{"id":"Development_auto","title":"For development","description":"On this page you can download installers that install everything needed for development in a single click. In addition to lsFusion, these installers also install OpenJDK, PostgreSQL, Tomcat, and IntelliJ IDEA Community Edition with the built-in lsFusion plugin. If any of these programs are already on your computer, you can exclude them during the installation process.","sidebar":"install"},"Development_manual":{"id":"Development_manual","title":"For development","description":"To install the application server, IDE, and client, Java version 8 or later must first be installed on the computer.","sidebar":"install"},"DIALOG_operator":{"id":"DIALOG_operator","title":"DIALOG operator","description":"The DIALOG operator creates an action that opens a form in an interactive view in dialog mode.","sidebar":"learn"},"Distribution_UNGROUP":{"id":"Distribution_UNGROUP","title":"Distribution (UNGROUP)","description":"The distribution operator creates a property, the grouping value of which using sum function will be equal to the value of the specified property (distributable). Accordingly, as for a group operator, for a distribution operator multiple properties (groups) must be set by which the grouping will take place.","sidebar":"learn"},"Domain_logic":{"id":"Domain_logic","title":"Domain logic","description":"Properties are the basic concept for business logic and are responsible for storing and calculating data.","sidebar":"learn"},"Element_identification":{"id":"Element_identification","title":"Element identification","description":"On the lsFusion platform, some elements of the system are named, meaning that they can be used by accessing them by name.","sidebar":"learn"},"EMAIL_operator":{"id":"EMAIL_operator","title":"EMAIL operator","description":"The EMAIL operator creates an action that sends email.","sidebar":"learn"},"Empty_statement":{"id":"Empty_statement","title":"Empty statement","description":"Empty statement - a special statement that consists of a single semicolon.","sidebar":"learn"},"Eval_EVAL":{"id":"Eval_EVAL","title":"Eval (EVAL)","description":"The eval operator creates an action that executes defined program code in the lsFusion language. Program code is defined as a property whose value should belong to the string class. This is implemented using an action which takes a line of code as an argument.","sidebar":"learn"},"EVAL_operator":{"id":"EVAL_operator","title":"EVAL operator","description":"The EVAL operator: creating an action that executes code in the lsFusion language.","sidebar":"learn"},"Event_block":{"id":"Event_block","title":"Event block","description":"The event block of the FORM statement - a set of constructions controlling events in an interactive form view.","sidebar":"learn"},"Event_description_block":{"id":"Event_description_block","title":"Event description block","description":"Event description block describes an event in different statements.","sidebar":"learn"},"Events":{"id":"Events","title":"Events","description":"Events are a mechanism that allows to execute certain actions at certain points in time (these actions shall be called event handlers).","sidebar":"learn"},"Examples":{"id":"Examples","title":"Examples","description":"Examples are intended to demonstrate the capabilities of the lsFusion platform.","sidebar":"learn"},"Exception_handling_TRY":{"id":"Exception_handling_TRY","title":"Exception handling (TRY)","description":"The exception handling operator enables you to execute an action and do the following if an error (exception) occurs:","sidebar":"learn"},"EXCLUSIVE_operator":{"id":"EXCLUSIVE_operator","title":"EXCLUSIVE operator","description":"The EXCLUSIVE operator creates a property that implements a selection of one of the values (polymorphic form).","sidebar":"learn"},"EXEC_operator":{"id":"EXEC_operator","title":"EXEC operator","description":"The EXEC operator creates an action that executes another action.","sidebar":"learn"},"Execution":{"id":"Execution","title":"Execution","description":"If the system is small and there is not much data in it, it usually works quite efficiently without any additional optimizations. But if the logic becomes more complex, and the amount of data increases significantly, it often makes sense to tell the platform how best to store and process all this data.","sidebar":"learn"},"Execution_auto":{"id":"Execution_auto","title":"For production","description":"Installation","sidebar":"install"},"Execution_manual":{"id":"Execution_manual","title":"For production","description":"To install the application server, web server and client, Java version 8 or later must first be installed on the computer.","sidebar":"install"},"Execution_order":{"id":"Execution_order","title":"Execution order","description":"The platform supports the following operators for managing the order in which actions are executed:","sidebar":"learn"},"Exit_RETURN":{"id":"Exit_RETURN","title":"Exit (RETURN)","description":"The exit operator creates an action that exits from the inmost action call. Control is passed to the first action following that call operator.","sidebar":"learn"},"EXPAND_operator":{"id":"EXPAND_operator","title":"EXPAND operator","description":"The EXPAND operator is the creation of an action, that implements the expansion of elements in the object tree.","sidebar":"learn"},"EXPORT_operator":{"id":"EXPORT_operator","title":"EXPORT operator","description":"The EXPORT operator: creates an action that exports specified properties to a file, or, in common case, that opens a form in a structured view.","sidebar":"learn"},"Expression":{"id":"Expression","title":"Expression","description":"An expression is a combination of property operators and parameters. When an expression is evaluated sequentially in priority order, all the operators are executed.","sidebar":"learn"},"EXTEND_CLASS_statement":{"id":"EXTEND_CLASS_statement","title":"EXTEND CLASS statement","description":"The EXTEND CLASS statement extends an existing class.","sidebar":"learn"},"EXTEND_FORM_statement":{"id":"EXTEND_FORM_statement","title":"EXTEND FORM statement","description":"The EXTEND FORM statement extends an existing form.","sidebar":"learn"},"Extensions":{"id":"Extensions","title":"Extensions","description":"Extension is a technique that allows a developer to extend the functionality of one module in another.","sidebar":"learn"},"EXTERNAL_operator":{"id":"EXTERNAL_operator","title":"EXTERNAL operator","description":"The EXTERNAL operator creates an action that implements accessing to an external system.","sidebar":"learn"},"Extremum_MAX_MIN":{"id":"Extremum_MAX_MIN","title":"Extremum (MAX, MIN)","description":"The extremum operator creates a property which calculates the maximum or minimum between several specified properties. If the value of any of these properties is NULL, this property is ignored. If the values of all properties are NULL, the result value is also NULL.","sidebar":"learn"},"File_operators":{"id":"File_operators","title":"File operators","description":"The platform supports the following file operators:","sidebar":"learn"},"Filter_FILTER":{"id":"Filter_FILTER","title":"Filter (FILTER)","description":"The filter operator creates a property that returns TRUE if the object collection matches the current filter of the specified object group, and NULL if it does not.","sidebar":"learn"},"Filters_and_sortings_block":{"id":"Filters_and_sortings_block","title":"Filter and sorting blocks","description":"The filter and order blocks of the FORM statement \u2013 adding filters and orderings to the form structure, as well as filter groups and user filters to the interactive form view.","sidebar":"learn"},"Focus_operators":{"id":"Focus_operators","title":"Focus operators","description":"This category includes operators responsible for managing component activity:","sidebar":"learn"},"FOR_operator":{"id":"FOR_operator","title":"FOR operator","description":"The FOR operator creates an action that implements loop.","sidebar":"learn"},"Form_design":{"id":"Form_design","title":"Form design","description":"The form design defines how a form is displayed in the interactive view.","sidebar":"learn"},"Form_events":{"id":"Form_events","title":"Form events","description":"While the application is running, there is a number of events for each form that occur as a result of certain user actions:","sidebar":"learn"},"Form_extension":{"id":"Form_extension","title":"Form extension","description":"The form extension technique allows the developer to extend the structure and design of a form created in another module.","sidebar":"learn"},"Form_operators":{"id":"Form_operators","title":"Form operators","description":"Form operators can be divided into several categories:","sidebar":"learn"},"FORM_statement":{"id":"FORM_statement","title":"FORM statement","description":"The FORM statement creates a form.","sidebar":"learn"},"Form_structure":{"id":"Form_structure","title":"Form structure","description":"The form structure is a complex of objects, properties, actions and relations between them.","sidebar":"learn"},"Form_views":{"id":"Form_views","title":"Form views","description":"A form view can be classified as follows:","sidebar":"learn"},"Forms":{"id":"Forms","title":"Forms","description":"Forms let you combine different types of information for one or more objects in a single interface. Logically, aform can be divided into two parts:","sidebar":"learn"},"FORMULA_operator":{"id":"FORMULA_operator","title":"FORMULA operator","description":"The FORMULA operator creates a property that implements a custom formula.","sidebar":"learn"},"GROUP_operator":{"id":"GROUP_operator","title":"GROUP operator","description":"The GROUP operator creates a property implementing grouping.","sidebar":"learn"},"GROUP_statement":{"id":"GROUP_statement","title":"GROUP statement","description":"The GROUP statement creates a new property group.","sidebar":"learn"},"Grouping_GROUP":{"id":"Grouping_GROUP","title":"Grouping (GROUP)","description":"The group operator creates a property that divides all object collections in the system into groups, and calculates an aggregating function for each group following specified order. Accordingly, the set for which this aggregating function is calculated is determined as all the object collections belonging to this group.","sidebar":"learn"},"Groups_of_properties_and_actions":{"id":"Groups_of_properties_and_actions","title":"Groups of properties and actions","description":"The behavior of properties and actions in the context of working with groups is absolutely identical, therefore, in the rest of this section, we will use only the term property (the behavior for actions is completely similar).","sidebar":"learn"},"How-to":{"id":"How-to","title":"How-to","description":"How to read these sections","sidebar":"learn"},"How-to_Access_to_internal_systems":{"id":"How-to_Access_to_internal_systems","title":"How-to: Access to internal systems","description":"How to read these sections","sidebar":"learn"},"How-to_Action_extension":{"id":"How-to_Action_extension","title":"How-to: Action extension","description":"We can use the following scheme to implement polymorphism:","sidebar":"learn"},"How-to_Actions":{"id":"How-to_Actions","title":"How-to: Actions","description":"How to read these sections","sidebar":"learn"},"How-to_Binding_properties":{"id":"How-to_Binding_properties","title":"How-to: Binding properties","description":"Example 1","sidebar":"learn"},"How-to_CASE_IF_OVERRIDE":{"id":"How-to_CASE_IF_OVERRIDE","title":"How-to: CASE/IF/OVERRIDE","description":"Example 1","sidebar":"learn"},"How-to_CHANGE":{"id":"How-to_CHANGE","title":"How-to: CHANGE","description":"Example 1","sidebar":"learn"},"How-to_Class_extension":{"id":"How-to_Class_extension","title":"How-to: Class extension","description":"The typical scheme for extracting relations between classes to a separate module is as follows:","sidebar":"learn"},"How-to_Computations":{"id":"How-to_Computations","title":"How-to: Computations","description":"How to read these sections","sidebar":"learn"},"How-to_Constraints":{"id":"How-to_Constraints","title":"How-to: Constraints","description":"Example 1","sidebar":"learn"},"How-to_CRUD":{"id":"How-to_CRUD","title":"How-to: CRUD","description":"Example 1","sidebar":"learn"},"How-to_Custom_components_objects":{"id":"How-to_Custom_components_objects","title":"How-to: Custom Components (objects)","description":"By default, each object on a form with GRID view is displayed on the form as a flat table with columns.","sidebar":"learn"},"How-to_Custom_components_properties":{"id":"How-to_Custom_components_properties","title":"How-to: Custom components (properties)","description":"For each property type, by default, a predefined visual component is used to display and edit the data.","sidebar":"learn"},"How-to_Data_entry":{"id":"How-to_Data_entry","title":"How-to: Data entry","description":"Example 1","sidebar":"learn"},"How-to_Data_export":{"id":"How-to_Data_export","title":"How-to: Data export","description":"Example 1","sidebar":"learn"},"How-to_Data_import":{"id":"How-to_Data_import","title":"How-to: Data import","description":"Example 1","sidebar":"learn"},"How-to_Declarative_logic":{"id":"How-to_Declarative_logic","title":"How-to: Declarative logic","description":"How to read these sections","sidebar":"learn"},"How-to_DELETE":{"id":"How-to_DELETE","title":"How-to: DELETE","description":"Example 1","sidebar":"learn"},"How-to_Design":{"id":"How-to_Design","title":"How-to: Design","description":"Example 1","sidebar":"learn"},"How-to_Documents_with_lines":{"id":"How-to_Documents_with_lines","title":"How-to: Documents with lines","description":"Example 1","sidebar":"learn"},"How-to_Events":{"id":"How-to_Events","title":"How-to: Events","description":"Example 1","sidebar":"learn"},"How-to_EXEC":{"id":"How-to_EXEC","title":"How-to: EXEC","description":"Example 1","sidebar":"learn"},"How-to_Explicit_typing":{"id":"How-to_Explicit_typing","title":"How-to: Explicit typing","description":"In certain situations, you may want to use the same name for different system properties or actions.","sidebar":"learn"},"How-to_Extensions":{"id":"How-to_Extensions","title":"How-to: Extensions","description":"Extensions are very important for providing the modularity and extensibility of applications.","sidebar":"learn"},"How-to_Filtering_and_ordering":{"id":"How-to_Filtering_and_ordering","title":"How-to: Filtering and ordering","description":"Example 1","sidebar":"learn"},"How-to_FOR":{"id":"How-to_FOR","title":"How-to: FOR","description":"Example 1","sidebar":"learn"},"How-to_Form_extension":{"id":"How-to_Form_extension","title":"How-to: Form extension","description":"Let\'s assume there is a module that describes the Sku form that is used to edit SKU values:","sidebar":"learn"},"How-to_FORMULA":{"id":"How-to_FORMULA","title":"How-to: FORMULA","description":"Example 1","sidebar":"learn"},"How-to_Frontend":{"id":"How-to_Frontend","title":"How-to: Frontend","description":"The easiest way to organize the interaction of a React application with an application based on lsFusion is communication via the HTTP protocol through the JSON API. To export a list of objects meeting a specified condition, it is most convenient to use the interface located at the eval/action Url. You can pass lsFusion program code to it in BODY, and it will then be executed. If you need to return data from your request, use the EXPORT operator. By default it returns data in JSON format, which is then easily processed using JavaScript.","sidebar":"learn"},"How-to_GROUP_CONCAT":{"id":"How-to_GROUP_CONCAT","title":"How-to: GROUP CONCAT","description":"Example 1","sidebar":"learn"},"How-to_GROUP_LAST":{"id":"How-to_GROUP_LAST","title":"How-to: GROUP LAST","description":"Example 1","sidebar":"learn"},"How-to_GROUP_MAX_MIN_AGGR":{"id":"How-to_GROUP_MAX_MIN_AGGR","title":"How-to: GROUP MAX/MIN/AGGR","description":"Example 1","sidebar":"learn"},"How-to_GROUP_SUM":{"id":"How-to_GROUP_SUM","title":"How-to: GROUP SUM","description":"Example 1","sidebar":"learn"},"How-to_GUI":{"id":"How-to_GUI","title":"How-to: GUI","description":"How to read these sections","sidebar":"learn"},"How-to_IF_CASE":{"id":"How-to_IF_CASE","title":"How-to: IF/CASE","description":"Example 1","sidebar":"learn"},"How-to_Imperative_logic":{"id":"How-to_Imperative_logic","title":"How-to: Imperative logic","description":"How to read these sections","sidebar":"learn"},"How-to_Inheritance_and_aggregation":{"id":"How-to_Inheritance_and_aggregation","title":"How-to: Inheritance and aggregation","description":"In order to demonstrate the principles of object inheritance and aggregation, let\'s implement the logic of creating batches based on receipts and production documents. Let\'s make it so that each new document with a Posted property will automatically generate exactly one new product batch.","sidebar":"learn"},"How-to_Integration":{"id":"How-to_Integration","title":"How-to: Integration","description":"How to read these sections","sidebar":"learn"},"How-to_Interaction_via_HTTP_protocol":{"id":"How-to_Interaction_via_HTTP_protocol","title":"How-to: Interaction via HTTP protocol","description":"Example 1","sidebar":"learn"},"How-to_Interactive_forms":{"id":"How-to_Interactive_forms","title":"How-to: Interactive forms","description":"How to read these sections","sidebar":"learn"},"How-to_INTERNAL":{"id":"How-to_INTERNAL","title":"How-to: INTERNAL","description":"Example 1","sidebar":"learn"},"How-to_Internationalization":{"id":"How-to_Internationalization","title":"How-to: Internationalization","description":"The system supports internationalization by passing to the client values localized according to the language chosen by the user. All values in braces are localized. Let\'s assume that we need to implement a simple form with a list of books and their prices that we can create/delete.","sidebar":"learn"},"How-to_Matrix":{"id":"How-to_Matrix","title":"How-to: Matrix","description":"Example 1","sidebar":"learn"},"How-to_Metaprogramming":{"id":"How-to_Metaprogramming","title":"How-to: Metaprogramming","description":"You may often need to write \\"similar\\" code for certain cases. The META statement exists for this purpose, and makes it possible to create a code template or metacode. It can contain parameters that will be replaced by certain values when this metacode is used. Such an approach is called metaprogramming.","sidebar":"learn"},"How-to_Namespaces":{"id":"How-to_Namespaces","title":"How-to: Namespaces","description":"Occasionally, you will find yourself in situations where you will need to use the same name for different system elements. For this purpose, you can assign them to different namespaces that are defined for a module using the NAMESPACE statement. By default, the namespace matches the name of the module.","sidebar":"learn"},"How-to_Navigator":{"id":"How-to_Navigator","title":"How-to: Navigator","description":"Example 1","sidebar":"learn"},"How-to_NEW":{"id":"How-to_NEW","title":"How-to: NEW","description":"Example 1","sidebar":"learn"},"How-to_NEWSESSION":{"id":"How-to_NEWSESSION","title":"How-to: NEWSESSION","description":"Example 1","sidebar":"learn"},"How-to_Numbering":{"id":"How-to_Numbering","title":"How-to: Numbering","description":"Let\'s suppose we have a set of books. For each of these books, we define a number as an integer.","sidebar":"learn"},"How-to_Overriding_values":{"id":"How-to_Overriding_values","title":"How-to: Overriding values","description":"Often there are tasks when it is necessary to give the user opportunity to enter the value of some attribute for some general object and then override it for some specific object.","sidebar":"learn"},"How-to_PARTITION":{"id":"How-to_PARTITION","title":"How-to: PARTITION","description":"Example 1","sidebar":"learn"},"How-to_Physical_model":{"id":"How-to_Physical_model","title":"How-to: Physical model","description":"By default, each class in the database creates a separate table that stores all those properties whose only parameter is an object of this class. The key in this table is a field that stores a unique object ID. For properties with several parameters, a table will be created with the IDs of parameter objects as keys.","sidebar":"learn"},"How-to_Property_extension":{"id":"How-to_Property_extension","title":"How-to: Property extension","description":"The classic approach for implementing polymorphism can look as follows:","sidebar":"learn"},"How-to_Registers":{"id":"How-to_Registers","title":"How-to: Registers","description":"Accumulation ledger","sidebar":"learn"},"How-to_Reports":{"id":"How-to_Reports","title":"How-to: Reports","description":"Example 1","sidebar":"learn"},"How-to_Searching_for_elements":{"id":"How-to_Searching_for_elements","title":"How-to: Searching for elements","description":"How to read these sections","sidebar":"learn"},"How-to_SEEK":{"id":"How-to_SEEK","title":"How-to: SEEK","description":"Example 1","sidebar":"learn"},"How-to_Table_status":{"id":"How-to_Table_status","title":"How-to: Table status","description":"Example 1","sidebar":"learn"},"How-to_Trees":{"id":"How-to_Trees","title":"How-to: Trees","description":"Example 1","sidebar":"learn"},"How-to_Use_Cases":{"id":"How-to_Use_Cases","title":"How-to: Use Cases","description":"How to read these sections","sidebar":"learn"},"How-to_Using_objects_as_templates":{"id":"How-to_Using_objects_as_templates","title":"How-to: Using objects as templates","description":"Example 1","sidebar":"learn"},"How-to_WHILE":{"id":"How-to_WHILE","title":"How-to: WHILE","description":"Example 1","sidebar":"learn"},"How-to_Working_with_documents":{"id":"How-to_Working_with_documents","title":"How-to: Working with documents","description":"Posting documents","sidebar":"learn"},"How-to_Working_with_external_formats":{"id":"How-to_Working_with_external_formats","title":"How-to: Working with external formats","description":"How to read these sections","sidebar":"learn"},"IDE":{"id":"IDE","title":"IDE","description":"Creating a new lsFusion project","sidebar":"learn"},"IDs":{"id":"IDs","title":"IDs","description":"|Name |Examples|Use|Description|Technical description|","sidebar":"learn"},"IF_..._THEN_action_operator":{"id":"IF_..._THEN_action_operator","title":"IF ... THEN operator","description":"The IF ... THEN operator creates an action that implements branching with one condition (single form).","sidebar":"learn"},"IF_..._THEN_operator":{"id":"IF_..._THEN_operator","title":"IF ... THEN operator","description":"The IF ... THEN operator creates a property that implements selection with one condition (single form).","sidebar":"learn"},"IF_operator":{"id":"IF_operator","title":"IF operator","description":"The IF operator - creating a property implementing selection of a value by condition (single form).","sidebar":"learn"},"IMPORT_operator":{"id":"IMPORT_operator","title":"IMPORT operator","description":"The IMPORT operator creates an action that imports data from a specified file into specified properties (parameters) or, in general, into a specified form.","sidebar":"learn"},"In_a_print_view_PRINT":{"id":"In_a_print_view_PRINT","title":"In a print view (PRINT)","description":"This operator creates an action that opens a form in the print view.","sidebar":"learn"},"In_a_structured_view_EXPORT_IMPORT":{"id":"In_a_structured_view_EXPORT_IMPORT","title":"In a structured view (EXPORT, IMPORT)","description":"This operator creates an action that opens a form in the structured view.","sidebar":"learn"},"In_an_interactive_view_SHOW_DIALOG":{"id":"In_an_interactive_view_SHOW_DIALOG","title":"In an interactive view (SHOW, DIALOG)","description":"This operator creates an action that opens a form in the interactive view.","sidebar":"learn"},"INDEX_statement":{"id":"INDEX_statement","title":"INDEX statement","description":"The INDEX statement creates a new index.","sidebar":"learn"},"Indexes":{"id":"Indexes","title":"Indexes","description":"Building an index by property allows storing all the values of this property in the database in an ordered form. Accordingly, the index is updated with every change of the indexed property value. Due to the index, if, for example, you filter by an indexed property, you can find the objects you need very quickly, rather than viewing all the objects that exist in the system.","sidebar":"learn"},"INPUT_operator":{"id":"INPUT_operator","title":"INPUT operator","description":"The INPUT operator creates an action that inputs a primitive.","sidebar":"learn"},"Install":{"id":"Install","title":"Install","description":"Install automatically","sidebar":"install"},"Integration":{"id":"Integration","title":"Integration","description":"Integration includes everything related to interaction of the lsFusion system with other systems. In terms of the direction of this interaction, integration can be divided into:","sidebar":"learn"},"Interactive_view":{"id":"Interactive_view","title":"Interactive view","description":"A form opened in interactive mode is a graphical component with a certain design in which the user can trigger various events and thereby navigate through system objects, view and change property values, execute actions, and so on. Developers can also use an additional set of operators with this view, making it possible to manage the open form.","sidebar":"learn"},"Internal_call_INTERNAL":{"id":"Internal_call_INTERNAL","title":"Internal call (INTERNAL)","description":"The internal call operator allows to create actions in programming languages other than the lsFusion language. The platform currently supports external actions only in the Java language.","sidebar":"learn"},"INTERNAL_operator":{"id":"INTERNAL_operator","title":"INTERNAL operator","description":"The INTERNAL operator creates an action that executes an internal call.","sidebar":"learn"},"Internationalization":{"id":"Internationalization","title":"Internationalization","description":"Internationalization consists of software development techniques that allow adapting the software to the linguistic and cultural particularities of different countries and regions.","sidebar":"learn"},"Interpreter":{"id":"Interpreter","title":"Interpreter","description":"(Under development)","sidebar":"learn"},"Interruption_BREAK":{"id":"Interruption_BREAK","title":"Interruption (BREAK)","description":"The interrupt operator creates an action that exits the most nested loop (normal or recursive) within which this action is located. Control is transferred to the first action following the loop. If the created action is not inside a loop, its behavior becomes similar to the action created by the exit operator.","sidebar":"learn"},"IS_AS_operators":{"id":"IS_AS_operators","title":"IS, AS operators","description":"IS, AS operators create an action that implements classification.","sidebar":"learn"},"JOIN_operator":{"id":"JOIN_operator","title":"JOIN operator","description":"The JOIN operator creates a property that implements a composition.","sidebar":"learn"},"Journals_and_logs":{"id":"Journals_and_logs","title":"Journals and logs","description":"Logs","sidebar":"learn"},"JSON_operator":{"id":"JSON_operator","title":"JSON operator","description":"The JSON operator is property that creates JSON from specified properties or, in common case, from form."},"Language":{"id":"Language","title":"Language","description":"lsFusion is a programming language that describes lsFusion modules.","sidebar":"learn"},"Launch_events":{"id":"Launch_events","title":"Launch events","description":"There are several predefined actions in the platform that are called when various components of the platform are launched:","sidebar":"learn"},"Launch_parameters":{"id":"Launch_parameters","title":"Launch parameters","description":"Application server (Server)","sidebar":"learn"},"Learn":{"id":"Learn","title":"Learn","description":"Overview","sidebar":"learn"},"Learning_materials":{"id":"Learning_materials","title":"Learning materials","description":"In addition to the documentation, the following materials can be used to explore the features of the lsFusion platform.","sidebar":"learn"},"LIKE_operator":{"id":"LIKE_operator","title":"LIKE operator","description":"The LIKE operator is the creation of a property that implements the operation of comparing a string with a pattern.","sidebar":"learn"},"Literals":{"id":"Literals","title":"Literals","description":"|Name|Example|Class|Description|Constraints|","sidebar":"learn"},"Logical_model":{"id":"Logical_model","title":"Logical model","description":"The logical model is traditionally divided into two parts:","sidebar":"learn"},"Logical_operators_AND_OR_NOT_XOR":{"id":"Logical_operators_AND_OR_NOT_XOR","title":"Logical operators (AND, OR, NOT, XOR)","description":"Logical operators create properties that consider their arguments as logical values of class BOOLEAN and whose return value is also a value of class BOOLEAN. If the value of an argument of an logical operator is not NULL, then the argument is treated as the value TRUE of class BOOLEAN, otherwise as NULL.","sidebar":"learn"},"Loop_FOR":{"id":"Loop_FOR","title":"Loop (FOR)","description":"The loop operator creates an action that iterates all object collections for which the defined condition is met, and executes a defined action for each such object collection (let\'s call it the main one). You can also define an alternative action that will be executed only if no object collections have been found that meet the condition. The condition itself is defined as a certain property. Let\'s say that the condition is satisfied if the value of this property is not NULL.","sidebar":"learn"},"lt-_WHEN_statement":{"id":"lt-_WHEN_statement","title":"<- WHEN statement","description":"The <- WHEN statement creates a calculated event.","sidebar":"learn"},"Management":{"id":"Management","title":"Management","description":"System parameters","sidebar":"learn"},"Manual_installation":{"id":"Manual_installation","title":"Install manually","description":"For development","sidebar":"install"},"Materializations":{"id":"Materializations","title":"Materializations","description":"Almost any aggregated property in the platform can be materialized. In this case, the property will be stored in the database permanently and automatically updated when the data on which this property depends is changed. At the same time, when reading the values of the materialized property, these values will be read directly from the database, as if the property was data (and not calculated every time). Accordingly, all data properties are materialized by definition.","sidebar":"learn"},"Materials_management":{"id":"Materials_management","title":"Materials management","description":"Description of the \\"Materials management\\" task","sidebar":"learn"},"MAX_operator":{"id":"MAX_operator","title":"MAX operator","description":"The MAX operator creates a property that implements finding maximum value.","sidebar":"learn"},"MESSAGE_operator":{"id":"MESSAGE_operator","title":"MESSAGE operator","description":"The MESSAGE operator creates an action that shows the user a message.","sidebar":"learn"},"META_statement":{"id":"META_statement","title":"META statement","description":"The META statement creates a new metacode.","sidebar":"learn"},"Metaprogramming":{"id":"Metaprogramming","title":"Metaprogramming","description":"Metaprogramming is a type of programming associated with writing software code that results in the generation of more software code. Metaprogramming is used for code reusability and to speed up development.","sidebar":"learn"},"Migration":{"id":"Migration","title":"Migration","description":"An lsFusion-based information system uses a relational database management system for permanent data storage. It should be remembered that after certain changes to the system logic, the platform is unable to determine how the data should be migrated. In these cases, the developer must explicitly define the migration method by creating the special migration file migration.script, which should be in the CLASSPATH of the application server.","sidebar":"learn"},"MIN_operator":{"id":"MIN_operator","title":"MIN operator","description":"The MIN operator creates a property that implements finding the minimum value.","sidebar":"learn"},"Modularity":{"id":"Modularity","title":"Modularity","description":"Modularity is a key mechanism for providing extensibility, reusability, and effective interaction among the development team.","sidebar":"learn"},"Module_header":{"id":"Module_header","title":"Module header","description":"Each module begins with a header.","sidebar":"learn"},"Modules":{"id":"Modules","title":"Modules","description":"A module is a functionally complete part of a project. A module consists of declarations of properties, actions, events, constraints, and other system elements.","sidebar":"learn"},"MULTI_action_operator":{"id":"MULTI_action_operator","title":"MULTI operator","description":"The MULTI operator creates an action that implements branching (polymorphic form).","sidebar":"learn"},"MULTI_operator":{"id":"MULTI_operator","title":"MULTI operator","description":"The MULTI operator creates a property that implements selection of one of the values (polymorphic form).","sidebar":"learn"},"Naming":{"id":"Naming","title":"Naming","description":"Each system element may have a *name* which can be used to access the element.","sidebar":"learn"},"Navigator":{"id":"Navigator","title":"Navigator","description":"Navigator is a hierarchical structure (tree) consisting of navigator elements. There are three types of navigator elements:","sidebar":"learn"},"Navigator_design":{"id":"Navigator_design","title":"Navigator design","description":"Navigator design determines how the navigator is displayed to the user on the screen of his device (we will call the screen space on which the navigator is displayed the desktop).","sidebar":"learn"},"NAVIGATOR_statement":{"id":"NAVIGATOR_statement","title":"NAVIGATOR statement","description":"The NAVIGATOR statement is used to modify the navigator.","sidebar":"learn"},"NESTEDSESSION_operator":{"id":"NESTEDSESSION_operator","title":"NESTEDSESSION operator","description":"The NESTEDSESSION operator creates an action that executes the other action in a nested session.","sidebar":"learn"},"New_object_NEW":{"id":"New_object_NEW","title":"New object (NEW)","description":"The new object operator creates an action that creates objects of a specified custom class for object collections where the value of some property (condition) is not NULL. The condition can be omitted, in which case it is considered to be equal to TRUE.","sidebar":"learn"},"NEW_operator":{"id":"NEW_operator","title":"NEW operator","description":"The NEW operator creates an action that creates objects of the specified class.","sidebar":"learn"},"New_session_NEWSESSION_NESTEDSESSION":{"id":"New_session_NEWSESSION_NESTEDSESSION","title":"New session (NEWSESSION, NESTEDSESSION)","description":"The new session operator allows you to execute an action in a session different from the current one.","sidebar":"learn"},"New_threads_NEWTHREAD_NEWEXECUTOR":{"id":"New_threads_NEWTHREAD_NEWEXECUTOR","title":"New threads (NEWTHREAD, NEWEXECUTOR)","description":"The new thread operator allows you to execute an action in a thread other than the current one.","sidebar":"learn"},"NEWEXECUTOR_operator":{"id":"NEWEXECUTOR_operator","title":"NEWEXECUTOR operator","description":"The NEWEXECUTOR operator is the creation of an action that allows the execution of other actions in a new thread pool.","sidebar":"learn"},"NEWSESSION_operator":{"id":"NEWSESSION_operator","title":"NEWSESSION operator","description":"The NEWSESSION operator creates an action that executes the other action in a new session.","sidebar":"learn"},"NEWTHREAD_operator":{"id":"NEWTHREAD_operator","title":"NEWTHREAD operator","description":"The NEWTHREAD operator creates an action that executes another action in a new thread.","sidebar":"learn"},"Object_blocks":{"id":"Object_blocks","title":"Object blocks","description":"Object block of the FORM statement adds objects (including object groups) to the form structure, as well as object trees to the interactive form view.","sidebar":"learn"},"Object_group_operator":{"id":"Object_group_operator","title":"Object group operator","description":"Object group operators are used for creating properties working with the current state of the object group on the form.","sidebar":"learn"},"Object_group_operators":{"id":"Object_group_operators","title":"Object group operators","description":"Object group operators include the following operators:","sidebar":"learn"},"Object_tree_visibility_EXPAND_COLLAPSE":{"id":"Object_tree_visibility_EXPAND_COLLAPSE","title":"Object tree visibility (EXPAND, COLLAPSE)","description":"Object tree *expansion* and *collapse* operators provide control over the visibility of elements within a tree displayed on a form. As input to these operators, the object group to which the operation is applied is passed. It is also specified over which tree elements (each corresponding to a specific object collection in the mentioned group) the operation needs to be performed:","sidebar":"learn"},"ON_statement":{"id":"ON_statement","title":"ON statement","description":"The ON statement adds an event handler.","sidebar":"learn"},"Online_demo":{"id":"Online_demo","title":"Online demo","description":"All demos support the following browsers: Chrome (recommended), Safari, Firefox, Opera, and Internet Explorer.","sidebar":"learn"},"Open_form":{"id":"Open_form","title":"Open form","description":"The open form operator creates an action that opens the specified form.","sidebar":"learn"},"Operations_with_primitives":{"id":"Operations_with_primitives","title":"Operations with primitives","description":"\u041eperations with primitives include operators for working with properties which values belong to the built-in classes. The platform supports the following operators:","sidebar":"learn"},"Operator_priority":{"id":"Operator_priority","title":"Operator priority","description":"When evaluating an expression, operators are evaluated in a specific order depending on operator priority. The higher the operator\u2019s priority, the earlier it will be executed. The table below lists the priorities of all operators in descending order.","sidebar":"learn"},"Order_ORDER":{"id":"Order_ORDER","title":"Order (ORDER)","description":"The order operator creates a property that returns the sequence number of an object collection in the specified group of objects, in accordance with the current order of this group.","sidebar":"learn"},"OVERRIDE_operator":{"id":"OVERRIDE_operator","title":"OVERRIDE operator","description":"The OVERRIDE operator creates a property that implements the selection of one of the values (polymorphic form).","sidebar":"learn"},"Paradigm":{"id":"Paradigm","title":"Paradigm","description":"The paradigm can be divided into two parts:","sidebar":"learn"},"PARTITION_operator":{"id":"PARTITION_operator","title":"PARTITION operator","description":"The PARTITION operator creates a property that implements partition/order or simple distribution.","sidebar":"learn"},"Partitioning_sorting_PARTITION_..._ORDER":{"id":"Partitioning_sorting_PARTITION_..._ORDER","title":"Partitioning / sorting (PARTITION ... ORDER)","description":"The partition/order operator creates a property that partitions all objects collections in the system into groups, and using the specified order calculates an aggregate function for each objects collection. Accordingly, the set on which this aggregating function is calculated is determined as following: all object collections of the group of this object collection, and the order of which is less than or equal to the order of this object collection.","sidebar":"learn"},"Physical_model":{"id":"Physical_model","title":"Physical model","description":"The physical model consists of three parts:","sidebar":"learn"},"PREV_operator":{"id":"PREV_operator","title":"PREV operator","description":"The PREV operator creates a property using a previous value operator.","sidebar":"learn"},"Previous_value_PREV":{"id":"Previous_value_PREV","title":"Previous value (PREV)","description":"The previous value operator creates a property that returns the value of the specified property at the beginning of the session (that is, the current value in the database ignoring the session changes).","sidebar":"learn"},"Primitive_input_INPUT":{"id":"Primitive_input_INPUT","title":"Primitive input (INPUT)","description":"The primitive input operator creates an action that requests the client to input a value of a builtin class. The user can cancel the input, for example by pressing the Esc key on the keyboard.","sidebar":"learn"},"PRINT_operator":{"id":"PRINT_operator","title":"PRINT operator","description":"The PRINT operator creates an action that opens a form in print view.","sidebar":"learn"},"Print_view":{"id":"Print_view","title":"Print view","description":"Print view of the form consists of a set of templates (reports). When data is substituted in these templates, a document is formed in graphic (with pixel positioning) or pseudographic (with cell positioning) format. This document is displayed to the user using a special graphic component, inside which the user can navigate through pages, zoom in/out within pages and print the contents of the component or export it to various formats (for example, PDF or Excel). If necessary, it is possible to skip the display of the component to the user and send the document for printing or save it into a selected file in the specified format.","sidebar":"learn"},"Process_monitor":{"id":"Process_monitor","title":"Process monitor","description":"(Under development)","sidebar":"learn"},"Profiler":{"id":"Profiler","title":"Profiler","description":"(Under development)","sidebar":"learn"},"Projects":{"id":"Projects","title":"Projects","description":"Project is a collection of modules and additional information (pictures, report design files, etc.) that fully describe the functionality of the information system being created.","sidebar":"learn"},"Properties":{"id":"Properties","title":"Properties","description":"A property is an element of the system that takes a set of objects (parameters) and returns exactly one object (the return value).","sidebar":"learn"},"Properties_and_actions_block":{"id":"Properties_and_actions_block","title":"Properties and actions block","description":"The property and action block of the FORM statement adds properties and actions to the form structure.","sidebar":"learn"},"Property_change_CHANGE":{"id":"Property_change_CHANGE","title":"Property change (CHANGE)","description":"The property change operator allows you to change the values of one property (write) to the value of another property (read) for all object collections for which the value of a third property (condition) is not NULL. The condition can be omitted (in which case it is considered to be equal to TRUE).","sidebar":"learn"},"Property_extension":{"id":"Property_extension","title":"Property extension","description":"The properties extension technique allows the developer to declare an abstract action in one module and define its implementation in other modules. This technique is essentially a \\"postponed definition\\" of a selection operator, where the operator\u2019s title is defined when the property is declared, and as new functionality (of classes or static objects) is added, selection options are added to the system. Furthermore, variants of selection (if it is not mutually exclusive) can be added both to the beginning and to the end of the abstract property created.","sidebar":"learn"},"Property_operators":{"id":"Property_operators","title":"Property operators","description":"Property operator is a syntax construct that describes an operator creating a property.","sidebar":"learn"},"Property_operators_paradigm":{"id":"Property_operators_paradigm","title":"Operators","description":"The platform currently supports the following property creation operators:","sidebar":"learn"},"Property_options":{"id":"Property_options","title":"Property options","description":"When a property is declared in the = statement a set of property options can be specified at the end of the declaration","sidebar":"learn"},"Property_signature_CLASS":{"id":"Property_signature_CLASS","title":"Signature matching (ISCLASS)","description":"The signature matching operator creates a property that determines, from a class perspective, whether the property specified in the operator can have a non-NULL value for the given arguments. In fact, this operator infers the possible classes of a given property from its semantics, and then, using logical operators and the classification operator, creates the required property.","sidebar":"learn"},"Read_file_READ":{"id":"Read_file_READ","title":"Read file (READ)","description":"The read file operator creates an action that reads a file from a defined source and writes this file to the specified local data property without parameters.","sidebar":"learn"},"READ_operator":{"id":"READ_operator","title":"READ operator","description":"The READ operator creates an action that reads a file to a property from an external resource.","sidebar":"learn"},"RECURSION_operator":{"id":"RECURSION_operator","title":"RECURSION operator","description":"The RECURSION operator creates a property that implements recursion.","sidebar":"learn"},"Recursion_RECURSION":{"id":"Recursion_RECURSION","title":"Recursion (RECURSION)","description":"The recursion operator is an operator that creates a property which sequentially performs two operations:","sidebar":"learn"},"Recursive_loop_WHILE":{"id":"Recursive_loop_WHILE","title":"Recursive loop (WHILE)","description":"The recursive loop operator is similar to a regular loop operator, with the only difference being that iteration is performed recursively until at a certain point the set of objects collections satisfying the condition becomes empty. As a result, there is no sense in defining alternative actions with this operator.","sidebar":"learn"},"Report_design":{"id":"Report_design","title":"Report design","description":"For each report you need to specify a special file (template) which will be used to build the result document. The name of the template for a specific report is `. An empty object group is considered to have no name, so if the first object group is empty, the name of the template is simply equal to the name of the form (without the _` postfix).","sidebar":"learn"},"REQUEST_operator":{"id":"REQUEST_operator","title":"REQUEST operator","description":"The REQUEST operator creates an action that requests a value.","sidebar":"learn"},"RETURN_operator":{"id":"RETURN_operator","title":"RETURN operator","description":"The RETURN operator creates an action that implements exit from an action created by the EXEC operator.","sidebar":"learn"},"ROUND_operator":{"id":"ROUND_operator","title":"ROUND operator","description":"ROUND operator creates a property that implements the rounding operation.","sidebar":"learn"},"Rounding_operator_ROUND":{"id":"Rounding_operator_ROUND","title":"Rounding operator (ROUND)","description":"The rounding operator creates a property whose value is the result of rounding a number to the specified number of digits. The arguments of this operator must be properties that determine the number and the rounding precision. Negative precision values indicate the number of least significant digits to be rounded in the integer part of the number, allowing you to round the number to tens, hundreds, etc.","sidebar":"learn"},"Scheduler":{"id":"Scheduler","title":"Scheduler","description":"The scheduler is designed to automatically execute certain tasks with specified frequency.","sidebar":"learn"},"Score_table":{"id":"Score_table","title":"Score table","description":"\\"Score table\\" task description","sidebar":"learn"},"Search_":{"id":"Search_","title":"Search","description":"Each element in the system contains certain information that allows it to be uniquely identified among other elements of the system. However, providing all the information about the element in each place it is used is rather cumbersome; so the platform has a special search algorithm, which allows you to find the desired element with only part of the information about it (for example, only a short name and the module which uses the item you are searching for).","sidebar":"learn"},"Search_SEEK":{"id":"Search_SEEK","title":"Search (SEEK)","description":"Search operator tries to make the specified object collection current for the specified form object group. The objects from the specified object collection shall be called seek objects.","sidebar":"learn"},"Security_policy":{"id":"Security_policy","title":"Security policy","description":"Customizing user roles","sidebar":"learn"},"SEEK_operator":{"id":"SEEK_operator","title":"SEEK operator","description":"The SEEK operator creates an action that seeks specified objects on a form.","sidebar":"learn"},"Selection_CASE_IF_MULTI_OVERRIDE_EXCLUSIVE":{"id":"Selection_CASE_IF_MULTI_OVERRIDE_EXCLUSIVE","title":"Selection (CASE, IF, MULTI, OVERRIDE, EXCLUSIVE)","description":"The selection operator creates a property that determines for a set of conditions which condition is met, and returns the value of the result corresponding to that condition. If none of the conditions is met, then the value of the created property will be NULL.","sidebar":"learn"},"Send_mail_EMAIL":{"id":"Send_mail_EMAIL","title":"Send mail (EMAIL)","description":"The send mail operator creates an action that sends an email to the specified email addresses. As with any email, you can define the sender, recipient, body text, attachment files with specified names and other parameters.","sidebar":"learn"},"Sequence":{"id":"Sequence","title":"Sequence ({...})","description":"To create an action that performs a sequence of other actions, the {...} operator is used - a block enclosed by curly brackets. The body of this block must contain a sequence of action operators and local property declarations.","sidebar":"learn"},"Session_management":{"id":"Session_management","title":"Session management","description":"The system has the following operators for working with sessions:","sidebar":"learn"},"Set_operations":{"id":"Set_operations","title":"Set operations","description":"One of the key features of the platform is the ability to execute certain operations for all object collections for which the values of one or more properties are not NULL. In the property logic such an operation is the calculation of various aggregate functions.","sidebar":"learn"},"Show_message_MESSAGE_ASK":{"id":"Show_message_MESSAGE_ASK","title":"Show message (MESSAGE, ASK)","description":"The show message operators create actions that show a text message to the user. The message is defined as a property whose value will be used as the message content. This message can be displayed either using a dialog box or in the System.log system window.","sidebar":"learn"},"SHOW_operator":{"id":"SHOW_operator","title":"SHOW operator","description":"The SHOW operator creates an action that opens a form in interactive view.","sidebar":"learn"},"Simple_constraints":{"id":"Simple_constraints","title":"Simple constraints","description":"The platform currently supports four types of simple constraints: consequence, exception, equality, and definiteness. For all simple constraints, an automatic resolution mechanism is supported. When this is enabled, instead of throwing an error the platform itself restores system integrity.","sidebar":"learn"},"Simple_event":{"id":"Simple_event","title":"Simple event","description":"Simple event - an event that occurs when the value of the specified property (which shall be called an event condition) changes to non-NULL. This event is a kind of extension of a basic event (adding an additional condition), which means that all the same parameters must be set as for an basic event, in particular:","sidebar":"learn"},"State_change":{"id":"State_change","title":"State change","description":"System state change operators include the following.","sidebar":"learn"},"Statements":{"id":"Statements","title":"Statements","description":"The code of any module in lsFusion consists of a sequence of statements.","sidebar":"learn"},"Static_objects":{"id":"Static_objects","title":"Static objects","description":"Static (or built-in) objects are objects that are defined by the developer and are automatically created on system startup (if they are not present in the system at launch time). Also, such objects are prohibited from being deleted.","sidebar":"learn"},"Static_view":{"id":"Static_view","title":"Static view","description":"In static view, all form data is read at the time the form is opened, after which the obtained data is converted:","sidebar":"learn"},"String_operators_+_CONCAT_SUBSTRING":{"id":"String_operators_+_CONCAT_SUBSTRING","title":"String operators (+, CONCAT, SUBSTRING)","description":"String operators are operators which parameters and result are the properties which values are instances of the string classes. The platform currently supports the following string operators:","sidebar":"learn"},"STRUCT_operator":{"id":"STRUCT_operator","title":"STRUCT operator","description":"The STRUCT operator creates a property that creates a structure.","sidebar":"learn"},"Structure_operators_STRUCT":{"id":"Structure_operators_STRUCT","title":"Structure operators (STRUCT, [])","description":"The term structure is used in the platform to refer to the classes which objects consist of a collection of other objects in a fixed order. The platform supports two operators for working with structures:","sidebar":"learn"},"Structured_view":{"id":"Structured_view","title":"Structured view","description":"All structured views (formats) can be divided into two types:","sidebar":"learn"},"System_parameters":{"id":"System_parameters","title":"System parameters","description":"Launch parameters","sidebar":"learn"},"TABLE_statement":{"id":"TABLE_statement","title":"TABLE statement","description":"The TABLE statement creates an new table.","sidebar":"learn"},"Tables":{"id":"Tables","title":"Tables","description":"For storing and calculating values of the properties the lsFusion platform uses a relational database. All data properties, as well as all calculated properties marked as materialized, are stored in the fields of the tables in the database. For each table, there is a set of key fields with the names key0, key1, ..., keyN, where the object IDs are stored. All other fields store property values in such a way that in the corresponding field of each row there is a property value for the objects with IDs from the key fields. Objects of built-in classes can also be used as table keys.","sidebar":"learn"},"Tokens":{"id":"Tokens","title":"Tokens","description":"A token in a programming language is the smallest significant sequence of characters. In the lsFusion language tokens are keywords, IDs, literals and special character sequences.","sidebar":"learn"},"TRY_operator":{"id":"TRY_operator","title":"TRY operator","description":"The TRY operator creates an action that executes another action with exception handling.","sidebar":"learn"},"Type_conversion":{"id":"Type_conversion","title":"Type conversion","description":"The type conversion operator creates a property that converts an object of one built-in class to an object of another built-in class. If type conversion is not possible, the property value will be NULL.","sidebar":"learn"},"Type_conversion_operator":{"id":"Type_conversion_operator","title":"Type conversion operator","description":"The type conversion operator creates a property that performs type conversion.","sidebar":"learn"},"UNGROUP_operator":{"id":"UNGROUP_operator","title":"UNGROUP operator","description":"At the moment, the UNGROUP operator is not implemented.","sidebar":"learn"},"User_classes":{"id":"User_classes","title":"User classes","description":"Classes that a developer can create and the instances of which a user can create are called custom classes.","sidebar":"learn"},"User_interface":{"id":"User_interface","title":"User interface","description":"(Under development)","sidebar":"learn"},"User_IS_interaction":{"id":"User_IS_interaction","title":"User/IS interaction","description":"This category includes operators for interacting with the user and with other information systems:","sidebar":"learn"},"Value_input":{"id":"Value_input","title":"Value input","description":"This category includes operators responsible for inputting a value:","sidebar":"learn"},"Value_request_REQUEST":{"id":"Value_request_REQUEST","title":"Value request (REQUEST)","description":"The value request operator creates an action in which requesting value(s) is separated from directly processing the value(s). Accordingly, this operator allows not to perform a value request if its result is known in advance in the context of the call (the value of the System.requestPushed property is equal to TRUE). This, in turn, automatically gives you the following capabilities in various use cases:","sidebar":"learn"},"View_logic":{"id":"View_logic","title":"View logic","description":"The key element of the view logic is the form. Forms are used in the platform to organize the input and output of information into the system (from the system).","sidebar":"learn"},"View_VIEW":{"id":"View_VIEW","title":"View (VIEW)","description":"The view operator creates a property that returns TRUE if the object collection is visible to the user in the specified object group, and NULL otherwise.","sidebar":"learn"},"WHEN_statement":{"id":"WHEN_statement","title":"WHEN statement","description":"The WHEN statement adds a simple event handler.","sidebar":"learn"},"WHILE_operator":{"id":"WHILE_operator","title":"WHILE operator","description":"The WHILE operator creates an action that implements a recursive loop.","sidebar":"learn"},"WINDOW_statement":{"id":"WINDOW_statement","title":"WINDOW statement","description":"The WINDOW statement creates a new window.","sidebar":"learn"},"Working_parameters":{"id":"Working_parameters","title":"Working parameters","description":"The platform working parameters can be set in one of the following ways (in the order of their priorities, lower priority at the bottom):","sidebar":"learn"},"Write_file_WRITE":{"id":"Write_file_WRITE","title":"Write file (WRITE)","description":"The write file operator creates an action which reads a file from the value of some property and saves it to the defined source.","sidebar":"learn"},"WRITE_operator":{"id":"WRITE_operator","title":"WRITE operator","description":"The WRITE operator creates an action that writes a file from a property to an external resource.","sidebar":"learn"}}}')}}]); \ No newline at end of file +"use strict";(self.webpackChunkls_fusion_docs=self.webpackChunkls_fusion_docs||[]).push([[98581],{35610:e=>{e.exports=JSON.parse('{"pluginId":"default","version":"current","label":"6.x","banner":"unreleased","badge":true,"noIndex":false,"className":"docs-version-current","isLast":false,"docsSidebars":{"install":[{"type":"link","label":"Overview","href":"/next/Install","docId":"Install","unlisted":false},{"collapsed":false,"type":"category","label":"Automatic installation","items":[{"type":"link","label":"For development","href":"/next/Development_auto","docId":"Development_auto","unlisted":false},{"type":"link","label":"For production","href":"/next/Execution_auto","docId":"Execution_auto","unlisted":false}],"collapsible":true,"href":"/next/Automatic_installation"},{"collapsed":false,"type":"category","label":"Manual installation","items":[{"type":"link","label":"For development","href":"/next/Development_manual","docId":"Development_manual","unlisted":false},{"type":"link","label":"For production","href":"/next/Execution_manual","docId":"Execution_manual","unlisted":false}],"collapsible":true,"href":"/next/Manual_installation"}],"learn":[{"type":"link","label":"Overview","href":"/next/","docId":"Learn","unlisted":false},{"collapsed":false,"type":"category","label":"Paradigm","items":[{"type":"category","label":"Logical model","items":[{"type":"category","label":"Domain logic","items":[{"type":"category","label":"Properties","items":[{"type":"category","label":"Operators","items":[{"type":"link","label":"Data properties (DATA)","href":"/next/Data_properties_DATA","docId":"Data_properties_DATA","unlisted":false},{"type":"link","label":"Composition (JOIN)","href":"/next/Composition_JOIN","docId":"Composition_JOIN","unlisted":false},{"type":"link","label":"Constant","href":"/next/Constant","docId":"Constant","unlisted":false},{"type":"category","label":"Operations with primitives","items":[{"type":"link","label":"Arithmetic operators (+, -, *, ...)","href":"/next/Arithmetic_operators_+_-_etc","docId":"Arithmetic_operators_+_-_etc","unlisted":false},{"type":"link","label":"Logical operators (AND, OR, NOT, XOR)","href":"/next/Logical_operators_AND_OR_NOT_XOR","docId":"Logical_operators_AND_OR_NOT_XOR","unlisted":false},{"type":"link","label":"Comparison operators (=, >, <, ...)","href":"/next/Comparison_operators_=_etc","docId":"Comparison_operators_=_etc","unlisted":false},{"type":"link","label":"Rounding operator (ROUND)","href":"/next/Rounding_operator_ROUND","docId":"Rounding_operator_ROUND","unlisted":false},{"type":"link","label":"Extremum (MAX, MIN)","href":"/next/Extremum_MAX_MIN","docId":"Extremum_MAX_MIN","unlisted":false},{"type":"link","label":"String operators (+, CONCAT, SUBSTRING)","href":"/next/String_operators_+_CONCAT_SUBSTRING","docId":"String_operators_+_CONCAT_SUBSTRING","unlisted":false},{"type":"link","label":"Structure operators (STRUCT, [])","href":"/next/Structure_operators_STRUCT","docId":"Structure_operators_STRUCT","unlisted":false},{"type":"link","label":"Type conversion","href":"/next/Type_conversion","docId":"Type_conversion","unlisted":false}],"collapsed":true,"collapsible":true,"href":"/next/Operations_with_primitives"},{"type":"category","label":"Class operators","items":[{"type":"link","label":"Classification (IS/AS)","href":"/next/Classification_IS_AS","docId":"Classification_IS_AS","unlisted":false},{"type":"link","label":"Signature matching (ISCLASS)","href":"/next/Property_signature_CLASS","docId":"Property_signature_CLASS","unlisted":false}],"collapsed":true,"collapsible":true,"href":"/next/Class_operators"},{"type":"link","label":"Selection (CASE, IF, MULTI, OVERRIDE, EXCLUSIVE)","href":"/next/Selection_CASE_IF_MULTI_OVERRIDE_EXCLUSIVE","docId":"Selection_CASE_IF_MULTI_OVERRIDE_EXCLUSIVE","unlisted":false},{"type":"category","label":"Set operations","items":[{"type":"link","label":"Grouping (GROUP)","href":"/next/Grouping_GROUP","docId":"Grouping_GROUP","unlisted":false},{"type":"link","label":"Partitioning / sorting (PARTITION ... ORDER)","href":"/next/Partitioning_sorting_PARTITION_..._ORDER","docId":"Partitioning_sorting_PARTITION_..._ORDER","unlisted":false},{"type":"link","label":"Recursion (RECURSION)","href":"/next/Recursion_RECURSION","docId":"Recursion_RECURSION","unlisted":false},{"type":"link","label":"Distribution (UNGROUP)","href":"/next/Distribution_UNGROUP","docId":"Distribution_UNGROUP","unlisted":false}],"collapsed":true,"collapsible":true,"href":"/next/Set_operations"}],"collapsed":true,"collapsible":true,"href":"/next/Property_operators_paradigm"}],"collapsed":true,"collapsible":true,"href":"/next/Properties"},{"type":"category","label":"Actions","items":[{"type":"link","label":"Change sessions","href":"/next/Change_sessions","docId":"Change_sessions","unlisted":false},{"type":"category","label":"\u041eperators","items":[{"type":"category","label":"Execution order","items":[{"type":"link","label":"Sequence ({...})","href":"/next/Sequence","docId":"Sequence","unlisted":false},{"type":"link","label":"Call (EXEC)","href":"/next/Call_EXEC","docId":"Call_EXEC","unlisted":false},{"type":"link","label":"Loop (FOR)","href":"/next/Loop_FOR","docId":"Loop_FOR","unlisted":false},{"type":"link","label":"Branching (CASE, IF, MULTI)","href":"/next/Branching_CASE_IF_MULTI","docId":"Branching_CASE_IF_MULTI","unlisted":false},{"type":"link","label":"Recursive loop (WHILE)","href":"/next/Recursive_loop_WHILE","docId":"Recursive_loop_WHILE","unlisted":false},{"type":"link","label":"Interruption (BREAK)","href":"/next/Interruption_BREAK","docId":"Interruption_BREAK","unlisted":false},{"type":"link","label":"Exit (RETURN)","href":"/next/Exit_RETURN","docId":"Exit_RETURN","unlisted":false},{"type":"link","label":"New threads (NEWTHREAD, NEWEXECUTOR)","href":"/next/New_threads_NEWTHREAD_NEWEXECUTOR","docId":"New_threads_NEWTHREAD_NEWEXECUTOR","unlisted":false},{"type":"link","label":"Exception handling (TRY)","href":"/next/Exception_handling_TRY","docId":"Exception_handling_TRY","unlisted":false}],"collapsed":true,"collapsible":true,"href":"/next/Execution_order"},{"type":"category","label":"State change","items":[{"type":"link","label":"Property change (CHANGE)","href":"/next/Property_change_CHANGE","docId":"Property_change_CHANGE","unlisted":false},{"type":"link","label":"New object (NEW)","href":"/next/New_object_NEW","docId":"New_object_NEW","unlisted":false},{"type":"link","label":"Class change (CHANGECLASS, DELETE)","href":"/next/Class_change_CHANGECLASS_DELETE","docId":"Class_change_CHANGECLASS_DELETE","unlisted":false}],"collapsed":true,"collapsible":true,"href":"/next/State_change"},{"type":"category","label":"Session management","items":[{"type":"link","label":"Apply changes (APPLY)","href":"/next/Apply_changes_APPLY","docId":"Apply_changes_APPLY","unlisted":false},{"type":"link","label":"Cancel changes (CANCEL)","href":"/next/Cancel_changes_CANCEL","docId":"Cancel_changes_CANCEL","unlisted":false},{"type":"link","label":"New session (NEWSESSION, NESTEDSESSION)","href":"/next/New_session_NEWSESSION_NESTEDSESSION","docId":"New_session_NEWSESSION_NESTEDSESSION","unlisted":false},{"type":"link","label":"Previous value (PREV)","href":"/next/Previous_value_PREV","docId":"Previous_value_PREV","unlisted":false},{"type":"link","label":"Change operators (SET, CHANGED, ...)","href":"/next/Change_operators_SET_CHANGED_etc","docId":"Change_operators_SET_CHANGED_etc","unlisted":false}],"collapsed":true,"collapsible":true,"href":"/next/Session_management"},{"type":"category","label":"User/IS interaction","items":[{"type":"link","label":"Show message (MESSAGE, ASK)","href":"/next/Show_message_MESSAGE_ASK","docId":"Show_message_MESSAGE_ASK","unlisted":false},{"type":"category","label":"File operators","items":[{"type":"link","label":"Read file (READ)","href":"/next/Read_file_READ","docId":"Read_file_READ","unlisted":false},{"type":"link","label":"Write file (WRITE)","href":"/next/Write_file_WRITE","docId":"Write_file_WRITE","unlisted":false},{"type":"link","label":"Data import (IMPORT)","href":"/next/Data_import_IMPORT","docId":"Data_import_IMPORT","unlisted":false},{"type":"link","label":"Data export (EXPORT)","href":"/next/Data_export_EXPORT","docId":"Data_export_EXPORT","unlisted":false}],"collapsed":true,"collapsible":true,"href":"/next/File_operators"},{"type":"link","label":"Send mail (EMAIL)","href":"/next/Send_mail_EMAIL","docId":"Send_mail_EMAIL","unlisted":false}],"collapsed":true,"collapsible":true,"href":"/next/User_IS_interaction"}],"collapsed":true,"collapsible":true,"href":"/next/Action_operators_paradigm"}],"collapsed":true,"collapsible":true,"href":"/next/Actions"},{"type":"category","label":"Events","items":[{"type":"link","label":"Simple event","href":"/next/Simple_event","docId":"Simple_event","unlisted":false},{"type":"link","label":"Calculated events","href":"/next/Calculated_events","docId":"Calculated_events","unlisted":false}],"collapsed":true,"collapsible":true,"href":"/next/Events"},{"type":"category","label":"Constraints","items":[{"type":"link","label":"Simple constraints","href":"/next/Simple_constraints","docId":"Simple_constraints","unlisted":false},{"type":"category","label":"Classes","items":[{"type":"link","label":"Built-in classes","href":"/next/Built-in_classes","docId":"Built-in_classes","unlisted":false},{"type":"link","label":"User classes","href":"/next/User_classes","docId":"User_classes","unlisted":false},{"type":"link","label":"Static objects","href":"/next/Static_objects","docId":"Static_objects","unlisted":false}],"collapsed":true,"collapsible":true,"href":"/next/Classes"},{"type":"link","label":"Aggregations","href":"/next/Aggregations","docId":"Aggregations","unlisted":false}],"collapsed":true,"collapsible":true,"href":"/next/Constraints"}],"collapsed":true,"collapsible":true,"href":"/next/Domain_logic"},{"type":"category","label":"View logic","items":[{"type":"category","label":"Forms","items":[{"type":"category","label":"Form structure","items":[{"type":"link","label":"Groups of properties and actions","href":"/next/Groups_of_properties_and_actions","docId":"Groups_of_properties_and_actions","unlisted":false}],"collapsed":true,"collapsible":true,"href":"/next/Form_structure"},{"type":"category","label":"Form views","items":[{"type":"category","label":"Interactive view","items":[{"type":"link","label":"Form design","href":"/next/Form_design","docId":"Form_design","unlisted":false},{"type":"link","label":"Form events","href":"/next/Form_events","docId":"Form_events","unlisted":false},{"type":"category","label":"Form operators","items":[{"type":"category","label":"Value input","items":[{"type":"link","label":"Primitive input (INPUT)","href":"/next/Primitive_input_INPUT","docId":"Primitive_input_INPUT","unlisted":false},{"type":"link","label":"Value request (REQUEST)","href":"/next/Value_request_REQUEST","docId":"Value_request_REQUEST","unlisted":false}],"collapsed":true,"collapsible":true,"href":"/next/Value_input"},{"type":"category","label":"Object group operators","items":[{"type":"link","label":"Search (SEEK)","href":"/next/Search_SEEK","docId":"Search_SEEK","unlisted":false},{"type":"link","label":"Object tree visibility (EXPAND, COLLAPSE)","href":"/next/Object_tree_visibility_EXPAND_COLLAPSE","docId":"Object_tree_visibility_EXPAND_COLLAPSE","unlisted":false},{"type":"link","label":"Filter (FILTER)","href":"/next/Filter_FILTER","docId":"Filter_FILTER","unlisted":false},{"type":"link","label":"Order (ORDER)","href":"/next/Order_ORDER","docId":"Order_ORDER","unlisted":false},{"type":"link","label":"View (VIEW)","href":"/next/View_VIEW","docId":"View_VIEW","unlisted":false}],"collapsed":true,"collapsible":true,"href":"/next/Object_group_operators"},{"type":"category","label":"Focus operators","items":[{"type":"link","label":"Activation (ACTIVATE)","href":"/next/Activation_ACTIVATE","docId":"Activation_ACTIVATE","unlisted":false},{"type":"link","label":"Activity (ACTIVE)","href":"/next/Activity_ACTIVE","docId":"Activity_ACTIVE","unlisted":false}],"collapsed":true,"collapsible":true,"href":"/next/Focus_operators"}],"collapsed":true,"collapsible":true,"href":"/next/Form_operators"}],"collapsed":true,"collapsible":true,"href":"/next/Interactive_view"},{"type":"category","label":"Static view","items":[{"type":"category","label":"Print view","items":[{"type":"link","label":"Report design","href":"/next/Report_design","docId":"Report_design","unlisted":false}],"collapsed":true,"collapsible":true,"href":"/next/Print_view"},{"type":"link","label":"Structured view","href":"/next/Structured_view","docId":"Structured_view","unlisted":false}],"collapsed":true,"collapsible":true,"href":"/next/Static_view"}],"collapsed":true,"collapsible":true,"href":"/next/Form_views"},{"type":"category","label":"Open form","items":[{"type":"link","label":"In an interactive view (SHOW, DIALOG)","href":"/next/In_an_interactive_view_SHOW_DIALOG","docId":"In_an_interactive_view_SHOW_DIALOG","unlisted":false},{"type":"link","label":"In a print view (PRINT)","href":"/next/In_a_print_view_PRINT","docId":"In_a_print_view_PRINT","unlisted":false},{"type":"link","label":"In a structured view (EXPORT, IMPORT)","href":"/next/In_a_structured_view_EXPORT_IMPORT","docId":"In_a_structured_view_EXPORT_IMPORT","unlisted":false}],"collapsed":true,"collapsible":true,"href":"/next/Open_form"}],"collapsed":true,"collapsible":true,"href":"/next/Forms"},{"type":"category","label":"Navigator","items":[{"type":"link","label":"Navigator design","href":"/next/Navigator_design","docId":"Navigator_design","unlisted":false}],"collapsed":true,"collapsible":true,"href":"/next/Navigator"}],"collapsed":true,"collapsible":true,"href":"/next/View_logic"}],"collapsed":true,"collapsible":true,"href":"/next/Logical_model"},{"type":"category","label":"Physical model","items":[{"type":"category","label":"Development","items":[{"type":"category","label":"Element identification","items":[{"type":"link","label":"Naming","href":"/next/Naming","docId":"Naming","unlisted":false},{"type":"link","label":"Search","href":"/next/Search_","docId":"Search_","unlisted":false}],"collapsed":true,"collapsible":true,"href":"/next/Element_identification"},{"type":"category","label":"Modularity","items":[{"type":"link","label":"Modules","href":"/next/Modules","docId":"Modules","unlisted":false},{"type":"link","label":"Projects","href":"/next/Projects","docId":"Projects","unlisted":false},{"type":"category","label":"Extensions","items":[{"type":"link","label":"Class extension","href":"/next/Class_extension","docId":"Class_extension","unlisted":false},{"type":"link","label":"Property extension","href":"/next/Property_extension","docId":"Property_extension","unlisted":false},{"type":"link","label":"Action extension","href":"/next/Action_extension","docId":"Action_extension","unlisted":false},{"type":"link","label":"Form extension","href":"/next/Form_extension","docId":"Form_extension","unlisted":false}],"collapsed":true,"collapsible":true,"href":"/next/Extensions"}],"collapsed":true,"collapsible":true,"href":"/next/Modularity"},{"type":"link","label":"Metaprogramming","href":"/next/Metaprogramming","docId":"Metaprogramming","unlisted":false},{"type":"category","label":"Integration","items":[{"type":"link","label":"Access from an external system","href":"/next/Access_from_an_external_system","docId":"Access_from_an_external_system","unlisted":false},{"type":"link","label":"Access from an internal system","href":"/next/Access_from_an_internal_system","docId":"Access_from_an_internal_system","unlisted":false},{"type":"link","label":"Access to an external system (EXTERNAL)","href":"/next/Access_to_an_external_system_EXTERNAL","docId":"Access_to_an_external_system_EXTERNAL","unlisted":false},{"type":"category","label":"Access to an internal system (INTERNAL, FORMULA)","items":[{"type":"link","label":"Internal call (INTERNAL)","href":"/next/Internal_call_INTERNAL","docId":"Internal_call_INTERNAL","unlisted":false},{"type":"link","label":"Custom formula (FORMULA)","href":"/next/Custom_formula_FORMULA","docId":"Custom_formula_FORMULA","unlisted":false}],"collapsed":true,"collapsible":true,"href":"/next/Access_to_an_internal_system_INTERNAL_FORMULA"},{"type":"link","label":"Eval (EVAL)","href":"/next/Eval_EVAL","docId":"Eval_EVAL","unlisted":false}],"collapsed":true,"collapsible":true,"href":"/next/Integration"},{"type":"link","label":"Migration","href":"/next/Migration","docId":"Migration","unlisted":false},{"type":"link","label":"Internationalization","href":"/next/Internationalization","docId":"Internationalization","unlisted":false}],"collapsed":true,"collapsible":true,"href":"/next/Development"},{"type":"category","label":"Execution","items":[{"type":"link","label":"Materializations","href":"/next/Materializations","docId":"Materializations","unlisted":false},{"type":"link","label":"Indexes","href":"/next/Indexes","docId":"Indexes","unlisted":false},{"type":"link","label":"Tables","href":"/next/Tables","docId":"Tables","unlisted":false}],"collapsed":true,"collapsible":true,"href":"/next/Execution"},{"type":"category","label":"Management","items":[{"type":"category","label":"System parameters","items":[{"type":"category","label":"Launch parameters","items":[{"type":"link","label":"Launch events","href":"/next/Launch_events","docId":"Launch_events","unlisted":false}],"collapsed":true,"collapsible":true,"href":"/next/Launch_parameters"},{"type":"link","label":"Working parameters","href":"/next/Working_parameters","docId":"Working_parameters","unlisted":false}],"collapsed":true,"collapsible":true,"href":"/next/System_parameters"},{"type":"link","label":"User interface","href":"/next/User_interface","docId":"User_interface","unlisted":false},{"type":"link","label":"Interpreter","href":"/next/Interpreter","docId":"Interpreter","unlisted":false},{"type":"link","label":"Security policy","href":"/next/Security_policy","docId":"Security_policy","unlisted":false},{"type":"link","label":"Process monitor","href":"/next/Process_monitor","docId":"Process_monitor","unlisted":false},{"type":"link","label":"Scheduler","href":"/next/Scheduler","docId":"Scheduler","unlisted":false},{"type":"link","label":"Journals and logs","href":"/next/Journals_and_logs","docId":"Journals_and_logs","unlisted":false},{"type":"link","label":"Profiler","href":"/next/Profiler","docId":"Profiler","unlisted":false},{"type":"link","label":"Chat","href":"/next/Chat","docId":"Chat","unlisted":false}],"collapsed":true,"collapsible":true,"href":"/next/Management"}],"collapsed":true,"collapsible":true,"href":"/next/Physical_model"}],"collapsible":true,"href":"/next/Paradigm"},{"collapsed":false,"type":"category","label":"Language","items":[{"type":"link","label":"Tokens","href":"/next/Tokens","docId":"Tokens","unlisted":false},{"type":"link","label":"IDs","href":"/next/IDs","docId":"IDs","unlisted":false},{"type":"link","label":"Literals","href":"/next/Literals","docId":"Literals","unlisted":false},{"type":"category","label":"Statements","items":[{"type":"link","label":"Module header","href":"/next/Module_header","docId":"Module_header","unlisted":false},{"type":"category","label":"= statement","items":[{"type":"category","label":"Expression","items":[{"type":"link","label":"Operator priority","href":"/next/Operator_priority","docId":"Operator_priority","unlisted":false}],"collapsed":true,"collapsible":true,"href":"/next/Expression"},{"type":"category","label":"Property operators","items":[{"type":"link","label":"Arithmetic operators","href":"/next/Arithmetic_operators","docId":"Arithmetic_operators","unlisted":false},{"type":"link","label":"[] operator","href":"/next/Brackets_operator","docId":"Brackets_operator","unlisted":false},{"type":"link","label":"ABSTRACT operator","href":"/next/ABSTRACT_operator","docId":"ABSTRACT_operator","unlisted":false},{"type":"link","label":"ACTIVE TAB operator","href":"/next/ACTIVE_TAB_operator","docId":"ACTIVE_TAB_operator","unlisted":false},{"type":"link","label":"AGGR operator","href":"/next/AGGR_operator","docId":"AGGR_operator","unlisted":false},{"type":"link","label":"CASE operator","href":"/next/CASE_operator","docId":"CASE_operator","unlisted":false},{"type":"link","label":"CONCAT operator","href":"/next/CONCAT_operator","docId":"CONCAT_operator","unlisted":false},{"type":"link","label":"DATA operator","href":"/next/DATA_operator","docId":"DATA_operator","unlisted":false},{"type":"link","label":"EXCLUSIVE operator","href":"/next/EXCLUSIVE_operator","docId":"EXCLUSIVE_operator","unlisted":false},{"type":"link","label":"FORMULA operator","href":"/next/FORMULA_operator","docId":"FORMULA_operator","unlisted":false},{"type":"link","label":"GROUP operator","href":"/next/GROUP_operator","docId":"GROUP_operator","unlisted":false},{"type":"link","label":"IF operator","href":"/next/IF_operator","docId":"IF_operator","unlisted":false},{"type":"link","label":"IF ... THEN operator","href":"/next/IF_..._THEN_operator","docId":"IF_..._THEN_operator","unlisted":false},{"type":"link","label":"ISCLASS operator","href":"/next/CLASS_operator","docId":"CLASS_operator","unlisted":false},{"type":"link","label":"JOIN operator","href":"/next/JOIN_operator","docId":"JOIN_operator","unlisted":false},{"type":"link","label":"LIKE operator","href":"/next/LIKE_operator","docId":"LIKE_operator","unlisted":false},{"type":"link","label":"MAX operator","href":"/next/MAX_operator","docId":"MAX_operator","unlisted":false},{"type":"link","label":"MIN operator","href":"/next/MIN_operator","docId":"MIN_operator","unlisted":false},{"type":"link","label":"MULTI operator","href":"/next/MULTI_operator","docId":"MULTI_operator","unlisted":false},{"type":"link","label":"OVERRIDE operator","href":"/next/OVERRIDE_operator","docId":"OVERRIDE_operator","unlisted":false},{"type":"link","label":"PARTITION operator","href":"/next/PARTITION_operator","docId":"PARTITION_operator","unlisted":false},{"type":"link","label":"PREV operator","href":"/next/PREV_operator","docId":"PREV_operator","unlisted":false},{"type":"link","label":"RECURSION operator","href":"/next/RECURSION_operator","docId":"RECURSION_operator","unlisted":false},{"type":"link","label":"ROUND operator","href":"/next/ROUND_operator","docId":"ROUND_operator","unlisted":false},{"type":"link","label":"STRUCT operator","href":"/next/STRUCT_operator","docId":"STRUCT_operator","unlisted":false},{"type":"link","label":"UNGROUP operator","href":"/next/UNGROUP_operator","docId":"UNGROUP_operator","unlisted":false},{"type":"link","label":"Object group operator","href":"/next/Object_group_operator","docId":"Object_group_operator","unlisted":false},{"type":"link","label":"Type conversion operator","href":"/next/Type_conversion_operator","docId":"Type_conversion_operator","unlisted":false},{"type":"link","label":"AND, OR, NOT, XOR operators","href":"/next/AND_OR_NOT_XOR_operators","docId":"AND_OR_NOT_XOR_operators","unlisted":false},{"type":"link","label":"IS, AS operators","href":"/next/IS_AS_operators","docId":"IS_AS_operators","unlisted":false},{"type":"link","label":"Change operators","href":"/next/Change_operators","docId":"Change_operators","unlisted":false},{"type":"link","label":"Comparison operators","href":"/next/Comparison_operators","docId":"Comparison_operators","unlisted":false}],"collapsed":true,"collapsible":true,"href":"/next/Property_operators"},{"type":"link","label":"Property options","href":"/next/Property_options","docId":"Property_options","unlisted":false}],"collapsed":true,"collapsible":true,"href":"/next/=_statement"},{"type":"category","label":"ACTION statement","items":[{"type":"category","label":"Action operators","items":[{"type":"link","label":"{...} operator","href":"/next/Braces_operator","docId":"Braces_operator","unlisted":false},{"type":"link","label":"ABSTRACT operator","href":"/next/ABSTRACT_action_operator","docId":"ABSTRACT_action_operator","unlisted":false},{"type":"link","label":"ACTIVATE operator","href":"/next/ACTIVATE_operator","docId":"ACTIVATE_operator","unlisted":false},{"type":"link","label":"ACTIVE FORM operator","href":"/next/ACTIVE_FORM_operator","docId":"ACTIVE_FORM_operator","unlisted":false},{"type":"link","label":"APPLY operator","href":"/next/APPLY_operator","docId":"APPLY_operator","unlisted":false},{"type":"link","label":"ASK operator","href":"/next/ASK_operator","docId":"ASK_operator","unlisted":false},{"type":"link","label":"CHANGE operator","href":"/next/CHANGE_operator","docId":"CHANGE_operator","unlisted":false},{"type":"link","label":"BREAK operator","href":"/next/BREAK_operator","docId":"BREAK_operator","unlisted":false},{"type":"link","label":"CANCEL operator","href":"/next/CANCEL_operator","docId":"CANCEL_operator","unlisted":false},{"type":"link","label":"CASE operator","href":"/next/CASE_action_operator","docId":"CASE_action_operator","unlisted":false},{"type":"link","label":"CHANGECLASS operator","href":"/next/CHANGECLASS_operator","docId":"CHANGECLASS_operator","unlisted":false},{"type":"link","label":"COLLAPSE operator","href":"/next/COLLAPSE_operator","docId":"COLLAPSE_operator","unlisted":false},{"type":"link","label":"INTERNAL operator","href":"/next/INTERNAL_operator","docId":"INTERNAL_operator","unlisted":false},{"type":"link","label":"DELETE operator","href":"/next/DELETE_operator","docId":"DELETE_operator","unlisted":false},{"type":"link","label":"DIALOG operator","href":"/next/DIALOG_operator","docId":"DIALOG_operator","unlisted":false},{"type":"link","label":"EMAIL operator","href":"/next/EMAIL_operator","docId":"EMAIL_operator","unlisted":false},{"type":"link","label":"EVAL operator","href":"/next/EVAL_operator","docId":"EVAL_operator","unlisted":false},{"type":"link","label":"EXEC operator","href":"/next/EXEC_operator","docId":"EXEC_operator","unlisted":false},{"type":"link","label":"EXPAND operator","href":"/next/EXPAND_operator","docId":"EXPAND_operator","unlisted":false},{"type":"link","label":"EXPORT operator","href":"/next/EXPORT_operator","docId":"EXPORT_operator","unlisted":false},{"type":"link","label":"EXTERNAL operator","href":"/next/EXTERNAL_operator","docId":"EXTERNAL_operator","unlisted":false},{"type":"link","label":"FOR operator","href":"/next/FOR_operator","docId":"FOR_operator","unlisted":false},{"type":"link","label":"IF ... THEN operator","href":"/next/IF_..._THEN_action_operator","docId":"IF_..._THEN_action_operator","unlisted":false},{"type":"link","label":"IMPORT operator","href":"/next/IMPORT_operator","docId":"IMPORT_operator","unlisted":false},{"type":"link","label":"INPUT operator","href":"/next/INPUT_operator","docId":"INPUT_operator","unlisted":false},{"type":"link","label":"MESSAGE operator","href":"/next/MESSAGE_operator","docId":"MESSAGE_operator","unlisted":false},{"type":"link","label":"MULTI operator","href":"/next/MULTI_action_operator","docId":"MULTI_action_operator","unlisted":false},{"type":"link","label":"NEW operator","href":"/next/NEW_operator","docId":"NEW_operator","unlisted":false},{"type":"link","label":"NESTEDSESSION operator","href":"/next/NESTEDSESSION_operator","docId":"NESTEDSESSION_operator","unlisted":false},{"type":"link","label":"NEWEXECUTOR operator","href":"/next/NEWEXECUTOR_operator","docId":"NEWEXECUTOR_operator","unlisted":false},{"type":"link","label":"NEWSESSION operator","href":"/next/NEWSESSION_operator","docId":"NEWSESSION_operator","unlisted":false},{"type":"link","label":"NEWTHREAD operator","href":"/next/NEWTHREAD_operator","docId":"NEWTHREAD_operator","unlisted":false},{"type":"link","label":"PRINT operator","href":"/next/PRINT_operator","docId":"PRINT_operator","unlisted":false},{"type":"link","label":"READ operator","href":"/next/READ_operator","docId":"READ_operator","unlisted":false},{"type":"link","label":"REQUEST operator","href":"/next/REQUEST_operator","docId":"REQUEST_operator","unlisted":false},{"type":"link","label":"RETURN operator","href":"/next/RETURN_operator","docId":"RETURN_operator","unlisted":false},{"type":"link","label":"SEEK operator","href":"/next/SEEK_operator","docId":"SEEK_operator","unlisted":false},{"type":"link","label":"SHOW operator","href":"/next/SHOW_operator","docId":"SHOW_operator","unlisted":false},{"type":"link","label":"TRY operator","href":"/next/TRY_operator","docId":"TRY_operator","unlisted":false},{"type":"link","label":"WHILE operator","href":"/next/WHILE_operator","docId":"WHILE_operator","unlisted":false},{"type":"link","label":"WRITE operator","href":"/next/WRITE_operator","docId":"WRITE_operator","unlisted":false}],"collapsed":true,"collapsible":true,"href":"/next/Action_operators"},{"type":"link","label":"Action options","href":"/next/Action_options","docId":"Action_options","unlisted":false}],"collapsed":true,"collapsible":true,"href":"/next/ACTION_statement"},{"type":"link","label":"GROUP statement","href":"/next/GROUP_statement","docId":"GROUP_statement","unlisted":false},{"type":"category","label":"ON statement","items":[{"type":"link","label":"Event description block","href":"/next/Event_description_block","docId":"Event_description_block","unlisted":false}],"collapsed":true,"collapsible":true,"href":"/next/ON_statement"},{"type":"link","label":"WHEN statement","href":"/next/WHEN_statement","docId":"WHEN_statement","unlisted":false},{"type":"link","label":"<- WHEN statement","href":"/next/lt-_WHEN_statement","docId":"lt-_WHEN_statement","unlisted":false},{"type":"link","label":"CONSTRAINT statement","href":"/next/CONSTRAINT_statement","docId":"CONSTRAINT_statement","unlisted":false},{"type":"link","label":"=> statement","href":"/next/=gt_statement","docId":"=gt_statement","unlisted":false},{"type":"link","label":"CLASS statement","href":"/next/CLASS_statement","docId":"CLASS_statement","unlisted":false},{"type":"category","label":"FORM statement","items":[{"type":"link","label":"Object blocks","href":"/next/Object_blocks","docId":"Object_blocks","unlisted":false},{"type":"link","label":"Properties and actions block","href":"/next/Properties_and_actions_block","docId":"Properties_and_actions_block","unlisted":false},{"type":"link","label":"Filter and sorting blocks","href":"/next/Filters_and_sortings_block","docId":"Filters_and_sortings_block","unlisted":false},{"type":"link","label":"Event block","href":"/next/Event_block","docId":"Event_block","unlisted":false}],"collapsed":true,"collapsible":true,"href":"/next/FORM_statement"},{"type":"link","label":"DESIGN statement","href":"/next/DESIGN_statement","docId":"DESIGN_statement","unlisted":false},{"type":"link","label":"NAVIGATOR statement","href":"/next/NAVIGATOR_statement","docId":"NAVIGATOR_statement","unlisted":false},{"type":"link","label":"WINDOW statement","href":"/next/WINDOW_statement","docId":"WINDOW_statement","unlisted":false},{"type":"link","label":"EXTEND CLASS statement","href":"/next/EXTEND_CLASS_statement","docId":"EXTEND_CLASS_statement","unlisted":false},{"type":"link","label":"EXTEND FORM statement","href":"/next/EXTEND_FORM_statement","docId":"EXTEND_FORM_statement","unlisted":false},{"type":"link","label":"+= statement","href":"/next/+=_statement","docId":"+=_statement","unlisted":false},{"type":"link","label":"ACTION+ statement","href":"/next/ACTION+_statement","docId":"ACTION+_statement","unlisted":false},{"type":"link","label":"META statement","href":"/next/META_statement","docId":"META_statement","unlisted":false},{"type":"link","label":"@ statement","href":"/next/commat_statement","docId":"commat_statement","unlisted":false},{"type":"link","label":"TABLE statement","href":"/next/TABLE_statement","docId":"TABLE_statement","unlisted":false},{"type":"link","label":"INDEX statement","href":"/next/INDEX_statement","docId":"INDEX_statement","unlisted":false},{"type":"link","label":"BEFORE statement","href":"/next/BEFORE_statement","docId":"BEFORE_statement","unlisted":false},{"type":"link","label":"AFTER statement","href":"/next/AFTER_statement","docId":"AFTER_statement","unlisted":false},{"type":"link","label":"Empty statement","href":"/next/Empty_statement","docId":"Empty_statement","unlisted":false}],"collapsed":true,"collapsible":true,"href":"/next/Statements"},{"type":"link","label":"Coding conventions","href":"/next/Coding_conventions","docId":"Coding_conventions","unlisted":false}],"collapsible":true,"href":"/next/Language"},{"type":"link","label":"IDE","href":"/next/IDE","docId":"IDE","unlisted":false},{"collapsed":false,"type":"category","label":"Learning materials","items":[{"type":"category","label":"Examples","items":[{"type":"link","label":"Score table","href":"/next/Score_table","docId":"Score_table","unlisted":false},{"type":"link","label":"Materials management","href":"/next/Materials_management","docId":"Materials_management","unlisted":false}],"collapsed":true,"collapsible":true,"href":"/next/Examples"},{"type":"category","label":"How-to","items":[{"type":"category","label":"How-to: Computations","items":[{"type":"link","label":"How-to: GROUP SUM","href":"/next/How-to_GROUP_SUM","docId":"How-to_GROUP_SUM","unlisted":false},{"type":"link","label":"How-to: GROUP MAX/MIN/AGGR","href":"/next/How-to_GROUP_MAX_MIN_AGGR","docId":"How-to_GROUP_MAX_MIN_AGGR","unlisted":false},{"type":"link","label":"How-to: CASE/IF/OVERRIDE","href":"/next/How-to_CASE_IF_OVERRIDE","docId":"How-to_CASE_IF_OVERRIDE","unlisted":false},{"type":"link","label":"How-to: GROUP LAST","href":"/next/How-to_GROUP_LAST","docId":"How-to_GROUP_LAST","unlisted":false},{"type":"link","label":"How-to: GROUP CONCAT","href":"/next/How-to_GROUP_CONCAT","docId":"How-to_GROUP_CONCAT","unlisted":false},{"type":"link","label":"How-to: PARTITION","href":"/next/How-to_PARTITION","docId":"How-to_PARTITION","unlisted":false}],"collapsed":true,"collapsible":true,"href":"/next/How-to_Computations"},{"type":"category","label":"How-to: GUI","items":[{"type":"category","label":"How-to: Interactive forms","items":[{"type":"link","label":"How-to: CRUD","href":"/next/How-to_CRUD","docId":"How-to_CRUD","unlisted":false},{"type":"link","label":"How-to: Documents with lines","href":"/next/How-to_Documents_with_lines","docId":"How-to_Documents_with_lines","unlisted":false},{"type":"link","label":"How-to: Filtering and ordering","href":"/next/How-to_Filtering_and_ordering","docId":"How-to_Filtering_and_ordering","unlisted":false},{"type":"link","label":"How-to: Design","href":"/next/How-to_Design","docId":"How-to_Design","unlisted":false},{"type":"link","label":"How-to: Trees","href":"/next/How-to_Trees","docId":"How-to_Trees","unlisted":false},{"type":"link","label":"How-to: Data entry","href":"/next/How-to_Data_entry","docId":"How-to_Data_entry","unlisted":false},{"type":"link","label":"How-to: Navigator","href":"/next/How-to_Navigator","docId":"How-to_Navigator","unlisted":false},{"type":"link","label":"How-to: Matrix","href":"/next/How-to_Matrix","docId":"How-to_Matrix","unlisted":false},{"type":"link","label":"How-to: Table status","href":"/next/How-to_Table_status","docId":"How-to_Table_status","unlisted":false},{"type":"link","label":"How-to: Custom components (properties)","href":"/next/How-to_Custom_components_properties","docId":"How-to_Custom_components_properties","unlisted":false},{"type":"link","label":"How-to: Custom Components (objects)","href":"/next/How-to_Custom_components_objects","docId":"How-to_Custom_components_objects","unlisted":false}],"collapsed":true,"collapsible":true,"href":"/next/How-to_Interactive_forms"},{"type":"link","label":"How-to: Reports","href":"/next/How-to_Reports","docId":"How-to_Reports","unlisted":false}],"collapsed":true,"collapsible":true,"href":"/next/How-to_GUI"},{"type":"category","label":"How-to: Imperative logic","items":[{"type":"category","label":"How-to: Actions","items":[{"type":"link","label":"How-to: CHANGE","href":"/next/How-to_CHANGE","docId":"How-to_CHANGE","unlisted":false},{"type":"link","label":"How-to: EXEC","href":"/next/How-to_EXEC","docId":"How-to_EXEC","unlisted":false},{"type":"link","label":"How-to: NEW","href":"/next/How-to_NEW","docId":"How-to_NEW","unlisted":false},{"type":"link","label":"How-to: DELETE","href":"/next/How-to_DELETE","docId":"How-to_DELETE","unlisted":false},{"type":"link","label":"How-to: FOR","href":"/next/How-to_FOR","docId":"How-to_FOR","unlisted":false},{"type":"link","label":"How-to: IF/CASE","href":"/next/How-to_IF_CASE","docId":"How-to_IF_CASE","unlisted":false},{"type":"link","label":"How-to: WHILE","href":"/next/How-to_WHILE","docId":"How-to_WHILE","unlisted":false},{"type":"link","label":"How-to: NEWSESSION","href":"/next/How-to_NEWSESSION","docId":"How-to_NEWSESSION","unlisted":false},{"type":"link","label":"How-to: SEEK","href":"/next/How-to_SEEK","docId":"How-to_SEEK","unlisted":false}],"collapsed":true,"collapsible":true,"href":"/next/How-to_Actions"},{"type":"link","label":"How-to: Events","href":"/next/How-to_Events","docId":"How-to_Events","unlisted":false}],"collapsed":true,"collapsible":true,"href":"/next/How-to_Imperative_logic"},{"type":"category","label":"How-to: Declarative logic","items":[{"type":"link","label":"How-to: Constraints","href":"/next/How-to_Constraints","docId":"How-to_Constraints","unlisted":false},{"type":"link","label":"How-to: Inheritance and aggregation","href":"/next/How-to_Inheritance_and_aggregation","docId":"How-to_Inheritance_and_aggregation","unlisted":false}],"collapsed":true,"collapsible":true,"href":"/next/How-to_Declarative_logic"},{"type":"category","label":"How-to: Searching for elements","items":[{"type":"link","label":"How-to: Namespaces","href":"/next/How-to_Namespaces","docId":"How-to_Namespaces","unlisted":false},{"type":"link","label":"How-to: Explicit typing","href":"/next/How-to_Explicit_typing","docId":"How-to_Explicit_typing","unlisted":false}],"collapsed":true,"collapsible":true,"href":"/next/How-to_Searching_for_elements"},{"type":"category","label":"How-to: Extensions","items":[{"type":"link","label":"How-to: Class extension","href":"/next/How-to_Class_extension","docId":"How-to_Class_extension","unlisted":false},{"type":"link","label":"How-to: Property extension","href":"/next/How-to_Property_extension","docId":"How-to_Property_extension","unlisted":false},{"type":"link","label":"How-to: Action extension","href":"/next/How-to_Action_extension","docId":"How-to_Action_extension","unlisted":false},{"type":"link","label":"How-to: Form extension","href":"/next/How-to_Form_extension","docId":"How-to_Form_extension","unlisted":false}],"collapsed":true,"collapsible":true,"href":"/next/How-to_Extensions"},{"type":"category","label":"How-to: Integration","items":[{"type":"category","label":"How-to: Working with external formats","items":[{"type":"link","label":"How-to: Data export","href":"/next/How-to_Data_export","docId":"How-to_Data_export","unlisted":false},{"type":"link","label":"How-to: Data import","href":"/next/How-to_Data_import","docId":"How-to_Data_import","unlisted":false}],"collapsed":true,"collapsible":true,"href":"/next/How-to_Working_with_external_formats"},{"type":"link","label":"How-to: Interaction via HTTP protocol","href":"/next/How-to_Interaction_via_HTTP_protocol","docId":"How-to_Interaction_via_HTTP_protocol","unlisted":false},{"type":"link","label":"How-to: Frontend","href":"/next/How-to_Frontend","docId":"How-to_Frontend","unlisted":false},{"type":"category","label":"How-to: Access to internal systems","items":[{"type":"link","label":"How-to: FORMULA","href":"/next/How-to_FORMULA","docId":"How-to_FORMULA","unlisted":false},{"type":"link","label":"How-to: INTERNAL","href":"/next/How-to_INTERNAL","docId":"How-to_INTERNAL","unlisted":false}],"collapsed":true,"collapsible":true,"href":"/next/How-to_Access_to_internal_systems"}],"collapsed":true,"collapsible":true,"href":"/next/How-to_Integration"},{"type":"category","label":"How-to: Use Cases","items":[{"type":"link","label":"How-to: Working with documents","href":"/next/How-to_Working_with_documents","docId":"How-to_Working_with_documents","unlisted":false},{"type":"link","label":"How-to: Registers","href":"/next/How-to_Registers","docId":"How-to_Registers","unlisted":false},{"type":"link","label":"How-to: Numbering","href":"/next/How-to_Numbering","docId":"How-to_Numbering","unlisted":false},{"type":"link","label":"How-to: Using objects as templates","href":"/next/How-to_Using_objects_as_templates","docId":"How-to_Using_objects_as_templates","unlisted":false},{"type":"link","label":"How-to: Overriding values","href":"/next/How-to_Overriding_values","docId":"How-to_Overriding_values","unlisted":false},{"type":"link","label":"How-to: Binding properties","href":"/next/How-to_Binding_properties","docId":"How-to_Binding_properties","unlisted":false}],"collapsed":true,"collapsible":true,"href":"/next/How-to_Use_Cases"},{"type":"link","label":"How-to: Metaprogramming","href":"/next/How-to_Metaprogramming","docId":"How-to_Metaprogramming","unlisted":false},{"type":"link","label":"How-to: Physical model","href":"/next/How-to_Physical_model","docId":"How-to_Physical_model","unlisted":false},{"type":"link","label":"How-to: Internationalization","href":"/next/How-to_Internationalization","docId":"How-to_Internationalization","unlisted":false}],"collapsed":true,"collapsible":true,"href":"/next/How-to"}],"collapsible":true,"href":"/next/Learning_materials"},{"type":"link","label":"Online demo","href":"/next/Online_demo","docId":"Online_demo","unlisted":false}]},"docs":{"+=_statement":{"id":"+=_statement","title":"+= statement","description":"The += statement adds an implementation (selection option) to an abstract property.","sidebar":"learn"},"=_statement":{"id":"=_statement","title":"= statement","description":"The = statement creates a new property.","sidebar":"learn"},"=gt_statement":{"id":"=gt_statement","title":"=> statement","description":"The => statement creates a consequence.","sidebar":"learn"},"ABSTRACT_action_operator":{"id":"ABSTRACT_action_operator","title":"ABSTRACT operator","description":"The ABSTRACT operator - creating an abstract action.","sidebar":"learn"},"ABSTRACT_operator":{"id":"ABSTRACT_operator","title":"ABSTRACT operator","description":"The ABSTRACT operator creates an abstract property.","sidebar":"learn"},"Access_from_an_external_system":{"id":"Access_from_an_external_system","title":"Access from an external system","description":"Action API","sidebar":"learn"},"Access_from_an_internal_system":{"id":"Access_from_an_internal_system","title":"Access from an internal system","description":"Java interaction","sidebar":"learn"},"Access_to_an_external_system_EXTERNAL":{"id":"Access_to_an_external_system_EXTERNAL","title":"Access to an external system (EXTERNAL)","description":"The operator for accessing an external system executes a specified code in the language/paradigm of the external system specified. In addition, this operator allows passing objects of built-in classes as parameters of this type of call, and also writing the results of calls to the properties specified (without parameters).","sidebar":"learn"},"Access_to_an_internal_system_INTERNAL_FORMULA":{"id":"Access_to_an_internal_system_INTERNAL_FORMULA","title":"Access to an internal system (INTERNAL, FORMULA)","description":"Java interaction","sidebar":"learn"},"Action_extension":{"id":"Action_extension","title":"Action extension","description":"The actions extension technique allows the developer to declare an abstract action in one module and add to it an implementation in other modules. This technique is essentially a \\"postponed definition\\" of a branch operator, where the operator\u2019s title is defined when the property is declared, and branching conditions are added as new functionality (of classes or static objects) is added to the system. Furthermore, branching conditions (if branching is not mutually exclusive) can be added both to the beginning and to the end of the abstract action created. Similarly, this technique works with a sequence operator.","sidebar":"learn"},"Action_operators":{"id":"Action_operators","title":"Action operators","description":"Action operator is a syntax construct that describes an operator creating an action.","sidebar":"learn"},"Action_operators_paradigm":{"id":"Action_operators_paradigm","title":"\u041eperators","description":"Operators for creating actions can be divided into several categories:","sidebar":"learn"},"Action_options":{"id":"Action_options","title":"Action options","description":"When declaring an action in the ACTION statement a certain set of action options may be specified at the end of the declaration.","sidebar":"learn"},"ACTION_statement":{"id":"ACTION_statement","title":"ACTION statement","description":"The ACTION statement creates an action.","sidebar":"learn"},"ACTION+_statement":{"id":"ACTION+_statement","title":"ACTION+ statement","description":"The ACTION+ statement adds an implementation (branching condition) to an abstract action.","sidebar":"learn"},"Actions":{"id":"Actions","title":"Actions","description":"An action is an element of the system that takes a set of objects (parameters) and uses them in one way or another to change the system state (that of the system in which the action is executed, as well as the state of any other external system).","sidebar":"learn"},"ACTIVATE_operator":{"id":"ACTIVATE_operator","title":"ACTIVATE operator","description":"The ACTIVATE operator creates an action that activates a specified form, tab, property, or action on a form","sidebar":"learn"},"Activation_ACTIVATE":{"id":"Activation_ACTIVATE","title":"Activation (ACTIVATE)","description":"The activation operator creates an action that activates one of three form elements:","sidebar":"learn"},"ACTIVE_FORM_operator":{"id":"ACTIVE_FORM_operator","title":"ACTIVE FORM operator","description":"The ACTIVATE FORM operator creates an action that checks the activeness of a form.","sidebar":"learn"},"ACTIVE_TAB_operator":{"id":"ACTIVE_TAB_operator","title":"ACTIVE TAB operator","description":"The ACTIVE TAB operator creates a property that checks if specified tab is active.","sidebar":"learn"},"Activity_ACTIVE":{"id":"Activity_ACTIVE","title":"Activity (ACTIVE)","description":"The activity operator creates a property that determines whether one of the following form elements is active:","sidebar":"learn"},"AFTER_statement":{"id":"AFTER_statement","title":"AFTER statement","description":"The AFTER statement calls an action after calling another action.","sidebar":"learn"},"AGGR_operator":{"id":"AGGR_operator","title":"AGGR operator","description":"The AGGR operator creates an aggregation.","sidebar":"learn"},"Aggregations":{"id":"Aggregations","title":"Aggregations","description":"Aggregation is the creation of a unique (aggregate) of the object corresponding to each non-NULL value of some aggregated property. Each such object is assumed to have properties that map this object to each aggregated property parameter, and, conversely, a property that maps the aggregated property parameters to this object.","sidebar":"learn"},"AND_OR_NOT_XOR_operators":{"id":"AND_OR_NOT_XOR_operators","title":"AND, OR, NOT, XOR operators","description":"AND, OR, NOT, XOR operators that create properties that implement logical operations.","sidebar":"learn"},"Apply_changes_APPLY":{"id":"Apply_changes_APPLY","title":"Apply changes (APPLY)","description":"The apply changes operator saves all changes made to the database, and also triggers the handling of all synchronous global events.","sidebar":"learn"},"APPLY_operator":{"id":"APPLY_operator","title":"APPLY operator","description":"The APPLY operator creates an action that applies changes to the database.","sidebar":"learn"},"Arithmetic_operators":{"id":"Arithmetic_operators","title":"Arithmetic operators","description":"+, -, *, /, (+), (-) operators create properties responsible for arithmetic operations.","sidebar":"learn"},"Arithmetic_operators_+_-_etc":{"id":"Arithmetic_operators_+_-_etc","title":"Arithmetic operators (+, -, *, ...)","description":"Arithmetic operators create properties whose value is the result of an arithmetic operation. The arguments of these operators must be properties whose values are instances of number classes . The platform currently supports the following arithmetic operators:","sidebar":"learn"},"ASK_operator":{"id":"ASK_operator","title":"ASK operator","description":"The ASK operator creates an action that shows the user a message in a dialog form.","sidebar":"learn"},"Automatic_installation":{"id":"Automatic_installation","title":"Install automatically","description":"For development","sidebar":"install"},"BEFORE_statement":{"id":"BEFORE_statement","title":"BEFORE statement","description":"The BEFORE statement calls an action before calling another action.","sidebar":"learn"},"Braces_operator":{"id":"Braces_operator","title":"{...} operator","description":"The {...} operator creates actions that executes a sequence of other actions.","sidebar":"learn"},"Brackets_operator":{"id":"Brackets_operator","title":"[] operator","description":"The ] operator creates a [property that returns an object from a structure.","sidebar":"learn"},"Branching_CASE_IF_MULTI":{"id":"Branching_CASE_IF_MULTI","title":"Branching (CASE, IF, MULTI)","description":"The branching operator creates an action that determines for a set of conditions which condition is met, and calls the corresponding action.","sidebar":"learn"},"BREAK_operator":{"id":"BREAK_operator","title":"BREAK operator","description":"The BREAK operator creates an action that implements a loop interruption.","sidebar":"learn"},"Built-in_classes":{"id":"Built-in_classes","title":"Built-in classes","description":"Built-in classes are classes whose instances are objects belonging to primitive data types such as integers, strings, etc.","sidebar":"learn"},"Calculated_events":{"id":"Calculated_events","title":"Calculated events","description":"Calculated events are events that change the value of a property when the value of some other property (condition) changes to a non-NULL value. Moreover, unlike simple events, this change is not made at the moment the condition is changed but is calculated each time the changed property is accessed. If the property has already been changed in the same session, this change is considered higher priority than the change in the calculated event.","sidebar":"learn"},"Call_EXEC":{"id":"Call_EXEC","title":"Call (EXEC)","description":"The EXEC operator creates an action that executes another action, passing it specified properties (arguments).","sidebar":"learn"},"Cancel_changes_CANCEL":{"id":"Cancel_changes_CANCEL","title":"Cancel changes (CANCEL)","description":"The cancel changes operator completely clears the current change session.","sidebar":"learn"},"CANCEL_operator":{"id":"CANCEL_operator","title":"CANCEL operator","description":"The CANCEL operator creates an action that cancels changes in the current session.","sidebar":"learn"},"CASE_action_operator":{"id":"CASE_action_operator","title":"CASE operator","description":"The CASE operator creates an action that implements branching.","sidebar":"learn"},"CASE_operator":{"id":"CASE_operator","title":"CASE operator","description":"The CASE operator creates a property that selects a result by condition.","sidebar":"learn"},"CHANGE_operator":{"id":"CHANGE_operator","title":"CHANGE operator","description":"The CHANGE operator creates an action that changes properties.","sidebar":"learn"},"Change_operators":{"id":"Change_operators","title":"Change operators","description":"Change operators - a set of operators that determine various types of property value changes.","sidebar":"learn"},"Change_operators_SET_CHANGED_etc":{"id":"Change_operators_SET_CHANGED_etc","title":"Change operators (SET, CHANGED, ...)","description":"Change operators determine whether some types of changes have occurred for a certain property in the current session. All these operators are derived from the previous value operator (PREV), however, it is recommended to use them to improve readability and performance. The following table shows the supported types of changes and their description:","sidebar":"learn"},"Change_sessions":{"id":"Change_sessions","title":"Change sessions","description":"Actions can change the state of the system in which they are executed. It is not always desirable to write these changes directly to the database, both from the perspective of integrity and from the perspective of the ergonomics of the system. The platform therefore allows to accumulate these changes locally in change sessions.","sidebar":"learn"},"CHANGECLASS_operator":{"id":"CHANGECLASS_operator","title":"CHANGECLASS operator","description":"The CHANGECLASS operator creates an action that changes objects classes.","sidebar":"learn"},"Chat":{"id":"Chat","title":"Chat","description":"(Under development)","sidebar":"learn"},"Class_change_CHANGECLASS_DELETE":{"id":"Class_change_CHANGECLASS_DELETE","title":"Class change (CHANGECLASS, DELETE)","description":"The class change operator creates an action that assigns the given class to all objects where value of a particular property (condition) is not equal to NULL. The condition can be omitted, in which case it is considered to be equal to TRUE.","sidebar":"learn"},"Class_extension":{"id":"Class_extension","title":"Class extension","description":"The class extension technique allows the developer to inherit one class from another after its creation. Also, using this mechanism you can add extra static objects to a class.","sidebar":"learn"},"CLASS_operator":{"id":"CLASS_operator","title":"ISCLASS operator","description":"The ISCLASS operator creates a property that implements a signature matching operator.","sidebar":"learn"},"Class_operators":{"id":"Class_operators","title":"Class operators","description":"Class operators include the following operators:","sidebar":"learn"},"CLASS_statement":{"id":"CLASS_statement","title":"CLASS statement","description":"CLASS statement creates a new custom class.","sidebar":"learn"},"Classes":{"id":"Classes","title":"Classes","description":"The base element in lsFusion is the object. Each object is an instance of some class, which determines the qualities of all its instances. Classes in turn can be divided into built-in classes, which are responsible for primitive data types, and user classes.","sidebar":"learn"},"Classification_IS_AS":{"id":"Classification_IS_AS","title":"Classification (IS/AS)","description":"Classification operators create properties that determine whether an object belongs to the class specified. If the property argument does not belong to the class specified in the operator, the property returns NULL. Otherwise, the operator IS returns TRUE, and the operator AS returns the object passed as an argument.","sidebar":"learn"},"Coding_conventions":{"id":"Coding_conventions","title":"Coding conventions","description":"Common","sidebar":"learn"},"COLLAPSE_operator":{"id":"COLLAPSE_operator","title":"COLLAPSE operator","description":"The COLLAPSE operator is the creation of an action, that implements the collapse of elements in the object tree.","sidebar":"learn"},"commat_statement":{"id":"commat_statement","title":"@ statement","description":"The @ statement uses metacode.","sidebar":"learn"},"Comparison_operators":{"id":"Comparison_operators","title":"Comparison operators","description":"==, =, !=, `, =` operators create properties that implement comparison operations.","sidebar":"learn"},"Comparison_operators_=_etc":{"id":"Comparison_operators_=_etc","title":"Comparison operators (=, >, <, ...)","description":"Comparison operators create actions which return the result of the comparison operation. The values of the created properties belong to the built-in class BOOLEAN.","sidebar":"learn"},"Composition_JOIN":{"id":"Composition_JOIN","title":"Composition (JOIN)","description":"The composition operator allows you to use values of other properties as arguments for one (main) property.","sidebar":"learn"},"CONCAT_operator":{"id":"CONCAT_operator","title":"CONCAT operator","description":"The CONCAT operator creates a property that implements a string concatenation.","sidebar":"learn"},"Constant":{"id":"Constant","title":"Constant","description":"The constant operator is used to create properties without parameters which always return the same value. This value can be static objects of custom and built-in classes as well as the special NULL value.","sidebar":"learn"},"CONSTRAINT_statement":{"id":"CONSTRAINT_statement","title":"CONSTRAINT statement","description":"The CONSTRAINT statement creates a constraint.","sidebar":"learn"},"Constraints":{"id":"Constraints","title":"Constraints","description":"Constraints in the platform determine which values the data properties can have and which cannot. In general, a constraint is defined as a property which value should always be NULL.","sidebar":"learn"},"CONTINUE_operator":{"id":"CONTINUE_operator","title":"CONTINUE operator","description":"The CONTINUE operator creates an action that implements move to the next iteration of the cycle."},"Custom_formula_FORMULA":{"id":"Custom_formula_FORMULA","title":"Custom formula (FORMULA)","description":"The custom formula operator allows you to create a property that calculates defined formula in SQL. You can specify different implementations of the formula for different SQL servers. The formula is defined as a string, within which the special character $ and the number of this parameter (starting from 1) are used to access the parameter. Accordingly, the number of parameters of the result property will be equal to the greatest of the numbers of the parameters used.","sidebar":"learn"},"Data_export_EXPORT":{"id":"Data_export_EXPORT","title":"Data export (EXPORT)","description":"The data export operator creates an action that reads values of the specified properties for all object collections where the value of the specified property (condition) is not NULL, and then saves these values to a file in a specified format.","sidebar":"learn"},"Data_import_IMPORT":{"id":"Data_import_IMPORT","title":"Data import (IMPORT)","description":"The data import operator creates an action which reads a file from the value of some property, then, depending on its format, defines the columns (fields) of data in this file, after which it writes the value of each column (field) to the corresponding property (parameter) - import assignment. The mapping of columns to properties can go in either column or name order.","sidebar":"learn"},"DATA_operator":{"id":"DATA_operator","title":"DATA operator","description":"The DATA operator creates a data property.","sidebar":"learn"},"Data_properties_DATA":{"id":"Data_properties_DATA","title":"Data properties (DATA)","description":"Data property is a property which value is stored in the database and may change through the execution of the corresponding action. Each parameter and the value of a data property must belong to a certain specified class. If a parameter does not belong to the specified class or is NULL, then the property value will return NULL.","sidebar":"learn"},"DELETE_operator":{"id":"DELETE_operator","title":"DELETE operator","description":"The DELETE operator creates an action that deletes objects.","sidebar":"learn"},"DESIGN_statement":{"id":"DESIGN_statement","title":"DESIGN statement","description":"The DESIGN statement changes form design.","sidebar":"learn"},"Development":{"id":"Development","title":"Development","description":"The development model includes the following concepts:","sidebar":"learn"},"Development_auto":{"id":"Development_auto","title":"For development","description":"On this page you can download installers that install everything needed for development in a single click. In addition to lsFusion, these installers also install OpenJDK, PostgreSQL, Tomcat, and IntelliJ IDEA Community Edition with the built-in lsFusion plugin. If any of these programs are already on your computer, you can exclude them during the installation process.","sidebar":"install"},"Development_manual":{"id":"Development_manual","title":"For development","description":"To install the application server, IDE, and client, Java version 8 or later must first be installed on the computer.","sidebar":"install"},"DIALOG_operator":{"id":"DIALOG_operator","title":"DIALOG operator","description":"The DIALOG operator creates an action that opens a form in an interactive view in dialog mode.","sidebar":"learn"},"Distribution_UNGROUP":{"id":"Distribution_UNGROUP","title":"Distribution (UNGROUP)","description":"The distribution operator creates a property, the grouping value of which using sum function will be equal to the value of the specified property (distributable). Accordingly, as for a group operator, for a distribution operator multiple properties (groups) must be set by which the grouping will take place.","sidebar":"learn"},"Domain_logic":{"id":"Domain_logic","title":"Domain logic","description":"Properties are the basic concept for business logic and are responsible for storing and calculating data.","sidebar":"learn"},"Element_identification":{"id":"Element_identification","title":"Element identification","description":"On the lsFusion platform, some elements of the system are named, meaning that they can be used by accessing them by name.","sidebar":"learn"},"EMAIL_operator":{"id":"EMAIL_operator","title":"EMAIL operator","description":"The EMAIL operator creates an action that sends email.","sidebar":"learn"},"Empty_statement":{"id":"Empty_statement","title":"Empty statement","description":"Empty statement - a special statement that consists of a single semicolon.","sidebar":"learn"},"Eval_EVAL":{"id":"Eval_EVAL","title":"Eval (EVAL)","description":"The eval operator creates an action that executes defined program code in the lsFusion language. Program code is defined as a property whose value should belong to the string class. This is implemented using an action which takes a line of code as an argument.","sidebar":"learn"},"EVAL_operator":{"id":"EVAL_operator","title":"EVAL operator","description":"The EVAL operator: creating an action that executes code in the lsFusion language.","sidebar":"learn"},"Event_block":{"id":"Event_block","title":"Event block","description":"The event block of the FORM statement - a set of constructions controlling events in an interactive form view.","sidebar":"learn"},"Event_description_block":{"id":"Event_description_block","title":"Event description block","description":"Event description block describes an event in different statements.","sidebar":"learn"},"Events":{"id":"Events","title":"Events","description":"Events are a mechanism that allows to execute certain actions at certain points in time (these actions shall be called event handlers).","sidebar":"learn"},"Examples":{"id":"Examples","title":"Examples","description":"Examples are intended to demonstrate the capabilities of the lsFusion platform.","sidebar":"learn"},"Exception_handling_TRY":{"id":"Exception_handling_TRY","title":"Exception handling (TRY)","description":"The exception handling operator enables you to execute an action and do the following if an error (exception) occurs:","sidebar":"learn"},"EXCLUSIVE_operator":{"id":"EXCLUSIVE_operator","title":"EXCLUSIVE operator","description":"The EXCLUSIVE operator creates a property that implements a selection of one of the values (polymorphic form).","sidebar":"learn"},"EXEC_operator":{"id":"EXEC_operator","title":"EXEC operator","description":"The EXEC operator creates an action that executes another action.","sidebar":"learn"},"Execution":{"id":"Execution","title":"Execution","description":"If the system is small and there is not much data in it, it usually works quite efficiently without any additional optimizations. But if the logic becomes more complex, and the amount of data increases significantly, it often makes sense to tell the platform how best to store and process all this data.","sidebar":"learn"},"Execution_auto":{"id":"Execution_auto","title":"For production","description":"Installation","sidebar":"install"},"Execution_manual":{"id":"Execution_manual","title":"For production","description":"To install the application server, web server and client, Java version 8 or later must first be installed on the computer.","sidebar":"install"},"Execution_order":{"id":"Execution_order","title":"Execution order","description":"The platform supports the following operators for managing the order in which actions are executed:","sidebar":"learn"},"Exit_RETURN":{"id":"Exit_RETURN","title":"Exit (RETURN)","description":"The exit operator creates an action that exits from the inmost action call. Control is passed to the first action following that call operator.","sidebar":"learn"},"EXPAND_operator":{"id":"EXPAND_operator","title":"EXPAND operator","description":"The EXPAND operator is the creation of an action, that implements the expansion of elements in the object tree.","sidebar":"learn"},"EXPORT_operator":{"id":"EXPORT_operator","title":"EXPORT operator","description":"The EXPORT operator: creates an action that exports specified properties to a file, or, in common case, that opens a form in a structured view.","sidebar":"learn"},"Expression":{"id":"Expression","title":"Expression","description":"An expression is a combination of property operators and parameters. When an expression is evaluated sequentially in priority order, all the operators are executed.","sidebar":"learn"},"EXTEND_CLASS_statement":{"id":"EXTEND_CLASS_statement","title":"EXTEND CLASS statement","description":"The EXTEND CLASS statement extends an existing class.","sidebar":"learn"},"EXTEND_FORM_statement":{"id":"EXTEND_FORM_statement","title":"EXTEND FORM statement","description":"The EXTEND FORM statement extends an existing form.","sidebar":"learn"},"Extensions":{"id":"Extensions","title":"Extensions","description":"Extension is a technique that allows a developer to extend the functionality of one module in another.","sidebar":"learn"},"EXTERNAL_operator":{"id":"EXTERNAL_operator","title":"EXTERNAL operator","description":"The EXTERNAL operator creates an action that implements accessing to an external system.","sidebar":"learn"},"Extremum_MAX_MIN":{"id":"Extremum_MAX_MIN","title":"Extremum (MAX, MIN)","description":"The extremum operator creates a property which calculates the maximum or minimum between several specified properties. If the value of any of these properties is NULL, this property is ignored. If the values of all properties are NULL, the result value is also NULL.","sidebar":"learn"},"File_operators":{"id":"File_operators","title":"File operators","description":"The platform supports the following file operators:","sidebar":"learn"},"Filter_FILTER":{"id":"Filter_FILTER","title":"Filter (FILTER)","description":"The filter operator creates a property that returns TRUE if the object collection matches the current filter of the specified object group, and NULL if it does not.","sidebar":"learn"},"Filters_and_sortings_block":{"id":"Filters_and_sortings_block","title":"Filter and sorting blocks","description":"The filter and order blocks of the FORM statement \u2013 adding filters and orderings to the form structure, as well as filter groups and user filters to the interactive form view.","sidebar":"learn"},"Focus_operators":{"id":"Focus_operators","title":"Focus operators","description":"This category includes operators responsible for managing component activity:","sidebar":"learn"},"FOR_operator":{"id":"FOR_operator","title":"FOR operator","description":"The FOR operator creates an action that implements loop.","sidebar":"learn"},"Form_design":{"id":"Form_design","title":"Form design","description":"The form design defines how a form is displayed in the interactive view.","sidebar":"learn"},"Form_events":{"id":"Form_events","title":"Form events","description":"While the application is running, there is a number of events for each form that occur as a result of certain user actions:","sidebar":"learn"},"Form_extension":{"id":"Form_extension","title":"Form extension","description":"The form extension technique allows the developer to extend the structure and design of a form created in another module.","sidebar":"learn"},"Form_operators":{"id":"Form_operators","title":"Form operators","description":"Form operators can be divided into several categories:","sidebar":"learn"},"FORM_statement":{"id":"FORM_statement","title":"FORM statement","description":"The FORM statement creates a form.","sidebar":"learn"},"Form_structure":{"id":"Form_structure","title":"Form structure","description":"The form structure is a complex of objects, properties, actions and relations between them.","sidebar":"learn"},"Form_views":{"id":"Form_views","title":"Form views","description":"A form view can be classified as follows:","sidebar":"learn"},"Forms":{"id":"Forms","title":"Forms","description":"Forms let you combine different types of information for one or more objects in a single interface. Logically, aform can be divided into two parts:","sidebar":"learn"},"FORMULA_operator":{"id":"FORMULA_operator","title":"FORMULA operator","description":"The FORMULA operator creates a property that implements a custom formula.","sidebar":"learn"},"GROUP_operator":{"id":"GROUP_operator","title":"GROUP operator","description":"The GROUP operator creates a property implementing grouping.","sidebar":"learn"},"GROUP_statement":{"id":"GROUP_statement","title":"GROUP statement","description":"The GROUP statement creates a new property group.","sidebar":"learn"},"Grouping_GROUP":{"id":"Grouping_GROUP","title":"Grouping (GROUP)","description":"The group operator creates a property that divides all object collections in the system into groups, and calculates an aggregating function for each group following specified order. Accordingly, the set for which this aggregating function is calculated is determined as all the object collections belonging to this group.","sidebar":"learn"},"Groups_of_properties_and_actions":{"id":"Groups_of_properties_and_actions","title":"Groups of properties and actions","description":"The behavior of properties and actions in the context of working with groups is absolutely identical, therefore, in the rest of this section, we will use only the term property (the behavior for actions is completely similar).","sidebar":"learn"},"How-to":{"id":"How-to","title":"How-to","description":"How to read these sections","sidebar":"learn"},"How-to_Access_to_internal_systems":{"id":"How-to_Access_to_internal_systems","title":"How-to: Access to internal systems","description":"How to read these sections","sidebar":"learn"},"How-to_Action_extension":{"id":"How-to_Action_extension","title":"How-to: Action extension","description":"We can use the following scheme to implement polymorphism:","sidebar":"learn"},"How-to_Actions":{"id":"How-to_Actions","title":"How-to: Actions","description":"How to read these sections","sidebar":"learn"},"How-to_Binding_properties":{"id":"How-to_Binding_properties","title":"How-to: Binding properties","description":"Example 1","sidebar":"learn"},"How-to_CASE_IF_OVERRIDE":{"id":"How-to_CASE_IF_OVERRIDE","title":"How-to: CASE/IF/OVERRIDE","description":"Example 1","sidebar":"learn"},"How-to_CHANGE":{"id":"How-to_CHANGE","title":"How-to: CHANGE","description":"Example 1","sidebar":"learn"},"How-to_Class_extension":{"id":"How-to_Class_extension","title":"How-to: Class extension","description":"The typical scheme for extracting relations between classes to a separate module is as follows:","sidebar":"learn"},"How-to_Computations":{"id":"How-to_Computations","title":"How-to: Computations","description":"How to read these sections","sidebar":"learn"},"How-to_Constraints":{"id":"How-to_Constraints","title":"How-to: Constraints","description":"Example 1","sidebar":"learn"},"How-to_CRUD":{"id":"How-to_CRUD","title":"How-to: CRUD","description":"Example 1","sidebar":"learn"},"How-to_Custom_components_objects":{"id":"How-to_Custom_components_objects","title":"How-to: Custom Components (objects)","description":"By default, each object on a form with GRID view is displayed on the form as a flat table with columns.","sidebar":"learn"},"How-to_Custom_components_properties":{"id":"How-to_Custom_components_properties","title":"How-to: Custom components (properties)","description":"For each property type, by default, a predefined visual component is used to display and edit the data.","sidebar":"learn"},"How-to_Data_entry":{"id":"How-to_Data_entry","title":"How-to: Data entry","description":"Example 1","sidebar":"learn"},"How-to_Data_export":{"id":"How-to_Data_export","title":"How-to: Data export","description":"Example 1","sidebar":"learn"},"How-to_Data_import":{"id":"How-to_Data_import","title":"How-to: Data import","description":"Example 1","sidebar":"learn"},"How-to_Declarative_logic":{"id":"How-to_Declarative_logic","title":"How-to: Declarative logic","description":"How to read these sections","sidebar":"learn"},"How-to_DELETE":{"id":"How-to_DELETE","title":"How-to: DELETE","description":"Example 1","sidebar":"learn"},"How-to_Design":{"id":"How-to_Design","title":"How-to: Design","description":"Example 1","sidebar":"learn"},"How-to_Documents_with_lines":{"id":"How-to_Documents_with_lines","title":"How-to: Documents with lines","description":"Example 1","sidebar":"learn"},"How-to_Events":{"id":"How-to_Events","title":"How-to: Events","description":"Example 1","sidebar":"learn"},"How-to_EXEC":{"id":"How-to_EXEC","title":"How-to: EXEC","description":"Example 1","sidebar":"learn"},"How-to_Explicit_typing":{"id":"How-to_Explicit_typing","title":"How-to: Explicit typing","description":"In certain situations, you may want to use the same name for different system properties or actions.","sidebar":"learn"},"How-to_Extensions":{"id":"How-to_Extensions","title":"How-to: Extensions","description":"Extensions are very important for providing the modularity and extensibility of applications.","sidebar":"learn"},"How-to_Filtering_and_ordering":{"id":"How-to_Filtering_and_ordering","title":"How-to: Filtering and ordering","description":"Example 1","sidebar":"learn"},"How-to_FOR":{"id":"How-to_FOR","title":"How-to: FOR","description":"Example 1","sidebar":"learn"},"How-to_Form_extension":{"id":"How-to_Form_extension","title":"How-to: Form extension","description":"Let\'s assume there is a module that describes the Sku form that is used to edit SKU values:","sidebar":"learn"},"How-to_FORMULA":{"id":"How-to_FORMULA","title":"How-to: FORMULA","description":"Example 1","sidebar":"learn"},"How-to_Frontend":{"id":"How-to_Frontend","title":"How-to: Frontend","description":"The easiest way to organize the interaction of a React application with an application based on lsFusion is communication via the HTTP protocol through the JSON API. To export a list of objects meeting a specified condition, it is most convenient to use the interface located at the eval/action Url. You can pass lsFusion program code to it in BODY, and it will then be executed. If you need to return data from your request, use the EXPORT operator. By default it returns data in JSON format, which is then easily processed using JavaScript.","sidebar":"learn"},"How-to_GROUP_CONCAT":{"id":"How-to_GROUP_CONCAT","title":"How-to: GROUP CONCAT","description":"Example 1","sidebar":"learn"},"How-to_GROUP_LAST":{"id":"How-to_GROUP_LAST","title":"How-to: GROUP LAST","description":"Example 1","sidebar":"learn"},"How-to_GROUP_MAX_MIN_AGGR":{"id":"How-to_GROUP_MAX_MIN_AGGR","title":"How-to: GROUP MAX/MIN/AGGR","description":"Example 1","sidebar":"learn"},"How-to_GROUP_SUM":{"id":"How-to_GROUP_SUM","title":"How-to: GROUP SUM","description":"Example 1","sidebar":"learn"},"How-to_GUI":{"id":"How-to_GUI","title":"How-to: GUI","description":"How to read these sections","sidebar":"learn"},"How-to_IF_CASE":{"id":"How-to_IF_CASE","title":"How-to: IF/CASE","description":"Example 1","sidebar":"learn"},"How-to_Imperative_logic":{"id":"How-to_Imperative_logic","title":"How-to: Imperative logic","description":"How to read these sections","sidebar":"learn"},"How-to_Inheritance_and_aggregation":{"id":"How-to_Inheritance_and_aggregation","title":"How-to: Inheritance and aggregation","description":"In order to demonstrate the principles of object inheritance and aggregation, let\'s implement the logic of creating batches based on receipts and production documents. Let\'s make it so that each new document with a Posted property will automatically generate exactly one new product batch.","sidebar":"learn"},"How-to_Integration":{"id":"How-to_Integration","title":"How-to: Integration","description":"How to read these sections","sidebar":"learn"},"How-to_Interaction_via_HTTP_protocol":{"id":"How-to_Interaction_via_HTTP_protocol","title":"How-to: Interaction via HTTP protocol","description":"Example 1","sidebar":"learn"},"How-to_Interactive_forms":{"id":"How-to_Interactive_forms","title":"How-to: Interactive forms","description":"How to read these sections","sidebar":"learn"},"How-to_INTERNAL":{"id":"How-to_INTERNAL","title":"How-to: INTERNAL","description":"Example 1","sidebar":"learn"},"How-to_Internationalization":{"id":"How-to_Internationalization","title":"How-to: Internationalization","description":"The system supports internationalization by passing to the client values localized according to the language chosen by the user. All values in braces are localized. Let\'s assume that we need to implement a simple form with a list of books and their prices that we can create/delete.","sidebar":"learn"},"How-to_Matrix":{"id":"How-to_Matrix","title":"How-to: Matrix","description":"Example 1","sidebar":"learn"},"How-to_Metaprogramming":{"id":"How-to_Metaprogramming","title":"How-to: Metaprogramming","description":"You may often need to write \\"similar\\" code for certain cases. The META statement exists for this purpose, and makes it possible to create a code template or metacode. It can contain parameters that will be replaced by certain values when this metacode is used. Such an approach is called metaprogramming.","sidebar":"learn"},"How-to_Namespaces":{"id":"How-to_Namespaces","title":"How-to: Namespaces","description":"Occasionally, you will find yourself in situations where you will need to use the same name for different system elements. For this purpose, you can assign them to different namespaces that are defined for a module using the NAMESPACE statement. By default, the namespace matches the name of the module.","sidebar":"learn"},"How-to_Navigator":{"id":"How-to_Navigator","title":"How-to: Navigator","description":"Example 1","sidebar":"learn"},"How-to_NEW":{"id":"How-to_NEW","title":"How-to: NEW","description":"Example 1","sidebar":"learn"},"How-to_NEWSESSION":{"id":"How-to_NEWSESSION","title":"How-to: NEWSESSION","description":"Example 1","sidebar":"learn"},"How-to_Numbering":{"id":"How-to_Numbering","title":"How-to: Numbering","description":"Let\'s suppose we have a set of books. For each of these books, we define a number as an integer.","sidebar":"learn"},"How-to_Overriding_values":{"id":"How-to_Overriding_values","title":"How-to: Overriding values","description":"Often there are tasks when it is necessary to give the user opportunity to enter the value of some attribute for some general object and then override it for some specific object.","sidebar":"learn"},"How-to_PARTITION":{"id":"How-to_PARTITION","title":"How-to: PARTITION","description":"Example 1","sidebar":"learn"},"How-to_Physical_model":{"id":"How-to_Physical_model","title":"How-to: Physical model","description":"By default, each class in the database creates a separate table that stores all those properties whose only parameter is an object of this class. The key in this table is a field that stores a unique object ID. For properties with several parameters, a table will be created with the IDs of parameter objects as keys.","sidebar":"learn"},"How-to_Property_extension":{"id":"How-to_Property_extension","title":"How-to: Property extension","description":"The classic approach for implementing polymorphism can look as follows:","sidebar":"learn"},"How-to_Registers":{"id":"How-to_Registers","title":"How-to: Registers","description":"Accumulation ledger","sidebar":"learn"},"How-to_Reports":{"id":"How-to_Reports","title":"How-to: Reports","description":"Example 1","sidebar":"learn"},"How-to_Searching_for_elements":{"id":"How-to_Searching_for_elements","title":"How-to: Searching for elements","description":"How to read these sections","sidebar":"learn"},"How-to_SEEK":{"id":"How-to_SEEK","title":"How-to: SEEK","description":"Example 1","sidebar":"learn"},"How-to_Table_status":{"id":"How-to_Table_status","title":"How-to: Table status","description":"Example 1","sidebar":"learn"},"How-to_Trees":{"id":"How-to_Trees","title":"How-to: Trees","description":"Example 1","sidebar":"learn"},"How-to_Use_Cases":{"id":"How-to_Use_Cases","title":"How-to: Use Cases","description":"How to read these sections","sidebar":"learn"},"How-to_Using_objects_as_templates":{"id":"How-to_Using_objects_as_templates","title":"How-to: Using objects as templates","description":"Example 1","sidebar":"learn"},"How-to_WHILE":{"id":"How-to_WHILE","title":"How-to: WHILE","description":"Example 1","sidebar":"learn"},"How-to_Working_with_documents":{"id":"How-to_Working_with_documents","title":"How-to: Working with documents","description":"Posting documents","sidebar":"learn"},"How-to_Working_with_external_formats":{"id":"How-to_Working_with_external_formats","title":"How-to: Working with external formats","description":"How to read these sections","sidebar":"learn"},"IDE":{"id":"IDE","title":"IDE","description":"Creating a new lsFusion project","sidebar":"learn"},"IDs":{"id":"IDs","title":"IDs","description":"|Name |Examples|Use|Description|Technical description|","sidebar":"learn"},"IF_..._THEN_action_operator":{"id":"IF_..._THEN_action_operator","title":"IF ... THEN operator","description":"The IF ... THEN operator creates an action that implements branching with one condition (single form).","sidebar":"learn"},"IF_..._THEN_operator":{"id":"IF_..._THEN_operator","title":"IF ... THEN operator","description":"The IF ... THEN operator creates a property that implements selection with one condition (single form).","sidebar":"learn"},"IF_operator":{"id":"IF_operator","title":"IF operator","description":"The IF operator - creating a property implementing selection of a value by condition (single form).","sidebar":"learn"},"IMPORT_operator":{"id":"IMPORT_operator","title":"IMPORT operator","description":"The IMPORT operator creates an action that imports data from a specified file into specified properties (parameters) or, in general, into a specified form.","sidebar":"learn"},"In_a_print_view_PRINT":{"id":"In_a_print_view_PRINT","title":"In a print view (PRINT)","description":"This operator creates an action that opens a form in the print view.","sidebar":"learn"},"In_a_structured_view_EXPORT_IMPORT":{"id":"In_a_structured_view_EXPORT_IMPORT","title":"In a structured view (EXPORT, IMPORT)","description":"This operator creates an action that opens a form in the structured view.","sidebar":"learn"},"In_an_interactive_view_SHOW_DIALOG":{"id":"In_an_interactive_view_SHOW_DIALOG","title":"In an interactive view (SHOW, DIALOG)","description":"This operator creates an action that opens a form in the interactive view.","sidebar":"learn"},"INDEX_statement":{"id":"INDEX_statement","title":"INDEX statement","description":"The INDEX statement creates a new index.","sidebar":"learn"},"Indexes":{"id":"Indexes","title":"Indexes","description":"Building an index by property allows storing all the values of this property in the database in an ordered form. Accordingly, the index is updated with every change of the indexed property value. Due to the index, if, for example, you filter by an indexed property, you can find the objects you need very quickly, rather than viewing all the objects that exist in the system.","sidebar":"learn"},"INPUT_operator":{"id":"INPUT_operator","title":"INPUT operator","description":"The INPUT operator creates an action that inputs a primitive.","sidebar":"learn"},"Install":{"id":"Install","title":"Install","description":"Install automatically","sidebar":"install"},"Integration":{"id":"Integration","title":"Integration","description":"Integration includes everything related to interaction of the lsFusion system with other systems. In terms of the direction of this interaction, integration can be divided into:","sidebar":"learn"},"Interactive_view":{"id":"Interactive_view","title":"Interactive view","description":"A form opened in interactive mode is a graphical component with a certain design in which the user can trigger various events and thereby navigate through system objects, view and change property values, execute actions, and so on. Developers can also use an additional set of operators with this view, making it possible to manage the open form.","sidebar":"learn"},"Internal_call_INTERNAL":{"id":"Internal_call_INTERNAL","title":"Internal call (INTERNAL)","description":"The internal call operator allows to create actions in programming languages other than the lsFusion language. The platform currently supports external actions only in the Java language.","sidebar":"learn"},"INTERNAL_operator":{"id":"INTERNAL_operator","title":"INTERNAL operator","description":"The INTERNAL operator creates an action that executes an internal call.","sidebar":"learn"},"Internationalization":{"id":"Internationalization","title":"Internationalization","description":"Internationalization consists of software development techniques that allow adapting the software to the linguistic and cultural particularities of different countries and regions.","sidebar":"learn"},"Interpreter":{"id":"Interpreter","title":"Interpreter","description":"(Under development)","sidebar":"learn"},"Interruption_BREAK":{"id":"Interruption_BREAK","title":"Interruption (BREAK)","description":"The interrupt operator creates an action that exits the most nested loop (normal or recursive) within which this action is located. Control is transferred to the first action following the loop. If the created action is not inside a loop, its behavior becomes similar to the action created by the exit operator.","sidebar":"learn"},"IS_AS_operators":{"id":"IS_AS_operators","title":"IS, AS operators","description":"IS, AS operators create an action that implements classification.","sidebar":"learn"},"JOIN_operator":{"id":"JOIN_operator","title":"JOIN operator","description":"The JOIN operator creates a property that implements a composition.","sidebar":"learn"},"Journals_and_logs":{"id":"Journals_and_logs","title":"Journals and logs","description":"Logs","sidebar":"learn"},"JSON_operator":{"id":"JSON_operator","title":"JSON operator","description":"The JSON operator is property that creates JSON from specified properties or, in common case, from form."},"Language":{"id":"Language","title":"Language","description":"lsFusion is a programming language that describes lsFusion modules.","sidebar":"learn"},"Launch_events":{"id":"Launch_events","title":"Launch events","description":"There are several predefined actions in the platform that are called when various components of the platform are launched:","sidebar":"learn"},"Launch_parameters":{"id":"Launch_parameters","title":"Launch parameters","description":"Application server (Server)","sidebar":"learn"},"Learn":{"id":"Learn","title":"Learn","description":"Overview","sidebar":"learn"},"Learning_materials":{"id":"Learning_materials","title":"Learning materials","description":"In addition to the documentation, the following materials can be used to explore the features of the lsFusion platform.","sidebar":"learn"},"LIKE_operator":{"id":"LIKE_operator","title":"LIKE operator","description":"The LIKE operator is the creation of a property that implements the operation of comparing a string with a pattern.","sidebar":"learn"},"Literals":{"id":"Literals","title":"Literals","description":"|Name|Example|Class|Description|Constraints|","sidebar":"learn"},"Logical_model":{"id":"Logical_model","title":"Logical model","description":"The logical model is traditionally divided into two parts:","sidebar":"learn"},"Logical_operators_AND_OR_NOT_XOR":{"id":"Logical_operators_AND_OR_NOT_XOR","title":"Logical operators (AND, OR, NOT, XOR)","description":"Logical operators create properties that consider their arguments as logical values of class BOOLEAN and whose return value is also a value of class BOOLEAN. If the value of an argument of an logical operator is not NULL, then the argument is treated as the value TRUE of class BOOLEAN, otherwise as NULL.","sidebar":"learn"},"Loop_FOR":{"id":"Loop_FOR","title":"Loop (FOR)","description":"The loop operator creates an action that iterates all object collections for which the defined condition is met, and executes a defined action for each such object collection (let\'s call it the main one). You can also define an alternative action that will be executed only if no object collections have been found that meet the condition. The condition itself is defined as a certain property. Let\'s say that the condition is satisfied if the value of this property is not NULL.","sidebar":"learn"},"lt-_WHEN_statement":{"id":"lt-_WHEN_statement","title":"<- WHEN statement","description":"The <- WHEN statement creates a calculated event.","sidebar":"learn"},"Management":{"id":"Management","title":"Management","description":"System parameters","sidebar":"learn"},"Manual_installation":{"id":"Manual_installation","title":"Install manually","description":"For development","sidebar":"install"},"Materializations":{"id":"Materializations","title":"Materializations","description":"Almost any aggregated property in the platform can be materialized. In this case, the property will be stored in the database permanently and automatically updated when the data on which this property depends is changed. At the same time, when reading the values of the materialized property, these values will be read directly from the database, as if the property was data (and not calculated every time). Accordingly, all data properties are materialized by definition.","sidebar":"learn"},"Materials_management":{"id":"Materials_management","title":"Materials management","description":"Description of the \\"Materials management\\" task","sidebar":"learn"},"MAX_operator":{"id":"MAX_operator","title":"MAX operator","description":"The MAX operator creates a property that implements finding maximum value.","sidebar":"learn"},"MESSAGE_operator":{"id":"MESSAGE_operator","title":"MESSAGE operator","description":"The MESSAGE operator creates an action that shows the user a message.","sidebar":"learn"},"META_statement":{"id":"META_statement","title":"META statement","description":"The META statement creates a new metacode.","sidebar":"learn"},"Metaprogramming":{"id":"Metaprogramming","title":"Metaprogramming","description":"Metaprogramming is a type of programming associated with writing software code that results in the generation of more software code. Metaprogramming is used for code reusability and to speed up development.","sidebar":"learn"},"Migration":{"id":"Migration","title":"Migration","description":"An lsFusion-based information system uses a relational database management system for permanent data storage. It should be remembered that after certain changes to the system logic, the platform is unable to determine how the data should be migrated. In these cases, the developer must explicitly define the migration method by creating the special migration file migration.script, which should be in the CLASSPATH of the application server.","sidebar":"learn"},"MIN_operator":{"id":"MIN_operator","title":"MIN operator","description":"The MIN operator creates a property that implements finding the minimum value.","sidebar":"learn"},"Modularity":{"id":"Modularity","title":"Modularity","description":"Modularity is a key mechanism for providing extensibility, reusability, and effective interaction among the development team.","sidebar":"learn"},"Module_header":{"id":"Module_header","title":"Module header","description":"Each module begins with a header.","sidebar":"learn"},"Modules":{"id":"Modules","title":"Modules","description":"A module is a functionally complete part of a project. A module consists of declarations of properties, actions, events, constraints, and other system elements.","sidebar":"learn"},"MULTI_action_operator":{"id":"MULTI_action_operator","title":"MULTI operator","description":"The MULTI operator creates an action that implements branching (polymorphic form).","sidebar":"learn"},"MULTI_operator":{"id":"MULTI_operator","title":"MULTI operator","description":"The MULTI operator creates a property that implements selection of one of the values (polymorphic form).","sidebar":"learn"},"Naming":{"id":"Naming","title":"Naming","description":"Each system element may have a *name* which can be used to access the element.","sidebar":"learn"},"Navigator":{"id":"Navigator","title":"Navigator","description":"Navigator is a hierarchical structure (tree) consisting of navigator elements. There are three types of navigator elements:","sidebar":"learn"},"Navigator_design":{"id":"Navigator_design","title":"Navigator design","description":"Navigator design determines how the navigator is displayed to the user on the screen of his device (we will call the screen space on which the navigator is displayed the desktop).","sidebar":"learn"},"NAVIGATOR_statement":{"id":"NAVIGATOR_statement","title":"NAVIGATOR statement","description":"The NAVIGATOR statement is used to modify the navigator.","sidebar":"learn"},"NESTEDSESSION_operator":{"id":"NESTEDSESSION_operator","title":"NESTEDSESSION operator","description":"The NESTEDSESSION operator creates an action that executes the other action in a nested session.","sidebar":"learn"},"New_object_NEW":{"id":"New_object_NEW","title":"New object (NEW)","description":"The new object operator creates an action that creates objects of a specified custom class for object collections where the value of some property (condition) is not NULL. The condition can be omitted, in which case it is considered to be equal to TRUE.","sidebar":"learn"},"NEW_operator":{"id":"NEW_operator","title":"NEW operator","description":"The NEW operator creates an action that creates objects of the specified class.","sidebar":"learn"},"New_session_NEWSESSION_NESTEDSESSION":{"id":"New_session_NEWSESSION_NESTEDSESSION","title":"New session (NEWSESSION, NESTEDSESSION)","description":"The new session operator allows you to execute an action in a session different from the current one.","sidebar":"learn"},"New_threads_NEWTHREAD_NEWEXECUTOR":{"id":"New_threads_NEWTHREAD_NEWEXECUTOR","title":"New threads (NEWTHREAD, NEWEXECUTOR)","description":"The new thread operator allows you to execute an action in a thread other than the current one.","sidebar":"learn"},"NEWEXECUTOR_operator":{"id":"NEWEXECUTOR_operator","title":"NEWEXECUTOR operator","description":"The NEWEXECUTOR operator is the creation of an action that allows the execution of other actions in a new thread pool.","sidebar":"learn"},"NEWSESSION_operator":{"id":"NEWSESSION_operator","title":"NEWSESSION operator","description":"The NEWSESSION operator creates an action that executes the other action in a new session.","sidebar":"learn"},"NEWTHREAD_operator":{"id":"NEWTHREAD_operator","title":"NEWTHREAD operator","description":"The NEWTHREAD operator creates an action that executes another action in a new thread.","sidebar":"learn"},"Object_blocks":{"id":"Object_blocks","title":"Object blocks","description":"Object blocks of the FORM statement - adding object groups to the form structure, and object trees to the interactive form view.","sidebar":"learn"},"Object_group_operator":{"id":"Object_group_operator","title":"Object group operator","description":"Object group operators are used for creating properties working with the current state of the object group on the form.","sidebar":"learn"},"Object_group_operators":{"id":"Object_group_operators","title":"Object group operators","description":"Object group operators include the following operators:","sidebar":"learn"},"Object_tree_visibility_EXPAND_COLLAPSE":{"id":"Object_tree_visibility_EXPAND_COLLAPSE","title":"Object tree visibility (EXPAND, COLLAPSE)","description":"Object tree *expansion* and *collapse* operators provide control over the visibility of elements within a tree displayed on a form. As input to these operators, the object group to which the operation is applied is passed. It is also specified over which tree elements (each corresponding to a specific object collection in the mentioned group) the operation needs to be performed:","sidebar":"learn"},"ON_statement":{"id":"ON_statement","title":"ON statement","description":"The ON statement adds an event handler.","sidebar":"learn"},"Online_demo":{"id":"Online_demo","title":"Online demo","description":"All demos support the following browsers: Chrome (recommended), Safari, Firefox, Opera, and Internet Explorer.","sidebar":"learn"},"Open_form":{"id":"Open_form","title":"Open form","description":"The open form operator creates an action that opens the specified form.","sidebar":"learn"},"Operations_with_primitives":{"id":"Operations_with_primitives","title":"Operations with primitives","description":"\u041eperations with primitives include operators for working with properties which values belong to the built-in classes. The platform supports the following operators:","sidebar":"learn"},"Operator_priority":{"id":"Operator_priority","title":"Operator priority","description":"When evaluating an expression, operators are evaluated in a specific order depending on operator priority. The higher the operator\u2019s priority, the earlier it will be executed. The table below lists the priorities of all operators in descending order.","sidebar":"learn"},"Order_ORDER":{"id":"Order_ORDER","title":"Order (ORDER)","description":"The order operator creates a property that returns the sequence number of an object collection in the specified group of objects, in accordance with the current order of this group.","sidebar":"learn"},"OVERRIDE_operator":{"id":"OVERRIDE_operator","title":"OVERRIDE operator","description":"The OVERRIDE operator creates a property that implements the selection of one of the values (polymorphic form).","sidebar":"learn"},"Paradigm":{"id":"Paradigm","title":"Paradigm","description":"The paradigm can be divided into two parts:","sidebar":"learn"},"PARTITION_operator":{"id":"PARTITION_operator","title":"PARTITION operator","description":"The PARTITION operator creates a property that implements partition/order or simple distribution.","sidebar":"learn"},"Partitioning_sorting_PARTITION_..._ORDER":{"id":"Partitioning_sorting_PARTITION_..._ORDER","title":"Partitioning / sorting (PARTITION ... ORDER)","description":"The partition/order operator creates a property that partitions all objects collections in the system into groups, and using the specified order calculates an aggregate function for each objects collection. Accordingly, the set on which this aggregating function is calculated is determined as following: all object collections of the group of this object collection, and the order of which is less than or equal to the order of this object collection.","sidebar":"learn"},"Physical_model":{"id":"Physical_model","title":"Physical model","description":"The physical model consists of three parts:","sidebar":"learn"},"PREV_operator":{"id":"PREV_operator","title":"PREV operator","description":"The PREV operator creates a property using a previous value operator.","sidebar":"learn"},"Previous_value_PREV":{"id":"Previous_value_PREV","title":"Previous value (PREV)","description":"The previous value operator creates a property that returns the value of the specified property at the beginning of the session (that is, the current value in the database ignoring the session changes).","sidebar":"learn"},"Primitive_input_INPUT":{"id":"Primitive_input_INPUT","title":"Primitive input (INPUT)","description":"The primitive input operator creates an action that requests the client to input a value of a builtin class. The user can cancel the input, for example by pressing the Esc key on the keyboard.","sidebar":"learn"},"PRINT_operator":{"id":"PRINT_operator","title":"PRINT operator","description":"The PRINT operator creates an action that opens a form in print view.","sidebar":"learn"},"Print_view":{"id":"Print_view","title":"Print view","description":"Print view of the form consists of a set of templates (reports). When data is substituted in these templates, a document is formed in graphic (with pixel positioning) or pseudographic (with cell positioning) format. This document is displayed to the user using a special graphic component, inside which the user can navigate through pages, zoom in/out within pages and print the contents of the component or export it to various formats (for example, PDF or Excel). If necessary, it is possible to skip the display of the component to the user and send the document for printing or save it into a selected file in the specified format.","sidebar":"learn"},"Process_monitor":{"id":"Process_monitor","title":"Process monitor","description":"(Under development)","sidebar":"learn"},"Profiler":{"id":"Profiler","title":"Profiler","description":"(Under development)","sidebar":"learn"},"Projects":{"id":"Projects","title":"Projects","description":"Project is a collection of modules and additional information (pictures, report design files, etc.) that fully describe the functionality of the information system being created.","sidebar":"learn"},"Properties":{"id":"Properties","title":"Properties","description":"A property is an element of the system that takes a set of objects (parameters) and returns exactly one object (the return value).","sidebar":"learn"},"Properties_and_actions_block":{"id":"Properties_and_actions_block","title":"Properties and actions block","description":"The property and action block of the FORM statement adds properties and actions to the form structure.","sidebar":"learn"},"Property_change_CHANGE":{"id":"Property_change_CHANGE","title":"Property change (CHANGE)","description":"The property change operator allows you to change the values of one property (write) to the value of another property (read) for all object collections for which the value of a third property (condition) is not NULL. The condition can be omitted (in which case it is considered to be equal to TRUE).","sidebar":"learn"},"Property_extension":{"id":"Property_extension","title":"Property extension","description":"The properties extension technique allows the developer to declare an abstract action in one module and define its implementation in other modules. This technique is essentially a \\"postponed definition\\" of a selection operator, where the operator\u2019s title is defined when the property is declared, and as new functionality (of classes or static objects) is added, selection options are added to the system. Furthermore, variants of selection (if it is not mutually exclusive) can be added both to the beginning and to the end of the abstract property created.","sidebar":"learn"},"Property_operators":{"id":"Property_operators","title":"Property operators","description":"Property operator is a syntax construct that describes an operator creating a property.","sidebar":"learn"},"Property_operators_paradigm":{"id":"Property_operators_paradigm","title":"Operators","description":"The platform currently supports the following property creation operators:","sidebar":"learn"},"Property_options":{"id":"Property_options","title":"Property options","description":"When a property is declared in the = statement a set of property options can be specified at the end of the declaration","sidebar":"learn"},"Property_signature_CLASS":{"id":"Property_signature_CLASS","title":"Signature matching (ISCLASS)","description":"The signature matching operator creates a property that determines, from a class perspective, whether the property specified in the operator can have a non-NULL value for the given arguments. In fact, this operator infers the possible classes of a given property from its semantics, and then, using logical operators and the classification operator, creates the required property.","sidebar":"learn"},"Read_file_READ":{"id":"Read_file_READ","title":"Read file (READ)","description":"The read file operator creates an action that reads a file from a defined source and writes this file to the specified local data property without parameters.","sidebar":"learn"},"READ_operator":{"id":"READ_operator","title":"READ operator","description":"The READ operator creates an action that reads a file to a property from an external resource.","sidebar":"learn"},"RECURSION_operator":{"id":"RECURSION_operator","title":"RECURSION operator","description":"The RECURSION operator creates a property that implements recursion.","sidebar":"learn"},"Recursion_RECURSION":{"id":"Recursion_RECURSION","title":"Recursion (RECURSION)","description":"The recursion operator is an operator that creates a property which sequentially performs two operations:","sidebar":"learn"},"Recursive_loop_WHILE":{"id":"Recursive_loop_WHILE","title":"Recursive loop (WHILE)","description":"The recursive loop operator is similar to a regular loop operator, with the only difference being that iteration is performed recursively until at a certain point the set of objects collections satisfying the condition becomes empty. As a result, there is no sense in defining alternative actions with this operator.","sidebar":"learn"},"Report_design":{"id":"Report_design","title":"Report design","description":"For each report you need to specify a special file (template) which will be used to build the result document. The name of the template for a specific report is `. An empty object group is considered to have no name, so if the first object group is empty, the name of the template is simply equal to the name of the form (without the _` postfix).","sidebar":"learn"},"REQUEST_operator":{"id":"REQUEST_operator","title":"REQUEST operator","description":"The REQUEST operator creates an action that requests a value.","sidebar":"learn"},"RETURN_operator":{"id":"RETURN_operator","title":"RETURN operator","description":"The RETURN operator creates an action that implements exit from an action created by the EXEC operator.","sidebar":"learn"},"ROUND_operator":{"id":"ROUND_operator","title":"ROUND operator","description":"ROUND operator creates a property that implements the rounding operation.","sidebar":"learn"},"Rounding_operator_ROUND":{"id":"Rounding_operator_ROUND","title":"Rounding operator (ROUND)","description":"The rounding operator creates a property whose value is the result of rounding a number to the specified number of digits. The arguments of this operator must be properties that determine the number and the rounding precision. Negative precision values indicate the number of least significant digits to be rounded in the integer part of the number, allowing you to round the number to tens, hundreds, etc.","sidebar":"learn"},"Scheduler":{"id":"Scheduler","title":"Scheduler","description":"The scheduler is designed to automatically execute certain tasks with specified frequency.","sidebar":"learn"},"Score_table":{"id":"Score_table","title":"Score table","description":"\\"Score table\\" task description","sidebar":"learn"},"Search_":{"id":"Search_","title":"Search","description":"Each element in the system contains certain information that allows it to be uniquely identified among other elements of the system. However, providing all the information about the element in each place it is used is rather cumbersome; so the platform has a special search algorithm, which allows you to find the desired element with only part of the information about it (for example, only a short name and the module which uses the item you are searching for).","sidebar":"learn"},"Search_SEEK":{"id":"Search_SEEK","title":"Search (SEEK)","description":"Search operator tries to make the specified object collection current for the specified form object group. The objects from the specified object collection shall be called seek objects.","sidebar":"learn"},"Security_policy":{"id":"Security_policy","title":"Security policy","description":"Customizing user roles","sidebar":"learn"},"SEEK_operator":{"id":"SEEK_operator","title":"SEEK operator","description":"The SEEK operator creates an action that seeks specified objects on a form.","sidebar":"learn"},"Selection_CASE_IF_MULTI_OVERRIDE_EXCLUSIVE":{"id":"Selection_CASE_IF_MULTI_OVERRIDE_EXCLUSIVE","title":"Selection (CASE, IF, MULTI, OVERRIDE, EXCLUSIVE)","description":"The selection operator creates a property that determines for a set of conditions which condition is met, and returns the value of the result corresponding to that condition. If none of the conditions is met, then the value of the created property will be NULL.","sidebar":"learn"},"Send_mail_EMAIL":{"id":"Send_mail_EMAIL","title":"Send mail (EMAIL)","description":"The send mail operator creates an action that sends an email to the specified email addresses. As with any email, you can define the sender, recipient, body text, attachment files with specified names and other parameters.","sidebar":"learn"},"Sequence":{"id":"Sequence","title":"Sequence ({...})","description":"To create an action that performs a sequence of other actions, the {...} operator is used - a block enclosed by curly brackets. The body of this block must contain a sequence of action operators and local property declarations.","sidebar":"learn"},"Session_management":{"id":"Session_management","title":"Session management","description":"The system has the following operators for working with sessions:","sidebar":"learn"},"Set_operations":{"id":"Set_operations","title":"Set operations","description":"One of the key features of the platform is the ability to execute certain operations for all object collections for which the values of one or more properties are not NULL. In the property logic such an operation is the calculation of various aggregate functions.","sidebar":"learn"},"Show_message_MESSAGE_ASK":{"id":"Show_message_MESSAGE_ASK","title":"Show message (MESSAGE, ASK)","description":"The show message operators create actions that show a text message to the user. The message is defined as a property whose value will be used as the message content. This message can be displayed either using a dialog box or in the System.log system window.","sidebar":"learn"},"SHOW_operator":{"id":"SHOW_operator","title":"SHOW operator","description":"The SHOW operator creates an action that opens a form in interactive view.","sidebar":"learn"},"Simple_constraints":{"id":"Simple_constraints","title":"Simple constraints","description":"The platform currently supports four types of simple constraints: consequence, exception, equality, and definiteness. For all simple constraints, an automatic resolution mechanism is supported. When this is enabled, instead of throwing an error the platform itself restores system integrity.","sidebar":"learn"},"Simple_event":{"id":"Simple_event","title":"Simple event","description":"Simple event - an event that occurs when the value of the specified property (which shall be called an event condition) changes to non-NULL. This event is a kind of extension of a basic event (adding an additional condition), which means that all the same parameters must be set as for an basic event, in particular:","sidebar":"learn"},"State_change":{"id":"State_change","title":"State change","description":"System state change operators include the following.","sidebar":"learn"},"Statements":{"id":"Statements","title":"Statements","description":"The code of any module in lsFusion consists of a sequence of statements.","sidebar":"learn"},"Static_objects":{"id":"Static_objects","title":"Static objects","description":"Static (or built-in) objects are objects that are defined by the developer and are automatically created on system startup (if they are not present in the system at launch time). Also, such objects are prohibited from being deleted.","sidebar":"learn"},"Static_view":{"id":"Static_view","title":"Static view","description":"In static view, all form data is read at the time the form is opened, after which the obtained data is converted:","sidebar":"learn"},"String_operators_+_CONCAT_SUBSTRING":{"id":"String_operators_+_CONCAT_SUBSTRING","title":"String operators (+, CONCAT, SUBSTRING)","description":"String operators are operators which parameters and result are the properties which values are instances of the string classes. The platform currently supports the following string operators:","sidebar":"learn"},"STRUCT_operator":{"id":"STRUCT_operator","title":"STRUCT operator","description":"The STRUCT operator creates a property that creates a structure.","sidebar":"learn"},"Structure_operators_STRUCT":{"id":"Structure_operators_STRUCT","title":"Structure operators (STRUCT, [])","description":"The term structure is used in the platform to refer to the classes which objects consist of a collection of other objects in a fixed order. The platform supports two operators for working with structures:","sidebar":"learn"},"Structured_view":{"id":"Structured_view","title":"Structured view","description":"All structured views (formats) can be divided into two types:","sidebar":"learn"},"System_parameters":{"id":"System_parameters","title":"System parameters","description":"Launch parameters","sidebar":"learn"},"TABLE_statement":{"id":"TABLE_statement","title":"TABLE statement","description":"The TABLE statement creates an new table.","sidebar":"learn"},"Tables":{"id":"Tables","title":"Tables","description":"For storing and calculating values of the properties the lsFusion platform uses a relational database. All data properties, as well as all calculated properties marked as materialized, are stored in the fields of the tables in the database. For each table, there is a set of key fields with the names key0, key1, ..., keyN, where the object IDs are stored. All other fields store property values in such a way that in the corresponding field of each row there is a property value for the objects with IDs from the key fields. Objects of built-in classes can also be used as table keys.","sidebar":"learn"},"Tokens":{"id":"Tokens","title":"Tokens","description":"A token in a programming language is the smallest significant sequence of characters. In the lsFusion language tokens are keywords, IDs, literals and special character sequences.","sidebar":"learn"},"TRY_operator":{"id":"TRY_operator","title":"TRY operator","description":"The TRY operator creates an action that executes another action with exception handling.","sidebar":"learn"},"Type_conversion":{"id":"Type_conversion","title":"Type conversion","description":"The type conversion operator creates a property that converts an object of one built-in class to an object of another built-in class. If type conversion is not possible, the property value will be NULL.","sidebar":"learn"},"Type_conversion_operator":{"id":"Type_conversion_operator","title":"Type conversion operator","description":"The type conversion operator creates a property that performs type conversion.","sidebar":"learn"},"UNGROUP_operator":{"id":"UNGROUP_operator","title":"UNGROUP operator","description":"At the moment, the UNGROUP operator is not implemented.","sidebar":"learn"},"User_classes":{"id":"User_classes","title":"User classes","description":"Classes that a developer can create and the instances of which a user can create are called custom classes.","sidebar":"learn"},"User_interface":{"id":"User_interface","title":"User interface","description":"(Under development)","sidebar":"learn"},"User_IS_interaction":{"id":"User_IS_interaction","title":"User/IS interaction","description":"This category includes operators for interacting with the user and with other information systems:","sidebar":"learn"},"Value_input":{"id":"Value_input","title":"Value input","description":"This category includes operators responsible for inputting a value:","sidebar":"learn"},"Value_request_REQUEST":{"id":"Value_request_REQUEST","title":"Value request (REQUEST)","description":"The value request operator creates an action in which requesting value(s) is separated from directly processing the value(s). Accordingly, this operator allows not to perform a value request if its result is known in advance in the context of the call (the value of the System.requestPushed property is equal to TRUE). This, in turn, automatically gives you the following capabilities in various use cases:","sidebar":"learn"},"View_logic":{"id":"View_logic","title":"View logic","description":"The key element of the view logic is the form. Forms are used in the platform to organize the input and output of information into the system (from the system).","sidebar":"learn"},"View_VIEW":{"id":"View_VIEW","title":"View (VIEW)","description":"The view operator creates a property that returns TRUE if the object collection is visible to the user in the specified object group, and NULL otherwise.","sidebar":"learn"},"WHEN_statement":{"id":"WHEN_statement","title":"WHEN statement","description":"The WHEN statement adds a simple event handler.","sidebar":"learn"},"WHILE_operator":{"id":"WHILE_operator","title":"WHILE operator","description":"The WHILE operator creates an action that implements a recursive loop.","sidebar":"learn"},"WINDOW_statement":{"id":"WINDOW_statement","title":"WINDOW statement","description":"The WINDOW statement creates a new window.","sidebar":"learn"},"Working_parameters":{"id":"Working_parameters","title":"Working parameters","description":"The platform working parameters can be set in one of the following ways (in the order of their priorities, lower priority at the bottom):","sidebar":"learn"},"Write_file_WRITE":{"id":"Write_file_WRITE","title":"Write file (WRITE)","description":"The write file operator creates an action which reads a file from the value of some property and saves it to the defined source.","sidebar":"learn"},"WRITE_operator":{"id":"WRITE_operator","title":"WRITE operator","description":"The WRITE operator creates an action that writes a file from a property to an external resource.","sidebar":"learn"}}}')}}]); \ No newline at end of file diff --git a/assets/js/9c40ea7d.3ee10a5c.js b/assets/js/9c40ea7d.3ee10a5c.js deleted file mode 100644 index 9404d883761..00000000000 --- a/assets/js/9c40ea7d.3ee10a5c.js +++ /dev/null @@ -1 +0,0 @@ -"use strict";(self.webpackChunkls_fusion_docs=self.webpackChunkls_fusion_docs||[]).push([[52220],{98312:(e,n,t)=>{t.r(n),t.d(n,{assets:()=>l,contentTitle:()=>o,default:()=>h,frontMatter:()=>s,metadata:()=>c,toc:()=>a});var r=t(74848),i=t(28453);const s={title:"Object blocks"},o=void 0,c={id:"Object_blocks",title:"Object blocks",description:"Object block of the FORM statement adds objects (including object groups) to the form structure, as well as object trees to the interactive form view.",source:"@site/docs/Object_blocks.md",sourceDirName:".",slug:"/Object_blocks",permalink:"/next/Object_blocks",draft:!1,unlisted:!1,editUrl:"https://github.com/lsfusion/platform/edit/master/docs/en/Object_blocks.md",tags:[],version:"current",lastUpdatedAt:1708525070,formattedLastUpdatedAt:"Feb 21, 2024",frontMatter:{title:"Object blocks"},sidebar:"learn",previous:{title:"FORM statement",permalink:"/next/FORM_statement"},next:{title:"Properties and actions block",permalink:"/next/Properties_and_actions_block"}},l={},a=[{value:"Object block",id:"objects",level:2},{value:"Syntax",id:"syntax",level:3},{value:"Description",id:"description",level:3},{value:"Parameters",id:"parameters",level:3},{value:"Object group options",id:"object-group-options",level:3},{value:"Examples",id:"examples",level:3},{value:"Object tree block",id:"tree",level:2},{value:"Syntax",id:"syntax-1",level:3},{value:"Description",id:"description-1",level:3},{value:"Parameters",id:"parameters-1",level:3},{value:"Object tree options",id:"object-tree-options",level:3},{value:"Examples",id:"examples-1",level:3}];function d(e){const n={a:"a",code:"code",em:"em",h2:"h2",h3:"h3",li:"li",p:"p",pre:"pre",ul:"ul",...(0,i.R)(),...e.components};return(0,r.jsxs)(r.Fragment,{children:[(0,r.jsxs)(n.p,{children:["Object block of the ",(0,r.jsx)(n.a,{href:"/next/FORM_statement",children:"FORM statement"})," adds ",(0,r.jsx)(n.a,{href:"#objects",children:"objects"})," (including object groups) to the form structure, as well as ",(0,r.jsx)(n.a,{href:"#tree",children:"object trees"})," to the interactive form view."]}),"\n",(0,r.jsx)(n.h2,{id:"objects",children:"Object block"}),"\n",(0,r.jsx)(n.h3,{id:"syntax",children:"Syntax"}),"\n",(0,r.jsx)(n.pre,{children:(0,r.jsx)(n.code,{children:"OBJECTS groupDeclaration1 [groupOptions1], ...., groupDeclarationN [groupOptionsN]\n"})}),"\n",(0,r.jsxs)(n.p,{children:["Each ",(0,r.jsx)(n.code,{children:"groupDeclaration"})," is a declaration of an object group consisting of several objects:"]}),"\n",(0,r.jsx)(n.pre,{children:(0,r.jsx)(n.code,{children:"[groupName =] (objectDeclaration1, ..., objectDeclarationK)\n"})}),"\n",(0,r.jsx)(n.p,{children:"or an object group consisting of a single object:"}),"\n",(0,r.jsx)(n.pre,{children:(0,r.jsx)(n.code,{children:"objectDeclaration\n"})}),"\n",(0,r.jsxs)(n.p,{children:["Each ",(0,r.jsx)(n.code,{children:"objectDeclaration"})," declaring an object has the following syntax:"]}),"\n",(0,r.jsx)(n.pre,{children:(0,r.jsx)(n.code,{children:"[[name] [caption] =] classId [ON CHANGE actionId(param1, ..., paramM) | { actionOperator } ]\n"})}),"\n",(0,r.jsxs)(n.p,{children:["The declaration of each object group may be followed by a set of options called ",(0,r.jsx)(n.code,{children:"groupOptions"}),":"]}),"\n",(0,r.jsx)(n.pre,{children:(0,r.jsx)(n.code,{children:"viewType\nINIT | FIXED\nPAGESIZE pageSize \nAFTER groupName\nBEFORE groupName\ndefaultObjectsType\nIN propertyGroup\nEXTID extID\nSUBREPORT [subReportExpression]\n"})}),"\n",(0,r.jsx)(n.h3,{id:"description",children:"Description"}),"\n",(0,r.jsxs)(n.p,{children:["A single ",(0,r.jsx)(n.code,{children:"OBJECTS"})," block can contain several comma-delimited declarations of ",(0,r.jsx)(n.a,{href:"/next/Interactive_view#objects",children:"object groups"}),". An object group can contain just one object or several ones. In case of a single object, you can use simplified syntax without specifying the name of an object group and using parentheses. The declaration of an object group may be followed by the options of this group. They are listed one after another in an arbitrary order."]}),"\n",(0,r.jsx)(n.h3,{id:"parameters",children:"Parameters"}),"\n",(0,r.jsx)("a",{className:"lsdoc-anchor",id:"groupName"}),"\n",(0,r.jsxs)(n.ul,{children:["\n",(0,r.jsxs)(n.li,{children:["\n",(0,r.jsx)(n.p,{children:(0,r.jsx)(n.code,{children:"groupName"})}),"\n",(0,r.jsxs)(n.p,{children:["Name of an object group. ",(0,r.jsx)(n.a,{href:"/next/IDs#id",children:"Simple ID"}),". Must be specified if you need to access an object group consisting of several objects. If an object group consists of a single object, the name of the object group will be equal to the name of the object and doesn't need to be specified."]}),"\n"]}),"\n",(0,r.jsxs)(n.li,{children:["\n",(0,r.jsx)(n.p,{children:(0,r.jsx)(n.code,{children:"name"})}),"\n",(0,r.jsxs)(n.p,{children:["Object name. Simple ID. Must be specified if the object class is a ",(0,r.jsx)(n.a,{href:"/next/Built-in_classes",children:"built-in class"}),". If the object class is a ",(0,r.jsx)(n.a,{href:"/next/User_classes",children:"custom class"}),", the name doesn't need to be specified. In this case, it will be equal to the name of the class object."]}),"\n"]}),"\n",(0,r.jsxs)(n.li,{children:["\n",(0,r.jsx)(n.p,{children:(0,r.jsx)(n.code,{children:"classId"})}),"\n",(0,r.jsxs)(n.p,{children:[(0,r.jsx)(n.a,{href:"/next/IDs#classid",children:"Object class ID"}),"."]}),"\n"]}),"\n",(0,r.jsxs)(n.li,{children:["\n",(0,r.jsx)(n.p,{children:(0,r.jsx)(n.code,{children:"caption"})}),"\n",(0,r.jsxs)(n.p,{children:["Caption of the object being added. ",(0,r.jsx)(n.a,{href:"/next/Literals#strliteral",children:"String literal"}),". If the caption is not specified, the class caption will become the object caption."]}),"\n"]}),"\n",(0,r.jsxs)(n.li,{children:["\n",(0,r.jsx)(n.p,{children:(0,r.jsx)(n.code,{children:"ON CHANGE actionName(param1, ..., paramM) | { actionOperator }"})}),"\n",(0,r.jsxs)(n.p,{children:["Specifying an ",(0,r.jsx)(n.a,{href:"/next/Actions",children:"action"})," that will be called when the current object value is changed."]}),"\n",(0,r.jsxs)(n.ul,{children:["\n",(0,r.jsxs)(n.li,{children:["\n",(0,r.jsx)(n.p,{children:(0,r.jsx)(n.code,{children:"actionID"})}),"\n",(0,r.jsxs)(n.p,{children:[(0,r.jsx)(n.a,{href:"/next/IDs#propertyid",children:"Action ID"}),"."]}),"\n"]}),"\n",(0,r.jsxs)(n.li,{children:["\n",(0,r.jsx)(n.p,{children:(0,r.jsx)(n.code,{children:"param1, ..., paramM"})}),"\n",(0,r.jsxs)(n.p,{children:["A list of object names on the form that will be used as action parameters. The number of these objects must be equal to the number of action parameters. The name of the object is defined with a ",(0,r.jsx)(n.a,{href:"/next/IDs#id",children:"simple ID"}),"."]}),"\n"]}),"\n",(0,r.jsxs)(n.li,{children:["\n",(0,r.jsx)(n.p,{children:(0,r.jsx)(n.code,{children:"actionOperator"})}),"\n",(0,r.jsxs)(n.p,{children:[(0,r.jsx)(n.a,{href:"/next/Action_operators#contextdependent",children:"Context-dependent action operator"}),". You can use the names of already declared objects on the form as parameters."]}),"\n"]}),"\n"]}),"\n"]}),"\n"]}),"\n",(0,r.jsx)(n.h3,{id:"object-group-options",children:"Object group options"}),"\n",(0,r.jsxs)(n.ul,{children:["\n",(0,r.jsxs)(n.li,{children:["\n",(0,r.jsx)(n.p,{children:(0,r.jsx)(n.code,{children:"viewType"})}),"\n",(0,r.jsxs)(n.p,{children:[(0,r.jsx)(n.a,{href:"/next/Interactive_view#property",children:"Default view"})," for an object group. It is specified with one of the keywords:"]}),"\n",(0,r.jsxs)(n.ul,{children:["\n",(0,r.jsxs)(n.li,{children:[(0,r.jsx)(n.code,{children:"PANEL"})," - ",(0,r.jsx)(n.em,{children:"panel"})," view."]}),"\n",(0,r.jsxs)(n.li,{children:[(0,r.jsx)(n.code,{children:"TOOLBAR"})," - ",(0,r.jsx)(n.em,{children:"toolbar"})," display mode."]}),"\n",(0,r.jsxs)(n.li,{children:[(0,r.jsx)(n.code,{children:"GRID"})," - ",(0,r.jsx)(n.em,{children:"table column"})," view;. Used by default."]}),"\n"]}),"\n"]}),"\n",(0,r.jsxs)(n.li,{children:["\n",(0,r.jsx)(n.p,{children:(0,r.jsx)(n.code,{children:"PAGESIZE pageSize"})}),"\n",(0,r.jsxs)(n.p,{children:["Specification of the number of readable objects in the table. By default, the quantity is determined dynamically depending on the size of the component in the user interface and equals to ",(0,r.jsx)(n.code,{children:"3 * "}),". A value of ",(0,r.jsx)(n.code,{children:"0"})," means that all objects must be read."]}),"\n",(0,r.jsxs)(n.ul,{children:["\n",(0,r.jsxs)(n.li,{children:["\n",(0,r.jsx)(n.p,{children:(0,r.jsx)(n.code,{children:"pageSize"})}),"\n",(0,r.jsxs)(n.p,{children:["Number of objects read. ",(0,r.jsx)(n.a,{href:"/next/Literals#intliteral",children:"Integer literal"}),"."]}),"\n"]}),"\n"]}),"\n"]}),"\n",(0,r.jsxs)(n.li,{children:["\n",(0,r.jsxs)(n.p,{children:[(0,r.jsx)(n.code,{children:"AFTER"})," groupName"]}),"\n"]}),"\n",(0,r.jsxs)(n.li,{children:["\n",(0,r.jsxs)(n.p,{children:[(0,r.jsx)(n.code,{children:"BEFORE"})," groupName"]}),"\n",(0,r.jsxs)(n.p,{children:["Specifying that the object tree should be added to the form structure immediately before (keyword ",(0,r.jsx)(n.code,{children:"BEFORE"}),") or after (keyword ",(0,r.jsx)(n.code,{children:"AFTER"}),") of a specified object group. Typically used with the ",(0,r.jsx)(n.a,{href:"/next/Form_extension",children:"form extension"})," mechanism . If a group is added before the group in a tree, then this group should the first in this tree. Accordingly, if a group is added after the group in a tree, this group should be the last in this tree."]}),"\n",(0,r.jsxs)(n.ul,{children:["\n",(0,r.jsxs)(n.li,{children:["\n",(0,r.jsx)(n.p,{children:(0,r.jsx)(n.code,{children:"groupName"})}),"\n",(0,r.jsxs)(n.p,{children:[(0,r.jsx)(n.a,{href:"#groupName",children:"Object group name"}),"."]}),"\n"]}),"\n"]}),"\n"]}),"\n",(0,r.jsxs)(n.li,{children:["\n",(0,r.jsx)(n.p,{children:(0,r.jsx)(n.code,{children:"defaultObjectsType"})}),"\n",(0,r.jsx)(n.p,{children:"Specifying which object collection from the added object group will be current after the change of the active filters:"}),"\n",(0,r.jsxs)(n.ul,{children:["\n",(0,r.jsxs)(n.li,{children:[(0,r.jsx)(n.code,{children:"FIRST"}),"\u2013 specifies that the first object collection will be the ",(0,r.jsx)(n.a,{href:"/next/Interactive_view#defaultobject",children:"default objects"})]}),"\n",(0,r.jsxs)(n.li,{children:[(0,r.jsx)(n.code,{children:"LAST"})," - last one"]}),"\n",(0,r.jsxs)(n.li,{children:[(0,r.jsx)(n.code,{children:"PREV"})," - previous one"]}),"\n"]}),"\n",(0,r.jsx)(n.p,{children:"If this option is not specified, the platform determines the option to be used depending on the current filters."}),"\n"]}),"\n",(0,r.jsxs)(n.li,{children:["\n",(0,r.jsx)(n.p,{children:(0,r.jsx)(n.code,{children:"IN propertyGroup"})}),"\n",(0,r.jsxs)(n.p,{children:["Specifying the ",(0,r.jsx)(n.a,{href:"/next/Groups_of_properties_and_actions",children:"property/action group"})," that the object group belongs to. Used only in the ",(0,r.jsx)(n.a,{href:"/next/Structured_view#hierarchy",children:"hierarchical"})," view."]}),"\n",(0,r.jsxs)(n.ul,{children:["\n",(0,r.jsxs)(n.li,{children:["\n",(0,r.jsx)(n.p,{children:(0,r.jsx)(n.code,{children:"propertyGroup"})}),"\n",(0,r.jsxs)(n.p,{children:["The property group name. ",(0,r.jsx)(n.a,{href:"/next/IDs#cid",children:"Composite ID"}),"."]}),"\n"]}),"\n"]}),"\n"]}),"\n",(0,r.jsxs)(n.li,{children:["\n",(0,r.jsx)(n.p,{children:(0,r.jsx)(n.code,{children:"EXTID extID"})}),"\n",(0,r.jsxs)(n.p,{children:["Specifying the name to be used for ",(0,r.jsx)(n.a,{href:"/next/Structured_view#extid",children:"export/import"})," operations performed by this object group. Used only in the ",(0,r.jsx)(n.a,{href:"/next/Structured_view",children:"structured"})," view."]}),"\n",(0,r.jsxs)(n.ul,{children:["\n",(0,r.jsxs)(n.li,{children:["\n",(0,r.jsx)(n.p,{children:(0,r.jsx)(n.code,{children:"extId"})}),"\n",(0,r.jsx)(n.p,{children:"String literal."}),"\n"]}),"\n"]}),"\n"]}),"\n",(0,r.jsxs)(n.li,{children:["\n",(0,r.jsx)(n.p,{children:(0,r.jsx)(n.code,{children:"SUBREPORT [subReportExpression]"})}),"\n",(0,r.jsxs)(n.p,{children:["Specifies that you need to generate a separate ",(0,r.jsx)(n.a,{href:"/next/Print_view",children:"report"})," file for this object group while ",(0,r.jsx)(n.a,{href:"/next/Print_view#buildhierarchy",children:"building the report hierarchy"}),"."]}),"\n",(0,r.jsxs)(n.ul,{children:["\n",(0,r.jsxs)(n.li,{children:["\n",(0,r.jsx)(n.p,{children:(0,r.jsx)(n.code,{children:"subReportExpression"})}),"\n",(0,r.jsxs)(n.p,{children:["The ",(0,r.jsx)(n.a,{href:"/next/Expression",children:"expression"})," whose value will be used as the name of the ",(0,r.jsx)(n.a,{href:"/next/Print_view",children:"report"})," file for the created object group. You can use the names of already declared objects on the form as parameters. It is assumed that the values of these objects will be ",(0,r.jsx)(n.a,{href:"/next/Open_form#params",children:"passed"})," when the form is opened ",(0,r.jsx)(n.a,{href:"/next/In_a_print_view_PRINT",children:"in the print view"})," (if it's not done, they will be considered equal ",(0,r.jsx)(n.code,{children:"NULL"}),")."]}),"\n"]}),"\n"]}),"\n"]}),"\n"]}),"\n",(0,r.jsx)(n.h3,{id:"examples",children:"Examples"}),"\n",(0,r.jsx)(n.pre,{children:(0,r.jsx)(n.code,{className:"language-lsf",children:"CLASS Shipment;\n// declaring the delivery form\nFORM shipments 'Deliveries'\n OBJECTS s = Shipment // adding one object of the shipment class\n PAGESIZE 100 // indicating that the table should always contain 100 rows\n\n // ... adding properties and filters to the form\n;\n\n// Declaring a form that will display the turnover of the product for a specified interval\nname = DATA STRING[100] (Item);\nrevenue = DATA NUMERIC[16,2] (Item, DATE, DATE);\n\nFORM revenues 'Product turnovers'\n // declaring a group of objects, consisting of 2 objects of the Date class with the appropriate captions,\n // which will always be displayed as a panel\n OBJECTS interval = (dateFrom 'Date (from)' = DATE, dateTo 'Date (to)' = DATE) PANEL, \n i = Item // adding a list of products\n // adding to the form the properties of the date objects values, with which the user can select dates\n PROPERTIES VALUE(dateFrom), VALUE(dateTo) \n // adding the product name and the property with the product turnover for the date interval\n PROPERTIES name(i), revenue(i, dateFrom, dateTo) \n;\n"})}),"\n",(0,r.jsx)(n.pre,{children:(0,r.jsx)(n.code,{className:"language-lsf",children:"// creating a form for printing a price tag for a product\nlabelFile = DATA STRING[100] (Item);\nprintLabelFile (Item i)= OVERRIDE labelFile(i), 'MyModule_printLabel_i.jrxml' IF i IS Item;\nFORM printLabel 'Price tag printing'\n OBJECTS i = Item // adding the product for which the price tag will be printed\n // marking that a file whose name is stored in the printLabelFile property should be used as a template \n // (it is assumed that the i value will be passed in the OBJECTS block)\n REPORT printLabelFile(i) \n // for example, the user can input myLabel1.jrxml there, then the system will use a file named myLabel1.jrxml\n // ... other properties required for printing\n;\n"})}),"\n",(0,r.jsx)(n.h2,{id:"tree",children:"Object tree block"}),"\n",(0,r.jsx)(n.h3,{id:"syntax-1",children:"Syntax"}),"\n",(0,r.jsx)(n.pre,{children:(0,r.jsx)(n.code,{children:"TREE [name] groupDeclaration1 [parentBlock1], ...., groupDeclarationN [parentBlockN] [treeOptions]\n"})}),"\n",(0,r.jsxs)(n.p,{children:["Each ",(0,r.jsx)(n.code,{children:"groupDeclaration"})," is a declaration of an object group that is similar to the declaration in an object block described above. Each ",(0,r.jsx)(n.code,{children:"parentBlock"})," can be described in one of the following ways:"]}),"\n",(0,r.jsx)(n.pre,{children:(0,r.jsx)(n.code,{children:"PARENT propertyId\n(PARENT propertyId1, ..., propertyIdK)\n"})}),"\n",(0,r.jsx)(n.p,{children:"The first option is used if an object group for which the block is specified consists of a single object, the second one is used for groups of two and more objects."}),"\n",(0,r.jsxs)(n.p,{children:["The ",(0,r.jsx)(n.code,{children:"treeOptions"})," options set may be specified after the declaration of each object tree."]}),"\n",(0,r.jsx)(n.pre,{children:(0,r.jsx)(n.code,{children:"AFTER groupName\nBEFORE groupName\n"})}),"\n",(0,r.jsx)(n.h3,{id:"description-1",children:"Description"}),"\n",(0,r.jsxs)(n.p,{children:[(0,r.jsx)(n.em,{children:"Object tree block"})," lets you create an ",(0,r.jsx)(n.a,{href:"/next/Interactive_view#tree",children:"object tree"}),". The first specified object group will form a list of top-level objects, each of which will have a child list of objects of the second specified object group and so on."]}),"\n",(0,r.jsxs)(n.p,{children:["Use the ",(0,r.jsx)(n.code,{children:"PARENT"})," block to create ",(0,r.jsx)(n.a,{href:"/next/Interactive_view#treegroup",children:"hierarchical object groups"}),". To do that, specify a property that will define the parent element for an object (or several objects if an object group contains several ones)."]}),"\n",(0,r.jsx)(n.h3,{id:"parameters-1",children:"Parameters"}),"\n",(0,r.jsx)("a",{className:"lsdoc-anchor",id:"treeName"}),"\n",(0,r.jsxs)(n.ul,{children:["\n",(0,r.jsxs)(n.li,{children:["\n",(0,r.jsx)(n.p,{children:(0,r.jsx)(n.code,{children:"name"})}),"\n",(0,r.jsxs)(n.p,{children:["The name of the object tree being created. ",(0,r.jsx)(n.a,{href:"/next/IDs#id",children:"Simple ID"}),"."]}),"\n"]}),"\n",(0,r.jsxs)(n.li,{children:["\n",(0,r.jsx)(n.p,{children:(0,r.jsx)(n.code,{children:"propertyId"})}),"\n",(0,r.jsxs)(n.p,{children:[(0,r.jsx)(n.a,{href:"/next/IDs#propertyid",children:"ID of the property"})," defining the hierarchy for an object group consisting of a single object. The specified property must have a single parameter and return the parent object of the passed object as its value (or ",(0,r.jsx)(n.code,{children:"NULL"})," if the passed object is the top one)."]}),"\n"]}),"\n",(0,r.jsxs)(n.li,{children:["\n",(0,r.jsx)(n.p,{children:(0,r.jsx)(n.code,{children:"propertyId1, ..., propertyIdK"})}),"\n",(0,r.jsxs)(n.p,{children:["A list of property ID's defining the hierarchy for an object group consisting of several objects. All specified properties must have the same number of parameters as the number of objects in the object group. Each of these properties must return one of the parent objects of the passed objects as a value (or ",(0,r.jsx)(n.code,{children:"NULL"})," if the passed object collection is the top one). The first property should return the first parent object, the second property - the second object, etc. on."]}),"\n"]}),"\n"]}),"\n",(0,r.jsx)(n.h3,{id:"object-tree-options",children:"Object tree options"}),"\n",(0,r.jsxs)(n.ul,{children:["\n",(0,r.jsxs)(n.li,{children:["\n",(0,r.jsx)(n.p,{children:(0,r.jsx)(n.code,{children:"AFTER groupName"})}),"\n"]}),"\n",(0,r.jsxs)(n.li,{children:["\n",(0,r.jsx)(n.p,{children:(0,r.jsx)(n.code,{children:"BEFORE groupName"})}),"\n",(0,r.jsxs)(n.p,{children:["Specifying that the object tree should be added to the form structure immediately before (keyword ",(0,r.jsx)(n.code,{children:"BEFORE"}),") or after (keyword ",(0,r.jsx)(n.code,{children:"AFTER"}),") of a specified object group. Typically used with the ",(0,r.jsx)(n.a,{href:"/next/Form_extension",children:"form extension"})," mechanism . If a group is added before the group in a tree, then this group should the first in this tree. Accordingly, if a group is added after the group in a tree, this group should be the last in this tree."]}),"\n"]}),"\n",(0,r.jsxs)(n.li,{children:["\n",(0,r.jsx)(n.p,{children:(0,r.jsx)(n.code,{children:"groupName"})}),"\n",(0,r.jsxs)(n.p,{children:[(0,r.jsx)(n.a,{href:"#groupName",children:"Object group name"}),"."]}),"\n"]}),"\n"]}),"\n",(0,r.jsx)(n.h3,{id:"examples-1",children:"Examples"}),"\n",(0,r.jsx)(n.pre,{children:(0,r.jsx)(n.code,{className:"language-lsf",children:"CLASS SkuGroup;\nname = DATA ISTRING[100] (SkuGroup);\nactive = DATA BOOLEAN (SkuGroup);\nparent = DATA SkuGroup (SkuGroup) AUTOSET;\n\nCLASS Sku;\nname = DATA ISTRING[100] (Sku);\nskuGroup = DATA SkuGroup (Sku);\n\n\nFORM skus 'Sku'\n TREE groupTree g=SkuGroup PARENT parent(g)\n PROPERTIES READONLY name(g)\n FILTERS active(g)\n\n OBJECTS s = Sku\n PROPERTIES(s) name\n FILTERS skuGroup(s) == g\n;\n\nCLASS Group1;\nname = DATA STRING[100] (Group1);\n\nCLASS Group2;\nname = DATA STRING[100] (Group2);\n\nCLASS Group3;\nname = DATA STRING[100] (Group3);\n\nin = DATA BOOLEAN (Group1, Group2);\nin = DATA BOOLEAN (Group2, Group3);\n\nFORM groups\n TREE groups g1 = Group1, g2 = Group2, g3 = Group3\n PROPERTIES READONLY name(g1), name(g2), name(g3)\n FILTERS in(g1, g2), in(g2, g3)\n;\n"})})]})}function h(e={}){const{wrapper:n}={...(0,i.R)(),...e.components};return n?(0,r.jsx)(n,{...e,children:(0,r.jsx)(d,{...e})}):d(e)}},28453:(e,n,t)=>{t.d(n,{R:()=>o,x:()=>c});var r=t(96540);const i={},s=r.createContext(i);function o(e){const n=r.useContext(s);return r.useMemo((function(){return"function"==typeof e?e(n):{...n,...e}}),[n,e])}function c(e){let n;return n=e.disableParentContext?"function"==typeof e.components?e.components(i):e.components||i:o(e.components),r.createElement(s.Provider,{value:n},e.children)}}}]); \ No newline at end of file diff --git a/assets/js/9c40ea7d.8b62b47e.js b/assets/js/9c40ea7d.8b62b47e.js new file mode 100644 index 00000000000..5be2fb259a2 --- /dev/null +++ b/assets/js/9c40ea7d.8b62b47e.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkls_fusion_docs=self.webpackChunkls_fusion_docs||[]).push([[52220],{98312:(e,n,i)=>{i.r(n),i.d(n,{assets:()=>l,contentTitle:()=>o,default:()=>a,frontMatter:()=>r,metadata:()=>c,toc:()=>d});var s=i(74848),t=i(28453);const r={title:"Object blocks"},o=void 0,c={id:"Object_blocks",title:"Object blocks",description:"Object blocks of the FORM statement - adding object groups to the form structure, and object trees to the interactive form view.",source:"@site/docs/Object_blocks.md",sourceDirName:".",slug:"/Object_blocks",permalink:"/next/Object_blocks",draft:!1,unlisted:!1,editUrl:"https://github.com/lsfusion/platform/edit/master/docs/en/Object_blocks.md",tags:[],version:"current",lastUpdatedAt:1715591858,formattedLastUpdatedAt:"May 13, 2024",frontMatter:{title:"Object blocks"},sidebar:"learn",previous:{title:"FORM statement",permalink:"/next/FORM_statement"},next:{title:"Properties and actions block",permalink:"/next/Properties_and_actions_block"}},l={},d=[{value:"Object block",id:"objects",level:2},{value:"Syntax",id:"syntax",level:3},{value:"Description",id:"description",level:3},{value:"Parameters",id:"parameters",level:3},{value:"Object options",id:"object-options",level:3},{value:"Object group options",id:"object-group-options",level:3},{value:"Examples",id:"examples",level:3},{value:"Object tree block",id:"tree",level:2},{value:"Syntax",id:"syntax-1",level:3},{value:"Description",id:"description-1",level:3},{value:"Parameters",id:"parameters-1",level:3},{value:"Examples",id:"examples-1",level:3}];function h(e){const n={a:"a",code:"code",em:"em",h2:"h2",h3:"h3",li:"li",p:"p",pre:"pre",ul:"ul",...(0,t.R)(),...e.components};return(0,s.jsxs)(s.Fragment,{children:[(0,s.jsxs)(n.p,{children:["Object blocks of the ",(0,s.jsxs)(n.a,{href:"/next/FORM_statement",children:[(0,s.jsx)(n.code,{children:"FORM"})," statement"]})," - adding ",(0,s.jsx)(n.a,{href:"/next/Form_structure#objects",children:"object groups"})," to the form structure, and ",(0,s.jsx)(n.a,{href:"/next/Interactive_view#tree",children:"object trees"})," to the interactive form view."]}),"\n",(0,s.jsx)(n.h2,{id:"objects",children:"Object block"}),"\n",(0,s.jsx)(n.h3,{id:"syntax",children:"Syntax"}),"\n",(0,s.jsx)(n.pre,{children:(0,s.jsx)(n.code,{children:"OBJECTS groupDeclaration1 [groupOptions1], ...., groupDeclarationN [groupOptionsN]\n"})}),"\n",(0,s.jsxs)(n.p,{children:["Each ",(0,s.jsx)(n.code,{children:"groupDeclaration"})," is a declaration of an object group consisting of several objects:"]}),"\n",(0,s.jsx)(n.pre,{children:(0,s.jsx)(n.code,{children:"[groupName =] (objectDeclaration1, ..., objectDeclarationK)\n"})}),"\n",(0,s.jsx)(n.p,{children:"or an object group consisting of a single object:"}),"\n",(0,s.jsx)(n.pre,{children:(0,s.jsx)(n.code,{children:"objectDeclaration\n"})}),"\n",(0,s.jsxs)(n.p,{children:["Each ",(0,s.jsx)(n.code,{children:"objectDeclaration"})," declaring an object has the following syntax:"]}),"\n",(0,s.jsx)(n.pre,{children:(0,s.jsx)(n.code,{children:"[[name] [caption] =] classId objectOptions\n"})}),"\n",(0,s.jsxs)(n.p,{children:["Object options ",(0,s.jsx)(n.code,{children:"objectOptions"})," can be listed one after another in any order. The following set of options is supported:"]}),"\n",(0,s.jsx)(n.pre,{children:(0,s.jsx)(n.code,{children:"ON CHANGE actionId(param1, ..., paramM)\nON CHANGE actionOperator \nEXTID objectExtID\n"})}),"\n",(0,s.jsxs)(n.p,{children:["After the declaration of each object group, the group options ",(0,s.jsx)(n.code,{children:"groupOptions"})," can be listed in any order:"]}),"\n",(0,s.jsx)(n.pre,{children:(0,s.jsx)(n.code,{children:"viewType\ninsertPosition\ndefaultObjectsType\nPAGESIZE pageSize \nIN propertyGroup\nEXTID extID\nEXTKEY\nSUBREPORT [subReportExpression]\nBACKGROUND backgroundExpr\nFOREGROUND foregroundExpr\n"})}),"\n",(0,s.jsx)(n.h3,{id:"description",children:"Description"}),"\n",(0,s.jsxs)(n.p,{children:["A single ",(0,s.jsx)(n.code,{children:"OBJECTS"})," block can contain several comma-delimited declarations of ",(0,s.jsx)(n.a,{href:"/next/Interactive_view#objects",children:"object groups"}),". An object group can contain just one object or several ones. In case of a single object, you can use simplified syntax without specifying the name of an object group and using parentheses."]}),"\n",(0,s.jsx)(n.h3,{id:"parameters",children:"Parameters"}),"\n",(0,s.jsx)("a",{className:"lsdoc-anchor",id:"groupName"}),"\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsxs)(n.li,{children:["\n",(0,s.jsx)(n.p,{children:(0,s.jsx)(n.code,{children:"groupName"})}),"\n",(0,s.jsxs)(n.p,{children:["Name of an object group. ",(0,s.jsx)(n.a,{href:"/next/IDs#id",children:"Simple ID"}),". Must be specified if you need to access an object group consisting of several objects. If an object group consists of a single object, the name of the object group will be equal to the name of the object and doesn't need to be specified."]}),"\n"]}),"\n",(0,s.jsxs)(n.li,{children:["\n",(0,s.jsx)(n.p,{children:(0,s.jsx)(n.code,{children:"name"})}),"\n",(0,s.jsxs)(n.p,{children:["Object name. Simple ID. Must be specified if the object class is a ",(0,s.jsx)(n.a,{href:"/next/Built-in_classes",children:"built-in class"}),". If the object class is a ",(0,s.jsx)(n.a,{href:"/next/User_classes",children:"custom class"}),", the name doesn't need to be specified. In this case, it will be equal to the name of the class object."]}),"\n"]}),"\n",(0,s.jsxs)(n.li,{children:["\n",(0,s.jsx)(n.p,{children:(0,s.jsx)(n.code,{children:"classId"})}),"\n",(0,s.jsxs)(n.p,{children:[(0,s.jsx)(n.a,{href:"/next/IDs#classid",children:"Object class ID"}),"."]}),"\n"]}),"\n",(0,s.jsxs)(n.li,{children:["\n",(0,s.jsx)(n.p,{children:(0,s.jsx)(n.code,{children:"caption"})}),"\n",(0,s.jsxs)(n.p,{children:["Caption of the object being added. ",(0,s.jsx)(n.a,{href:"/next/Literals#strliteral",children:"String literal"}),". If the caption is not specified, the class caption will become the object caption."]}),"\n"]}),"\n"]}),"\n",(0,s.jsx)(n.h3,{id:"object-options",children:"Object options"}),"\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsxs)(n.li,{children:["\n",(0,s.jsx)(n.p,{children:(0,s.jsx)(n.code,{children:"ON CHANGE actionName(param1, ..., paramM)"})}),"\n",(0,s.jsxs)(n.p,{children:["Specifying an ",(0,s.jsx)(n.a,{href:"/next/Actions",children:"action"})," that will be called when the current value of the object changes."]}),"\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsxs)(n.li,{children:["\n",(0,s.jsx)(n.p,{children:(0,s.jsx)(n.code,{children:"actionID"})}),"\n",(0,s.jsxs)(n.p,{children:[(0,s.jsx)(n.a,{href:"/next/IDs#propertyid",children:"Action ID"}),"."]}),"\n"]}),"\n",(0,s.jsxs)(n.li,{children:["\n",(0,s.jsx)(n.p,{children:(0,s.jsx)(n.code,{children:"param1, ..., paramM"})}),"\n",(0,s.jsx)(n.p,{children:"A list of object names on the form that will be used as action parameters. The number of these objects must be equal to the number of action parameters. The name of the object is defined with a simple ID."}),"\n"]}),"\n"]}),"\n"]}),"\n",(0,s.jsxs)(n.li,{children:["\n",(0,s.jsx)(n.p,{children:(0,s.jsx)(n.code,{children:"ON CHANGE actionOperator"})}),"\n",(0,s.jsxs)(n.p,{children:["Creating an ",(0,s.jsx)(n.a,{href:"/next/Actions",children:"action"})," that will be called when the current value of the object changes."]}),"\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsxs)(n.li,{children:["\n",(0,s.jsx)(n.p,{children:(0,s.jsx)(n.code,{children:"actionOperator"})}),"\n",(0,s.jsxs)(n.p,{children:[(0,s.jsx)(n.a,{href:"/next/Action_operators#contextdependent",children:"Context-dependent action operator"}),". You can use the names of already declared objects on the form as parameters."]}),"\n"]}),"\n"]}),"\n"]}),"\n",(0,s.jsxs)(n.li,{children:["\n",(0,s.jsx)(n.p,{children:(0,s.jsx)(n.code,{children:"EXTID objectExtID"})}),"\n",(0,s.jsxs)(n.p,{children:["Specifying the name that will be used for ",(0,s.jsx)(n.a,{href:"/next/Structured_view#extid",children:"export/import"})," of this form object. Used only in the ",(0,s.jsx)(n.a,{href:"/next/Structured_view",children:"structured"})," view."]}),"\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsxs)(n.li,{children:["\n",(0,s.jsx)(n.p,{children:(0,s.jsx)(n.code,{children:"objectExtID"})}),"\n",(0,s.jsx)(n.p,{children:"String literal."}),"\n"]}),"\n"]}),"\n"]}),"\n"]}),"\n",(0,s.jsx)(n.h3,{id:"object-group-options",children:"Object group options"}),"\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsxs)(n.li,{children:["\n",(0,s.jsx)(n.p,{children:(0,s.jsx)(n.code,{children:"viewType"})}),"\n",(0,s.jsxs)(n.p,{children:["The ",(0,s.jsx)(n.a,{href:"/next/Interactive_view#property",children:"default view"})," for properties of this object group. Specified by one of the following ways:"]}),"\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsxs)(n.li,{children:["\n",(0,s.jsx)(n.p,{children:(0,s.jsx)(n.code,{children:"PANEL"})}),"\n",(0,s.jsxs)(n.p,{children:["Keyword that, when specified, selects the ",(0,s.jsx)(n.em,{children:"panel"})," view type"]}),"\n"]}),"\n",(0,s.jsxs)(n.li,{children:["\n",(0,s.jsx)(n.p,{children:(0,s.jsx)(n.code,{children:"TOOLBAR"})}),"\n",(0,s.jsxs)(n.p,{children:["Keyword that, when specified, selects the ",(0,s.jsx)(n.em,{children:"toolbar"})," view type"]}),"\n"]}),"\n",(0,s.jsxs)(n.li,{children:["\n",(0,s.jsx)(n.p,{children:(0,s.jsx)(n.code,{children:"GRID"})}),"\n",(0,s.jsxs)(n.p,{children:["Keyword that, when specified, selects the ",(0,s.jsx)(n.em,{children:"table column"})," view type. Used by default."]}),"\n"]}),"\n",(0,s.jsxs)(n.li,{children:["\n",(0,s.jsx)(n.p,{children:(0,s.jsx)(n.code,{children:"PIVOT [pivotOptions]"})}),"\n",(0,s.jsxs)(n.p,{children:["When the ",(0,s.jsx)(n.code,{children:"PIVOT"})," keyword is specified, the ",(0,s.jsx)(n.em,{children:"pivot table"})," view type is selected. Options for this view type ",(0,s.jsx)(n.code,{children:"pivotOptions"})," can be specified one after another in any order."]}),"\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsxs)(n.li,{children:["\n",(0,s.jsx)(n.p,{children:(0,s.jsx)(n.code,{children:"pivotType"})}),"\n",(0,s.jsxs)(n.p,{children:[(0,s.jsx)(n.a,{href:"/next/Literals#strliteral",children:"String literal"})," that defines the initial display mode of the pivot table. Can be equal to one of the following values:"]}),"\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsxs)(n.li,{children:[(0,s.jsx)(n.code,{children:"'Table'"})," (default value)"]}),"\n",(0,s.jsx)(n.li,{children:(0,s.jsx)(n.code,{children:"'Table Bar Chart'"})}),"\n",(0,s.jsx)(n.li,{children:(0,s.jsx)(n.code,{children:"'Table Heatmap'"})}),"\n",(0,s.jsx)(n.li,{children:(0,s.jsx)(n.code,{children:"'Table Row Heatmap'"})}),"\n",(0,s.jsx)(n.li,{children:(0,s.jsx)(n.code,{children:"'Table Col Heatmap'"})}),"\n",(0,s.jsx)(n.li,{children:(0,s.jsx)(n.code,{children:"'Bar Chart'"})}),"\n",(0,s.jsx)(n.li,{children:(0,s.jsx)(n.code,{children:"'Stacked Bar Chart'"})}),"\n",(0,s.jsx)(n.li,{children:(0,s.jsx)(n.code,{children:"'Line Chart'"})}),"\n",(0,s.jsx)(n.li,{children:(0,s.jsx)(n.code,{children:"'Area Chart'"})}),"\n",(0,s.jsx)(n.li,{children:(0,s.jsx)(n.code,{children:"'Scatter Chart'"})}),"\n",(0,s.jsx)(n.li,{children:(0,s.jsx)(n.code,{children:"'Multiple Pie Chart'"})}),"\n",(0,s.jsx)(n.li,{children:(0,s.jsx)(n.code,{children:"'Horizontal Bar Chart'"})}),"\n",(0,s.jsx)(n.li,{children:(0,s.jsx)(n.code,{children:"'Horizontal Stacked Bar Chart'"})}),"\n"]}),"\n"]}),"\n",(0,s.jsxs)(n.li,{children:["\n",(0,s.jsx)(n.p,{children:(0,s.jsx)(n.code,{children:"calcType"})}),"\n",(0,s.jsx)(n.p,{children:"Specifying the initial aggregation function. It can be set using one of the keywords:"}),"\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsxs)(n.li,{children:[(0,s.jsx)(n.code,{children:"SUM"})," - sum of values (default value)"]}),"\n",(0,s.jsxs)(n.li,{children:[(0,s.jsx)(n.code,{children:"MAX"})," - maximum of values"]}),"\n",(0,s.jsxs)(n.li,{children:[(0,s.jsx)(n.code,{children:"MIN"})," - minimum of values"]}),"\n"]}),"\n"]}),"\n",(0,s.jsxs)(n.li,{children:["\n",(0,s.jsx)(n.p,{children:(0,s.jsx)(n.code,{children:"settingsType"})}),"\n",(0,s.jsx)(n.p,{children:"Specifying whether the pivot table settings are shown to the user. It can be specified by one of the keywords:"}),"\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsxs)(n.li,{children:[(0,s.jsx)(n.code,{children:"SETTINGS"})," - settings are shown (default value)"]}),"\n",(0,s.jsxs)(n.li,{children:[(0,s.jsx)(n.code,{children:"NOSETTINGS"})," - settings are not shown"]}),"\n"]}),"\n"]}),"\n"]}),"\n"]}),"\n",(0,s.jsxs)(n.li,{children:["\n",(0,s.jsx)(n.p,{children:(0,s.jsx)(n.code,{children:"MAP [tileProvider]"})}),"\n",(0,s.jsxs)(n.p,{children:["When the ",(0,s.jsx)(n.code,{children:"MAP"})," keyword is specified, the ",(0,s.jsx)(n.em,{children:"map"})," view type is selected. By default, this view uses OpenStreetMap maps. It is possible to use Google or Yandex maps. To do this you need to include the ",(0,s.jsx)(n.code,{children:"Geo.lsf"})," module in the project, then obtain an API key for Google or Yandex and specify it in ",(0,s.jsx)(n.code,{children:"Administration > Application > Settings > Navigation"}),"."]}),"\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsxs)(n.li,{children:["\n",(0,s.jsx)(n.p,{children:(0,s.jsx)(n.code,{children:"tileProvider"})}),"\n",(0,s.jsxs)(n.p,{children:["String literal that specifies the map source. Possible options: ",(0,s.jsx)(n.code,{children:"'google'"})," and ",(0,s.jsx)(n.code,{children:"'yandex'"}),". If not specified, OpenStreetMap will be used as the map source."]}),"\n"]}),"\n"]}),"\n"]}),"\n",(0,s.jsxs)(n.li,{children:["\n",(0,s.jsx)(n.p,{children:(0,s.jsx)(n.code,{children:"CALENDAR"})}),"\n",(0,s.jsxs)(n.p,{children:["Keyword that, when specified, selects the ",(0,s.jsx)(n.em,{children:"calendar"})," view type."]}),"\n"]}),"\n",(0,s.jsxs)(n.li,{children:["\n",(0,s.jsx)(n.p,{children:(0,s.jsx)(n.code,{children:"CUSTOM renderFunction [HEADER expr]"})}),"\n",(0,s.jsxs)(n.p,{children:["When the ",(0,s.jsx)(n.code,{children:"CUSTOM"})," keyword is specified, the custom view type is selected."]}),"\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsxs)(n.li,{children:["\n",(0,s.jsx)(n.p,{children:(0,s.jsx)(n.code,{children:"renderFunction"})}),"\n",(0,s.jsx)(n.p,{children:"A string literal specifying the name of the JavaScript function that is responsible for displaying the data. This function must be located in a .js file included in the project resources and loaded for use on the client. It should return a JavaScript object that contains three functions:"}),"\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsx)(n.li,{children:(0,s.jsx)(n.code,{children:"render(element, controller)"})}),"\n",(0,s.jsx)(n.li,{children:(0,s.jsx)(n.code,{children:"update(element, controller, list, options)"})}),"\n",(0,s.jsxs)(n.li,{children:[(0,s.jsx)(n.code,{children:"clear(element)"})," (optional)"]}),"\n"]}),"\n",(0,s.jsxs)(n.p,{children:["A more detailed description of the mechanism can be found in the article ",(0,s.jsx)(n.a,{href:"/next/How-to_Custom_components_objects",children:"How-to: Custom Components (Objects)"}),"."]}),"\n"]}),"\n",(0,s.jsxs)(n.li,{children:["\n",(0,s.jsx)(n.p,{children:(0,s.jsx)(n.code,{children:"expr"})}),"\n",(0,s.jsx)(n.p,{children:"Expression whose value must be an object of the JSON class. It is used to pass data that does not depend on the values of the described object group."}),"\n"]}),"\n"]}),"\n"]}),"\n"]}),"\n"]}),"\n"]}),"\n",(0,s.jsx)("a",{className:"lsdoc-anchor",id:"insertPosition"}),"\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsxs)(n.li,{children:["\n",(0,s.jsx)(n.p,{children:(0,s.jsx)(n.code,{children:"insertPosition"})}),"\n",(0,s.jsxs)(n.p,{children:["Specifying the insertion position of the object group within the list of object groups. Most often used together with the ",(0,s.jsx)(n.a,{href:"/next/Form_extension",children:"form extension mechanism"}),". It can be specified in one of the following ways:"]}),"\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsxs)(n.li,{children:["\n",(0,s.jsx)(n.p,{children:(0,s.jsx)(n.code,{children:"AFTER groupName"})}),"\n"]}),"\n",(0,s.jsxs)(n.li,{children:["\n",(0,s.jsx)(n.p,{children:(0,s.jsx)(n.code,{children:"BEFORE groupName"})}),"\n",(0,s.jsxs)(n.p,{children:["The object group will be added to the form structure directly before (keyword ",(0,s.jsx)(n.code,{children:"BEFORE"}),") or after (keyword ",(0,s.jsx)(n.code,{children:"AFTER"}),") the specified object group. If the group before (after) which it is to be added is in the tree, it must be the first (last) in that tree."]}),"\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsxs)(n.li,{children:["\n",(0,s.jsx)(n.p,{children:(0,s.jsx)(n.code,{children:"groupName"})}),"\n",(0,s.jsx)(n.p,{children:"Object group name. Simple ID."}),"\n"]}),"\n"]}),"\n"]}),"\n",(0,s.jsxs)(n.li,{children:["\n",(0,s.jsx)(n.p,{children:(0,s.jsx)(n.code,{children:"FIRST"})}),"\n",(0,s.jsx)(n.p,{children:"Keyword indicating that the object group will be added to the beginning of the list."}),"\n"]}),"\n",(0,s.jsxs)(n.li,{children:["\n",(0,s.jsx)(n.p,{children:(0,s.jsx)(n.code,{children:"LAST"})}),"\n",(0,s.jsx)(n.p,{children:"Keyword indicating that the object group will be added to the end of the list."}),"\n"]}),"\n",(0,s.jsxs)(n.li,{children:["\n",(0,s.jsx)(n.p,{children:(0,s.jsx)(n.code,{children:"DEFAULT"})}),"\n",(0,s.jsx)(n.p,{children:"Keyword indicating that the object group is added in the order of declaration. This is the default value."}),"\n"]}),"\n"]}),"\n"]}),"\n",(0,s.jsxs)(n.li,{children:["\n",(0,s.jsx)(n.p,{children:(0,s.jsx)(n.code,{children:"defaultObjectsType"})}),"\n",(0,s.jsx)(n.p,{children:"Specifying which object collection from the added object group will be current after the active filters are changed. Specified by one of the keywords:"}),"\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsxs)(n.li,{children:[(0,s.jsx)(n.code,{children:"FIRST"}),"\u2013 specifies that the first object collection (according to the current order) will be the ",(0,s.jsx)(n.a,{href:"/next/Interactive_view#defaultobject",children:"default objects"})]}),"\n",(0,s.jsxs)(n.li,{children:[(0,s.jsx)(n.code,{children:"LAST"})," - last object collection"]}),"\n",(0,s.jsxs)(n.li,{children:[(0,s.jsx)(n.code,{children:"PREV"})," - the previous (or closest possible) object collection"]}),"\n",(0,s.jsxs)(n.li,{children:[(0,s.jsx)(n.code,{children:"NULL"})," - none (reset)"]}),"\n"]}),"\n",(0,s.jsx)(n.p,{children:"If this option is not specified, the platform determines the option to be used depending on the current filters."}),"\n"]}),"\n",(0,s.jsxs)(n.li,{children:["\n",(0,s.jsx)(n.p,{children:(0,s.jsx)(n.code,{children:"PAGESIZE pageSize"})}),"\n",(0,s.jsxs)(n.p,{children:["Specification of the number of readable objects in the table. By default, the quantity is determined dynamically depending on the size of the component in the user interface and equals to ",(0,s.jsx)(n.code,{children:"3 * "}),". A value of ",(0,s.jsx)(n.code,{children:"0"})," means that all objects must be read."]}),"\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsxs)(n.li,{children:["\n",(0,s.jsx)(n.p,{children:(0,s.jsx)(n.code,{children:"pageSize"})}),"\n",(0,s.jsxs)(n.p,{children:["Number of objects read. ",(0,s.jsx)(n.a,{href:"/next/Literals#intliteral",children:"Integer literal"}),"."]}),"\n"]}),"\n"]}),"\n"]}),"\n",(0,s.jsxs)(n.li,{children:["\n",(0,s.jsx)(n.p,{children:(0,s.jsx)(n.code,{children:"IN propertyGroup"})}),"\n",(0,s.jsxs)(n.p,{children:["Specifying the ",(0,s.jsx)(n.a,{href:"/next/Groups_of_properties_and_actions",children:"property and action group"})," that the object group belongs to. Used only in the ",(0,s.jsx)(n.a,{href:"/next/Structured_view#hierarchy",children:"hierarchical"})," view."]}),"\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsxs)(n.li,{children:["\n",(0,s.jsx)(n.p,{children:(0,s.jsx)(n.code,{children:"propertyGroup"})}),"\n",(0,s.jsxs)(n.p,{children:["The property and action group name. ",(0,s.jsx)(n.a,{href:"/next/IDs#cid",children:"Composite ID"}),"."]}),"\n"]}),"\n"]}),"\n"]}),"\n",(0,s.jsxs)(n.li,{children:["\n",(0,s.jsx)(n.p,{children:(0,s.jsx)(n.code,{children:"EXTID extID"})}),"\n",(0,s.jsxs)(n.p,{children:["Specifying the name to be used for ",(0,s.jsx)(n.a,{href:"/next/Structured_view#extid",children:"export/import"})," of this object group. Used only in the structured view."]}),"\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsxs)(n.li,{children:["\n",(0,s.jsx)(n.p,{children:(0,s.jsx)(n.code,{children:"extId"})}),"\n",(0,s.jsx)(n.p,{children:"String literal."}),"\n"]}),"\n"]}),"\n"]}),"\n",(0,s.jsxs)(n.li,{children:["\n",(0,s.jsx)(n.p,{children:(0,s.jsx)(n.code,{children:"EXTKEY"})}),"\n",(0,s.jsxs)(n.p,{children:["When keyword ",(0,s.jsx)(n.code,{children:"EXTKEY"})," is specified the values of objects and properties of this object group are represented in a structured view as key-value pairs, where the key is the value of the object (set of objects) and the value is the property values. By default, they are represented as an array with lists of property values."]}),"\n"]}),"\n",(0,s.jsxs)(n.li,{children:["\n",(0,s.jsx)(n.p,{children:(0,s.jsx)(n.code,{children:"SUBREPORT [subReportExpression]"})}),"\n",(0,s.jsxs)(n.p,{children:["Specifies that you need to generate a separate ",(0,s.jsx)(n.a,{href:"/next/Print_view",children:"report"})," file for this object group while ",(0,s.jsx)(n.a,{href:"/next/Print_view#buildhierarchy",children:"building the report hierarchy"}),"."]}),"\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsxs)(n.li,{children:["\n",(0,s.jsx)(n.p,{children:(0,s.jsx)(n.code,{children:"subReportExpression"})}),"\n",(0,s.jsxs)(n.p,{children:["The ",(0,s.jsx)(n.a,{href:"/next/Expression",children:"expression"})," whose value will be used as the name of the ",(0,s.jsx)(n.a,{href:"/next/Print_view",children:"report"})," file for the created object group. You can use the names of already declared objects on the form as parameters. It is assumed that the values of these objects will be ",(0,s.jsx)(n.a,{href:"/next/Open_form#params",children:"passed"})," when the form is opened ",(0,s.jsx)(n.a,{href:"/next/In_a_print_view_PRINT",children:"in the print view"})," (if it's not done, they will be considered equal ",(0,s.jsx)(n.code,{children:"NULL"}),")."]}),"\n"]}),"\n"]}),"\n"]}),"\n",(0,s.jsxs)(n.li,{children:["\n",(0,s.jsx)(n.p,{children:(0,s.jsx)(n.code,{children:"BACKGROUND backgroundExpr"})}),"\n",(0,s.jsx)(n.p,{children:"Specifying the background color of property cells belonging to this object group."}),"\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsxs)(n.li,{children:["\n",(0,s.jsx)(n.p,{children:(0,s.jsx)(n.code,{children:"backgroundExpr"})}),"\n",(0,s.jsx)(n.p,{children:"Expression whose value determines the background color."}),"\n"]}),"\n"]}),"\n"]}),"\n",(0,s.jsxs)(n.li,{children:["\n",(0,s.jsx)(n.p,{children:(0,s.jsx)(n.code,{children:"FOREGROUND foregroundExpr"})}),"\n",(0,s.jsx)(n.p,{children:"Specifying the foreground color of property cells belonging to this object group."}),"\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsxs)(n.li,{children:["\n",(0,s.jsx)(n.p,{children:(0,s.jsx)(n.code,{children:"foregroundExpr"})}),"\n",(0,s.jsx)(n.p,{children:"Expression whose value determines the foreground color."}),"\n"]}),"\n"]}),"\n"]}),"\n"]}),"\n",(0,s.jsx)(n.h3,{id:"examples",children:"Examples"}),"\n",(0,s.jsx)(n.pre,{children:(0,s.jsx)(n.code,{className:"language-lsf",children:"CLASS Shipment;\n// declaring the delivery form\nFORM shipments 'Deliveries'\n OBJECTS s = Shipment // adding one object of the shipment class\n PAGESIZE 100 // indicating that the table should always contain 100 rows\n\n // ... adding properties and filters to the form\n;\n\n// Declaring a form that will display the turnover of the product for a specified interval\nname = DATA STRING[100] (Item);\nrevenue = DATA NUMERIC[16,2] (Item, DATE, DATE);\n\nFORM revenues 'Product turnovers'\n // declaring a group of objects, consisting of 2 objects of the Date class with the appropriate captions,\n // which will always be displayed as a panel\n OBJECTS interval = (dateFrom 'Date (from)' = DATE, dateTo 'Date (to)' = DATE) PANEL, \n i = Item // adding a list of products\n // adding to the form the properties of the date objects values, with which the user can select dates\n PROPERTIES VALUE(dateFrom), VALUE(dateTo) \n // adding the product name and the property with the product turnover for the date interval\n PROPERTIES name(i), revenue(i, dateFrom, dateTo) \n;\n"})}),"\n",(0,s.jsx)(n.pre,{children:(0,s.jsx)(n.code,{className:"language-lsf",children:"// creating a form for printing a price tag for a product\nlabelFile = DATA STRING[100] (Item);\nprintLabelFile (Item i)= OVERRIDE labelFile(i), 'MyModule_printLabel_i.jrxml' IF i IS Item;\nFORM printLabel 'Price tag printing'\n OBJECTS i = Item // adding the product for which the price tag will be printed\n // marking that a file whose name is stored in the printLabelFile property should be used as a template \n // (it is assumed that the i value will be passed in the OBJECTS block)\n REPORT printLabelFile(i) \n // for example, the user can input myLabel1.jrxml there, then the system will use a file named myLabel1.jrxml\n // ... other properties required for printing\n;\n"})}),"\n",(0,s.jsx)(n.h2,{id:"tree",children:"Object tree block"}),"\n",(0,s.jsx)(n.h3,{id:"syntax-1",children:"Syntax"}),"\n",(0,s.jsx)(n.pre,{children:(0,s.jsx)(n.code,{children:"TREE [name] groupDeclaration1 [parentBlock1], ...., groupDeclarationN [parentBlockN] [insertPosition]\n"})}),"\n",(0,s.jsxs)(n.p,{children:["Each ",(0,s.jsx)(n.code,{children:"groupDeclaration"})," is a declaration of an object group that is fully analogous to the ",(0,s.jsx)(n.a,{href:"#objects",children:"declaration in the object block"})," described above. Each ",(0,s.jsx)(n.code,{children:"parentBlock"})," can be described in one of two ways:"]}),"\n",(0,s.jsx)(n.pre,{children:(0,s.jsx)(n.code,{children:"PARENT parentExpr\n(PARENT parentExpr1, ..., parentExprK)\n"})}),"\n",(0,s.jsx)(n.p,{children:"The first option is used if an object group for which the block is specified consists of a single object, the second one is used for groups of two and more objects."}),"\n",(0,s.jsx)(n.h3,{id:"description-1",children:"Description"}),"\n",(0,s.jsxs)(n.p,{children:[(0,s.jsx)(n.em,{children:"Object tree block"})," lets you create an ",(0,s.jsx)(n.a,{href:"/next/Interactive_view#tree",children:"object tree"}),". The first specified object group will form a list of top-level objects, each of which will have a child list of objects of the second specified object group and so on."]}),"\n",(0,s.jsxs)(n.p,{children:["Use the ",(0,s.jsx)(n.code,{children:"PARENT"})," block to create ",(0,s.jsx)(n.a,{href:"/next/Interactive_view#treegroup",children:"hierarchical object groups"}),". To do that, specify a property that will define the parent element for an object (or several objects if an object group contains several ones)."]}),"\n",(0,s.jsx)(n.h3,{id:"parameters-1",children:"Parameters"}),"\n",(0,s.jsx)("a",{className:"lsdoc-anchor",id:"treeName"}),"\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsxs)(n.li,{children:["\n",(0,s.jsx)(n.p,{children:(0,s.jsx)(n.code,{children:"name"})}),"\n",(0,s.jsxs)(n.p,{children:["The name of the object tree being created. ",(0,s.jsx)(n.a,{href:"/next/IDs#id",children:"Simple ID"}),"."]}),"\n"]}),"\n",(0,s.jsxs)(n.li,{children:["\n",(0,s.jsx)(n.p,{children:(0,s.jsx)(n.code,{children:"parentExpr"})}),"\n",(0,s.jsxs)(n.p,{children:["Expression that defines a hierarchy for a group of objects consisting of a single object. This expression must create a property that has exactly one parameter and returns the parent object for the object passed as input (or ",(0,s.jsx)(n.code,{children:"NULL"})," if the passed object is at the top level)."]}),"\n"]}),"\n",(0,s.jsxs)(n.li,{children:["\n",(0,s.jsx)(n.p,{children:(0,s.jsx)(n.code,{children:"parentExpr1, ..., parentExprK"})}),"\n",(0,s.jsxs)(n.p,{children:["A list of expressions that define a hierarchy for an object group consisting of multiple objects. These expressions should create properties with a number of parameters equal to the number of objects in the group. Each of these properties should return one of the parent objects for the object collection passed as input (or ",(0,s.jsx)(n.code,{children:"NULL"})," if the passed object collection is at the top level). The first property should return the first object of the parent object collection, the second property - the second object, and so on."]}),"\n"]}),"\n",(0,s.jsxs)(n.li,{children:["\n",(0,s.jsx)(n.p,{children:(0,s.jsx)(n.code,{children:"insertPosition"})}),"\n",(0,s.jsxs)(n.p,{children:["Specifying the insertion position of tree object groups in the list of object groups. It has syntax fully analogous to the ",(0,s.jsx)(n.a,{href:"#insertPosition",children:"same option in the object block"}),"."]}),"\n"]}),"\n"]}),"\n",(0,s.jsx)(n.h3,{id:"examples-1",children:"Examples"}),"\n",(0,s.jsx)(n.pre,{children:(0,s.jsx)(n.code,{className:"language-lsf",children:"CLASS SkuGroup;\nname = DATA ISTRING[100] (SkuGroup);\nactive = DATA BOOLEAN (SkuGroup);\nparent = DATA SkuGroup (SkuGroup) AUTOSET;\n\nCLASS Sku;\nname = DATA ISTRING[100] (Sku);\nskuGroup = DATA SkuGroup (Sku);\n\n\nFORM skus 'Sku'\n TREE groupTree g=SkuGroup PARENT parent(g)\n PROPERTIES READONLY name(g)\n FILTERS active(g)\n\n OBJECTS s = Sku\n PROPERTIES(s) name\n FILTERS skuGroup(s) == g\n;\n\nCLASS Group1;\nname = DATA STRING[100] (Group1);\n\nCLASS Group2;\nname = DATA STRING[100] (Group2);\n\nCLASS Group3;\nname = DATA STRING[100] (Group3);\n\nin = DATA BOOLEAN (Group1, Group2);\nin = DATA BOOLEAN (Group2, Group3);\n\nFORM groups\n TREE groups g1 = Group1, g2 = Group2, g3 = Group3\n PROPERTIES READONLY name(g1), name(g2), name(g3)\n FILTERS in(g1, g2), in(g2, g3)\n;\n"})})]})}function a(e={}){const{wrapper:n}={...(0,t.R)(),...e.components};return n?(0,s.jsx)(n,{...e,children:(0,s.jsx)(h,{...e})}):h(e)}},28453:(e,n,i)=>{i.d(n,{R:()=>o,x:()=>c});var s=i(96540);const t={},r=s.createContext(t);function o(e){const n=s.useContext(r);return s.useMemo((function(){return"function"==typeof e?e(n):{...n,...e}}),[n,e])}function c(e){let n;return n=e.disableParentContext?"function"==typeof e.components?e.components(t):e.components||t:o(e.components),s.createElement(r.Provider,{value:n},e.children)}}}]); \ No newline at end of file diff --git a/assets/js/cbeb3d8b.1ae9018c.js b/assets/js/cbeb3d8b.1ae9018c.js deleted file mode 100644 index b3ab1941eaf..00000000000 --- a/assets/js/cbeb3d8b.1ae9018c.js +++ /dev/null @@ -1 +0,0 @@ -"use strict";(self.webpackChunkls_fusion_docs=self.webpackChunkls_fusion_docs||[]).push([[29634],{87937:(e,n,r)=>{r.r(n),r.d(n,{assets:()=>l,contentTitle:()=>o,default:()=>h,frontMatter:()=>s,metadata:()=>c,toc:()=>a});var t=r(74848),i=r(28453);const s={title:"Object blocks"},o=void 0,c={id:"Object_blocks",title:"Object blocks",description:"Object block of the FORM statement adds objects (including object groups) to the form structure, as well as object trees to the interactive form view.",source:"@site/versioned_docs/version-v5/Object_blocks.md",sourceDirName:".",slug:"/Object_blocks",permalink:"/Object_blocks",draft:!1,unlisted:!1,editUrl:"https://github.com/lsfusion/platform/edit/v5/docs/en/Object_blocks.md",tags:[],version:"v5",lastUpdatedAt:1708525070,formattedLastUpdatedAt:"Feb 21, 2024",frontMatter:{title:"Object blocks"},sidebar:"learn",previous:{title:"FORM statement",permalink:"/FORM_statement"},next:{title:"Properties and actions block",permalink:"/Properties_and_actions_block"}},l={},a=[{value:"Object block",id:"objects",level:2},{value:"Syntax",id:"syntax",level:3},{value:"Description",id:"description",level:3},{value:"Parameters",id:"parameters",level:3},{value:"Object group options",id:"object-group-options",level:3},{value:"Examples",id:"examples",level:3},{value:"Object tree block",id:"tree",level:2},{value:"Syntax",id:"syntax-1",level:3},{value:"Description",id:"description-1",level:3},{value:"Parameters",id:"parameters-1",level:3},{value:"Object tree options",id:"object-tree-options",level:3},{value:"Examples",id:"examples-1",level:3}];function d(e){const n={a:"a",code:"code",em:"em",h2:"h2",h3:"h3",li:"li",p:"p",pre:"pre",ul:"ul",...(0,i.R)(),...e.components};return(0,t.jsxs)(t.Fragment,{children:[(0,t.jsxs)(n.p,{children:["Object block of the ",(0,t.jsx)(n.a,{href:"/FORM_statement",children:"FORM statement"})," adds ",(0,t.jsx)(n.a,{href:"#objects",children:"objects"})," (including object groups) to the form structure, as well as ",(0,t.jsx)(n.a,{href:"#tree",children:"object trees"})," to the interactive form view."]}),"\n",(0,t.jsx)(n.h2,{id:"objects",children:"Object block"}),"\n",(0,t.jsx)(n.h3,{id:"syntax",children:"Syntax"}),"\n",(0,t.jsx)(n.pre,{children:(0,t.jsx)(n.code,{children:"OBJECTS groupDeclaration1 [groupOptions1], ...., groupDeclarationN [groupOptionsN]\n"})}),"\n",(0,t.jsxs)(n.p,{children:["Each ",(0,t.jsx)(n.code,{children:"groupDeclaration"})," is a declaration of an object group consisting of several objects:"]}),"\n",(0,t.jsx)(n.pre,{children:(0,t.jsx)(n.code,{children:"[groupName =] (objectDeclaration1, ..., objectDeclarationK)\n"})}),"\n",(0,t.jsx)(n.p,{children:"or an object group consisting of a single object:"}),"\n",(0,t.jsx)(n.pre,{children:(0,t.jsx)(n.code,{children:"objectDeclaration\n"})}),"\n",(0,t.jsxs)(n.p,{children:["Each ",(0,t.jsx)(n.code,{children:"objectDeclaration"})," declaring an object has the following syntax:"]}),"\n",(0,t.jsx)(n.pre,{children:(0,t.jsx)(n.code,{children:"[[name] [caption] =] classId [ON CHANGE actionId(param1, ..., paramM) | { actionOperator } ]\n"})}),"\n",(0,t.jsxs)(n.p,{children:["The declaration of each object group may be followed by a set of options called ",(0,t.jsx)(n.code,{children:"groupOptions"}),":"]}),"\n",(0,t.jsx)(n.pre,{children:(0,t.jsx)(n.code,{children:"viewType\nINIT | FIXED\nPAGESIZE pageSize \nAFTER groupName\nBEFORE groupName\ndefaultObjectsType\nIN propertyGroup\nEXTID extID\nSUBREPORT [subReportExpression]\n"})}),"\n",(0,t.jsx)(n.h3,{id:"description",children:"Description"}),"\n",(0,t.jsxs)(n.p,{children:["A single ",(0,t.jsx)(n.code,{children:"OBJECTS"})," block can contain several comma-delimited declarations of ",(0,t.jsx)(n.a,{href:"/Interactive_view#objects",children:"object groups"}),". An object group can contain just one object or several ones. In case of a single object, you can use simplified syntax without specifying the name of an object group and using parentheses. The declaration of an object group may be followed by the options of this group. They are listed one after another in an arbitrary order."]}),"\n",(0,t.jsx)(n.h3,{id:"parameters",children:"Parameters"}),"\n",(0,t.jsx)("a",{className:"lsdoc-anchor",id:"groupName"}),"\n",(0,t.jsxs)(n.ul,{children:["\n",(0,t.jsxs)(n.li,{children:["\n",(0,t.jsx)(n.p,{children:(0,t.jsx)(n.code,{children:"groupName"})}),"\n",(0,t.jsxs)(n.p,{children:["Name of an object group. ",(0,t.jsx)(n.a,{href:"/IDs#id",children:"Simple ID"}),". Must be specified if you need to access an object group consisting of several objects. If an object group consists of a single object, the name of the object group will be equal to the name of the object and doesn't need to be specified."]}),"\n"]}),"\n",(0,t.jsxs)(n.li,{children:["\n",(0,t.jsx)(n.p,{children:(0,t.jsx)(n.code,{children:"name"})}),"\n",(0,t.jsxs)(n.p,{children:["Object name. Simple ID. Must be specified if the object class is a ",(0,t.jsx)(n.a,{href:"/Built-in_classes",children:"built-in class"}),". If the object class is a ",(0,t.jsx)(n.a,{href:"/User_classes",children:"custom class"}),", the name doesn't need to be specified. In this case, it will be equal to the name of the class object."]}),"\n"]}),"\n",(0,t.jsxs)(n.li,{children:["\n",(0,t.jsx)(n.p,{children:(0,t.jsx)(n.code,{children:"classId"})}),"\n",(0,t.jsxs)(n.p,{children:[(0,t.jsx)(n.a,{href:"/IDs#classid",children:"Object class ID"}),"."]}),"\n"]}),"\n",(0,t.jsxs)(n.li,{children:["\n",(0,t.jsx)(n.p,{children:(0,t.jsx)(n.code,{children:"caption"})}),"\n",(0,t.jsxs)(n.p,{children:["Caption of the object being added. ",(0,t.jsx)(n.a,{href:"/Literals#strliteral",children:"String literal"}),". If the caption is not specified, the class caption will become the object caption."]}),"\n"]}),"\n",(0,t.jsxs)(n.li,{children:["\n",(0,t.jsx)(n.p,{children:(0,t.jsx)(n.code,{children:"ON CHANGE actionName(param1, ..., paramM) | { actionOperator }"})}),"\n",(0,t.jsxs)(n.p,{children:["Specifying an ",(0,t.jsx)(n.a,{href:"/Actions",children:"action"})," that will be called when the current object value is changed."]}),"\n",(0,t.jsxs)(n.ul,{children:["\n",(0,t.jsxs)(n.li,{children:["\n",(0,t.jsx)(n.p,{children:(0,t.jsx)(n.code,{children:"actionID"})}),"\n",(0,t.jsxs)(n.p,{children:[(0,t.jsx)(n.a,{href:"/IDs#propertyid",children:"Action ID"}),"."]}),"\n"]}),"\n",(0,t.jsxs)(n.li,{children:["\n",(0,t.jsx)(n.p,{children:(0,t.jsx)(n.code,{children:"param1, ..., paramM"})}),"\n",(0,t.jsxs)(n.p,{children:["A list of object names on the form that will be used as action parameters. The number of these objects must be equal to the number of action parameters. The name of the object is defined with a ",(0,t.jsx)(n.a,{href:"/IDs#id",children:"simple ID"}),"."]}),"\n"]}),"\n",(0,t.jsxs)(n.li,{children:["\n",(0,t.jsx)(n.p,{children:(0,t.jsx)(n.code,{children:"actionOperator"})}),"\n",(0,t.jsxs)(n.p,{children:[(0,t.jsx)(n.a,{href:"/Action_operators#contextdependent",children:"Context-dependent action operator"}),". You can use the names of already declared objects on the form as parameters."]}),"\n"]}),"\n"]}),"\n"]}),"\n"]}),"\n",(0,t.jsx)(n.h3,{id:"object-group-options",children:"Object group options"}),"\n",(0,t.jsxs)(n.ul,{children:["\n",(0,t.jsxs)(n.li,{children:["\n",(0,t.jsx)(n.p,{children:(0,t.jsx)(n.code,{children:"viewType"})}),"\n",(0,t.jsxs)(n.p,{children:[(0,t.jsx)(n.a,{href:"/Interactive_view#property",children:"Default view"})," for an object group. It is specified with one of the keywords:"]}),"\n",(0,t.jsxs)(n.ul,{children:["\n",(0,t.jsxs)(n.li,{children:[(0,t.jsx)(n.code,{children:"PANEL"})," - ",(0,t.jsx)(n.em,{children:"panel"})," view."]}),"\n",(0,t.jsxs)(n.li,{children:[(0,t.jsx)(n.code,{children:"TOOLBAR"})," - ",(0,t.jsx)(n.em,{children:"toolbar"})," display mode."]}),"\n",(0,t.jsxs)(n.li,{children:[(0,t.jsx)(n.code,{children:"GRID"})," - ",(0,t.jsx)(n.em,{children:"table column"})," view;. Used by default."]}),"\n"]}),"\n"]}),"\n",(0,t.jsxs)(n.li,{children:["\n",(0,t.jsx)(n.p,{children:(0,t.jsx)(n.code,{children:"PAGESIZE pageSize"})}),"\n",(0,t.jsxs)(n.p,{children:["Specification of the number of readable objects in the table. By default, the quantity is determined dynamically depending on the size of the component in the user interface and equals to ",(0,t.jsx)(n.code,{children:"3 * "}),". A value of ",(0,t.jsx)(n.code,{children:"0"})," means that all objects must be read."]}),"\n",(0,t.jsxs)(n.ul,{children:["\n",(0,t.jsxs)(n.li,{children:["\n",(0,t.jsx)(n.p,{children:(0,t.jsx)(n.code,{children:"pageSize"})}),"\n",(0,t.jsxs)(n.p,{children:["Number of objects read. ",(0,t.jsx)(n.a,{href:"/Literals#intliteral",children:"Integer literal"}),"."]}),"\n"]}),"\n"]}),"\n"]}),"\n",(0,t.jsxs)(n.li,{children:["\n",(0,t.jsxs)(n.p,{children:[(0,t.jsx)(n.code,{children:"AFTER"})," groupName"]}),"\n"]}),"\n",(0,t.jsxs)(n.li,{children:["\n",(0,t.jsxs)(n.p,{children:[(0,t.jsx)(n.code,{children:"BEFORE"})," groupName"]}),"\n",(0,t.jsxs)(n.p,{children:["Specifying that the object tree should be added to the form structure immediately before (keyword ",(0,t.jsx)(n.code,{children:"BEFORE"}),") or after (keyword ",(0,t.jsx)(n.code,{children:"AFTER"}),") of a specified object group. Typically used with the ",(0,t.jsx)(n.a,{href:"/Form_extension",children:"form extension"})," mechanism . If a group is added before the group in a tree, then this group should the first in this tree. Accordingly, if a group is added after the group in a tree, this group should be the last in this tree."]}),"\n",(0,t.jsxs)(n.ul,{children:["\n",(0,t.jsxs)(n.li,{children:["\n",(0,t.jsx)(n.p,{children:(0,t.jsx)(n.code,{children:"groupName"})}),"\n",(0,t.jsxs)(n.p,{children:[(0,t.jsx)(n.a,{href:"#groupName",children:"Object group name"}),"."]}),"\n"]}),"\n"]}),"\n"]}),"\n",(0,t.jsxs)(n.li,{children:["\n",(0,t.jsx)(n.p,{children:(0,t.jsx)(n.code,{children:"defaultObjectsType"})}),"\n",(0,t.jsx)(n.p,{children:"Specifying which object collection from the added object group will be current after the change of the active filters:"}),"\n",(0,t.jsxs)(n.ul,{children:["\n",(0,t.jsxs)(n.li,{children:[(0,t.jsx)(n.code,{children:"FIRST"}),"\u2013 specifies that the first object collection will be the ",(0,t.jsx)(n.a,{href:"/Interactive_view#defaultobject",children:"default objects"})]}),"\n",(0,t.jsxs)(n.li,{children:[(0,t.jsx)(n.code,{children:"LAST"})," - last one"]}),"\n",(0,t.jsxs)(n.li,{children:[(0,t.jsx)(n.code,{children:"PREV"})," - previous one"]}),"\n"]}),"\n",(0,t.jsx)(n.p,{children:"If this option is not specified, the platform determines the option to be used depending on the current filters."}),"\n"]}),"\n",(0,t.jsxs)(n.li,{children:["\n",(0,t.jsx)(n.p,{children:(0,t.jsx)(n.code,{children:"IN propertyGroup"})}),"\n",(0,t.jsxs)(n.p,{children:["Specifying the ",(0,t.jsx)(n.a,{href:"/Groups_of_properties_and_actions",children:"property/action group"})," that the object group belongs to. Used only in the ",(0,t.jsx)(n.a,{href:"/Structured_view#hierarchy",children:"hierarchical"})," view."]}),"\n",(0,t.jsxs)(n.ul,{children:["\n",(0,t.jsxs)(n.li,{children:["\n",(0,t.jsx)(n.p,{children:(0,t.jsx)(n.code,{children:"propertyGroup"})}),"\n",(0,t.jsxs)(n.p,{children:["The property group name. ",(0,t.jsx)(n.a,{href:"/IDs#cid",children:"Composite ID"}),"."]}),"\n"]}),"\n"]}),"\n"]}),"\n",(0,t.jsxs)(n.li,{children:["\n",(0,t.jsx)(n.p,{children:(0,t.jsx)(n.code,{children:"EXTID extID"})}),"\n",(0,t.jsxs)(n.p,{children:["Specifying the name to be used for ",(0,t.jsx)(n.a,{href:"/Structured_view#extid",children:"export/import"})," operations performed by this object group. Used only in the ",(0,t.jsx)(n.a,{href:"/Structured_view",children:"structured"})," view."]}),"\n",(0,t.jsxs)(n.ul,{children:["\n",(0,t.jsxs)(n.li,{children:["\n",(0,t.jsx)(n.p,{children:(0,t.jsx)(n.code,{children:"extId"})}),"\n",(0,t.jsx)(n.p,{children:"String literal."}),"\n"]}),"\n"]}),"\n"]}),"\n",(0,t.jsxs)(n.li,{children:["\n",(0,t.jsx)(n.p,{children:(0,t.jsx)(n.code,{children:"SUBREPORT [subReportExpression]"})}),"\n",(0,t.jsxs)(n.p,{children:["Specifies that you need to generate a separate ",(0,t.jsx)(n.a,{href:"/Print_view",children:"report"})," file for this object group while ",(0,t.jsx)(n.a,{href:"/Print_view#buildhierarchy",children:"building the report hierarchy"}),"."]}),"\n",(0,t.jsxs)(n.ul,{children:["\n",(0,t.jsxs)(n.li,{children:["\n",(0,t.jsx)(n.p,{children:(0,t.jsx)(n.code,{children:"subReportExpression"})}),"\n",(0,t.jsxs)(n.p,{children:["The ",(0,t.jsx)(n.a,{href:"/Expression",children:"expression"})," whose value will be used as the name of the ",(0,t.jsx)(n.a,{href:"/Print_view",children:"report"})," file for the created object group. You can use the names of already declared objects on the form as parameters. It is assumed that the values of these objects will be ",(0,t.jsx)(n.a,{href:"/Open_form#params",children:"passed"})," when the form is opened ",(0,t.jsx)(n.a,{href:"/In_a_print_view_PRINT",children:"in the print view"})," (if it's not done, they will be considered equal ",(0,t.jsx)(n.code,{children:"NULL"}),")."]}),"\n"]}),"\n"]}),"\n"]}),"\n"]}),"\n",(0,t.jsx)(n.h3,{id:"examples",children:"Examples"}),"\n",(0,t.jsx)(n.pre,{children:(0,t.jsx)(n.code,{className:"language-lsf",children:"CLASS Shipment;\n// declaring the delivery form\nFORM shipments 'Deliveries'\n OBJECTS s = Shipment // adding one object of the shipment class\n PAGESIZE 100 // indicating that the table should always contain 100 rows\n\n // ... adding properties and filters to the form\n;\n\n// Declaring a form that will display the turnover of the product for a specified interval\nname = DATA STRING[100] (Item);\nrevenue = DATA NUMERIC[16,2] (Item, DATE, DATE);\n\nFORM revenues 'Product turnovers'\n // declaring a group of objects, consisting of 2 objects of the Date class with the appropriate captions,\n // which will always be displayed as a panel\n OBJECTS interval = (dateFrom 'Date (from)' = DATE, dateTo 'Date (to)' = DATE) PANEL, \n i = Item // adding a list of products\n // adding to the form the properties of the date objects values, with which the user can select dates\n PROPERTIES VALUE(dateFrom), VALUE(dateTo) \n // adding the product name and the property with the product turnover for the date interval\n PROPERTIES name(i), revenue(i, dateFrom, dateTo) \n;\n"})}),"\n",(0,t.jsx)(n.pre,{children:(0,t.jsx)(n.code,{className:"language-lsf",children:"// creating a form for printing a price tag for a product\nlabelFile = DATA STRING[100] (Item);\nprintLabelFile (Item i)= OVERRIDE labelFile(i), 'MyModule_printLabel_i.jrxml' IF i IS Item;\nFORM printLabel 'Price tag printing'\n OBJECTS i = Item // adding the product for which the price tag will be printed\n // marking that a file whose name is stored in the printLabelFile property should be used as a template \n // (it is assumed that the i value will be passed in the OBJECTS block)\n REPORT printLabelFile(i) \n // for example, the user can input myLabel1.jrxml there, then the system will use a file named myLabel1.jrxml\n // ... other properties required for printing\n;\n"})}),"\n",(0,t.jsx)(n.h2,{id:"tree",children:"Object tree block"}),"\n",(0,t.jsx)(n.h3,{id:"syntax-1",children:"Syntax"}),"\n",(0,t.jsx)(n.pre,{children:(0,t.jsx)(n.code,{children:"TREE [name] groupDeclaration1 [parentBlock1], ...., groupDeclarationN [parentBlockN] [treeOptions]\n"})}),"\n",(0,t.jsxs)(n.p,{children:["Each ",(0,t.jsx)(n.code,{children:"groupDeclaration"})," is a declaration of an object group that is similar to the declaration in an object block described above. Each ",(0,t.jsx)(n.code,{children:"parentBlock"})," can be described in one of the following ways:"]}),"\n",(0,t.jsx)(n.pre,{children:(0,t.jsx)(n.code,{children:"PARENT propertyId\n(PARENT propertyId1, ..., propertyIdK)\n"})}),"\n",(0,t.jsx)(n.p,{children:"The first option is used if an object group for which the block is specified consists of a single object, the second one is used for groups of two and more objects."}),"\n",(0,t.jsxs)(n.p,{children:["The ",(0,t.jsx)(n.code,{children:"treeOptions"})," options set may be specified after the declaration of each object tree."]}),"\n",(0,t.jsx)(n.pre,{children:(0,t.jsx)(n.code,{children:"AFTER groupName\nBEFORE groupName\n"})}),"\n",(0,t.jsx)(n.h3,{id:"description-1",children:"Description"}),"\n",(0,t.jsxs)(n.p,{children:[(0,t.jsx)(n.em,{children:"Object tree block"})," lets you create an ",(0,t.jsx)(n.a,{href:"/Interactive_view#tree",children:"object tree"}),". The first specified object group will form a list of top-level objects, each of which will have a child list of objects of the second specified object group and so on."]}),"\n",(0,t.jsxs)(n.p,{children:["Use the ",(0,t.jsx)(n.code,{children:"PARENT"})," block to create ",(0,t.jsx)(n.a,{href:"/Interactive_view#treegroup",children:"hierarchical object groups"}),". To do that, specify a property that will define the parent element for an object (or several objects if an object group contains several ones)."]}),"\n",(0,t.jsx)(n.h3,{id:"parameters-1",children:"Parameters"}),"\n",(0,t.jsx)("a",{className:"lsdoc-anchor",id:"treeName"}),"\n",(0,t.jsxs)(n.ul,{children:["\n",(0,t.jsxs)(n.li,{children:["\n",(0,t.jsx)(n.p,{children:(0,t.jsx)(n.code,{children:"name"})}),"\n",(0,t.jsxs)(n.p,{children:["The name of the object tree being created. ",(0,t.jsx)(n.a,{href:"/IDs#id",children:"Simple ID"}),"."]}),"\n"]}),"\n",(0,t.jsxs)(n.li,{children:["\n",(0,t.jsx)(n.p,{children:(0,t.jsx)(n.code,{children:"propertyId"})}),"\n",(0,t.jsxs)(n.p,{children:[(0,t.jsx)(n.a,{href:"/IDs#propertyid",children:"ID of the property"})," defining the hierarchy for an object group consisting of a single object. The specified property must have a single parameter and return the parent object of the passed object as its value (or ",(0,t.jsx)(n.code,{children:"NULL"})," if the passed object is the top one)."]}),"\n"]}),"\n",(0,t.jsxs)(n.li,{children:["\n",(0,t.jsx)(n.p,{children:(0,t.jsx)(n.code,{children:"propertyId1, ..., propertyIdK"})}),"\n",(0,t.jsxs)(n.p,{children:["A list of property ID's defining the hierarchy for an object group consisting of several objects. All specified properties must have the same number of parameters as the number of objects in the object group. Each of these properties must return one of the parent objects of the passed objects as a value (or ",(0,t.jsx)(n.code,{children:"NULL"})," if the passed object collection is the top one). The first property should return the first parent object, the second property - the second object, etc. on."]}),"\n"]}),"\n"]}),"\n",(0,t.jsx)(n.h3,{id:"object-tree-options",children:"Object tree options"}),"\n",(0,t.jsxs)(n.ul,{children:["\n",(0,t.jsxs)(n.li,{children:["\n",(0,t.jsx)(n.p,{children:(0,t.jsx)(n.code,{children:"AFTER groupName"})}),"\n"]}),"\n",(0,t.jsxs)(n.li,{children:["\n",(0,t.jsx)(n.p,{children:(0,t.jsx)(n.code,{children:"BEFORE groupName"})}),"\n",(0,t.jsxs)(n.p,{children:["Specifying that the object tree should be added to the form structure immediately before (keyword ",(0,t.jsx)(n.code,{children:"BEFORE"}),") or after (keyword ",(0,t.jsx)(n.code,{children:"AFTER"}),") of a specified object group. Typically used with the ",(0,t.jsx)(n.a,{href:"/Form_extension",children:"form extension"})," mechanism . If a group is added before the group in a tree, then this group should the first in this tree. Accordingly, if a group is added after the group in a tree, this group should be the last in this tree."]}),"\n"]}),"\n",(0,t.jsxs)(n.li,{children:["\n",(0,t.jsx)(n.p,{children:(0,t.jsx)(n.code,{children:"groupName"})}),"\n",(0,t.jsxs)(n.p,{children:[(0,t.jsx)(n.a,{href:"#groupName",children:"Object group name"}),"."]}),"\n"]}),"\n"]}),"\n",(0,t.jsx)(n.h3,{id:"examples-1",children:"Examples"}),"\n",(0,t.jsx)(n.pre,{children:(0,t.jsx)(n.code,{className:"language-lsf",children:"CLASS SkuGroup;\nname = DATA ISTRING[100] (SkuGroup);\nactive = DATA BOOLEAN (SkuGroup);\nparent = DATA SkuGroup (SkuGroup) AUTOSET;\n\nCLASS Sku;\nname = DATA ISTRING[100] (Sku);\nskuGroup = DATA SkuGroup (Sku);\n\n\nFORM skus 'Sku'\n TREE groupTree g=SkuGroup PARENT parent(g)\n PROPERTIES READONLY name(g)\n FILTERS active(g)\n\n OBJECTS s = Sku\n PROPERTIES(s) name\n FILTERS skuGroup(s) == g\n;\n\nCLASS Group1;\nname = DATA STRING[100] (Group1);\n\nCLASS Group2;\nname = DATA STRING[100] (Group2);\n\nCLASS Group3;\nname = DATA STRING[100] (Group3);\n\nin = DATA BOOLEAN (Group1, Group2);\nin = DATA BOOLEAN (Group2, Group3);\n\nFORM groups\n TREE groups g1 = Group1, g2 = Group2, g3 = Group3\n PROPERTIES READONLY name(g1), name(g2), name(g3)\n FILTERS in(g1, g2), in(g2, g3)\n;\n"})})]})}function h(e={}){const{wrapper:n}={...(0,i.R)(),...e.components};return n?(0,t.jsx)(n,{...e,children:(0,t.jsx)(d,{...e})}):d(e)}},28453:(e,n,r)=>{r.d(n,{R:()=>o,x:()=>c});var t=r(96540);const i={},s=t.createContext(i);function o(e){const n=t.useContext(s);return t.useMemo((function(){return"function"==typeof e?e(n):{...n,...e}}),[n,e])}function c(e){let n;return n=e.disableParentContext?"function"==typeof e.components?e.components(i):e.components||i:o(e.components),t.createElement(s.Provider,{value:n},e.children)}}}]); \ No newline at end of file diff --git a/assets/js/cbeb3d8b.e864e915.js b/assets/js/cbeb3d8b.e864e915.js new file mode 100644 index 00000000000..7e59e69776a --- /dev/null +++ b/assets/js/cbeb3d8b.e864e915.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkls_fusion_docs=self.webpackChunkls_fusion_docs||[]).push([[29634],{87937:(e,n,i)=>{i.r(n),i.d(n,{assets:()=>l,contentTitle:()=>o,default:()=>a,frontMatter:()=>t,metadata:()=>c,toc:()=>d});var s=i(74848),r=i(28453);const t={title:"Object blocks"},o=void 0,c={id:"Object_blocks",title:"Object blocks",description:"Object blocks of the FORM statement - adding object groups to the form structure, and object trees to the interactive form view.",source:"@site/versioned_docs/version-v5/Object_blocks.md",sourceDirName:".",slug:"/Object_blocks",permalink:"/Object_blocks",draft:!1,unlisted:!1,editUrl:"https://github.com/lsfusion/platform/edit/v5/docs/en/Object_blocks.md",tags:[],version:"v5",lastUpdatedAt:1715591858,formattedLastUpdatedAt:"May 13, 2024",frontMatter:{title:"Object blocks"},sidebar:"learn",previous:{title:"FORM statement",permalink:"/FORM_statement"},next:{title:"Properties and actions block",permalink:"/Properties_and_actions_block"}},l={},d=[{value:"Object block",id:"objects",level:2},{value:"Syntax",id:"syntax",level:3},{value:"Description",id:"description",level:3},{value:"Parameters",id:"parameters",level:3},{value:"Object options",id:"object-options",level:3},{value:"Object group options",id:"object-group-options",level:3},{value:"Examples",id:"examples",level:3},{value:"Object tree block",id:"tree",level:2},{value:"Syntax",id:"syntax-1",level:3},{value:"Description",id:"description-1",level:3},{value:"Parameters",id:"parameters-1",level:3},{value:"Examples",id:"examples-1",level:3}];function h(e){const n={a:"a",code:"code",em:"em",h2:"h2",h3:"h3",li:"li",p:"p",pre:"pre",ul:"ul",...(0,r.R)(),...e.components};return(0,s.jsxs)(s.Fragment,{children:[(0,s.jsxs)(n.p,{children:["Object blocks of the ",(0,s.jsxs)(n.a,{href:"/FORM_statement",children:[(0,s.jsx)(n.code,{children:"FORM"})," statement"]})," - adding ",(0,s.jsx)(n.a,{href:"/Form_structure#objects",children:"object groups"})," to the form structure, and ",(0,s.jsx)(n.a,{href:"/Interactive_view#tree",children:"object trees"})," to the interactive form view."]}),"\n",(0,s.jsx)(n.h2,{id:"objects",children:"Object block"}),"\n",(0,s.jsx)(n.h3,{id:"syntax",children:"Syntax"}),"\n",(0,s.jsx)(n.pre,{children:(0,s.jsx)(n.code,{children:"OBJECTS groupDeclaration1 [groupOptions1], ...., groupDeclarationN [groupOptionsN]\n"})}),"\n",(0,s.jsxs)(n.p,{children:["Each ",(0,s.jsx)(n.code,{children:"groupDeclaration"})," is a declaration of an object group consisting of several objects:"]}),"\n",(0,s.jsx)(n.pre,{children:(0,s.jsx)(n.code,{children:"[groupName =] (objectDeclaration1, ..., objectDeclarationK)\n"})}),"\n",(0,s.jsx)(n.p,{children:"or an object group consisting of a single object:"}),"\n",(0,s.jsx)(n.pre,{children:(0,s.jsx)(n.code,{children:"objectDeclaration\n"})}),"\n",(0,s.jsxs)(n.p,{children:["Each ",(0,s.jsx)(n.code,{children:"objectDeclaration"})," declaring an object has the following syntax:"]}),"\n",(0,s.jsx)(n.pre,{children:(0,s.jsx)(n.code,{children:"[[name] [caption] =] classId objectOptions\n"})}),"\n",(0,s.jsxs)(n.p,{children:["Object options ",(0,s.jsx)(n.code,{children:"objectOptions"})," can be listed one after another in any order. The following set of options is supported:"]}),"\n",(0,s.jsx)(n.pre,{children:(0,s.jsx)(n.code,{children:"ON CHANGE actionId(param1, ..., paramM)\nON CHANGE actionOperator \nEXTID objectExtID\n"})}),"\n",(0,s.jsxs)(n.p,{children:["After the declaration of each object group, the group options ",(0,s.jsx)(n.code,{children:"groupOptions"})," can be listed in any order:"]}),"\n",(0,s.jsx)(n.pre,{children:(0,s.jsx)(n.code,{children:"viewType\ninsertPosition\ndefaultObjectsType\nPAGESIZE pageSize \nIN propertyGroup\nEXTID extID\nEXTKEY\nSUBREPORT [subReportExpression]\nBACKGROUND backgroundExpr\nFOREGROUND foregroundExpr\n"})}),"\n",(0,s.jsx)(n.h3,{id:"description",children:"Description"}),"\n",(0,s.jsxs)(n.p,{children:["A single ",(0,s.jsx)(n.code,{children:"OBJECTS"})," block can contain several comma-delimited declarations of ",(0,s.jsx)(n.a,{href:"/Interactive_view#objects",children:"object groups"}),". An object group can contain just one object or several ones. In case of a single object, you can use simplified syntax without specifying the name of an object group and using parentheses."]}),"\n",(0,s.jsx)(n.h3,{id:"parameters",children:"Parameters"}),"\n",(0,s.jsx)("a",{className:"lsdoc-anchor",id:"groupName"}),"\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsxs)(n.li,{children:["\n",(0,s.jsx)(n.p,{children:(0,s.jsx)(n.code,{children:"groupName"})}),"\n",(0,s.jsxs)(n.p,{children:["Name of an object group. ",(0,s.jsx)(n.a,{href:"/IDs#id",children:"Simple ID"}),". Must be specified if you need to access an object group consisting of several objects. If an object group consists of a single object, the name of the object group will be equal to the name of the object and doesn't need to be specified."]}),"\n"]}),"\n",(0,s.jsxs)(n.li,{children:["\n",(0,s.jsx)(n.p,{children:(0,s.jsx)(n.code,{children:"name"})}),"\n",(0,s.jsxs)(n.p,{children:["Object name. Simple ID. Must be specified if the object class is a ",(0,s.jsx)(n.a,{href:"/Built-in_classes",children:"built-in class"}),". If the object class is a ",(0,s.jsx)(n.a,{href:"/User_classes",children:"custom class"}),", the name doesn't need to be specified. In this case, it will be equal to the name of the class object."]}),"\n"]}),"\n",(0,s.jsxs)(n.li,{children:["\n",(0,s.jsx)(n.p,{children:(0,s.jsx)(n.code,{children:"classId"})}),"\n",(0,s.jsxs)(n.p,{children:[(0,s.jsx)(n.a,{href:"/IDs#classid",children:"Object class ID"}),"."]}),"\n"]}),"\n",(0,s.jsxs)(n.li,{children:["\n",(0,s.jsx)(n.p,{children:(0,s.jsx)(n.code,{children:"caption"})}),"\n",(0,s.jsxs)(n.p,{children:["Caption of the object being added. ",(0,s.jsx)(n.a,{href:"/Literals#strliteral",children:"String literal"}),". If the caption is not specified, the class caption will become the object caption."]}),"\n"]}),"\n"]}),"\n",(0,s.jsx)(n.h3,{id:"object-options",children:"Object options"}),"\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsxs)(n.li,{children:["\n",(0,s.jsx)(n.p,{children:(0,s.jsx)(n.code,{children:"ON CHANGE actionName(param1, ..., paramM)"})}),"\n",(0,s.jsxs)(n.p,{children:["Specifying an ",(0,s.jsx)(n.a,{href:"/Actions",children:"action"})," that will be called when the current value of the object changes."]}),"\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsxs)(n.li,{children:["\n",(0,s.jsx)(n.p,{children:(0,s.jsx)(n.code,{children:"actionID"})}),"\n",(0,s.jsxs)(n.p,{children:[(0,s.jsx)(n.a,{href:"/IDs#propertyid",children:"Action ID"}),"."]}),"\n"]}),"\n",(0,s.jsxs)(n.li,{children:["\n",(0,s.jsx)(n.p,{children:(0,s.jsx)(n.code,{children:"param1, ..., paramM"})}),"\n",(0,s.jsx)(n.p,{children:"A list of object names on the form that will be used as action parameters. The number of these objects must be equal to the number of action parameters. The name of the object is defined with a simple ID."}),"\n"]}),"\n"]}),"\n"]}),"\n",(0,s.jsxs)(n.li,{children:["\n",(0,s.jsx)(n.p,{children:(0,s.jsx)(n.code,{children:"ON CHANGE actionOperator"})}),"\n",(0,s.jsxs)(n.p,{children:["Creating an ",(0,s.jsx)(n.a,{href:"/Actions",children:"action"})," that will be called when the current value of the object changes."]}),"\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsxs)(n.li,{children:["\n",(0,s.jsx)(n.p,{children:(0,s.jsx)(n.code,{children:"actionOperator"})}),"\n",(0,s.jsxs)(n.p,{children:[(0,s.jsx)(n.a,{href:"/Action_operators#contextdependent",children:"Context-dependent action operator"}),". You can use the names of already declared objects on the form as parameters."]}),"\n"]}),"\n"]}),"\n"]}),"\n",(0,s.jsxs)(n.li,{children:["\n",(0,s.jsx)(n.p,{children:(0,s.jsx)(n.code,{children:"EXTID objectExtID"})}),"\n",(0,s.jsxs)(n.p,{children:["Specifying the name that will be used for ",(0,s.jsx)(n.a,{href:"/Structured_view#extid",children:"export/import"})," of this form object. Used only in the ",(0,s.jsx)(n.a,{href:"/Structured_view",children:"structured"})," view."]}),"\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsxs)(n.li,{children:["\n",(0,s.jsx)(n.p,{children:(0,s.jsx)(n.code,{children:"objectExtID"})}),"\n",(0,s.jsx)(n.p,{children:"String literal."}),"\n"]}),"\n"]}),"\n"]}),"\n"]}),"\n",(0,s.jsx)(n.h3,{id:"object-group-options",children:"Object group options"}),"\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsxs)(n.li,{children:["\n",(0,s.jsx)(n.p,{children:(0,s.jsx)(n.code,{children:"viewType"})}),"\n",(0,s.jsxs)(n.p,{children:["The ",(0,s.jsx)(n.a,{href:"/Interactive_view#property",children:"default view"})," for properties of this object group. Specified by one of the following ways:"]}),"\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsxs)(n.li,{children:["\n",(0,s.jsx)(n.p,{children:(0,s.jsx)(n.code,{children:"PANEL"})}),"\n",(0,s.jsxs)(n.p,{children:["Keyword that, when specified, selects the ",(0,s.jsx)(n.em,{children:"panel"})," view type"]}),"\n"]}),"\n",(0,s.jsxs)(n.li,{children:["\n",(0,s.jsx)(n.p,{children:(0,s.jsx)(n.code,{children:"TOOLBAR"})}),"\n",(0,s.jsxs)(n.p,{children:["Keyword that, when specified, selects the ",(0,s.jsx)(n.em,{children:"toolbar"})," view type"]}),"\n"]}),"\n",(0,s.jsxs)(n.li,{children:["\n",(0,s.jsx)(n.p,{children:(0,s.jsx)(n.code,{children:"GRID"})}),"\n",(0,s.jsxs)(n.p,{children:["Keyword that, when specified, selects the ",(0,s.jsx)(n.em,{children:"table column"})," view type. Used by default."]}),"\n"]}),"\n",(0,s.jsxs)(n.li,{children:["\n",(0,s.jsx)(n.p,{children:(0,s.jsx)(n.code,{children:"PIVOT [pivotOptions]"})}),"\n",(0,s.jsxs)(n.p,{children:["When the ",(0,s.jsx)(n.code,{children:"PIVOT"})," keyword is specified, the ",(0,s.jsx)(n.em,{children:"pivot table"})," view type is selected. Options for this view type ",(0,s.jsx)(n.code,{children:"pivotOptions"})," can be specified one after another in any order."]}),"\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsxs)(n.li,{children:["\n",(0,s.jsx)(n.p,{children:(0,s.jsx)(n.code,{children:"pivotType"})}),"\n",(0,s.jsxs)(n.p,{children:[(0,s.jsx)(n.a,{href:"/Literals#strliteral",children:"String literal"})," that defines the initial display mode of the pivot table. Can be equal to one of the following values:"]}),"\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsxs)(n.li,{children:[(0,s.jsx)(n.code,{children:"'Table'"})," (default value)"]}),"\n",(0,s.jsx)(n.li,{children:(0,s.jsx)(n.code,{children:"'Table Bar Chart'"})}),"\n",(0,s.jsx)(n.li,{children:(0,s.jsx)(n.code,{children:"'Table Heatmap'"})}),"\n",(0,s.jsx)(n.li,{children:(0,s.jsx)(n.code,{children:"'Table Row Heatmap'"})}),"\n",(0,s.jsx)(n.li,{children:(0,s.jsx)(n.code,{children:"'Table Col Heatmap'"})}),"\n",(0,s.jsx)(n.li,{children:(0,s.jsx)(n.code,{children:"'Bar Chart'"})}),"\n",(0,s.jsx)(n.li,{children:(0,s.jsx)(n.code,{children:"'Stacked Bar Chart'"})}),"\n",(0,s.jsx)(n.li,{children:(0,s.jsx)(n.code,{children:"'Line Chart'"})}),"\n",(0,s.jsx)(n.li,{children:(0,s.jsx)(n.code,{children:"'Area Chart'"})}),"\n",(0,s.jsx)(n.li,{children:(0,s.jsx)(n.code,{children:"'Scatter Chart'"})}),"\n",(0,s.jsx)(n.li,{children:(0,s.jsx)(n.code,{children:"'Multiple Pie Chart'"})}),"\n",(0,s.jsx)(n.li,{children:(0,s.jsx)(n.code,{children:"'Horizontal Bar Chart'"})}),"\n",(0,s.jsx)(n.li,{children:(0,s.jsx)(n.code,{children:"'Horizontal Stacked Bar Chart'"})}),"\n"]}),"\n"]}),"\n",(0,s.jsxs)(n.li,{children:["\n",(0,s.jsx)(n.p,{children:(0,s.jsx)(n.code,{children:"calcType"})}),"\n",(0,s.jsx)(n.p,{children:"Specifying the initial aggregation function. It can be set using one of the keywords:"}),"\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsxs)(n.li,{children:[(0,s.jsx)(n.code,{children:"SUM"})," - sum of values (default value)"]}),"\n",(0,s.jsxs)(n.li,{children:[(0,s.jsx)(n.code,{children:"MAX"})," - maximum of values"]}),"\n",(0,s.jsxs)(n.li,{children:[(0,s.jsx)(n.code,{children:"MIN"})," - minimum of values"]}),"\n"]}),"\n"]}),"\n",(0,s.jsxs)(n.li,{children:["\n",(0,s.jsx)(n.p,{children:(0,s.jsx)(n.code,{children:"settingsType"})}),"\n",(0,s.jsx)(n.p,{children:"Specifying whether the pivot table settings are shown to the user. It can be specified by one of the keywords:"}),"\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsxs)(n.li,{children:[(0,s.jsx)(n.code,{children:"SETTINGS"})," - settings are shown (default value)"]}),"\n",(0,s.jsxs)(n.li,{children:[(0,s.jsx)(n.code,{children:"NOSETTINGS"})," - settings are not shown"]}),"\n"]}),"\n"]}),"\n"]}),"\n"]}),"\n",(0,s.jsxs)(n.li,{children:["\n",(0,s.jsx)(n.p,{children:(0,s.jsx)(n.code,{children:"MAP [tileProvider]"})}),"\n",(0,s.jsxs)(n.p,{children:["When the ",(0,s.jsx)(n.code,{children:"MAP"})," keyword is specified, the ",(0,s.jsx)(n.em,{children:"map"})," view type is selected. By default, this view uses OpenStreetMap maps. It is possible to use Google or Yandex maps. To do this you need to include the ",(0,s.jsx)(n.code,{children:"Geo.lsf"})," module in the project, then obtain an API key for Google or Yandex and specify it in ",(0,s.jsx)(n.code,{children:"Administration > Application > Settings > Navigation"}),"."]}),"\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsxs)(n.li,{children:["\n",(0,s.jsx)(n.p,{children:(0,s.jsx)(n.code,{children:"tileProvider"})}),"\n",(0,s.jsxs)(n.p,{children:["String literal that specifies the map source. Possible options: ",(0,s.jsx)(n.code,{children:"'google'"})," and ",(0,s.jsx)(n.code,{children:"'yandex'"}),". If not specified, OpenStreetMap will be used as the map source."]}),"\n"]}),"\n"]}),"\n"]}),"\n",(0,s.jsxs)(n.li,{children:["\n",(0,s.jsx)(n.p,{children:(0,s.jsx)(n.code,{children:"CALENDAR"})}),"\n",(0,s.jsxs)(n.p,{children:["Keyword that, when specified, selects the ",(0,s.jsx)(n.em,{children:"calendar"})," view type."]}),"\n"]}),"\n",(0,s.jsxs)(n.li,{children:["\n",(0,s.jsx)(n.p,{children:(0,s.jsx)(n.code,{children:"CUSTOM renderFunction [HEADER expr]"})}),"\n",(0,s.jsxs)(n.p,{children:["When the ",(0,s.jsx)(n.code,{children:"CUSTOM"})," keyword is specified, the custom view type is selected."]}),"\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsxs)(n.li,{children:["\n",(0,s.jsx)(n.p,{children:(0,s.jsx)(n.code,{children:"renderFunction"})}),"\n",(0,s.jsx)(n.p,{children:"A string literal specifying the name of the JavaScript function that is responsible for displaying the data. This function must be located in a .js file included in the project resources and loaded for use on the client. It should return a JavaScript object that contains three functions:"}),"\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsx)(n.li,{children:(0,s.jsx)(n.code,{children:"render(element, controller)"})}),"\n",(0,s.jsx)(n.li,{children:(0,s.jsx)(n.code,{children:"update(element, controller, list, options)"})}),"\n",(0,s.jsxs)(n.li,{children:[(0,s.jsx)(n.code,{children:"clear(element)"})," (optional)"]}),"\n"]}),"\n",(0,s.jsxs)(n.p,{children:["A more detailed description of the mechanism can be found in the article ",(0,s.jsx)(n.a,{href:"/How-to_Custom_components_objects",children:"How-to: Custom Components (Objects)"}),"."]}),"\n"]}),"\n",(0,s.jsxs)(n.li,{children:["\n",(0,s.jsx)(n.p,{children:(0,s.jsx)(n.code,{children:"expr"})}),"\n",(0,s.jsx)(n.p,{children:"Expression whose value must be an object of the JSON class. It is used to pass data that does not depend on the values of the described object group."}),"\n"]}),"\n"]}),"\n"]}),"\n"]}),"\n"]}),"\n"]}),"\n",(0,s.jsx)("a",{className:"lsdoc-anchor",id:"insertPosition"}),"\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsxs)(n.li,{children:["\n",(0,s.jsx)(n.p,{children:(0,s.jsx)(n.code,{children:"insertPosition"})}),"\n",(0,s.jsxs)(n.p,{children:["Specifying the insertion position of the object group within the list of object groups. Most often used together with the ",(0,s.jsx)(n.a,{href:"/Form_extension",children:"form extension mechanism"}),". It can be specified in one of the following ways:"]}),"\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsxs)(n.li,{children:["\n",(0,s.jsx)(n.p,{children:(0,s.jsx)(n.code,{children:"AFTER groupName"})}),"\n"]}),"\n",(0,s.jsxs)(n.li,{children:["\n",(0,s.jsx)(n.p,{children:(0,s.jsx)(n.code,{children:"BEFORE groupName"})}),"\n",(0,s.jsxs)(n.p,{children:["The object group will be added to the form structure directly before (keyword ",(0,s.jsx)(n.code,{children:"BEFORE"}),") or after (keyword ",(0,s.jsx)(n.code,{children:"AFTER"}),") the specified object group. If the group before (after) which it is to be added is in the tree, it must be the first (last) in that tree."]}),"\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsxs)(n.li,{children:["\n",(0,s.jsx)(n.p,{children:(0,s.jsx)(n.code,{children:"groupName"})}),"\n",(0,s.jsx)(n.p,{children:"Object group name. Simple ID."}),"\n"]}),"\n"]}),"\n"]}),"\n",(0,s.jsxs)(n.li,{children:["\n",(0,s.jsx)(n.p,{children:(0,s.jsx)(n.code,{children:"FIRST"})}),"\n",(0,s.jsx)(n.p,{children:"Keyword indicating that the object group will be added to the beginning of the list."}),"\n"]}),"\n",(0,s.jsxs)(n.li,{children:["\n",(0,s.jsx)(n.p,{children:(0,s.jsx)(n.code,{children:"LAST"})}),"\n",(0,s.jsx)(n.p,{children:"Keyword indicating that the object group will be added to the end of the list."}),"\n"]}),"\n",(0,s.jsxs)(n.li,{children:["\n",(0,s.jsx)(n.p,{children:(0,s.jsx)(n.code,{children:"DEFAULT"})}),"\n",(0,s.jsx)(n.p,{children:"Keyword indicating that the object group is added in the order of declaration. This is the default value."}),"\n"]}),"\n"]}),"\n"]}),"\n",(0,s.jsxs)(n.li,{children:["\n",(0,s.jsx)(n.p,{children:(0,s.jsx)(n.code,{children:"defaultObjectsType"})}),"\n",(0,s.jsx)(n.p,{children:"Specifying which object collection from the added object group will be current after the active filters are changed. Specified by one of the keywords:"}),"\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsxs)(n.li,{children:[(0,s.jsx)(n.code,{children:"FIRST"}),"\u2013 specifies that the first object collection (according to the current order) will be the ",(0,s.jsx)(n.a,{href:"/Interactive_view#defaultobject",children:"default objects"})]}),"\n",(0,s.jsxs)(n.li,{children:[(0,s.jsx)(n.code,{children:"LAST"})," - last object collection"]}),"\n",(0,s.jsxs)(n.li,{children:[(0,s.jsx)(n.code,{children:"PREV"})," - the previous (or closest possible) object collection"]}),"\n",(0,s.jsxs)(n.li,{children:[(0,s.jsx)(n.code,{children:"NULL"})," - none (reset)"]}),"\n"]}),"\n",(0,s.jsx)(n.p,{children:"If this option is not specified, the platform determines the option to be used depending on the current filters."}),"\n"]}),"\n",(0,s.jsxs)(n.li,{children:["\n",(0,s.jsx)(n.p,{children:(0,s.jsx)(n.code,{children:"PAGESIZE pageSize"})}),"\n",(0,s.jsxs)(n.p,{children:["Specification of the number of readable objects in the table. By default, the quantity is determined dynamically depending on the size of the component in the user interface and equals to ",(0,s.jsx)(n.code,{children:"3 * "}),". A value of ",(0,s.jsx)(n.code,{children:"0"})," means that all objects must be read."]}),"\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsxs)(n.li,{children:["\n",(0,s.jsx)(n.p,{children:(0,s.jsx)(n.code,{children:"pageSize"})}),"\n",(0,s.jsxs)(n.p,{children:["Number of objects read. ",(0,s.jsx)(n.a,{href:"/Literals#intliteral",children:"Integer literal"}),"."]}),"\n"]}),"\n"]}),"\n"]}),"\n",(0,s.jsxs)(n.li,{children:["\n",(0,s.jsx)(n.p,{children:(0,s.jsx)(n.code,{children:"IN propertyGroup"})}),"\n",(0,s.jsxs)(n.p,{children:["Specifying the ",(0,s.jsx)(n.a,{href:"/Groups_of_properties_and_actions",children:"property and action group"})," that the object group belongs to. Used only in the ",(0,s.jsx)(n.a,{href:"/Structured_view#hierarchy",children:"hierarchical"})," view."]}),"\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsxs)(n.li,{children:["\n",(0,s.jsx)(n.p,{children:(0,s.jsx)(n.code,{children:"propertyGroup"})}),"\n",(0,s.jsxs)(n.p,{children:["The property and action group name. ",(0,s.jsx)(n.a,{href:"/IDs#cid",children:"Composite ID"}),"."]}),"\n"]}),"\n"]}),"\n"]}),"\n",(0,s.jsxs)(n.li,{children:["\n",(0,s.jsx)(n.p,{children:(0,s.jsx)(n.code,{children:"EXTID extID"})}),"\n",(0,s.jsxs)(n.p,{children:["Specifying the name to be used for ",(0,s.jsx)(n.a,{href:"/Structured_view#extid",children:"export/import"})," of this object group. Used only in the structured view."]}),"\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsxs)(n.li,{children:["\n",(0,s.jsx)(n.p,{children:(0,s.jsx)(n.code,{children:"extId"})}),"\n",(0,s.jsx)(n.p,{children:"String literal."}),"\n"]}),"\n"]}),"\n"]}),"\n",(0,s.jsxs)(n.li,{children:["\n",(0,s.jsx)(n.p,{children:(0,s.jsx)(n.code,{children:"EXTKEY"})}),"\n",(0,s.jsxs)(n.p,{children:["When keyword ",(0,s.jsx)(n.code,{children:"EXTKEY"})," is specified the values of objects and properties of this object group are represented in a structured view as key-value pairs, where the key is the value of the object (set of objects) and the value is the property values. By default, they are represented as an array with lists of property values."]}),"\n"]}),"\n",(0,s.jsxs)(n.li,{children:["\n",(0,s.jsx)(n.p,{children:(0,s.jsx)(n.code,{children:"SUBREPORT [subReportExpression]"})}),"\n",(0,s.jsxs)(n.p,{children:["Specifies that you need to generate a separate ",(0,s.jsx)(n.a,{href:"/Print_view",children:"report"})," file for this object group while ",(0,s.jsx)(n.a,{href:"/Print_view#buildhierarchy",children:"building the report hierarchy"}),"."]}),"\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsxs)(n.li,{children:["\n",(0,s.jsx)(n.p,{children:(0,s.jsx)(n.code,{children:"subReportExpression"})}),"\n",(0,s.jsxs)(n.p,{children:["The ",(0,s.jsx)(n.a,{href:"/Expression",children:"expression"})," whose value will be used as the name of the ",(0,s.jsx)(n.a,{href:"/Print_view",children:"report"})," file for the created object group. You can use the names of already declared objects on the form as parameters. It is assumed that the values of these objects will be ",(0,s.jsx)(n.a,{href:"/Open_form#params",children:"passed"})," when the form is opened ",(0,s.jsx)(n.a,{href:"/In_a_print_view_PRINT",children:"in the print view"})," (if it's not done, they will be considered equal ",(0,s.jsx)(n.code,{children:"NULL"}),")."]}),"\n"]}),"\n"]}),"\n"]}),"\n",(0,s.jsxs)(n.li,{children:["\n",(0,s.jsx)(n.p,{children:(0,s.jsx)(n.code,{children:"BACKGROUND backgroundExpr"})}),"\n",(0,s.jsx)(n.p,{children:"Specifying the background color of property cells belonging to this object group."}),"\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsxs)(n.li,{children:["\n",(0,s.jsx)(n.p,{children:(0,s.jsx)(n.code,{children:"backgroundExpr"})}),"\n",(0,s.jsx)(n.p,{children:"Expression whose value determines the background color."}),"\n"]}),"\n"]}),"\n"]}),"\n",(0,s.jsxs)(n.li,{children:["\n",(0,s.jsx)(n.p,{children:(0,s.jsx)(n.code,{children:"FOREGROUND foregroundExpr"})}),"\n",(0,s.jsx)(n.p,{children:"Specifying the foreground color of property cells belonging to this object group."}),"\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsxs)(n.li,{children:["\n",(0,s.jsx)(n.p,{children:(0,s.jsx)(n.code,{children:"foregroundExpr"})}),"\n",(0,s.jsx)(n.p,{children:"Expression whose value determines the foreground color."}),"\n"]}),"\n"]}),"\n"]}),"\n"]}),"\n",(0,s.jsx)(n.h3,{id:"examples",children:"Examples"}),"\n",(0,s.jsx)(n.pre,{children:(0,s.jsx)(n.code,{className:"language-lsf",children:"CLASS Shipment;\n// declaring the delivery form\nFORM shipments 'Deliveries'\n OBJECTS s = Shipment // adding one object of the shipment class\n PAGESIZE 100 // indicating that the table should always contain 100 rows\n\n // ... adding properties and filters to the form\n;\n\n// Declaring a form that will display the turnover of the product for a specified interval\nname = DATA STRING[100] (Item);\nrevenue = DATA NUMERIC[16,2] (Item, DATE, DATE);\n\nFORM revenues 'Product turnovers'\n // declaring a group of objects, consisting of 2 objects of the Date class with the appropriate captions,\n // which will always be displayed as a panel\n OBJECTS interval = (dateFrom 'Date (from)' = DATE, dateTo 'Date (to)' = DATE) PANEL, \n i = Item // adding a list of products\n // adding to the form the properties of the date objects values, with which the user can select dates\n PROPERTIES VALUE(dateFrom), VALUE(dateTo) \n // adding the product name and the property with the product turnover for the date interval\n PROPERTIES name(i), revenue(i, dateFrom, dateTo) \n;\n"})}),"\n",(0,s.jsx)(n.pre,{children:(0,s.jsx)(n.code,{className:"language-lsf",children:"// creating a form for printing a price tag for a product\nlabelFile = DATA STRING[100] (Item);\nprintLabelFile (Item i)= OVERRIDE labelFile(i), 'MyModule_printLabel_i.jrxml' IF i IS Item;\nFORM printLabel 'Price tag printing'\n OBJECTS i = Item // adding the product for which the price tag will be printed\n // marking that a file whose name is stored in the printLabelFile property should be used as a template \n // (it is assumed that the i value will be passed in the OBJECTS block)\n REPORT printLabelFile(i) \n // for example, the user can input myLabel1.jrxml there, then the system will use a file named myLabel1.jrxml\n // ... other properties required for printing\n;\n"})}),"\n",(0,s.jsx)(n.h2,{id:"tree",children:"Object tree block"}),"\n",(0,s.jsx)(n.h3,{id:"syntax-1",children:"Syntax"}),"\n",(0,s.jsx)(n.pre,{children:(0,s.jsx)(n.code,{children:"TREE [name] groupDeclaration1 [parentBlock1], ...., groupDeclarationN [parentBlockN] [insertPosition]\n"})}),"\n",(0,s.jsxs)(n.p,{children:["Each ",(0,s.jsx)(n.code,{children:"groupDeclaration"})," is a declaration of an object group that is fully analogous to the ",(0,s.jsx)(n.a,{href:"#objects",children:"declaration in the object block"})," described above. Each ",(0,s.jsx)(n.code,{children:"parentBlock"})," can be described in one of two ways:"]}),"\n",(0,s.jsx)(n.pre,{children:(0,s.jsx)(n.code,{children:"PARENT parentExpr\n(PARENT parentExpr1, ..., parentExprK)\n"})}),"\n",(0,s.jsx)(n.p,{children:"The first option is used if an object group for which the block is specified consists of a single object, the second one is used for groups of two and more objects."}),"\n",(0,s.jsx)(n.h3,{id:"description-1",children:"Description"}),"\n",(0,s.jsxs)(n.p,{children:[(0,s.jsx)(n.em,{children:"Object tree block"})," lets you create an ",(0,s.jsx)(n.a,{href:"/Interactive_view#tree",children:"object tree"}),". The first specified object group will form a list of top-level objects, each of which will have a child list of objects of the second specified object group and so on."]}),"\n",(0,s.jsxs)(n.p,{children:["Use the ",(0,s.jsx)(n.code,{children:"PARENT"})," block to create ",(0,s.jsx)(n.a,{href:"/Interactive_view#treegroup",children:"hierarchical object groups"}),". To do that, specify a property that will define the parent element for an object (or several objects if an object group contains several ones)."]}),"\n",(0,s.jsx)(n.h3,{id:"parameters-1",children:"Parameters"}),"\n",(0,s.jsx)("a",{className:"lsdoc-anchor",id:"treeName"}),"\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsxs)(n.li,{children:["\n",(0,s.jsx)(n.p,{children:(0,s.jsx)(n.code,{children:"name"})}),"\n",(0,s.jsxs)(n.p,{children:["The name of the object tree being created. ",(0,s.jsx)(n.a,{href:"/IDs#id",children:"Simple ID"}),"."]}),"\n"]}),"\n",(0,s.jsxs)(n.li,{children:["\n",(0,s.jsx)(n.p,{children:(0,s.jsx)(n.code,{children:"parentExpr"})}),"\n",(0,s.jsxs)(n.p,{children:["Expression that defines a hierarchy for a group of objects consisting of a single object. This expression must create a property that has exactly one parameter and returns the parent object for the object passed as input (or ",(0,s.jsx)(n.code,{children:"NULL"})," if the passed object is at the top level)."]}),"\n"]}),"\n",(0,s.jsxs)(n.li,{children:["\n",(0,s.jsx)(n.p,{children:(0,s.jsx)(n.code,{children:"parentExpr1, ..., parentExprK"})}),"\n",(0,s.jsxs)(n.p,{children:["A list of expressions that define a hierarchy for an object group consisting of multiple objects. These expressions should create properties with a number of parameters equal to the number of objects in the group. Each of these properties should return one of the parent objects for the object collection passed as input (or ",(0,s.jsx)(n.code,{children:"NULL"})," if the passed object collection is at the top level). The first property should return the first object of the parent object collection, the second property - the second object, and so on."]}),"\n"]}),"\n",(0,s.jsxs)(n.li,{children:["\n",(0,s.jsx)(n.p,{children:(0,s.jsx)(n.code,{children:"insertPosition"})}),"\n",(0,s.jsxs)(n.p,{children:["Specifying the insertion position of tree object groups in the list of object groups. It has syntax fully analogous to the ",(0,s.jsx)(n.a,{href:"#insertPosition",children:"same option in the object block"}),"."]}),"\n"]}),"\n"]}),"\n",(0,s.jsx)(n.h3,{id:"examples-1",children:"Examples"}),"\n",(0,s.jsx)(n.pre,{children:(0,s.jsx)(n.code,{className:"language-lsf",children:"CLASS SkuGroup;\nname = DATA ISTRING[100] (SkuGroup);\nactive = DATA BOOLEAN (SkuGroup);\nparent = DATA SkuGroup (SkuGroup) AUTOSET;\n\nCLASS Sku;\nname = DATA ISTRING[100] (Sku);\nskuGroup = DATA SkuGroup (Sku);\n\n\nFORM skus 'Sku'\n TREE groupTree g=SkuGroup PARENT parent(g)\n PROPERTIES READONLY name(g)\n FILTERS active(g)\n\n OBJECTS s = Sku\n PROPERTIES(s) name\n FILTERS skuGroup(s) == g\n;\n\nCLASS Group1;\nname = DATA STRING[100] (Group1);\n\nCLASS Group2;\nname = DATA STRING[100] (Group2);\n\nCLASS Group3;\nname = DATA STRING[100] (Group3);\n\nin = DATA BOOLEAN (Group1, Group2);\nin = DATA BOOLEAN (Group2, Group3);\n\nFORM groups\n TREE groups g1 = Group1, g2 = Group2, g3 = Group3\n PROPERTIES READONLY name(g1), name(g2), name(g3)\n FILTERS in(g1, g2), in(g2, g3)\n;\n"})})]})}function a(e={}){const{wrapper:n}={...(0,r.R)(),...e.components};return n?(0,s.jsx)(n,{...e,children:(0,s.jsx)(h,{...e})}):h(e)}},28453:(e,n,i)=>{i.d(n,{R:()=>o,x:()=>c});var s=i(96540);const r={},t=s.createContext(r);function o(e){const n=s.useContext(t);return s.useMemo((function(){return"function"==typeof e?e(n):{...n,...e}}),[n,e])}function c(e){let n;return n=e.disableParentContext?"function"==typeof e.components?e.components(r):e.components||r:o(e.components),s.createElement(t.Provider,{value:n},e.children)}}}]); \ No newline at end of file diff --git a/assets/js/runtime~main.b38c41f3.js b/assets/js/runtime~main.4a02053f.js similarity index 99% rename from assets/js/runtime~main.b38c41f3.js rename to assets/js/runtime~main.4a02053f.js index 970f17f48eb..7f99397f396 100644 --- a/assets/js/runtime~main.b38c41f3.js +++ b/assets/js/runtime~main.4a02053f.js @@ -1 +1 @@ -(()=>{"use strict";var e,d,a,c,f,b={},t={};function r(e){var d=t[e];if(void 0!==d)return d.exports;var a=t[e]={exports:{}};return b[e].call(a.exports,a,a.exports,r),a.exports}r.m=b,e=[],r.O=(d,a,c,f)=>{if(!a){var b=1/0;for(i=0;i=f)&&Object.keys(r.O).every((e=>r.O[e](a[o])))?a.splice(o--,1):(t=!1,f0&&e[i-1][2]>f;i--)e[i]=e[i-1];e[i]=[a,c,f]},r.n=e=>{var d=e&&e.__esModule?()=>e.default:()=>e;return r.d(d,{a:d}),d},a=Object.getPrototypeOf?e=>Object.getPrototypeOf(e):e=>e.__proto__,r.t=function(e,c){if(1&c&&(e=this(e)),8&c)return e;if("object"==typeof e&&e){if(4&c&&e.__esModule)return e;if(16&c&&"function"==typeof e.then)return e}var f=Object.create(null);r.r(f);var b={};d=d||[null,a({}),a([]),a(a)];for(var t=2&c&&e;"object"==typeof t&&!~d.indexOf(t);t=a(t))Object.getOwnPropertyNames(t).forEach((d=>b[d]=()=>e[d]));return b.default=()=>e,r.d(f,b),f},r.d=(e,d)=>{for(var a in d)r.o(d,a)&&!r.o(e,a)&&Object.defineProperty(e,a,{enumerable:!0,get:d[a]})},r.f={},r.e=e=>Promise.all(Object.keys(r.f).reduce(((d,a)=>(r.f[a](e,d),d)),[])),r.u=e=>"assets/js/"+({248:"12fcb66e",337:"ffaf3051",454:"6723372e",510:"da2bb204",524:"c3937426",684:"56bf2589",777:"70bba45c",787:"da51142f",829:"8075e37c",847:"126761e4",922:"8e9f7f86",1003:"f8b65bcf",1143:"f43f6780",1550:"314b8289",1801:"8d160890",1827:"568be4f2",1864:"e4d05c2b",1946:"3e585579",2013:"4e0d72ac",2038:"fe5d4fc2",2196:"9a6752cd",2253:"d0300432",2272:"fb97c684",2282:"80a222a7",2347:"bc1e2629",2380:"afa43b64",2490:"b34655e7",2524:"6bf606d5",2537:"cacf9b31",2627:"5ee76dc5",2780:"5d066053",2890:"0725d027",2893:"01834c4c",2899:"1e567a10",3160:"15fdd876",3217:"9ac3930f",3304:"46341a95",3315:"052a6d97",3491:"0b998202",3539:"e4437dc8",3669:"30a24c52",3700:"40079959",3962:"352f59be",4046:"024944b0",4072:"3d25f10b",4138:"fccbaa8a",4145:"3401db00",4270:"2e1297c6",4380:"3eaaed8f",4382:"a6676230",4600:"38066cd9",4624:"09e8369e",4765:"1f0d14dd",4896:"a74e5af2",5087:"9add4495",5132:"a92f1dee",5139:"b688cdc4",5168:"17b5cca9",5387:"fac7cdd0",5528:"6a17ced4",5609:"f7611eae",5759:"6aca40d7",5905:"94ee8623",5965:"f288aa6b",6131:"16ef2217",6276:"dde0f932",6421:"49b397e9",6444:"601dca15",6781:"82d1eb53",6808:"c30866a6",6827:"356e3172",6874:"7784095a",7278:"3ccf09c4",7360:"e535af1c",7591:"67190627",7723:"3baa3400",7811:"a4850994",7841:"74067523",7906:"b0a1c4d4",7975:"b8b939d1",7985:"8dfd147b",8015:"ea4a4292",8113:"69857d67",8209:"01a85c17",8385:"75c675c8",8629:"2a04efe7",9159:"dba3b6f0",9205:"dcf0db09",9211:"557fd269",9314:"f152ddf9",9438:"59a621e6",9532:"be0de10f",9647:"5e95c892",9834:"a024f78a",10064:"3d3ebec4",10248:"a135b49d",10291:"da96384a",10324:"6bddcc81",10330:"d610846f",10354:"7a9e23aa",10387:"677291ce",10436:"c9e287da",10737:"e5f9dd9d",10765:"bdb1b2f1",10783:"e82fa9a2",10856:"64616ca0",10927:"a1f3af9e",11186:"90605dce",11192:"020b2abb",11489:"009118ad",11496:"32a25c38",11497:"e16015ca",11545:"205ee6f9",11624:"92cf7b60",11862:"c1a27c51",11921:"b4d6c0c2",11965:"1ed7c529",11979:"47b6c9d3",11991:"b2b675dd",11997:"6c354dd3",12029:"48417a25",12167:"5383c9cf",12209:"de1fa229",12327:"3cee6f2b",12362:"27978101",12449:"9eb48b1c",12489:"0d3a481a",12613:"f17b8fc5",12653:"f7ea11ad",12800:"290f4c05",12907:"c57b668c",12956:"f6b71b72",12993:"58bce3a3",13019:"4f80f06f",13064:"5d9d588d",13101:"66e5c6a8",13256:"8f561205",13443:"aa9378a4",13563:"92029a1b",13566:"207275e3",13791:"5bd600ad",13920:"d2f348ca",14011:"bebdf8d7",14165:"09269e4e",14175:"6f90e3a4",14374:"66406991",14394:"bb66c49c",14396:"fc9158fa",14455:"536b1731",14522:"a2a5412a",14600:"ba8ad030",14788:"7ef3bdfb",14879:"ba167623",14906:"f5df3333",14988:"c18c8b11",14992:"0b420bde",14998:"bd5053b2",15040:"92d01391",15066:"94c6df18",15231:"86e47c47",15343:"028cea25",15467:"6008c803",15514:"fc5be455",15543:"730fb0f8",15685:"35fd922c",15775:"c4941d6c",15980:"cd9c3425",16066:"a7f9544a",16211:"a0a45cb6",16265:"a79250c1",16357:"bb09f00a",16435:"6a0f6bab",16496:"951179e8",16781:"b7ca464e",16794:"ae52150d",16821:"5187edfb",17015:"c5adf3a1",17029:"baf10df0",17043:"6602f274",17084:"ba9126e1",17308:"f72ee226",17339:"57f306b1",17504:"851f6438",17664:"6b20eb80",17665:"8bd50306",17767:"e249c6a0",17777:"31880914",17784:"ae953da5",17810:"5aae399f",17829:"2742f4fe",17952:"8ce9e7fd",18070:"190e2a12",18401:"17896441",18409:"bc99b2da",18437:"a39ec531",18466:"dd69638c",18649:"a2811096",18662:"ae81349d",18839:"3011cf5c",18880:"c3a6fa21",18925:"e952329e",18956:"08464a40",19044:"305109e6",19067:"7d885378",19275:"2696133d",19298:"cba1907b",19426:"5597694d",19821:"b8b265be",19958:"cf9dc769",19969:"bb96d313",20160:"689a88e0",20293:"3e4c692d",20491:"218ca708",20563:"12f77c82",20569:"ca2a456f",20704:"8a424567",20806:"70030968",20890:"9d1d1374",20967:"8025277c",21102:"9cba90bc",21105:"d3fe7700",21250:"53c3de20",21315:"9b3903e1",21358:"4b27ffe9",21380:"889af62c",21392:"98b57378",21433:"3c18655c",21517:"f3074970",21592:"150324ac",21649:"850a7836",21778:"5cda421a",21818:"b0034dbb",21917:"1685d987",21974:"4366298e",22122:"ea45dacf",22161:"4c9e35b1",22180:"cad4a10e",22465:"3e59ad6a",22726:"c5e58f52",22793:"081189a6",22804:"572069a1",23146:"48634516",23162:"a3389a28",23209:"f46d42b2",23435:"f1286dd7",23450:"58447612",23604:"efde1fe5",23645:"0316d822",23873:"2c3adde0",24014:"c817bfb2",24031:"1ea3a676",24050:"3a848f47",24244:"a7822689",24376:"e76da56a",24478:"b7d2c410",24706:"9c5725aa",24844:"7a1301e9",25008:"946c697d",25441:"86b94151",25446:"56bdc4fa",25524:"ed4b61d9",25634:"81ac3f50",25755:"6e9fa32d",25851:"3db4c89a",25856:"264da714",25858:"a47a9d5f",26029:"53af05f0",26064:"91230912",26126:"c96f6d69",26127:"a988badf",26229:"9e253187",26460:"e91a2889",26591:"86c0d560",26661:"38d0f6a8",26703:"b4253237",26942:"7fd3fa86",27008:"aa337fe7",27145:"58202a7e",27152:"b33fa6b2",27188:"4f61b578",27269:"ef5b546c",27380:"ff91b461",27583:"03279be8",27652:"010b4e9f",27815:"22a912fe",27907:"abd1d192",28233:"0ffedb1f",28444:"71540101",28533:"ff3016d2",28828:"7776d727",28837:"19a65fec",28895:"1c9bf1d6",28950:"94e6c864",29003:"54102561",29041:"e76f974f",29074:"0c03ad02",29213:"c7985978",29273:"277a36ff",29291:"4863caaf",29314:"8ca4b436",29347:"482beed6",29629:"28d15280",29634:"cbeb3d8b",29659:"d79a3b0b",29720:"44668a19",29794:"b135909b",29862:"3e4679dc",29953:"8d676d70",30137:"576c31dc",30221:"b9b74444",30440:"2a17bbe3",30503:"2007ff27",30517:"596382d8",30598:"8e9d1b33",30747:"e907ad55",30817:"572ad180",30859:"4bcf86b6",30885:"bbea21e4",30915:"7742d347",31166:"9d756d6b",31368:"b0ed8477",31415:"ce553083",31460:"3d93b3fe",31701:"cb6a4028",32104:"9fa8ec49",32195:"724b327c",32505:"af7e1017",32645:"c37d32cc",32675:"6bcfcd91",32741:"b40bf404",33040:"b3785fdb",33046:"f4b244e0",33174:"8aea9203",33235:"f28880f6",33258:"262c386c",33267:"97b55758",33379:"bb3eaf01",33480:"c1ff40dc",33695:"296e45da",33750:"51fe6e29",33847:"4b443f1f",34121:"bdc0ba33",34586:"cdcc7de8",34598:"557b46b8",34601:"c18dfc94",34617:"3cf7562b",34627:"57dd4404",34727:"70242f0c",34887:"a0130784",35051:"198af777",35252:"2c05566d",35289:"bdafb66c",35431:"0e91de8b",35569:"45919468",35732:"7b66b1b9",35829:"d5b4b205",35857:"67275e26",36016:"02e19516",36112:"e6ee5a86",36145:"a96df2a1",36356:"8a893709",36358:"7a006d9d",36380:"d8030e5b",36409:"bca7b478",36490:"52b8791a",36700:"f897154c",36732:"3ccb4b9c",36741:"7004948d",36750:"b676fb4f",36867:"fab9675f",37509:"3ff6fd03",37556:"93de59ca",37643:"a6aa9e1f",37811:"c43d2143",37895:"17f605b7",37970:"08b050ac",37999:"5202d7a7",38013:"d8e702d0",38183:"9ee914be",38334:"c20d97b0",38428:"45ca92d7",38460:"61d54a2f",38483:"1e10d35a",38600:"305d24a8",38663:"245174cd",38682:"2dccd00e",38712:"0e901f17",38810:"dd137f0b",38868:"473b8a7c",38890:"8dfd9b37",38995:"41cb9c1e",39113:"dcb0dfaf",39268:"3a1a370c",39424:"493cd66d",39711:"9cb0c414",39732:"61e16be9",39837:"2400124e",39846:"2f10980e",39909:"0ed2aab5",40310:"da278063",40313:"bb9ce830",40601:"4aae2601",40740:"dfa2316f",40754:"1e7a3293",40803:"986e2820",40852:"d6bb40ef",41004:"c9d93429",41308:"13830c90",41608:"b4df5dd4",41676:"3a10f78a",41722:"9ac004df",41928:"a1f7f6b6",41941:"9f593769",41948:"a896f8d7",42061:"a51a415d",42105:"2ba0bd54",42114:"dc0552d2",42234:"28fde7c8",42467:"0405bddc",42532:"ddf3c102",42547:"11282f6f",42616:"c31ca34e",42876:"ad940528",42950:"e9f810f8",43220:"11f7e57c",43298:"5ab0c7fe",43319:"47dc2297",43416:"bf777b2d",43468:"62da3164",43622:"e6b32f56",43874:"1ab14b9a",44552:"eacdc575",44775:"edc56720",44788:"7be871cb",45038:"18087238",45094:"deb49e8d",45136:"6260ce16",45277:"ef14d8b6",45391:"c9932547",45513:"18faa4f3",45559:"93131f85",45625:"b4d6d1b1",45751:"66da8d63",45902:"faf5ceef",46172:"6dd43181",46244:"bdd709f1",46381:"c24ab460",46407:"752b55f0",46535:"e6ad2512",46694:"ffa0d2bb",47078:"ff68c48b",47143:"183692ab",47274:"78377feb",47302:"3737ed59",47399:"1ab99136",47606:"a7eb7d96",47701:"6248e816",47724:"8c9149ad",47797:"a76ec1f7",47847:"4ec01f01",47907:"b5ed59a1",48056:"42f09255",48101:"7231de5c",48106:"fe30965a",48173:"bea5f57a",48243:"e4974747",48304:"74eaacd4",48508:"2a503532",48807:"94f0dbcb",48946:"be86555e",49099:"d083fbfa",49194:"733f8880",49421:"8ba2098d",49657:"7767d82c",49692:"e4403cb0",49697:"941a2e5c",49852:"100581b2",50052:"14831f8b",50177:"c510df87",50206:"f65eb504",50333:"493f07fa",50391:"a5fe5778",50468:"5142cdc7",50557:"523d99bf",50575:"2d57165d",50597:"74581a64",50599:"e34a95cb",50731:"09253d76",50885:"db0f9203",50974:"1f0b3959",51241:"7714b3f0",51261:"3a631c43",51398:"096bfee4",51682:"c82b4cb1",51835:"ead87263",51979:"35309c38",52089:"4366f8cb",52220:"9c40ea7d",52264:"652e4f6c",52381:"11082e32",52458:"1b55afb5",52711:"9e4087bc",52753:"e483bb51",52806:"93499cec",52898:"0f07bfca",53240:"39f211d1",53409:"27c4b6e1",53694:"8f11acd5",53805:"47619fe4",53928:"17873a97",54009:"8fad2f9d",54024:"470cbdf7",54132:"ea97ac1f",54139:"57859613",54271:"ebdae326",54312:"69cc9f3f",54391:"c24c1a5a",54472:"279ae274",54635:"7f4ab99b",54664:"4272fc1d",54722:"608ae6a4",54746:"c9ea411a",54787:"5fc35fb0",54804:"4626f2c8",54892:"a7effb6d",54917:"c3a35c08",54925:"e36a0092",55017:"808be357",55056:"a2c91a48",55250:"6b35c79d",55310:"322b9fa0",55371:"c5245225",55498:"d9bdaac5",55552:"84a4b4d2",55780:"eb27373d",55851:"293b6f39",56090:"23a66029",56192:"8abc8494",56232:"54fce789",56246:"c80bf25a",56255:"2835acb8",56256:"af5cd4f0",56273:"4965a8e8",56280:"adcd2e37",56333:"29740fbd",56426:"44ce8d0a",56587:"db8a2f2e",57253:"14eb0c94",57303:"071b25d5",57477:"96cd198d",57505:"fb2f3e51",57633:"9f24941e",57663:"089ad446",57722:"418e0342",57728:"93721f16",57834:"790f06e2",57981:"567ab979",58102:"ff197e2a",58120:"bd373c01",58348:"f739c313",58451:"6b7294c1",58558:"5ffbdeb3",58594:"814db39b",58643:"7cf51ccd",58854:"79c98027",58895:"063831dc",58933:"17dfd4b6",59241:"34c3eda1",59384:"cf016b30",59445:"66896f7f",59562:"ca515d4d",59599:"e3e5aa22",59679:"81f6e608",59790:"8a75ff44",59850:"ddd163a2",60121:"0309cbdc",60135:"d177da86",60214:"f55b8115",60467:"af6ce90f",60497:"7f5a9435",60548:"e5d014aa",60639:"8a993aba",60765:"22dbe7bb",60894:"dd668fd3",60896:"929dc912",60917:"1049ca79",60928:"55462430",61068:"ac37a370",61221:"053aba71",61234:"545b195b",61245:"0363ba50",61341:"fe34ece7",61610:"efc702ff",61782:"03bc899e",61830:"25b4346c",61836:"4dec6ce1",62046:"f65beda4",62083:"933d2dcf",62138:"1a4e3797",62285:"c331ac4d",62341:"c6d876cc",62344:"425d2d5c",62479:"74b42b47",62490:"72754f40",62902:"90cb08a2",62976:"0b024c6b",63027:"9acb76ea",63062:"7f0f9fd5",63143:"34026fad",63331:"54dcaa0b",63709:"edb215fa",63876:"8fb76749",64047:"0df7e9a4",64114:"a40169f6",64139:"45a593b9",64311:"d9c134a3",64409:"a1d696f9",64433:"e95454dd",64586:"a911e7e6",64590:"10f9e06d",64616:"350e096e",64659:"6cbe3c00",64755:"c8207785",65133:"41a08930",65152:"4b8df818",65155:"fa755ce0",65200:"8d44033a",65222:"e062462b",65290:"bd80b57e",65451:"4a07a94d",65517:"93991cd0",65560:"e5cabba2",65659:"e48b5b6b",65700:"cb6ece47",65792:"8a73e53c",66061:"1f391b9e",66079:"2868cdab",66154:"450ccefe",66168:"a0f02a96",66425:"d9025d82",66428:"a5728785",66660:"f34ca334",66815:"6cd94b4b",66842:"3505e380",66899:"5c2e2089",66904:"470b1f7f",66947:"dbf812c0",67042:"236bc1bf",67098:"a7bd4aaa",67146:"f547184b",67253:"6f8eea3d",67295:"52f8eb20",67385:"4107898e",67472:"814f3328",67668:"362d51d4",67679:"308219a2",67787:"87b53f3b",67887:"9a1a9cf2",67964:"5955506f",67974:"e24cb539",68011:"9fdb8713",68018:"fd79333d",68047:"4e2c4f37",68153:"2669367c",68175:"e67c0d43",68323:"819832a6",68394:"be949f88",68658:"be63a1d1",68666:"2adc6054",68813:"ccb693b6",68969:"bf8d3c80",69075:"8d3ad523",69136:"10024d28",69291:"f7ce4f94",69384:"288c26ee",69412:"9a41823c",69528:"761d7ef5",69563:"2b7e389b",69676:"c65aae6f",69816:"be0c0aa5",69863:"3953ecec",69881:"a7841e3a",69888:"e8a10efa",69902:"b2f70659",70097:"1924664f",70194:"05570387",70337:"e458eb98",70460:"d999b08f",70465:"dc9b0273",70545:"bc7e2dde",70624:"9c7d1b50",70810:"bb5ef324",70879:"108d6d89",71043:"03765b16",71074:"3eb5acbd",71248:"be59f68b",71295:"fcf85bf4",71335:"e873d9c1",71356:"21b1b445",71397:"964e650e",71480:"3102433c",71611:"86e3fe78",71721:"6b3fa53b",71755:"be3592bd",71786:"e23d52e7",71980:"6acc3b30",72033:"d378ffa3",72063:"6b0d9667",72153:"359bd289",72188:"0d426c35",72412:"87b2c874",72467:"e42c090c",72486:"1d72fc04",72550:"417205b4",72564:"d344b640",72596:"a7f0e895",72620:"e1da9db5",72656:"7dc17292",72658:"347eefb7",73289:"3dd5094c",73300:"4ec97119",73465:"654e019f",73480:"eed6c09e",73659:"a64b7925",73753:"f01bfdad",73902:"12d0d673",73968:"13aa5b84",74059:"8fef5462",74134:"393be207",74210:"4af3180b",74323:"8e9f0a8a",74507:"888a9eb1",74601:"e2222d85",74618:"7b1be938",74692:"3d061cbb",74803:"08bc2fd9",74843:"c8b7d8c9",74963:"88010c7c",74996:"9a96f352",75011:"6d4a59e6",75277:"b86e836f",75329:"cb390922",75519:"60afbb6a",75674:"06469ad7",75829:"e6904ee2",75849:"36aa1211",75905:"78850312",76057:"88ce5a88",76107:"2985d024",76141:"1249f471",76180:"62561535",76295:"925bf011",76364:"f0050945",76541:"eeb46d93",76572:"e8b0059d",76612:"56a4992e",76642:"f2e06602",76738:"7178b091",76841:"19a12457",76850:"0b75be44",76918:"a7a94ca7",77008:"70a637fc",77166:"3082da76",77279:"870989fe",77366:"4d25e953",77438:"fc0a57b7",77444:"b2cdfc03",77573:"a641a08a",77638:"c6fd80a3",77711:"cdc4f532",77883:"e270a67d",77938:"caf4d4e8",78187:"0731855e",78217:"b0fdad27",78540:"19612e92",78618:"266009b8",78662:"e0cb7e9b",78669:"7e6a1518",78719:"39af3e45",78870:"977a120d",78884:"7f851217",79026:"6252cb7f",79048:"a94703ab",79101:"3aa8fb49",79177:"18df7763",79217:"a220f06a",79272:"151606db",79719:"72696fbb",79813:"ce92a480",80007:"524de75b",80176:"db8a1c1c",80298:"ee3b1858",80485:"7161856f",80497:"a80da1cf",80532:"f264b025",80545:"1d40c453",80574:"d0428371",80685:"e38d51ce",80730:"b3e62ffc",80819:"e623d6b8",80829:"9dfa7700",80970:"5cbd93e8",81052:"9ff069d3",81272:"466bb3bf",81294:"0158928f",81375:"856d3e3f",81439:"b92a6266",81448:"ebd976f2",81555:"b83930dc",81568:"60ed3f6c",81586:"696d99ee",81831:"1a43103c",81885:"6bb1c934",81917:"b11736aa",81925:"60a0792e",82074:"b5d280ff",82081:"f7c13ceb",82213:"c77e940c",82243:"020164af",82421:"85ff8ae5",82468:"e5224bf9",82540:"b39c107d",82569:"f2cfa2a7",82575:"d70e32ab",82634:"78dd2d7c",82870:"49ad9989",82917:"7346d756",82970:"4458a59c",83058:"d40c5d30",83062:"b0b45554",83165:"225242c8",83249:"ccc49370",83354:"9d2c8313",83409:"f991cd73",83497:"65b935d6",83598:"45ac43d7",83642:"60aaf6d9",83644:"85ae8b77",83658:"8fd46ed4",83833:"26c7efd1",83944:"224c1d61",83966:"69ce70d3",84137:"7fc84d53",84280:"18103d28",84321:"7838c6ab",84427:"bb128489",84455:"91c67fe1",84497:"be71ca1f",84533:"1e05dda2",84774:"1626a70d",84813:"6875c492",84829:"9a4b1d4e",85053:"b55aa295",85171:"a9f37dd6",85216:"6e5a110d",85381:"4323d260",85463:"255f7ae1",85471:"c7cd36ac",85494:"763dc45a",85834:"ec4fbbf5",85889:"3e735601",85958:"dfd2a95d",86018:"29e7a45f",86044:"15048ece",86202:"36c31f16",86374:"1d9d4052",86477:"fa9d0183",86503:"768693d1",86597:"fe0eb9a8",86603:"719ecebd",86721:"21e22679",86781:"80b60d64",86865:"33f62802",87041:"76eea44d",87154:"300557da",87163:"904c5dc2",87170:"50e07840",87229:"46fdcfd5",87347:"800dedf1",87479:"d70e479b",87537:"a0d87d22",87622:"0cab1ca0",87740:"d8123b4e",87749:"e57684cb",87795:"2eafaf58",87802:"85ad8407",87848:"6b3ad60e",87870:"cd590cc4",87970:"20e873f4",88086:"e83e8e90",88151:"914404a1",88251:"d3772fcd",88545:"23307cd4",88633:"167652a6",88710:"573a32cc",88804:"8137d431",88805:"409581e6",89019:"61476635",89107:"813c5646",89196:"6df1167f",89209:"4b65008c",89231:"061d06b5",89241:"105c35c4",89246:"ab3acd0e",89267:"a7023ddc",89349:"bf778798",89356:"67bb5f29",89392:"f0cda9ee",89480:"5c5ce237",89522:"1c19c503",89639:"b6c9048d",89642:"e8291ed7",89889:"16ac7d64",89914:"0ac7dfac",90076:"327843a1",90089:"43560fdb",90128:"0c95808b",90203:"e5f14a48",90214:"86027dce",90349:"3944f4d0",90416:"079875e0",90440:"f25b4e76",90457:"a356d861",90498:"b54c34f6",90592:"af172acd",90618:"fd8bd593",90810:"d8c75aab",90910:"48e0df6b",91035:"10a408ff",91078:"4500717a",91139:"3bcbe779",91259:"0c2bde02",91624:"5d7854ee",91721:"0e2a382c",91802:"d660974a",91832:"45ec0b53",91906:"7285be48",92128:"f9396bbf",92132:"09d655f0",92282:"8d2c5b8a",92466:"9d03f0f1",92554:"6ef9d53a",92562:"c0b24b68",92620:"a1864d4c",92637:"0913d920",92726:"378a04e9",92764:"6b7b22fb",92878:"847cfb29",93101:"f2ce6c58",93310:"f8990f5d",93387:"937af0fd",93564:"6e21121a",93600:"c9451cfd",93613:"304ea052",93748:"f1844afc",93884:"30b090fe",93933:"9de1aaaf",93988:"8f6be87c",94107:"30f115bb",94147:"cad1d944",94437:"8e32fe61",94446:"cf0f284f",94697:"1f9a27ac",94703:"6a294d93",94796:"2cfecc25",94952:"cb42debe",95031:"e6ca5891",95063:"758f575e",95082:"1f7f27b4",95216:"48b56ed7",95226:"c4aed824",95238:"9f682853",95338:"924130ca",95367:"f154dce4",95457:"eb5ca0ce",95500:"7d706e04",95550:"eeb8e89e",95577:"0ea902c2",95591:"6c4a10fa",95596:"2de83f92",95644:"1c1ca6fd",95830:"e5c318a1",95889:"26562614",95894:"b2f554cd",95911:"cefe6d85",96166:"2e20e09d",96176:"de0ffc1f",96334:"031793e1",96371:"5cefb82a",96401:"b340d1a5",96501:"d6e8f7e1",96681:"8e827e8a",97057:"5a335306",97136:"5e119875",97184:"ea85e407",97221:"11a68ed0",97289:"5cc3371a",97292:"5bc5170f",97512:"ec423149",97566:"6b26cec4",97588:"67616762",97590:"0cdc2010",97612:"3b8f7586",97614:"76de6265",97705:"0f9f4702",97826:"46ed2231",97948:"15c1d801",97995:"74a2c672",98085:"56d52a81",98167:"6cd7d4e5",98271:"6395d7a7",98383:"aa074a57",98400:"d743a1d5",98475:"3570154c",98526:"9439d9b9",98550:"86cda1c5",98581:"935f2afb",98850:"1065ee2a",98978:"1ed419c0",99039:"5458faed",99055:"24d58b49",99245:"9573cbc4",99372:"e679f2e1",99645:"2df6bfe3",99652:"8bfe30f1",99668:"e4e3af74",99949:"b8a5e324"}[e]||e)+"."+{248:"621ee445",337:"31f2d2dc",454:"bc43abf1",510:"123bfefc",524:"c23c17c1",684:"429140a7",777:"6d5b3496",787:"a7e79697",829:"f3c6a6ba",847:"55c64369",922:"76f81591",1003:"caaa1ded",1143:"07aa6da9",1550:"c947b038",1801:"cacda8a8",1827:"e978ef16",1864:"39c90d99",1946:"d942c657",2013:"ac1a5721",2038:"dc7d23f7",2196:"be30ad6e",2253:"0a92e55a",2272:"f64dde2a",2282:"338fa93b",2347:"3501c3db",2380:"5aee8ccb",2490:"11697f74",2524:"295a6f2f",2537:"0aefa9d3",2627:"0e7fdde9",2780:"fe034bee",2890:"04281b70",2893:"642a9ce7",2899:"055519ad",3160:"7b1e2802",3217:"98981904",3304:"c79cbe80",3315:"703341f9",3491:"bec8d273",3539:"558b3291",3669:"e9fe019e",3700:"4af177d4",3962:"1eff2428",4046:"7457ac44",4072:"e599763e",4138:"bc0823f2",4145:"e1a33397",4270:"3cd3376d",4380:"bfef3810",4382:"b5313f44",4600:"8866cad2",4624:"cf970d28",4765:"2f9f043e",4896:"8768a28e",5087:"ea365d89",5132:"43dc85e5",5139:"4b3cf47f",5168:"3f5c10ab",5387:"ebde3def",5528:"a4b5c38a",5609:"4f84311a",5759:"1b33ad00",5905:"67f92b6c",5965:"15883a01",6131:"ab8b0265",6276:"0654563a",6421:"c03df63b",6444:"d5e90115",6781:"ee551ac0",6808:"0e44766a",6827:"b022672c",6874:"0a8b56f5",7278:"86f2f5fa",7360:"fd1e237f",7591:"5bc65ef1",7723:"c9da2ae5",7811:"f7c1005a",7841:"3ee27aba",7906:"1d1aec7d",7975:"ccb55002",7985:"f5ab8a3d",8015:"bfee88f3",8113:"e3ce625e",8209:"0895c75f",8385:"55267404",8629:"41f7c1c9",9159:"16e281d3",9205:"02f83f5c",9211:"de5f4e59",9314:"f6093d25",9438:"3e3005df",9462:"65f14d5f",9532:"6422993a",9647:"642e8f76",9834:"d91c7023",10064:"8776093a",10248:"93b94e75",10291:"cabf3945",10324:"a63f3b47",10330:"638db018",10354:"3624c091",10387:"72c96238",10436:"c6b2d9fb",10737:"81a5df74",10765:"47f56dbc",10783:"f3bc7cee",10856:"ce359ec9",10927:"29caa996",11186:"7688988b",11192:"e5aa0a6a",11489:"be36b89a",11496:"6edb7a6a",11497:"45195f6e",11545:"789cd251",11624:"d5428d56",11862:"01dd282c",11921:"314ff049",11965:"3a9a5193",11979:"87e5af56",11991:"e417d86f",11997:"9da66ce9",12029:"1f647dfb",12167:"f215086a",12209:"d9535912",12327:"93465222",12362:"a08c5564",12449:"72af6b43",12489:"a2cbbbbd",12613:"6cd3c808",12653:"ef1a8b44",12800:"d1065395",12907:"47741de4",12956:"5aef7eee",12993:"42c4d3e4",13019:"c60633de",13064:"52451891",13101:"2ca6a130",13256:"fdab3377",13443:"f2314df8",13563:"5fe77f4f",13566:"4626f290",13791:"7833e045",13920:"5f297ad1",14011:"6a402ed6",14165:"20bd30f3",14175:"5e900ed2",14374:"858a67f5",14394:"0b54bae5",14396:"1906a23c",14455:"446d2006",14522:"3b722783",14600:"51ffceba",14788:"b64b4472",14879:"4252f81c",14906:"910279b1",14988:"1b956ec6",14992:"3d10c531",14998:"adeef39d",15040:"5b636762",15066:"7a265684",15231:"0e0cb96b",15343:"c9e4a17c",15467:"187c628c",15514:"3d98c2f5",15543:"05f33026",15685:"550ba7c1",15775:"39fe4133",15980:"339921be",16066:"5063f437",16211:"0b044d86",16265:"96a2894b",16357:"47d6beb5",16435:"d2a7e9d9",16496:"511c92bd",16781:"8c0faefd",16794:"fd4babae",16821:"7a2f852b",17015:"c69200fb",17029:"eba66d02",17043:"be14c303",17084:"f51f485a",17308:"5729933e",17339:"561a9cf6",17504:"db93b94e",17664:"3dae4748",17665:"a1c378ec",17767:"1b3cb2f0",17777:"6346011e",17784:"51ccb251",17810:"a7900074",17829:"cd060f14",17952:"96e6fb89",18070:"d7872a5d",18401:"87ed447e",18409:"66f77dd8",18437:"c7436afe",18466:"7b9d3b1b",18649:"3ce1df15",18662:"99ada680",18839:"8e1dd6d2",18880:"e5d4bbe4",18925:"81515a67",18956:"d063f5e0",19044:"e48cd02a",19067:"598c59c1",19275:"3702cee0",19298:"a364a089",19426:"287fd6fd",19821:"6986523b",19958:"b7849630",19969:"844eaa0b",20160:"924631f3",20293:"ff25cb68",20491:"afd3b535",20563:"04c1eed8",20569:"fb33b185",20704:"a029b8a9",20806:"13f116e5",20890:"fe4c7f76",20967:"35e7167c",21102:"1e5625b2",21105:"f7ec14bb",21250:"bc63be5f",21315:"dbbc7c15",21358:"35dfe783",21380:"435b4900",21392:"23794f2f",21433:"2800fbf5",21517:"861743a4",21592:"0e83647e",21649:"a46842da",21778:"6c725051",21818:"3c8bdbda",21917:"6405859b",21974:"3fa83ee1",22122:"6bf6ed04",22161:"3937f2e3",22180:"a5f70d4a",22465:"cf1fbce2",22726:"5f443492",22793:"f114f2ea",22804:"e418eb7c",23146:"5628dd69",23162:"164435bb",23209:"293efd1d",23435:"cb3b3b9f",23450:"7e98d9e9",23604:"3f07bf07",23645:"9d95a7e8",23873:"ee51bdd1",24014:"28e65300",24031:"2abb6fa4",24050:"cf24e6d1",24244:"fb549f78",24376:"514a42ab",24478:"fa5c19e0",24706:"2735afbc",24844:"7b061d5e",25008:"7c8d5235",25441:"055ea4c9",25446:"fe4e4e99",25524:"3359aaee",25634:"c92c87f9",25755:"a8c4e404",25851:"4b217b40",25856:"3e6b2d9d",25858:"9d6a74d6",26029:"eb435679",26064:"aa84fe80",26126:"a29b922e",26127:"586dec36",26229:"f32515f9",26460:"7ac871c1",26591:"bd4d9648",26661:"891c8e2e",26703:"4dc66620",26942:"7279d370",27008:"46cf1a7e",27145:"a66cd1de",27152:"2914eec7",27188:"6e84a5e0",27269:"70f36ec6",27380:"614b52db",27583:"f482eb68",27652:"9c50ef09",27815:"afd04c48",27907:"3cae4d91",28233:"31bb9a42",28444:"8dcb53fd",28533:"31a895a5",28828:"caa89ec6",28837:"62e140fc",28895:"db26969b",28950:"7837f134",29003:"10494fb7",29041:"6428526f",29074:"71a12c95",29213:"24a2a21a",29273:"e8d47165",29291:"b25b1ec4",29314:"c4524c2e",29347:"7478df88",29629:"1df8894f",29634:"1ae9018c",29659:"b5c83f7c",29720:"d06d61a7",29794:"d35da719",29862:"4ffcfdd6",29953:"e14b0db6",30137:"e14869d9",30221:"96cb49f9",30440:"da81c107",30503:"6a854b6f",30517:"5c31896b",30598:"ae91ac77",30747:"b05bf40f",30817:"4e687921",30859:"752983a7",30885:"818f3001",30915:"009776cc",31166:"f4ab7bf4",31368:"8a68b5b2",31415:"32112987",31460:"4c4965f3",31701:"d65c35a4",32104:"87254a16",32195:"af4173c7",32505:"84d596ff",32645:"e72d7298",32675:"cfd88a26",32741:"a4383ca7",33040:"c5cae76e",33046:"8f487ec4",33174:"3820157e",33235:"637fd359",33258:"c888a9b0",33267:"f6f93660",33379:"adb80d6e",33480:"1d1a10f9",33695:"5a5a414c",33750:"b7cdb914",33847:"53763d58",34121:"3b0b8378",34586:"8ffaeacc",34598:"e19e9d74",34601:"9c223070",34617:"27094d05",34627:"0b54e25a",34727:"11a768c2",34887:"12827d58",35051:"ee80c7b9",35252:"86fe93ef",35289:"58ca8b57",35431:"08399312",35569:"b164a6c7",35732:"e4e3beea",35829:"4c895850",35857:"9e3ee585",36016:"a48511e7",36112:"411b555a",36145:"9aaf3f0a",36356:"2e371f72",36358:"1d214b9a",36380:"015b4b68",36409:"853c8b6b",36490:"ec375e9e",36700:"653b8b36",36732:"040cb04b",36741:"fc35237d",36750:"4ef9afb5",36867:"48eeed2b",37509:"b2c043c3",37556:"78348772",37643:"25800dec",37811:"b4baab52",37895:"363c0353",37970:"0503a305",37999:"b061dfc7",38013:"819536da",38183:"a902bdca",38334:"90e6642d",38428:"63a2cba1",38460:"870e8445",38483:"0d34a072",38600:"8fb89e1e",38663:"c4a5a370",38682:"74f371e8",38712:"26ae0f19",38810:"972e2074",38868:"a33bbdec",38890:"4f26ad30",38995:"7ca416fc",39113:"d3fd8767",39268:"8549495e",39424:"dbafa795",39711:"e5ea74b6",39732:"0ec03574",39837:"ef249ee3",39846:"4628e6d3",39909:"f4690532",40310:"ba6e947c",40313:"c798594c",40601:"51c37c1a",40740:"eed799c8",40754:"fd4a5d7f",40803:"ea84d39d",40852:"1bea8762",41004:"ee76533b",41308:"3d32feef",41608:"a938e35f",41676:"e9520be7",41722:"cdd7389b",41928:"d872f888",41941:"c8f66d49",41948:"8242a5ef",42061:"1a783992",42105:"2e1e353c",42114:"331ebe7e",42234:"44f1de02",42467:"337dc24d",42532:"2acc3799",42547:"d8125d33",42616:"d6fa8487",42876:"dc0e5f81",42950:"57fc07e6",43220:"0fe84f76",43298:"e1df467f",43319:"9bebc24a",43416:"78e5652a",43468:"88a448f0",43622:"64fc2453",43874:"c8250493",44552:"d78c184a",44775:"fb4ff55b",44788:"d4cf916b",45038:"f4c66ec6",45094:"25c13a8f",45136:"f3175ad3",45277:"934408c0",45391:"b034bb37",45513:"fab6e45f",45559:"39e3c8f7",45625:"8e38c5eb",45751:"29367833",45902:"f976a284",46172:"3b819d28",46244:"032cae6c",46381:"c8eef7eb",46407:"7e10a776",46535:"13b25000",46694:"093c7973",47078:"cb3d13fc",47143:"1913f320",47274:"841eb382",47302:"31c8070b",47399:"9c0f2923",47606:"083a8460",47701:"5c3136d5",47724:"39bfb8fe",47797:"7a48931d",47847:"7c190bd0",47907:"3a72763b",48056:"359e4f37",48101:"2a1609d2",48106:"f0609c22",48173:"37f29aa3",48243:"3620958e",48304:"076ca236",48508:"dcf228c9",48807:"06f21a47",48946:"8d9c200b",49099:"7bd0db84",49194:"a319b426",49421:"48cca547",49657:"4059dce3",49692:"8cee1574",49697:"1047c560",49852:"3c7489da",50052:"612dddfa",50177:"3ca9eaf3",50206:"1d0e7fa6",50333:"4d344fb0",50391:"2f5426d7",50468:"0e1ad41d",50557:"037c51ac",50575:"336164b3",50597:"30093816",50599:"66a33815",50731:"a7b2cea7",50885:"6d5a08ee",50974:"ee9959e5",51241:"22391e7a",51261:"035bbb69",51398:"c5f7f86b",51682:"4cc6aa80",51835:"881bcc48",51979:"625434ea",52089:"2f519681",52220:"3ee10a5c",52264:"58081ad1",52381:"73236604",52458:"213b42ff",52711:"5c4c8b5f",52753:"ceb710c3",52806:"5e5a000d",52898:"2d54e082",53240:"3022d85c",53409:"6d3047ec",53694:"0de2ea7c",53805:"b6317682",53928:"700bd83e",54009:"f4e00499",54024:"0f3926c1",54132:"64612873",54139:"c6900ee6",54271:"15383d4e",54312:"66c48d9e",54391:"b675d6ec",54472:"26c69143",54635:"2e9ebe4a",54664:"99c8abbf",54722:"86f4777d",54746:"e5f1fe1d",54787:"1c6bdc22",54804:"bea06dfe",54892:"5cd22800",54917:"10e2a70c",54925:"210b69fd",55017:"ce4747b5",55056:"73e22f51",55250:"2e787b70",55310:"0bb56cd4",55371:"5fbc5f4b",55498:"848c238c",55552:"b1756bc2",55780:"977bc08c",55851:"4b632960",56090:"d1311a4b",56192:"1170d6fc",56232:"525d89e8",56246:"3d32b346",56255:"99749a2f",56256:"74cff6f6",56273:"320429a8",56280:"ac2127e7",56333:"61214139",56426:"aca72182",56587:"2ba73c3b",57253:"d253a7a6",57303:"8af8c0c9",57477:"7bb77bc1",57505:"752277cc",57633:"da238b45",57663:"9ea2d252",57722:"ef2ea953",57728:"caa5ce0c",57834:"20dbb365",57981:"d5af09f3",58102:"d35028d6",58120:"0e9904c1",58348:"4d9db875",58451:"02755e6c",58558:"e1dc5d5a",58594:"50598190",58643:"d80908f2",58854:"2e2ffdf8",58895:"3615f882",58913:"955b4936",58933:"af1ac191",59241:"8abbc718",59384:"88ef2667",59445:"01c832dc",59562:"95ab71fb",59599:"6ba29d71",59679:"4410babc",59790:"f633ccb7",59850:"27be8cf9",60121:"35cf1210",60135:"10555e3c",60214:"ce151e47",60467:"a6ca98a8",60497:"8415e3c6",60548:"67248c75",60639:"29062501",60765:"026a915a",60804:"e3e76b15",60894:"d53cff64",60896:"451c3338",60917:"8de30908",60928:"05122b4b",61068:"ceadf4ea",61221:"55051bdb",61234:"f97c8aff",61245:"cbdfaa65",61341:"bf3be58b",61610:"da181242",61782:"87c97de8",61830:"cc6a5806",61836:"68603798",62046:"efc2e384",62083:"a55302d9",62138:"ca5fac29",62285:"75c67680",62341:"81fa286b",62344:"15fadf01",62479:"755297f4",62490:"e40ccea8",62902:"dcb55fd7",62976:"7e6a5157",63027:"4551a132",63062:"1798a700",63143:"160150b9",63331:"6b31bb5c",63709:"014e489d",63876:"e4777092",64047:"8ceee60f",64114:"8301436e",64139:"5085621b",64311:"a805e177",64409:"4e22a9e1",64433:"4fa8c6e8",64586:"e9af5c74",64590:"c13ea7ce",64616:"dd306dc8",64659:"44690f6c",64755:"1719440e",65133:"c1bfab62",65152:"cfacc549",65155:"e995358d",65200:"382b08ec",65222:"f3cf945a",65290:"322f9f40",65451:"9f4639e6",65517:"a9fe28b5",65560:"3e58829f",65659:"b38eecb4",65693:"8f9573ad",65700:"17db1686",65792:"0be9fae5",65931:"a9a40380",66061:"dc225c0c",66079:"d432e6c4",66154:"d4e84bab",66168:"e6aceff1",66425:"d7e87572",66428:"18fe2694",66660:"97e7cb7c",66815:"96d8c3cb",66842:"9bd063e1",66899:"7ee315a3",66904:"69f0ec1c",66947:"73ac303e",67042:"9742b6c8",67098:"42a43b67",67146:"0a4a0060",67253:"6dceafec",67295:"2f1948a5",67385:"48c1b7fc",67472:"0b3b60f8",67668:"a93afd96",67679:"22fdf946",67787:"6bdfb18d",67887:"23d05f30",67964:"b3fc9712",67974:"b65e52c5",68011:"850eea4e",68018:"0f30c5ad",68047:"c999a946",68153:"43998ab0",68175:"90228bb5",68323:"f9f6ae98",68394:"b3396313",68658:"a74325e6",68666:"9ac594fe",68813:"7d4c4ecb",68969:"2bf8ce87",69075:"c6bce11f",69136:"86a399e3",69291:"90d2b9d5",69384:"8ff42b80",69412:"a1a00edb",69528:"b7e77135",69563:"dc85dd14",69676:"a6956aa7",69816:"1644689d",69863:"616b09a9",69881:"58d1457b",69888:"63f74da5",69902:"c30a71c0",70097:"d7e05a1a",70194:"9e124a36",70337:"a16d20bc",70460:"76e057b1",70465:"735402c7",70545:"1a5403d8",70624:"feac97af",70810:"d84ac91a",70879:"dba012ad",71043:"f2ceea06",71074:"3753d50f",71248:"fcc66901",71295:"b4dcc081",71335:"a3d09be7",71356:"0ef2868a",71397:"b7124f56",71480:"08f8268b",71611:"621d195a",71721:"8b22a819",71755:"cd173a4a",71786:"d2d798e3",71980:"a97751c4",72033:"bd23f6d7",72063:"b78181be",72153:"7e2f3c08",72188:"85b7fcc5",72412:"c04a0969",72467:"6ae010db",72486:"0b98cd63",72550:"a9298e3c",72564:"9f45fd73",72596:"0a00b615",72620:"2172830a",72656:"2d82512e",72658:"9cad756b",73081:"df906e38",73289:"7c6b8532",73300:"1f0c46f2",73465:"73188190",73480:"d917fb2a",73659:"513cf1b3",73753:"87a50e4d",73902:"e67fcd07",73968:"bfd65196",74059:"29d32ef5",74134:"4cfd31ef",74210:"ff8337b0",74323:"2f4d49ec",74507:"3ce153e9",74601:"3c00a4c7",74618:"e4984421",74692:"3376189a",74803:"52e045db",74843:"2e072d61",74963:"c367fb97",74996:"efda19e3",75011:"c21015fa",75277:"8afa4ecb",75329:"399f4899",75519:"285f9e5d",75674:"b1d00a72",75829:"78187562",75849:"92caef5c",75905:"e00b10c0",76057:"feafc619",76107:"87dcdbc1",76141:"25a9cc99",76180:"d0dd14ce",76295:"2865bdc0",76364:"8d8b55d1",76541:"ba8acfd5",76572:"ae23030c",76612:"13b6fb19",76642:"c9dd7e33",76738:"bf068bab",76841:"852b27d5",76850:"479ca94f",76918:"14a6b167",77008:"16e9cdf9",77166:"4ddfef73",77279:"25bbe067",77366:"c7ca07bf",77438:"f09cd7ea",77444:"63bad106",77573:"9c177513",77638:"c6be112b",77711:"81d43aab",77883:"d8775a8c",77938:"3cd19b34",78187:"98f32653",78217:"ea383ba7",78540:"1d09ccc1",78618:"8d804861",78662:"bf097e9d",78669:"e44be7fa",78719:"48e303ff",78870:"eb45be27",78884:"d71b49af",79026:"83a63a7c",79048:"93b76025",79101:"ba1a2842",79177:"7a6d4dc4",79217:"2d472d35",79272:"20bab4e6",79719:"bb293fad",79813:"61a56ccc",80007:"ccac749a",80176:"371ce4cc",80298:"1ef3970f",80485:"d116ebec",80497:"60570029",80532:"0f8a78fa",80545:"c3fd643d",80574:"23916609",80685:"d36690c2",80730:"536e9053",80819:"ff681459",80829:"a9b683c8",80970:"28a2ce95",81052:"0f83f0a6",81272:"e56aef8a",81294:"969eb4c1",81375:"2b4d73cf",81439:"48e36eec",81448:"35edb4d6",81555:"4ad4cce6",81568:"1d125bb8",81586:"756d030c",81831:"591c2c54",81885:"638657a4",81917:"b0265fcd",81925:"b7f2a096",82074:"8c2ee384",82081:"997e370e",82213:"a9fe7cbc",82243:"af355376",82421:"5d4dc4ee",82468:"17576da7",82540:"9a5e79ac",82569:"3ba32294",82575:"bf279abd",82634:"31d80148",82870:"b6626749",82917:"1c243502",82970:"bb4f282c",83058:"d0554e7c",83062:"4b623e97",83165:"17fa46b9",83249:"0b9230ee",83354:"72ff20db",83409:"52459ed9",83497:"71a2dd71",83598:"401640f2",83642:"e3e258bc",83644:"984e9be3",83658:"3d29fac2",83833:"3162a252",83944:"65da26e3",83966:"00dc39ee",84137:"0096febf",84280:"ce2407bc",84321:"41055f8f",84427:"2e170bf1",84455:"8a8ea11c",84497:"8c5bf599",84533:"6b8d72f4",84774:"8ab0f02f",84813:"3c006cd5",84829:"558b267f",85053:"e7319927",85171:"823f32e1",85216:"4844c78c",85381:"f9ecbf8b",85463:"1322deb7",85471:"ec948e77",85494:"32e0054b",85834:"a6745d83",85889:"75953048",85958:"e16c767a",86018:"e27d75e9",86044:"e37a283d",86202:"a813c25e",86374:"e7889258",86477:"bdef4018",86503:"294ce7b0",86597:"e85806c4",86603:"80a83c36",86721:"3f79b3dc",86781:"0478c6df",86865:"2df1868d",87041:"26cdad07",87154:"22f765e0",87163:"168795ff",87170:"bb503330",87229:"a91ff1d1",87347:"09e40baa",87479:"8733784a",87537:"10dcba31",87622:"6803613a",87740:"01942bc1",87749:"68473591",87795:"ffb655e2",87802:"0c30b905",87848:"bca72d5a",87870:"dae1d4e7",87970:"9033a7f3",88086:"99689e90",88151:"e72f17ff",88251:"1ad2b808",88545:"433e1aff",88633:"df36b832",88710:"3db8eaa7",88804:"a0b90625",88805:"13887d5c",89019:"ef010e7b",89107:"e839043f",89196:"644bc12b",89209:"5c23e8f9",89231:"0240adaf",89241:"cecccdae",89246:"25c02a2e",89267:"1d054a3c",89349:"dbdb4e13",89356:"5807b382",89392:"0f6dd550",89480:"75505db9",89522:"3b619488",89639:"7d3b4961",89642:"0b2a31a1",89889:"f6b49509",89914:"ab689159",90076:"f91192d3",90089:"bfae4463",90128:"15942ab4",90203:"b4d965b1",90214:"84556ce5",90349:"b5593723",90416:"2749e8f7",90440:"8524cd42",90457:"f58ca26d",90498:"3e49e067",90592:"360bf726",90618:"e6f93ba2",90810:"05159b9b",90910:"d8b254d5",91035:"f8debfc3",91078:"5a201d85",91139:"04ca9e54",91259:"4665895e",91624:"5630a03b",91721:"d3e5660e",91802:"48679a68",91832:"995dc262",91906:"cbae9db3",92128:"d454c5c0",92132:"9722d4c3",92282:"ec4a6ac4",92466:"533f6485",92554:"83b612a6",92562:"0dec28fb",92620:"cb7513bf",92637:"2e1d0451",92726:"457a5512",92764:"ea681512",92878:"7c34be35",93101:"62953700",93310:"f828f93b",93387:"b0539cf2",93564:"29b49537",93600:"f2ea881d",93613:"a85a05c8",93748:"2ef88dc8",93884:"cac21997",93933:"996fa08d",93988:"6af17b9d",94107:"6e5e16dc",94147:"f238b74a",94437:"5655807e",94446:"29363946",94697:"bd7c093e",94703:"01765d0d",94796:"74f32688",94952:"f9c305df",95031:"76073eb3",95063:"297ba730",95082:"dfc9851a",95216:"118108ff",95226:"90157cd4",95238:"14fde63f",95338:"f19f2b94",95367:"f425740a",95457:"5d02791e",95500:"16db0703",95550:"2c34bf4e",95577:"a18c117f",95591:"041588b2",95596:"1d3a718d",95644:"6943fe29",95830:"cd7997df",95889:"2cf32ffb",95894:"a861874b",95911:"84938d9f",96166:"aca10c51",96176:"b57e3078",96334:"3de4d1ea",96371:"40e69387",96401:"bacdf570",96501:"62800f8d",96681:"82cb94bd",97057:"bd760925",97136:"8041dfea",97184:"546ec104",97221:"50c38392",97289:"62d53cb7",97292:"f0c995ae",97512:"33889fd9",97566:"3fa61454",97588:"00242a51",97590:"b62702e4",97612:"63ffccbe",97614:"46819a2b",97705:"b485a928",97826:"fc9d30ac",97948:"5dadc226",97995:"c7e49d18",98085:"afd48b6c",98167:"f9639073",98271:"34feaddd",98383:"8c579191",98400:"bd42c034",98475:"cbc585c7",98526:"4d9b87b2",98550:"30410c65",98581:"a61add9f",98850:"71cd7012",98978:"59bf4c8a",99039:"d894e515",99055:"a5c574bf",99245:"09d81d5a",99372:"ddb86c03",99645:"1e4f9844",99652:"5cc3df7f",99668:"ffdf7eda",99949:"44a59a39"}[e]+".js",r.miniCssF=e=>{},r.g=function(){if("object"==typeof globalThis)return globalThis;try{return this||new Function("return this")()}catch(e){if("object"==typeof window)return window}}(),r.o=(e,d)=>Object.prototype.hasOwnProperty.call(e,d),c={},f="ls-fusion-docs:",r.l=(e,d,a,b)=>{if(c[e])c[e].push(d);else{var t,o;if(void 0!==a)for(var n=document.getElementsByTagName("script"),i=0;i{t.onerror=t.onload=null,clearTimeout(s);var f=c[e];if(delete c[e],t.parentNode&&t.parentNode.removeChild(t),f&&f.forEach((e=>e(a))),d)return d(a)},s=setTimeout(l.bind(null,void 0,{type:"timeout",target:t}),12e4);t.onerror=l.bind(null,t.onerror),t.onload=l.bind(null,t.onload),o&&document.head.appendChild(t)}},r.r=e=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},r.p="/",r.gca=function(e){return e={17896441:"18401",18087238:"45038",26562614:"95889",27978101:"12362",31880914:"17777",40079959:"3700",45919468:"35569",48634516:"23146",54102561:"29003",55462430:"60928",57859613:"54139",58447612:"23450",61476635:"89019",62561535:"76180",66406991:"14374",67190627:"7591",67616762:"97588",70030968:"20806",71540101:"28444",74067523:"7841",78850312:"75905",91230912:"26064","12fcb66e":"248",ffaf3051:"337","6723372e":"454",da2bb204:"510",c3937426:"524","56bf2589":"684","70bba45c":"777",da51142f:"787","8075e37c":"829","126761e4":"847","8e9f7f86":"922",f8b65bcf:"1003",f43f6780:"1143","314b8289":"1550","8d160890":"1801","568be4f2":"1827",e4d05c2b:"1864","3e585579":"1946","4e0d72ac":"2013",fe5d4fc2:"2038","9a6752cd":"2196",d0300432:"2253",fb97c684:"2272","80a222a7":"2282",bc1e2629:"2347",afa43b64:"2380",b34655e7:"2490","6bf606d5":"2524",cacf9b31:"2537","5ee76dc5":"2627","5d066053":"2780","0725d027":"2890","01834c4c":"2893","1e567a10":"2899","15fdd876":"3160","9ac3930f":"3217","46341a95":"3304","052a6d97":"3315","0b998202":"3491",e4437dc8:"3539","30a24c52":"3669","352f59be":"3962","024944b0":"4046","3d25f10b":"4072",fccbaa8a:"4138","3401db00":"4145","2e1297c6":"4270","3eaaed8f":"4380",a6676230:"4382","38066cd9":"4600","09e8369e":"4624","1f0d14dd":"4765",a74e5af2:"4896","9add4495":"5087",a92f1dee:"5132",b688cdc4:"5139","17b5cca9":"5168",fac7cdd0:"5387","6a17ced4":"5528",f7611eae:"5609","6aca40d7":"5759","94ee8623":"5905",f288aa6b:"5965","16ef2217":"6131",dde0f932:"6276","49b397e9":"6421","601dca15":"6444","82d1eb53":"6781",c30866a6:"6808","356e3172":"6827","7784095a":"6874","3ccf09c4":"7278",e535af1c:"7360","3baa3400":"7723",a4850994:"7811",b0a1c4d4:"7906",b8b939d1:"7975","8dfd147b":"7985",ea4a4292:"8015","69857d67":"8113","01a85c17":"8209","75c675c8":"8385","2a04efe7":"8629",dba3b6f0:"9159",dcf0db09:"9205","557fd269":"9211",f152ddf9:"9314","59a621e6":"9438",be0de10f:"9532","5e95c892":"9647",a024f78a:"9834","3d3ebec4":"10064",a135b49d:"10248",da96384a:"10291","6bddcc81":"10324",d610846f:"10330","7a9e23aa":"10354","677291ce":"10387",c9e287da:"10436",e5f9dd9d:"10737",bdb1b2f1:"10765",e82fa9a2:"10783","64616ca0":"10856",a1f3af9e:"10927","90605dce":"11186","020b2abb":"11192","009118ad":"11489","32a25c38":"11496",e16015ca:"11497","205ee6f9":"11545","92cf7b60":"11624",c1a27c51:"11862",b4d6c0c2:"11921","1ed7c529":"11965","47b6c9d3":"11979",b2b675dd:"11991","6c354dd3":"11997","48417a25":"12029","5383c9cf":"12167",de1fa229:"12209","3cee6f2b":"12327","9eb48b1c":"12449","0d3a481a":"12489",f17b8fc5:"12613",f7ea11ad:"12653","290f4c05":"12800",c57b668c:"12907",f6b71b72:"12956","58bce3a3":"12993","4f80f06f":"13019","5d9d588d":"13064","66e5c6a8":"13101","8f561205":"13256",aa9378a4:"13443","92029a1b":"13563","207275e3":"13566","5bd600ad":"13791",d2f348ca:"13920",bebdf8d7:"14011","09269e4e":"14165","6f90e3a4":"14175",bb66c49c:"14394",fc9158fa:"14396","536b1731":"14455",a2a5412a:"14522",ba8ad030:"14600","7ef3bdfb":"14788",ba167623:"14879",f5df3333:"14906",c18c8b11:"14988","0b420bde":"14992",bd5053b2:"14998","92d01391":"15040","94c6df18":"15066","86e47c47":"15231","028cea25":"15343","6008c803":"15467",fc5be455:"15514","730fb0f8":"15543","35fd922c":"15685",c4941d6c:"15775",cd9c3425:"15980",a7f9544a:"16066",a0a45cb6:"16211",a79250c1:"16265",bb09f00a:"16357","6a0f6bab":"16435","951179e8":"16496",b7ca464e:"16781",ae52150d:"16794","5187edfb":"16821",c5adf3a1:"17015",baf10df0:"17029","6602f274":"17043",ba9126e1:"17084",f72ee226:"17308","57f306b1":"17339","851f6438":"17504","6b20eb80":"17664","8bd50306":"17665",e249c6a0:"17767",ae953da5:"17784","5aae399f":"17810","2742f4fe":"17829","8ce9e7fd":"17952","190e2a12":"18070",bc99b2da:"18409",a39ec531:"18437",dd69638c:"18466",a2811096:"18649",ae81349d:"18662","3011cf5c":"18839",c3a6fa21:"18880",e952329e:"18925","08464a40":"18956","305109e6":"19044","7d885378":"19067","2696133d":"19275",cba1907b:"19298","5597694d":"19426",b8b265be:"19821",cf9dc769:"19958",bb96d313:"19969","689a88e0":"20160","3e4c692d":"20293","218ca708":"20491","12f77c82":"20563",ca2a456f:"20569","8a424567":"20704","9d1d1374":"20890","8025277c":"20967","9cba90bc":"21102",d3fe7700:"21105","53c3de20":"21250","9b3903e1":"21315","4b27ffe9":"21358","889af62c":"21380","98b57378":"21392","3c18655c":"21433",f3074970:"21517","150324ac":"21592","850a7836":"21649","5cda421a":"21778",b0034dbb:"21818","1685d987":"21917","4366298e":"21974",ea45dacf:"22122","4c9e35b1":"22161",cad4a10e:"22180","3e59ad6a":"22465",c5e58f52:"22726","081189a6":"22793","572069a1":"22804",a3389a28:"23162",f46d42b2:"23209",f1286dd7:"23435",efde1fe5:"23604","0316d822":"23645","2c3adde0":"23873",c817bfb2:"24014","1ea3a676":"24031","3a848f47":"24050",a7822689:"24244",e76da56a:"24376",b7d2c410:"24478","9c5725aa":"24706","7a1301e9":"24844","946c697d":"25008","86b94151":"25441","56bdc4fa":"25446",ed4b61d9:"25524","81ac3f50":"25634","6e9fa32d":"25755","3db4c89a":"25851","264da714":"25856",a47a9d5f:"25858","53af05f0":"26029",c96f6d69:"26126",a988badf:"26127","9e253187":"26229",e91a2889:"26460","86c0d560":"26591","38d0f6a8":"26661",b4253237:"26703","7fd3fa86":"26942",aa337fe7:"27008","58202a7e":"27145",b33fa6b2:"27152","4f61b578":"27188",ef5b546c:"27269",ff91b461:"27380","03279be8":"27583","010b4e9f":"27652","22a912fe":"27815",abd1d192:"27907","0ffedb1f":"28233",ff3016d2:"28533","7776d727":"28828","19a65fec":"28837","1c9bf1d6":"28895","94e6c864":"28950",e76f974f:"29041","0c03ad02":"29074",c7985978:"29213","277a36ff":"29273","4863caaf":"29291","8ca4b436":"29314","482beed6":"29347","28d15280":"29629",cbeb3d8b:"29634",d79a3b0b:"29659","44668a19":"29720",b135909b:"29794","3e4679dc":"29862","8d676d70":"29953","576c31dc":"30137",b9b74444:"30221","2a17bbe3":"30440","2007ff27":"30503","596382d8":"30517","8e9d1b33":"30598",e907ad55:"30747","572ad180":"30817","4bcf86b6":"30859",bbea21e4:"30885","7742d347":"30915","9d756d6b":"31166",b0ed8477:"31368",ce553083:"31415","3d93b3fe":"31460",cb6a4028:"31701","9fa8ec49":"32104","724b327c":"32195",af7e1017:"32505",c37d32cc:"32645","6bcfcd91":"32675",b40bf404:"32741",b3785fdb:"33040",f4b244e0:"33046","8aea9203":"33174",f28880f6:"33235","262c386c":"33258","97b55758":"33267",bb3eaf01:"33379",c1ff40dc:"33480","296e45da":"33695","51fe6e29":"33750","4b443f1f":"33847",bdc0ba33:"34121",cdcc7de8:"34586","557b46b8":"34598",c18dfc94:"34601","3cf7562b":"34617","57dd4404":"34627","70242f0c":"34727",a0130784:"34887","198af777":"35051","2c05566d":"35252",bdafb66c:"35289","0e91de8b":"35431","7b66b1b9":"35732",d5b4b205:"35829","67275e26":"35857","02e19516":"36016",e6ee5a86:"36112",a96df2a1:"36145","8a893709":"36356","7a006d9d":"36358",d8030e5b:"36380",bca7b478:"36409","52b8791a":"36490",f897154c:"36700","3ccb4b9c":"36732","7004948d":"36741",b676fb4f:"36750",fab9675f:"36867","3ff6fd03":"37509","93de59ca":"37556",a6aa9e1f:"37643",c43d2143:"37811","17f605b7":"37895","08b050ac":"37970","5202d7a7":"37999",d8e702d0:"38013","9ee914be":"38183",c20d97b0:"38334","45ca92d7":"38428","61d54a2f":"38460","1e10d35a":"38483","305d24a8":"38600","245174cd":"38663","2dccd00e":"38682","0e901f17":"38712",dd137f0b:"38810","473b8a7c":"38868","8dfd9b37":"38890","41cb9c1e":"38995",dcb0dfaf:"39113","3a1a370c":"39268","493cd66d":"39424","9cb0c414":"39711","61e16be9":"39732","2400124e":"39837","2f10980e":"39846","0ed2aab5":"39909",da278063:"40310",bb9ce830:"40313","4aae2601":"40601",dfa2316f:"40740","1e7a3293":"40754","986e2820":"40803",d6bb40ef:"40852",c9d93429:"41004","13830c90":"41308",b4df5dd4:"41608","3a10f78a":"41676","9ac004df":"41722",a1f7f6b6:"41928","9f593769":"41941",a896f8d7:"41948",a51a415d:"42061","2ba0bd54":"42105",dc0552d2:"42114","28fde7c8":"42234","0405bddc":"42467",ddf3c102:"42532","11282f6f":"42547",c31ca34e:"42616",ad940528:"42876",e9f810f8:"42950","11f7e57c":"43220","5ab0c7fe":"43298","47dc2297":"43319",bf777b2d:"43416","62da3164":"43468",e6b32f56:"43622","1ab14b9a":"43874",eacdc575:"44552",edc56720:"44775","7be871cb":"44788",deb49e8d:"45094","6260ce16":"45136",ef14d8b6:"45277",c9932547:"45391","18faa4f3":"45513","93131f85":"45559",b4d6d1b1:"45625","66da8d63":"45751",faf5ceef:"45902","6dd43181":"46172",bdd709f1:"46244",c24ab460:"46381","752b55f0":"46407",e6ad2512:"46535",ffa0d2bb:"46694",ff68c48b:"47078","183692ab":"47143","78377feb":"47274","3737ed59":"47302","1ab99136":"47399",a7eb7d96:"47606","6248e816":"47701","8c9149ad":"47724",a76ec1f7:"47797","4ec01f01":"47847",b5ed59a1:"47907","42f09255":"48056","7231de5c":"48101",fe30965a:"48106",bea5f57a:"48173",e4974747:"48243","74eaacd4":"48304","2a503532":"48508","94f0dbcb":"48807",be86555e:"48946",d083fbfa:"49099","733f8880":"49194","8ba2098d":"49421","7767d82c":"49657",e4403cb0:"49692","941a2e5c":"49697","100581b2":"49852","14831f8b":"50052",c510df87:"50177",f65eb504:"50206","493f07fa":"50333",a5fe5778:"50391","5142cdc7":"50468","523d99bf":"50557","2d57165d":"50575","74581a64":"50597",e34a95cb:"50599","09253d76":"50731",db0f9203:"50885","1f0b3959":"50974","7714b3f0":"51241","3a631c43":"51261","096bfee4":"51398",c82b4cb1:"51682",ead87263:"51835","35309c38":"51979","4366f8cb":"52089","9c40ea7d":"52220","652e4f6c":"52264","11082e32":"52381","1b55afb5":"52458","9e4087bc":"52711",e483bb51:"52753","93499cec":"52806","0f07bfca":"52898","39f211d1":"53240","27c4b6e1":"53409","8f11acd5":"53694","47619fe4":"53805","17873a97":"53928","8fad2f9d":"54009","470cbdf7":"54024",ea97ac1f:"54132",ebdae326:"54271","69cc9f3f":"54312",c24c1a5a:"54391","279ae274":"54472","7f4ab99b":"54635","4272fc1d":"54664","608ae6a4":"54722",c9ea411a:"54746","5fc35fb0":"54787","4626f2c8":"54804",a7effb6d:"54892",c3a35c08:"54917",e36a0092:"54925","808be357":"55017",a2c91a48:"55056","6b35c79d":"55250","322b9fa0":"55310",c5245225:"55371",d9bdaac5:"55498","84a4b4d2":"55552",eb27373d:"55780","293b6f39":"55851","23a66029":"56090","8abc8494":"56192","54fce789":"56232",c80bf25a:"56246","2835acb8":"56255",af5cd4f0:"56256","4965a8e8":"56273",adcd2e37:"56280","29740fbd":"56333","44ce8d0a":"56426",db8a2f2e:"56587","14eb0c94":"57253","071b25d5":"57303","96cd198d":"57477",fb2f3e51:"57505","9f24941e":"57633","089ad446":"57663","418e0342":"57722","93721f16":"57728","790f06e2":"57834","567ab979":"57981",ff197e2a:"58102",bd373c01:"58120",f739c313:"58348","6b7294c1":"58451","5ffbdeb3":"58558","814db39b":"58594","7cf51ccd":"58643","79c98027":"58854","063831dc":"58895","17dfd4b6":"58933","34c3eda1":"59241",cf016b30:"59384","66896f7f":"59445",ca515d4d:"59562",e3e5aa22:"59599","81f6e608":"59679","8a75ff44":"59790",ddd163a2:"59850","0309cbdc":"60121",d177da86:"60135",f55b8115:"60214",af6ce90f:"60467","7f5a9435":"60497",e5d014aa:"60548","8a993aba":"60639","22dbe7bb":"60765",dd668fd3:"60894","929dc912":"60896","1049ca79":"60917",ac37a370:"61068","053aba71":"61221","545b195b":"61234","0363ba50":"61245",fe34ece7:"61341",efc702ff:"61610","03bc899e":"61782","25b4346c":"61830","4dec6ce1":"61836",f65beda4:"62046","933d2dcf":"62083","1a4e3797":"62138",c331ac4d:"62285",c6d876cc:"62341","425d2d5c":"62344","74b42b47":"62479","72754f40":"62490","90cb08a2":"62902","0b024c6b":"62976","9acb76ea":"63027","7f0f9fd5":"63062","34026fad":"63143","54dcaa0b":"63331",edb215fa:"63709","8fb76749":"63876","0df7e9a4":"64047",a40169f6:"64114","45a593b9":"64139",d9c134a3:"64311",a1d696f9:"64409",e95454dd:"64433",a911e7e6:"64586","10f9e06d":"64590","350e096e":"64616","6cbe3c00":"64659",c8207785:"64755","41a08930":"65133","4b8df818":"65152",fa755ce0:"65155","8d44033a":"65200",e062462b:"65222",bd80b57e:"65290","4a07a94d":"65451","93991cd0":"65517",e5cabba2:"65560",e48b5b6b:"65659",cb6ece47:"65700","8a73e53c":"65792","1f391b9e":"66061","2868cdab":"66079","450ccefe":"66154",a0f02a96:"66168",d9025d82:"66425",a5728785:"66428",f34ca334:"66660","6cd94b4b":"66815","3505e380":"66842","5c2e2089":"66899","470b1f7f":"66904",dbf812c0:"66947","236bc1bf":"67042",a7bd4aaa:"67098",f547184b:"67146","6f8eea3d":"67253","52f8eb20":"67295","4107898e":"67385","814f3328":"67472","362d51d4":"67668","308219a2":"67679","87b53f3b":"67787","9a1a9cf2":"67887","5955506f":"67964",e24cb539:"67974","9fdb8713":"68011",fd79333d:"68018","4e2c4f37":"68047","2669367c":"68153",e67c0d43:"68175","819832a6":"68323",be949f88:"68394",be63a1d1:"68658","2adc6054":"68666",ccb693b6:"68813",bf8d3c80:"68969","8d3ad523":"69075","10024d28":"69136",f7ce4f94:"69291","288c26ee":"69384","9a41823c":"69412","761d7ef5":"69528","2b7e389b":"69563",c65aae6f:"69676",be0c0aa5:"69816","3953ecec":"69863",a7841e3a:"69881",e8a10efa:"69888",b2f70659:"69902","1924664f":"70097","05570387":"70194",e458eb98:"70337",d999b08f:"70460",dc9b0273:"70465",bc7e2dde:"70545","9c7d1b50":"70624",bb5ef324:"70810","108d6d89":"70879","03765b16":"71043","3eb5acbd":"71074",be59f68b:"71248",fcf85bf4:"71295",e873d9c1:"71335","21b1b445":"71356","964e650e":"71397","3102433c":"71480","86e3fe78":"71611","6b3fa53b":"71721",be3592bd:"71755",e23d52e7:"71786","6acc3b30":"71980",d378ffa3:"72033","6b0d9667":"72063","359bd289":"72153","0d426c35":"72188","87b2c874":"72412",e42c090c:"72467","1d72fc04":"72486","417205b4":"72550",d344b640:"72564",a7f0e895:"72596",e1da9db5:"72620","7dc17292":"72656","347eefb7":"72658","3dd5094c":"73289","4ec97119":"73300","654e019f":"73465",eed6c09e:"73480",a64b7925:"73659",f01bfdad:"73753","12d0d673":"73902","13aa5b84":"73968","8fef5462":"74059","393be207":"74134","4af3180b":"74210","8e9f0a8a":"74323","888a9eb1":"74507",e2222d85:"74601","7b1be938":"74618","3d061cbb":"74692","08bc2fd9":"74803",c8b7d8c9:"74843","88010c7c":"74963","9a96f352":"74996","6d4a59e6":"75011",b86e836f:"75277",cb390922:"75329","60afbb6a":"75519","06469ad7":"75674",e6904ee2:"75829","36aa1211":"75849","88ce5a88":"76057","2985d024":"76107","1249f471":"76141","925bf011":"76295",f0050945:"76364",eeb46d93:"76541",e8b0059d:"76572","56a4992e":"76612",f2e06602:"76642","7178b091":"76738","19a12457":"76841","0b75be44":"76850",a7a94ca7:"76918","70a637fc":"77008","3082da76":"77166","870989fe":"77279","4d25e953":"77366",fc0a57b7:"77438",b2cdfc03:"77444",a641a08a:"77573",c6fd80a3:"77638",cdc4f532:"77711",e270a67d:"77883",caf4d4e8:"77938","0731855e":"78187",b0fdad27:"78217","19612e92":"78540","266009b8":"78618",e0cb7e9b:"78662","7e6a1518":"78669","39af3e45":"78719","977a120d":"78870","7f851217":"78884","6252cb7f":"79026",a94703ab:"79048","3aa8fb49":"79101","18df7763":"79177",a220f06a:"79217","151606db":"79272","72696fbb":"79719",ce92a480:"79813","524de75b":"80007",db8a1c1c:"80176",ee3b1858:"80298","7161856f":"80485",a80da1cf:"80497",f264b025:"80532","1d40c453":"80545",d0428371:"80574",e38d51ce:"80685",b3e62ffc:"80730",e623d6b8:"80819","9dfa7700":"80829","5cbd93e8":"80970","9ff069d3":"81052","466bb3bf":"81272","0158928f":"81294","856d3e3f":"81375",b92a6266:"81439",ebd976f2:"81448",b83930dc:"81555","60ed3f6c":"81568","696d99ee":"81586","1a43103c":"81831","6bb1c934":"81885",b11736aa:"81917","60a0792e":"81925",b5d280ff:"82074",f7c13ceb:"82081",c77e940c:"82213","020164af":"82243","85ff8ae5":"82421",e5224bf9:"82468",b39c107d:"82540",f2cfa2a7:"82569",d70e32ab:"82575","78dd2d7c":"82634","49ad9989":"82870","7346d756":"82917","4458a59c":"82970",d40c5d30:"83058",b0b45554:"83062","225242c8":"83165",ccc49370:"83249","9d2c8313":"83354",f991cd73:"83409","65b935d6":"83497","45ac43d7":"83598","60aaf6d9":"83642","85ae8b77":"83644","8fd46ed4":"83658","26c7efd1":"83833","224c1d61":"83944","69ce70d3":"83966","7fc84d53":"84137","18103d28":"84280","7838c6ab":"84321",bb128489:"84427","91c67fe1":"84455",be71ca1f:"84497","1e05dda2":"84533","1626a70d":"84774","6875c492":"84813","9a4b1d4e":"84829",b55aa295:"85053",a9f37dd6:"85171","6e5a110d":"85216","4323d260":"85381","255f7ae1":"85463",c7cd36ac:"85471","763dc45a":"85494",ec4fbbf5:"85834","3e735601":"85889",dfd2a95d:"85958","29e7a45f":"86018","15048ece":"86044","36c31f16":"86202","1d9d4052":"86374",fa9d0183:"86477","768693d1":"86503",fe0eb9a8:"86597","719ecebd":"86603","21e22679":"86721","80b60d64":"86781","33f62802":"86865","76eea44d":"87041","300557da":"87154","904c5dc2":"87163","50e07840":"87170","46fdcfd5":"87229","800dedf1":"87347",d70e479b:"87479",a0d87d22:"87537","0cab1ca0":"87622",d8123b4e:"87740",e57684cb:"87749","2eafaf58":"87795","85ad8407":"87802","6b3ad60e":"87848",cd590cc4:"87870","20e873f4":"87970",e83e8e90:"88086","914404a1":"88151",d3772fcd:"88251","23307cd4":"88545","167652a6":"88633","573a32cc":"88710","8137d431":"88804","409581e6":"88805","813c5646":"89107","6df1167f":"89196","4b65008c":"89209","061d06b5":"89231","105c35c4":"89241",ab3acd0e:"89246",a7023ddc:"89267",bf778798:"89349","67bb5f29":"89356",f0cda9ee:"89392","5c5ce237":"89480","1c19c503":"89522",b6c9048d:"89639",e8291ed7:"89642","16ac7d64":"89889","0ac7dfac":"89914","327843a1":"90076","43560fdb":"90089","0c95808b":"90128",e5f14a48:"90203","86027dce":"90214","3944f4d0":"90349","079875e0":"90416",f25b4e76:"90440",a356d861:"90457",b54c34f6:"90498",af172acd:"90592",fd8bd593:"90618",d8c75aab:"90810","48e0df6b":"90910","10a408ff":"91035","4500717a":"91078","3bcbe779":"91139","0c2bde02":"91259","5d7854ee":"91624","0e2a382c":"91721",d660974a:"91802","45ec0b53":"91832","7285be48":"91906",f9396bbf:"92128","09d655f0":"92132","8d2c5b8a":"92282","9d03f0f1":"92466","6ef9d53a":"92554",c0b24b68:"92562",a1864d4c:"92620","0913d920":"92637","378a04e9":"92726","6b7b22fb":"92764","847cfb29":"92878",f2ce6c58:"93101",f8990f5d:"93310","937af0fd":"93387","6e21121a":"93564",c9451cfd:"93600","304ea052":"93613",f1844afc:"93748","30b090fe":"93884","9de1aaaf":"93933","8f6be87c":"93988","30f115bb":"94107",cad1d944:"94147","8e32fe61":"94437",cf0f284f:"94446","1f9a27ac":"94697","6a294d93":"94703","2cfecc25":"94796",cb42debe:"94952",e6ca5891:"95031","758f575e":"95063","1f7f27b4":"95082","48b56ed7":"95216",c4aed824:"95226","9f682853":"95238","924130ca":"95338",f154dce4:"95367",eb5ca0ce:"95457","7d706e04":"95500",eeb8e89e:"95550","0ea902c2":"95577","6c4a10fa":"95591","2de83f92":"95596","1c1ca6fd":"95644",e5c318a1:"95830",b2f554cd:"95894",cefe6d85:"95911","2e20e09d":"96166",de0ffc1f:"96176","031793e1":"96334","5cefb82a":"96371",b340d1a5:"96401",d6e8f7e1:"96501","8e827e8a":"96681","5a335306":"97057","5e119875":"97136",ea85e407:"97184","11a68ed0":"97221","5cc3371a":"97289","5bc5170f":"97292",ec423149:"97512","6b26cec4":"97566","0cdc2010":"97590","3b8f7586":"97612","76de6265":"97614","0f9f4702":"97705","46ed2231":"97826","15c1d801":"97948","74a2c672":"97995","56d52a81":"98085","6cd7d4e5":"98167","6395d7a7":"98271",aa074a57:"98383",d743a1d5:"98400","3570154c":"98475","9439d9b9":"98526","86cda1c5":"98550","935f2afb":"98581","1065ee2a":"98850","1ed419c0":"98978","5458faed":"99039","24d58b49":"99055","9573cbc4":"99245",e679f2e1:"99372","2df6bfe3":"99645","8bfe30f1":"99652",e4e3af74:"99668",b8a5e324:"99949"}[e]||e,r.p+r.u(e)},(()=>{var e={45354:0,71869:0};r.f.j=(d,a)=>{var c=r.o(e,d)?e[d]:void 0;if(0!==c)if(c)a.push(c[2]);else if(/^(45354|71869)$/.test(d))e[d]=0;else{var f=new Promise(((a,f)=>c=e[d]=[a,f]));a.push(c[2]=f);var b=r.p+r.u(d),t=new Error;r.l(b,(a=>{if(r.o(e,d)&&(0!==(c=e[d])&&(e[d]=void 0),c)){var f=a&&("load"===a.type?"missing":a.type),b=a&&a.target&&a.target.src;t.message="Loading chunk "+d+" failed.\n("+f+": "+b+")",t.name="ChunkLoadError",t.type=f,t.request=b,c[1](t)}}),"chunk-"+d,d)}},r.O.j=d=>0===e[d];var d=(d,a)=>{var c,f,b=a[0],t=a[1],o=a[2],n=0;if(b.some((d=>0!==e[d]))){for(c in t)r.o(t,c)&&(r.m[c]=t[c]);if(o)var i=o(r)}for(d&&d(a);n{"use strict";var e,d,a,c,f,b={},t={};function r(e){var d=t[e];if(void 0!==d)return d.exports;var a=t[e]={exports:{}};return b[e].call(a.exports,a,a.exports,r),a.exports}r.m=b,e=[],r.O=(d,a,c,f)=>{if(!a){var b=1/0;for(i=0;i=f)&&Object.keys(r.O).every((e=>r.O[e](a[o])))?a.splice(o--,1):(t=!1,f0&&e[i-1][2]>f;i--)e[i]=e[i-1];e[i]=[a,c,f]},r.n=e=>{var d=e&&e.__esModule?()=>e.default:()=>e;return r.d(d,{a:d}),d},a=Object.getPrototypeOf?e=>Object.getPrototypeOf(e):e=>e.__proto__,r.t=function(e,c){if(1&c&&(e=this(e)),8&c)return e;if("object"==typeof e&&e){if(4&c&&e.__esModule)return e;if(16&c&&"function"==typeof e.then)return e}var f=Object.create(null);r.r(f);var b={};d=d||[null,a({}),a([]),a(a)];for(var t=2&c&&e;"object"==typeof t&&!~d.indexOf(t);t=a(t))Object.getOwnPropertyNames(t).forEach((d=>b[d]=()=>e[d]));return b.default=()=>e,r.d(f,b),f},r.d=(e,d)=>{for(var a in d)r.o(d,a)&&!r.o(e,a)&&Object.defineProperty(e,a,{enumerable:!0,get:d[a]})},r.f={},r.e=e=>Promise.all(Object.keys(r.f).reduce(((d,a)=>(r.f[a](e,d),d)),[])),r.u=e=>"assets/js/"+({248:"12fcb66e",337:"ffaf3051",454:"6723372e",510:"da2bb204",524:"c3937426",684:"56bf2589",777:"70bba45c",787:"da51142f",829:"8075e37c",847:"126761e4",922:"8e9f7f86",1003:"f8b65bcf",1143:"f43f6780",1550:"314b8289",1801:"8d160890",1827:"568be4f2",1864:"e4d05c2b",1946:"3e585579",2013:"4e0d72ac",2038:"fe5d4fc2",2196:"9a6752cd",2253:"d0300432",2272:"fb97c684",2282:"80a222a7",2347:"bc1e2629",2380:"afa43b64",2490:"b34655e7",2524:"6bf606d5",2537:"cacf9b31",2627:"5ee76dc5",2780:"5d066053",2890:"0725d027",2893:"01834c4c",2899:"1e567a10",3160:"15fdd876",3217:"9ac3930f",3304:"46341a95",3315:"052a6d97",3491:"0b998202",3539:"e4437dc8",3669:"30a24c52",3700:"40079959",3962:"352f59be",4046:"024944b0",4072:"3d25f10b",4138:"fccbaa8a",4145:"3401db00",4270:"2e1297c6",4380:"3eaaed8f",4382:"a6676230",4600:"38066cd9",4624:"09e8369e",4765:"1f0d14dd",4896:"a74e5af2",5087:"9add4495",5132:"a92f1dee",5139:"b688cdc4",5168:"17b5cca9",5387:"fac7cdd0",5528:"6a17ced4",5609:"f7611eae",5759:"6aca40d7",5905:"94ee8623",5965:"f288aa6b",6131:"16ef2217",6276:"dde0f932",6421:"49b397e9",6444:"601dca15",6781:"82d1eb53",6808:"c30866a6",6827:"356e3172",6874:"7784095a",7278:"3ccf09c4",7360:"e535af1c",7591:"67190627",7723:"3baa3400",7811:"a4850994",7841:"74067523",7906:"b0a1c4d4",7975:"b8b939d1",7985:"8dfd147b",8015:"ea4a4292",8113:"69857d67",8209:"01a85c17",8385:"75c675c8",8629:"2a04efe7",9159:"dba3b6f0",9205:"dcf0db09",9211:"557fd269",9314:"f152ddf9",9438:"59a621e6",9532:"be0de10f",9647:"5e95c892",9834:"a024f78a",10064:"3d3ebec4",10248:"a135b49d",10291:"da96384a",10324:"6bddcc81",10330:"d610846f",10354:"7a9e23aa",10387:"677291ce",10436:"c9e287da",10737:"e5f9dd9d",10765:"bdb1b2f1",10783:"e82fa9a2",10856:"64616ca0",10927:"a1f3af9e",11186:"90605dce",11192:"020b2abb",11489:"009118ad",11496:"32a25c38",11497:"e16015ca",11545:"205ee6f9",11624:"92cf7b60",11862:"c1a27c51",11921:"b4d6c0c2",11965:"1ed7c529",11979:"47b6c9d3",11991:"b2b675dd",11997:"6c354dd3",12029:"48417a25",12167:"5383c9cf",12209:"de1fa229",12327:"3cee6f2b",12362:"27978101",12449:"9eb48b1c",12489:"0d3a481a",12613:"f17b8fc5",12653:"f7ea11ad",12800:"290f4c05",12907:"c57b668c",12956:"f6b71b72",12993:"58bce3a3",13019:"4f80f06f",13064:"5d9d588d",13101:"66e5c6a8",13256:"8f561205",13443:"aa9378a4",13563:"92029a1b",13566:"207275e3",13791:"5bd600ad",13920:"d2f348ca",14011:"bebdf8d7",14165:"09269e4e",14175:"6f90e3a4",14374:"66406991",14394:"bb66c49c",14396:"fc9158fa",14455:"536b1731",14522:"a2a5412a",14600:"ba8ad030",14788:"7ef3bdfb",14879:"ba167623",14906:"f5df3333",14988:"c18c8b11",14992:"0b420bde",14998:"bd5053b2",15040:"92d01391",15066:"94c6df18",15231:"86e47c47",15343:"028cea25",15467:"6008c803",15514:"fc5be455",15543:"730fb0f8",15685:"35fd922c",15775:"c4941d6c",15980:"cd9c3425",16066:"a7f9544a",16211:"a0a45cb6",16265:"a79250c1",16357:"bb09f00a",16435:"6a0f6bab",16496:"951179e8",16781:"b7ca464e",16794:"ae52150d",16821:"5187edfb",17015:"c5adf3a1",17029:"baf10df0",17043:"6602f274",17084:"ba9126e1",17308:"f72ee226",17339:"57f306b1",17504:"851f6438",17664:"6b20eb80",17665:"8bd50306",17767:"e249c6a0",17777:"31880914",17784:"ae953da5",17810:"5aae399f",17829:"2742f4fe",17952:"8ce9e7fd",18070:"190e2a12",18401:"17896441",18409:"bc99b2da",18437:"a39ec531",18466:"dd69638c",18649:"a2811096",18662:"ae81349d",18839:"3011cf5c",18880:"c3a6fa21",18925:"e952329e",18956:"08464a40",19044:"305109e6",19067:"7d885378",19275:"2696133d",19298:"cba1907b",19426:"5597694d",19821:"b8b265be",19958:"cf9dc769",19969:"bb96d313",20160:"689a88e0",20293:"3e4c692d",20491:"218ca708",20563:"12f77c82",20569:"ca2a456f",20704:"8a424567",20806:"70030968",20890:"9d1d1374",20967:"8025277c",21102:"9cba90bc",21105:"d3fe7700",21250:"53c3de20",21315:"9b3903e1",21358:"4b27ffe9",21380:"889af62c",21392:"98b57378",21433:"3c18655c",21517:"f3074970",21592:"150324ac",21649:"850a7836",21778:"5cda421a",21818:"b0034dbb",21917:"1685d987",21974:"4366298e",22122:"ea45dacf",22161:"4c9e35b1",22180:"cad4a10e",22465:"3e59ad6a",22726:"c5e58f52",22793:"081189a6",22804:"572069a1",23146:"48634516",23162:"a3389a28",23209:"f46d42b2",23435:"f1286dd7",23450:"58447612",23604:"efde1fe5",23645:"0316d822",23873:"2c3adde0",24014:"c817bfb2",24031:"1ea3a676",24050:"3a848f47",24244:"a7822689",24376:"e76da56a",24478:"b7d2c410",24706:"9c5725aa",24844:"7a1301e9",25008:"946c697d",25441:"86b94151",25446:"56bdc4fa",25524:"ed4b61d9",25634:"81ac3f50",25755:"6e9fa32d",25851:"3db4c89a",25856:"264da714",25858:"a47a9d5f",26029:"53af05f0",26064:"91230912",26126:"c96f6d69",26127:"a988badf",26229:"9e253187",26460:"e91a2889",26591:"86c0d560",26661:"38d0f6a8",26703:"b4253237",26942:"7fd3fa86",27008:"aa337fe7",27145:"58202a7e",27152:"b33fa6b2",27188:"4f61b578",27269:"ef5b546c",27380:"ff91b461",27583:"03279be8",27652:"010b4e9f",27815:"22a912fe",27907:"abd1d192",28233:"0ffedb1f",28444:"71540101",28533:"ff3016d2",28828:"7776d727",28837:"19a65fec",28895:"1c9bf1d6",28950:"94e6c864",29003:"54102561",29041:"e76f974f",29074:"0c03ad02",29213:"c7985978",29273:"277a36ff",29291:"4863caaf",29314:"8ca4b436",29347:"482beed6",29629:"28d15280",29634:"cbeb3d8b",29659:"d79a3b0b",29720:"44668a19",29794:"b135909b",29862:"3e4679dc",29953:"8d676d70",30137:"576c31dc",30221:"b9b74444",30440:"2a17bbe3",30503:"2007ff27",30517:"596382d8",30598:"8e9d1b33",30747:"e907ad55",30817:"572ad180",30859:"4bcf86b6",30885:"bbea21e4",30915:"7742d347",31166:"9d756d6b",31368:"b0ed8477",31415:"ce553083",31460:"3d93b3fe",31701:"cb6a4028",32104:"9fa8ec49",32195:"724b327c",32505:"af7e1017",32645:"c37d32cc",32675:"6bcfcd91",32741:"b40bf404",33040:"b3785fdb",33046:"f4b244e0",33174:"8aea9203",33235:"f28880f6",33258:"262c386c",33267:"97b55758",33379:"bb3eaf01",33480:"c1ff40dc",33695:"296e45da",33750:"51fe6e29",33847:"4b443f1f",34121:"bdc0ba33",34586:"cdcc7de8",34598:"557b46b8",34601:"c18dfc94",34617:"3cf7562b",34627:"57dd4404",34727:"70242f0c",34887:"a0130784",35051:"198af777",35252:"2c05566d",35289:"bdafb66c",35431:"0e91de8b",35569:"45919468",35732:"7b66b1b9",35829:"d5b4b205",35857:"67275e26",36016:"02e19516",36112:"e6ee5a86",36145:"a96df2a1",36356:"8a893709",36358:"7a006d9d",36380:"d8030e5b",36409:"bca7b478",36490:"52b8791a",36700:"f897154c",36732:"3ccb4b9c",36741:"7004948d",36750:"b676fb4f",36867:"fab9675f",37509:"3ff6fd03",37556:"93de59ca",37643:"a6aa9e1f",37811:"c43d2143",37895:"17f605b7",37970:"08b050ac",37999:"5202d7a7",38013:"d8e702d0",38183:"9ee914be",38334:"c20d97b0",38428:"45ca92d7",38460:"61d54a2f",38483:"1e10d35a",38600:"305d24a8",38663:"245174cd",38682:"2dccd00e",38712:"0e901f17",38810:"dd137f0b",38868:"473b8a7c",38890:"8dfd9b37",38995:"41cb9c1e",39113:"dcb0dfaf",39268:"3a1a370c",39424:"493cd66d",39711:"9cb0c414",39732:"61e16be9",39837:"2400124e",39846:"2f10980e",39909:"0ed2aab5",40310:"da278063",40313:"bb9ce830",40601:"4aae2601",40740:"dfa2316f",40754:"1e7a3293",40803:"986e2820",40852:"d6bb40ef",41004:"c9d93429",41308:"13830c90",41608:"b4df5dd4",41676:"3a10f78a",41722:"9ac004df",41928:"a1f7f6b6",41941:"9f593769",41948:"a896f8d7",42061:"a51a415d",42105:"2ba0bd54",42114:"dc0552d2",42234:"28fde7c8",42467:"0405bddc",42532:"ddf3c102",42547:"11282f6f",42616:"c31ca34e",42876:"ad940528",42950:"e9f810f8",43220:"11f7e57c",43298:"5ab0c7fe",43319:"47dc2297",43416:"bf777b2d",43468:"62da3164",43622:"e6b32f56",43874:"1ab14b9a",44552:"eacdc575",44775:"edc56720",44788:"7be871cb",45038:"18087238",45094:"deb49e8d",45136:"6260ce16",45277:"ef14d8b6",45391:"c9932547",45513:"18faa4f3",45559:"93131f85",45625:"b4d6d1b1",45751:"66da8d63",45902:"faf5ceef",46172:"6dd43181",46244:"bdd709f1",46381:"c24ab460",46407:"752b55f0",46535:"e6ad2512",46694:"ffa0d2bb",47078:"ff68c48b",47143:"183692ab",47274:"78377feb",47302:"3737ed59",47399:"1ab99136",47606:"a7eb7d96",47701:"6248e816",47724:"8c9149ad",47797:"a76ec1f7",47847:"4ec01f01",47907:"b5ed59a1",48056:"42f09255",48101:"7231de5c",48106:"fe30965a",48173:"bea5f57a",48243:"e4974747",48304:"74eaacd4",48508:"2a503532",48807:"94f0dbcb",48946:"be86555e",49099:"d083fbfa",49194:"733f8880",49421:"8ba2098d",49657:"7767d82c",49692:"e4403cb0",49697:"941a2e5c",49852:"100581b2",50052:"14831f8b",50177:"c510df87",50206:"f65eb504",50333:"493f07fa",50391:"a5fe5778",50468:"5142cdc7",50557:"523d99bf",50575:"2d57165d",50597:"74581a64",50599:"e34a95cb",50731:"09253d76",50885:"db0f9203",50974:"1f0b3959",51241:"7714b3f0",51261:"3a631c43",51398:"096bfee4",51682:"c82b4cb1",51835:"ead87263",51979:"35309c38",52089:"4366f8cb",52220:"9c40ea7d",52264:"652e4f6c",52381:"11082e32",52458:"1b55afb5",52711:"9e4087bc",52753:"e483bb51",52806:"93499cec",52898:"0f07bfca",53240:"39f211d1",53409:"27c4b6e1",53694:"8f11acd5",53805:"47619fe4",53928:"17873a97",54009:"8fad2f9d",54024:"470cbdf7",54132:"ea97ac1f",54139:"57859613",54271:"ebdae326",54312:"69cc9f3f",54391:"c24c1a5a",54472:"279ae274",54635:"7f4ab99b",54664:"4272fc1d",54722:"608ae6a4",54746:"c9ea411a",54787:"5fc35fb0",54804:"4626f2c8",54892:"a7effb6d",54917:"c3a35c08",54925:"e36a0092",55017:"808be357",55056:"a2c91a48",55250:"6b35c79d",55310:"322b9fa0",55371:"c5245225",55498:"d9bdaac5",55552:"84a4b4d2",55780:"eb27373d",55851:"293b6f39",56090:"23a66029",56192:"8abc8494",56232:"54fce789",56246:"c80bf25a",56255:"2835acb8",56256:"af5cd4f0",56273:"4965a8e8",56280:"adcd2e37",56333:"29740fbd",56426:"44ce8d0a",56587:"db8a2f2e",57253:"14eb0c94",57303:"071b25d5",57477:"96cd198d",57505:"fb2f3e51",57633:"9f24941e",57663:"089ad446",57722:"418e0342",57728:"93721f16",57834:"790f06e2",57981:"567ab979",58102:"ff197e2a",58120:"bd373c01",58348:"f739c313",58451:"6b7294c1",58558:"5ffbdeb3",58594:"814db39b",58643:"7cf51ccd",58854:"79c98027",58895:"063831dc",58933:"17dfd4b6",59241:"34c3eda1",59384:"cf016b30",59445:"66896f7f",59562:"ca515d4d",59599:"e3e5aa22",59679:"81f6e608",59790:"8a75ff44",59850:"ddd163a2",60121:"0309cbdc",60135:"d177da86",60214:"f55b8115",60467:"af6ce90f",60497:"7f5a9435",60548:"e5d014aa",60639:"8a993aba",60765:"22dbe7bb",60894:"dd668fd3",60896:"929dc912",60917:"1049ca79",60928:"55462430",61068:"ac37a370",61221:"053aba71",61234:"545b195b",61245:"0363ba50",61341:"fe34ece7",61610:"efc702ff",61782:"03bc899e",61830:"25b4346c",61836:"4dec6ce1",62046:"f65beda4",62083:"933d2dcf",62138:"1a4e3797",62285:"c331ac4d",62341:"c6d876cc",62344:"425d2d5c",62479:"74b42b47",62490:"72754f40",62902:"90cb08a2",62976:"0b024c6b",63027:"9acb76ea",63062:"7f0f9fd5",63143:"34026fad",63331:"54dcaa0b",63709:"edb215fa",63876:"8fb76749",64047:"0df7e9a4",64114:"a40169f6",64139:"45a593b9",64311:"d9c134a3",64409:"a1d696f9",64433:"e95454dd",64586:"a911e7e6",64590:"10f9e06d",64616:"350e096e",64659:"6cbe3c00",64755:"c8207785",65133:"41a08930",65152:"4b8df818",65155:"fa755ce0",65200:"8d44033a",65222:"e062462b",65290:"bd80b57e",65451:"4a07a94d",65517:"93991cd0",65560:"e5cabba2",65659:"e48b5b6b",65700:"cb6ece47",65792:"8a73e53c",66061:"1f391b9e",66079:"2868cdab",66154:"450ccefe",66168:"a0f02a96",66425:"d9025d82",66428:"a5728785",66660:"f34ca334",66815:"6cd94b4b",66842:"3505e380",66899:"5c2e2089",66904:"470b1f7f",66947:"dbf812c0",67042:"236bc1bf",67098:"a7bd4aaa",67146:"f547184b",67253:"6f8eea3d",67295:"52f8eb20",67385:"4107898e",67472:"814f3328",67668:"362d51d4",67679:"308219a2",67787:"87b53f3b",67887:"9a1a9cf2",67964:"5955506f",67974:"e24cb539",68011:"9fdb8713",68018:"fd79333d",68047:"4e2c4f37",68153:"2669367c",68175:"e67c0d43",68323:"819832a6",68394:"be949f88",68658:"be63a1d1",68666:"2adc6054",68813:"ccb693b6",68969:"bf8d3c80",69075:"8d3ad523",69136:"10024d28",69291:"f7ce4f94",69384:"288c26ee",69412:"9a41823c",69528:"761d7ef5",69563:"2b7e389b",69676:"c65aae6f",69816:"be0c0aa5",69863:"3953ecec",69881:"a7841e3a",69888:"e8a10efa",69902:"b2f70659",70097:"1924664f",70194:"05570387",70337:"e458eb98",70460:"d999b08f",70465:"dc9b0273",70545:"bc7e2dde",70624:"9c7d1b50",70810:"bb5ef324",70879:"108d6d89",71043:"03765b16",71074:"3eb5acbd",71248:"be59f68b",71295:"fcf85bf4",71335:"e873d9c1",71356:"21b1b445",71397:"964e650e",71480:"3102433c",71611:"86e3fe78",71721:"6b3fa53b",71755:"be3592bd",71786:"e23d52e7",71980:"6acc3b30",72033:"d378ffa3",72063:"6b0d9667",72153:"359bd289",72188:"0d426c35",72412:"87b2c874",72467:"e42c090c",72486:"1d72fc04",72550:"417205b4",72564:"d344b640",72596:"a7f0e895",72620:"e1da9db5",72656:"7dc17292",72658:"347eefb7",73289:"3dd5094c",73300:"4ec97119",73465:"654e019f",73480:"eed6c09e",73659:"a64b7925",73753:"f01bfdad",73902:"12d0d673",73968:"13aa5b84",74059:"8fef5462",74134:"393be207",74210:"4af3180b",74323:"8e9f0a8a",74507:"888a9eb1",74601:"e2222d85",74618:"7b1be938",74692:"3d061cbb",74803:"08bc2fd9",74843:"c8b7d8c9",74963:"88010c7c",74996:"9a96f352",75011:"6d4a59e6",75277:"b86e836f",75329:"cb390922",75519:"60afbb6a",75674:"06469ad7",75829:"e6904ee2",75849:"36aa1211",75905:"78850312",76057:"88ce5a88",76107:"2985d024",76141:"1249f471",76180:"62561535",76295:"925bf011",76364:"f0050945",76541:"eeb46d93",76572:"e8b0059d",76612:"56a4992e",76642:"f2e06602",76738:"7178b091",76841:"19a12457",76850:"0b75be44",76918:"a7a94ca7",77008:"70a637fc",77166:"3082da76",77279:"870989fe",77366:"4d25e953",77438:"fc0a57b7",77444:"b2cdfc03",77573:"a641a08a",77638:"c6fd80a3",77711:"cdc4f532",77883:"e270a67d",77938:"caf4d4e8",78187:"0731855e",78217:"b0fdad27",78540:"19612e92",78618:"266009b8",78662:"e0cb7e9b",78669:"7e6a1518",78719:"39af3e45",78870:"977a120d",78884:"7f851217",79026:"6252cb7f",79048:"a94703ab",79101:"3aa8fb49",79177:"18df7763",79217:"a220f06a",79272:"151606db",79719:"72696fbb",79813:"ce92a480",80007:"524de75b",80176:"db8a1c1c",80298:"ee3b1858",80485:"7161856f",80497:"a80da1cf",80532:"f264b025",80545:"1d40c453",80574:"d0428371",80685:"e38d51ce",80730:"b3e62ffc",80819:"e623d6b8",80829:"9dfa7700",80970:"5cbd93e8",81052:"9ff069d3",81272:"466bb3bf",81294:"0158928f",81375:"856d3e3f",81439:"b92a6266",81448:"ebd976f2",81555:"b83930dc",81568:"60ed3f6c",81586:"696d99ee",81831:"1a43103c",81885:"6bb1c934",81917:"b11736aa",81925:"60a0792e",82074:"b5d280ff",82081:"f7c13ceb",82213:"c77e940c",82243:"020164af",82421:"85ff8ae5",82468:"e5224bf9",82540:"b39c107d",82569:"f2cfa2a7",82575:"d70e32ab",82634:"78dd2d7c",82870:"49ad9989",82917:"7346d756",82970:"4458a59c",83058:"d40c5d30",83062:"b0b45554",83165:"225242c8",83249:"ccc49370",83354:"9d2c8313",83409:"f991cd73",83497:"65b935d6",83598:"45ac43d7",83642:"60aaf6d9",83644:"85ae8b77",83658:"8fd46ed4",83833:"26c7efd1",83944:"224c1d61",83966:"69ce70d3",84137:"7fc84d53",84280:"18103d28",84321:"7838c6ab",84427:"bb128489",84455:"91c67fe1",84497:"be71ca1f",84533:"1e05dda2",84774:"1626a70d",84813:"6875c492",84829:"9a4b1d4e",85053:"b55aa295",85171:"a9f37dd6",85216:"6e5a110d",85381:"4323d260",85463:"255f7ae1",85471:"c7cd36ac",85494:"763dc45a",85834:"ec4fbbf5",85889:"3e735601",85958:"dfd2a95d",86018:"29e7a45f",86044:"15048ece",86202:"36c31f16",86374:"1d9d4052",86477:"fa9d0183",86503:"768693d1",86597:"fe0eb9a8",86603:"719ecebd",86721:"21e22679",86781:"80b60d64",86865:"33f62802",87041:"76eea44d",87154:"300557da",87163:"904c5dc2",87170:"50e07840",87229:"46fdcfd5",87347:"800dedf1",87479:"d70e479b",87537:"a0d87d22",87622:"0cab1ca0",87740:"d8123b4e",87749:"e57684cb",87795:"2eafaf58",87802:"85ad8407",87848:"6b3ad60e",87870:"cd590cc4",87970:"20e873f4",88086:"e83e8e90",88151:"914404a1",88251:"d3772fcd",88545:"23307cd4",88633:"167652a6",88710:"573a32cc",88804:"8137d431",88805:"409581e6",89019:"61476635",89107:"813c5646",89196:"6df1167f",89209:"4b65008c",89231:"061d06b5",89241:"105c35c4",89246:"ab3acd0e",89267:"a7023ddc",89349:"bf778798",89356:"67bb5f29",89392:"f0cda9ee",89480:"5c5ce237",89522:"1c19c503",89639:"b6c9048d",89642:"e8291ed7",89889:"16ac7d64",89914:"0ac7dfac",90076:"327843a1",90089:"43560fdb",90128:"0c95808b",90203:"e5f14a48",90214:"86027dce",90349:"3944f4d0",90416:"079875e0",90440:"f25b4e76",90457:"a356d861",90498:"b54c34f6",90592:"af172acd",90618:"fd8bd593",90810:"d8c75aab",90910:"48e0df6b",91035:"10a408ff",91078:"4500717a",91139:"3bcbe779",91259:"0c2bde02",91624:"5d7854ee",91721:"0e2a382c",91802:"d660974a",91832:"45ec0b53",91906:"7285be48",92128:"f9396bbf",92132:"09d655f0",92282:"8d2c5b8a",92466:"9d03f0f1",92554:"6ef9d53a",92562:"c0b24b68",92620:"a1864d4c",92637:"0913d920",92726:"378a04e9",92764:"6b7b22fb",92878:"847cfb29",93101:"f2ce6c58",93310:"f8990f5d",93387:"937af0fd",93564:"6e21121a",93600:"c9451cfd",93613:"304ea052",93748:"f1844afc",93884:"30b090fe",93933:"9de1aaaf",93988:"8f6be87c",94107:"30f115bb",94147:"cad1d944",94437:"8e32fe61",94446:"cf0f284f",94697:"1f9a27ac",94703:"6a294d93",94796:"2cfecc25",94952:"cb42debe",95031:"e6ca5891",95063:"758f575e",95082:"1f7f27b4",95216:"48b56ed7",95226:"c4aed824",95238:"9f682853",95338:"924130ca",95367:"f154dce4",95457:"eb5ca0ce",95500:"7d706e04",95550:"eeb8e89e",95577:"0ea902c2",95591:"6c4a10fa",95596:"2de83f92",95644:"1c1ca6fd",95830:"e5c318a1",95889:"26562614",95894:"b2f554cd",95911:"cefe6d85",96166:"2e20e09d",96176:"de0ffc1f",96334:"031793e1",96371:"5cefb82a",96401:"b340d1a5",96501:"d6e8f7e1",96681:"8e827e8a",97057:"5a335306",97136:"5e119875",97184:"ea85e407",97221:"11a68ed0",97289:"5cc3371a",97292:"5bc5170f",97512:"ec423149",97566:"6b26cec4",97588:"67616762",97590:"0cdc2010",97612:"3b8f7586",97614:"76de6265",97705:"0f9f4702",97826:"46ed2231",97948:"15c1d801",97995:"74a2c672",98085:"56d52a81",98167:"6cd7d4e5",98271:"6395d7a7",98383:"aa074a57",98400:"d743a1d5",98475:"3570154c",98526:"9439d9b9",98550:"86cda1c5",98581:"935f2afb",98850:"1065ee2a",98978:"1ed419c0",99039:"5458faed",99055:"24d58b49",99245:"9573cbc4",99372:"e679f2e1",99645:"2df6bfe3",99652:"8bfe30f1",99668:"e4e3af74",99949:"b8a5e324"}[e]||e)+"."+{248:"621ee445",337:"31f2d2dc",454:"bc43abf1",510:"123bfefc",524:"c23c17c1",684:"429140a7",777:"6d5b3496",787:"a7e79697",829:"f3c6a6ba",847:"55c64369",922:"76f81591",1003:"caaa1ded",1143:"07aa6da9",1550:"c947b038",1801:"cacda8a8",1827:"e978ef16",1864:"39c90d99",1946:"d942c657",2013:"ac1a5721",2038:"dc7d23f7",2196:"be30ad6e",2253:"0a92e55a",2272:"f64dde2a",2282:"338fa93b",2347:"3501c3db",2380:"5aee8ccb",2490:"11697f74",2524:"295a6f2f",2537:"0aefa9d3",2627:"0e7fdde9",2780:"fe034bee",2890:"04281b70",2893:"642a9ce7",2899:"055519ad",3160:"7b1e2802",3217:"98981904",3304:"c79cbe80",3315:"703341f9",3491:"bec8d273",3539:"558b3291",3669:"e9fe019e",3700:"4af177d4",3962:"1eff2428",4046:"7457ac44",4072:"e599763e",4138:"bc0823f2",4145:"e1a33397",4270:"3cd3376d",4380:"bfef3810",4382:"b5313f44",4600:"8866cad2",4624:"cf970d28",4765:"2f9f043e",4896:"8768a28e",5087:"ea365d89",5132:"43dc85e5",5139:"4b3cf47f",5168:"3f5c10ab",5387:"ebde3def",5528:"a4b5c38a",5609:"4f84311a",5759:"1b33ad00",5905:"67f92b6c",5965:"15883a01",6131:"ab8b0265",6276:"0654563a",6421:"c03df63b",6444:"d5e90115",6781:"ee551ac0",6808:"0e44766a",6827:"b022672c",6874:"0a8b56f5",7278:"86f2f5fa",7360:"fd1e237f",7591:"5bc65ef1",7723:"c9da2ae5",7811:"f7c1005a",7841:"3ee27aba",7906:"1d1aec7d",7975:"ccb55002",7985:"f5ab8a3d",8015:"bfee88f3",8113:"e3ce625e",8209:"0895c75f",8385:"55267404",8629:"41f7c1c9",9159:"16e281d3",9205:"02f83f5c",9211:"de5f4e59",9314:"f6093d25",9438:"3e3005df",9462:"65f14d5f",9532:"6422993a",9647:"642e8f76",9834:"d91c7023",10064:"8776093a",10248:"93b94e75",10291:"cabf3945",10324:"a63f3b47",10330:"638db018",10354:"3624c091",10387:"72c96238",10436:"c6b2d9fb",10737:"81a5df74",10765:"47f56dbc",10783:"f3bc7cee",10856:"ce359ec9",10927:"29caa996",11186:"7688988b",11192:"e5aa0a6a",11489:"be36b89a",11496:"6edb7a6a",11497:"45195f6e",11545:"789cd251",11624:"d5428d56",11862:"01dd282c",11921:"314ff049",11965:"3a9a5193",11979:"87e5af56",11991:"e417d86f",11997:"9da66ce9",12029:"1f647dfb",12167:"f215086a",12209:"d9535912",12327:"93465222",12362:"a08c5564",12449:"72af6b43",12489:"a2cbbbbd",12613:"6cd3c808",12653:"ef1a8b44",12800:"d1065395",12907:"47741de4",12956:"5aef7eee",12993:"42c4d3e4",13019:"c60633de",13064:"52451891",13101:"2ca6a130",13256:"fdab3377",13443:"f2314df8",13563:"5fe77f4f",13566:"4626f290",13791:"7833e045",13920:"5f297ad1",14011:"6a402ed6",14165:"20bd30f3",14175:"5e900ed2",14374:"858a67f5",14394:"0b54bae5",14396:"1906a23c",14455:"446d2006",14522:"3b722783",14600:"51ffceba",14788:"b64b4472",14879:"4252f81c",14906:"910279b1",14988:"1b956ec6",14992:"3d10c531",14998:"adeef39d",15040:"5b636762",15066:"7a265684",15231:"0e0cb96b",15343:"c9e4a17c",15467:"187c628c",15514:"3d98c2f5",15543:"05f33026",15685:"550ba7c1",15775:"39fe4133",15980:"339921be",16066:"5063f437",16211:"0b044d86",16265:"96a2894b",16357:"47d6beb5",16435:"d2a7e9d9",16496:"511c92bd",16781:"8c0faefd",16794:"fd4babae",16821:"7a2f852b",17015:"c69200fb",17029:"eba66d02",17043:"be14c303",17084:"f51f485a",17308:"5729933e",17339:"561a9cf6",17504:"db93b94e",17664:"3dae4748",17665:"a1c378ec",17767:"1b3cb2f0",17777:"6346011e",17784:"51ccb251",17810:"a7900074",17829:"cd060f14",17952:"96e6fb89",18070:"d7872a5d",18401:"87ed447e",18409:"66f77dd8",18437:"c7436afe",18466:"7b9d3b1b",18649:"3ce1df15",18662:"99ada680",18839:"8e1dd6d2",18880:"e5d4bbe4",18925:"81515a67",18956:"d063f5e0",19044:"e48cd02a",19067:"598c59c1",19275:"3702cee0",19298:"a364a089",19426:"287fd6fd",19821:"6986523b",19958:"b7849630",19969:"844eaa0b",20160:"924631f3",20293:"ff25cb68",20491:"afd3b535",20563:"04c1eed8",20569:"fb33b185",20704:"a029b8a9",20806:"13f116e5",20890:"fe4c7f76",20967:"35e7167c",21102:"1e5625b2",21105:"f7ec14bb",21250:"bc63be5f",21315:"dbbc7c15",21358:"35dfe783",21380:"435b4900",21392:"23794f2f",21433:"2800fbf5",21517:"861743a4",21592:"0e83647e",21649:"a46842da",21778:"6c725051",21818:"3c8bdbda",21917:"6405859b",21974:"3fa83ee1",22122:"6bf6ed04",22161:"3937f2e3",22180:"a5f70d4a",22465:"cf1fbce2",22726:"5f443492",22793:"f114f2ea",22804:"e418eb7c",23146:"5628dd69",23162:"164435bb",23209:"293efd1d",23435:"cb3b3b9f",23450:"7e98d9e9",23604:"3f07bf07",23645:"9d95a7e8",23873:"ee51bdd1",24014:"28e65300",24031:"2abb6fa4",24050:"cf24e6d1",24244:"fb549f78",24376:"514a42ab",24478:"fa5c19e0",24706:"2735afbc",24844:"7b061d5e",25008:"7c8d5235",25441:"055ea4c9",25446:"fe4e4e99",25524:"3359aaee",25634:"c92c87f9",25755:"a8c4e404",25851:"4b217b40",25856:"3e6b2d9d",25858:"9d6a74d6",26029:"eb435679",26064:"aa84fe80",26126:"a29b922e",26127:"586dec36",26229:"f32515f9",26460:"7ac871c1",26591:"bd4d9648",26661:"891c8e2e",26703:"4dc66620",26942:"7279d370",27008:"46cf1a7e",27145:"a66cd1de",27152:"2914eec7",27188:"6e84a5e0",27269:"70f36ec6",27380:"614b52db",27583:"f482eb68",27652:"9c50ef09",27815:"afd04c48",27907:"3cae4d91",28233:"31bb9a42",28444:"8dcb53fd",28533:"31a895a5",28828:"caa89ec6",28837:"62e140fc",28895:"db26969b",28950:"7837f134",29003:"10494fb7",29041:"6428526f",29074:"71a12c95",29213:"24a2a21a",29273:"e8d47165",29291:"b25b1ec4",29314:"c4524c2e",29347:"7478df88",29629:"1df8894f",29634:"e864e915",29659:"b5c83f7c",29720:"d06d61a7",29794:"d35da719",29862:"4ffcfdd6",29953:"e14b0db6",30137:"e14869d9",30221:"96cb49f9",30440:"da81c107",30503:"6a854b6f",30517:"5c31896b",30598:"ae91ac77",30747:"b05bf40f",30817:"4e687921",30859:"752983a7",30885:"818f3001",30915:"009776cc",31166:"f4ab7bf4",31368:"8a68b5b2",31415:"32112987",31460:"4c4965f3",31701:"d65c35a4",32104:"87254a16",32195:"af4173c7",32505:"84d596ff",32645:"e72d7298",32675:"cfd88a26",32741:"a4383ca7",33040:"c5cae76e",33046:"8f487ec4",33174:"3820157e",33235:"637fd359",33258:"c888a9b0",33267:"f6f93660",33379:"adb80d6e",33480:"1d1a10f9",33695:"5a5a414c",33750:"b7cdb914",33847:"53763d58",34121:"3b0b8378",34586:"8ffaeacc",34598:"e19e9d74",34601:"9c223070",34617:"27094d05",34627:"0b54e25a",34727:"11a768c2",34887:"12827d58",35051:"ee80c7b9",35252:"86fe93ef",35289:"58ca8b57",35431:"08399312",35569:"b164a6c7",35732:"e4e3beea",35829:"4c895850",35857:"9e3ee585",36016:"a48511e7",36112:"411b555a",36145:"9aaf3f0a",36356:"2e371f72",36358:"1d214b9a",36380:"015b4b68",36409:"853c8b6b",36490:"ec375e9e",36700:"653b8b36",36732:"040cb04b",36741:"fc35237d",36750:"4ef9afb5",36867:"48eeed2b",37509:"b2c043c3",37556:"78348772",37643:"25800dec",37811:"b4baab52",37895:"363c0353",37970:"0503a305",37999:"b061dfc7",38013:"819536da",38183:"a902bdca",38334:"90e6642d",38428:"63a2cba1",38460:"870e8445",38483:"0d34a072",38600:"8fb89e1e",38663:"c4a5a370",38682:"74f371e8",38712:"26ae0f19",38810:"972e2074",38868:"a33bbdec",38890:"4f26ad30",38995:"7ca416fc",39113:"d3fd8767",39268:"8549495e",39424:"dbafa795",39711:"e5ea74b6",39732:"0ec03574",39837:"ef249ee3",39846:"4628e6d3",39909:"f4690532",40310:"ba6e947c",40313:"c798594c",40601:"51c37c1a",40740:"eed799c8",40754:"fd4a5d7f",40803:"ea84d39d",40852:"1bea8762",41004:"ee76533b",41308:"3d32feef",41608:"a938e35f",41676:"e9520be7",41722:"cdd7389b",41928:"d872f888",41941:"c8f66d49",41948:"8242a5ef",42061:"1a783992",42105:"2e1e353c",42114:"331ebe7e",42234:"44f1de02",42467:"337dc24d",42532:"2acc3799",42547:"d8125d33",42616:"d6fa8487",42876:"dc0e5f81",42950:"57fc07e6",43220:"0fe84f76",43298:"e1df467f",43319:"9bebc24a",43416:"78e5652a",43468:"88a448f0",43622:"64fc2453",43874:"c8250493",44552:"d78c184a",44775:"fb4ff55b",44788:"d4cf916b",45038:"f4c66ec6",45094:"25c13a8f",45136:"f3175ad3",45277:"934408c0",45391:"b034bb37",45513:"fab6e45f",45559:"39e3c8f7",45625:"8e38c5eb",45751:"29367833",45902:"f976a284",46172:"3b819d28",46244:"032cae6c",46381:"c8eef7eb",46407:"7e10a776",46535:"13b25000",46694:"093c7973",47078:"cb3d13fc",47143:"1913f320",47274:"841eb382",47302:"31c8070b",47399:"9c0f2923",47606:"083a8460",47701:"5c3136d5",47724:"39bfb8fe",47797:"7a48931d",47847:"7c190bd0",47907:"3a72763b",48056:"359e4f37",48101:"2a1609d2",48106:"f0609c22",48173:"37f29aa3",48243:"3620958e",48304:"076ca236",48508:"dcf228c9",48807:"06f21a47",48946:"8d9c200b",49099:"7bd0db84",49194:"a319b426",49421:"48cca547",49657:"4059dce3",49692:"8cee1574",49697:"1047c560",49852:"3c7489da",50052:"612dddfa",50177:"3ca9eaf3",50206:"1d0e7fa6",50333:"4d344fb0",50391:"2f5426d7",50468:"0e1ad41d",50557:"037c51ac",50575:"336164b3",50597:"30093816",50599:"66a33815",50731:"a7b2cea7",50885:"6d5a08ee",50974:"ee9959e5",51241:"22391e7a",51261:"035bbb69",51398:"c5f7f86b",51682:"4cc6aa80",51835:"881bcc48",51979:"625434ea",52089:"2f519681",52220:"8b62b47e",52264:"58081ad1",52381:"73236604",52458:"213b42ff",52711:"5c4c8b5f",52753:"ceb710c3",52806:"5e5a000d",52898:"2d54e082",53240:"3022d85c",53409:"6d3047ec",53694:"0de2ea7c",53805:"b6317682",53928:"700bd83e",54009:"f4e00499",54024:"0f3926c1",54132:"64612873",54139:"c6900ee6",54271:"15383d4e",54312:"66c48d9e",54391:"b675d6ec",54472:"26c69143",54635:"2e9ebe4a",54664:"99c8abbf",54722:"86f4777d",54746:"e5f1fe1d",54787:"1c6bdc22",54804:"bea06dfe",54892:"5cd22800",54917:"10e2a70c",54925:"210b69fd",55017:"ce4747b5",55056:"73e22f51",55250:"2e787b70",55310:"0bb56cd4",55371:"5fbc5f4b",55498:"848c238c",55552:"b1756bc2",55780:"977bc08c",55851:"4b632960",56090:"d1311a4b",56192:"1170d6fc",56232:"525d89e8",56246:"3d32b346",56255:"99749a2f",56256:"74cff6f6",56273:"320429a8",56280:"ac2127e7",56333:"61214139",56426:"aca72182",56587:"2ba73c3b",57253:"d253a7a6",57303:"8af8c0c9",57477:"7bb77bc1",57505:"752277cc",57633:"da238b45",57663:"9ea2d252",57722:"ef2ea953",57728:"caa5ce0c",57834:"20dbb365",57981:"d5af09f3",58102:"d35028d6",58120:"0e9904c1",58348:"4d9db875",58451:"02755e6c",58558:"e1dc5d5a",58594:"50598190",58643:"d80908f2",58854:"2e2ffdf8",58895:"3615f882",58913:"955b4936",58933:"af1ac191",59241:"8abbc718",59384:"88ef2667",59445:"01c832dc",59562:"95ab71fb",59599:"6ba29d71",59679:"4410babc",59790:"f633ccb7",59850:"27be8cf9",60121:"35cf1210",60135:"10555e3c",60214:"ce151e47",60467:"a6ca98a8",60497:"8415e3c6",60548:"67248c75",60639:"29062501",60765:"026a915a",60804:"e3e76b15",60894:"d53cff64",60896:"451c3338",60917:"8de30908",60928:"05122b4b",61068:"ceadf4ea",61221:"55051bdb",61234:"f97c8aff",61245:"cbdfaa65",61341:"bf3be58b",61610:"da181242",61782:"87c97de8",61830:"cc6a5806",61836:"68603798",62046:"efc2e384",62083:"a55302d9",62138:"ca5fac29",62285:"75c67680",62341:"81fa286b",62344:"15fadf01",62479:"755297f4",62490:"e40ccea8",62902:"dcb55fd7",62976:"7e6a5157",63027:"4551a132",63062:"1798a700",63143:"160150b9",63331:"6b31bb5c",63709:"014e489d",63876:"e4777092",64047:"8ceee60f",64114:"8301436e",64139:"5085621b",64311:"a805e177",64409:"4e22a9e1",64433:"4fa8c6e8",64586:"e9af5c74",64590:"c13ea7ce",64616:"dd306dc8",64659:"44690f6c",64755:"1719440e",65133:"c1bfab62",65152:"cfacc549",65155:"e995358d",65200:"382b08ec",65222:"f3cf945a",65290:"322f9f40",65451:"9f4639e6",65517:"a9fe28b5",65560:"3e58829f",65659:"b38eecb4",65693:"8f9573ad",65700:"17db1686",65792:"0be9fae5",65931:"a9a40380",66061:"dc225c0c",66079:"d432e6c4",66154:"d4e84bab",66168:"e6aceff1",66425:"d7e87572",66428:"18fe2694",66660:"97e7cb7c",66815:"96d8c3cb",66842:"9bd063e1",66899:"7ee315a3",66904:"69f0ec1c",66947:"73ac303e",67042:"9742b6c8",67098:"42a43b67",67146:"0a4a0060",67253:"6dceafec",67295:"2f1948a5",67385:"48c1b7fc",67472:"0b3b60f8",67668:"a93afd96",67679:"22fdf946",67787:"6bdfb18d",67887:"23d05f30",67964:"b3fc9712",67974:"b65e52c5",68011:"850eea4e",68018:"0f30c5ad",68047:"c999a946",68153:"43998ab0",68175:"90228bb5",68323:"f9f6ae98",68394:"b3396313",68658:"a74325e6",68666:"9ac594fe",68813:"7d4c4ecb",68969:"2bf8ce87",69075:"c6bce11f",69136:"86a399e3",69291:"90d2b9d5",69384:"8ff42b80",69412:"a1a00edb",69528:"b7e77135",69563:"dc85dd14",69676:"a6956aa7",69816:"1644689d",69863:"616b09a9",69881:"58d1457b",69888:"63f74da5",69902:"c30a71c0",70097:"d7e05a1a",70194:"9e124a36",70337:"a16d20bc",70460:"76e057b1",70465:"735402c7",70545:"1a5403d8",70624:"feac97af",70810:"d84ac91a",70879:"dba012ad",71043:"f2ceea06",71074:"3753d50f",71248:"fcc66901",71295:"b4dcc081",71335:"a3d09be7",71356:"0ef2868a",71397:"b7124f56",71480:"08f8268b",71611:"621d195a",71721:"8b22a819",71755:"cd173a4a",71786:"d2d798e3",71980:"a97751c4",72033:"bd23f6d7",72063:"b78181be",72153:"7e2f3c08",72188:"85b7fcc5",72412:"c04a0969",72467:"6ae010db",72486:"0b98cd63",72550:"a9298e3c",72564:"9f45fd73",72596:"0a00b615",72620:"2172830a",72656:"2d82512e",72658:"9cad756b",73081:"df906e38",73289:"7c6b8532",73300:"1f0c46f2",73465:"73188190",73480:"d917fb2a",73659:"513cf1b3",73753:"87a50e4d",73902:"e67fcd07",73968:"bfd65196",74059:"29d32ef5",74134:"4cfd31ef",74210:"ff8337b0",74323:"2f4d49ec",74507:"3ce153e9",74601:"3c00a4c7",74618:"e4984421",74692:"3376189a",74803:"52e045db",74843:"2e072d61",74963:"c367fb97",74996:"efda19e3",75011:"c21015fa",75277:"8afa4ecb",75329:"399f4899",75519:"285f9e5d",75674:"b1d00a72",75829:"78187562",75849:"92caef5c",75905:"e00b10c0",76057:"feafc619",76107:"87dcdbc1",76141:"25a9cc99",76180:"d0dd14ce",76295:"2865bdc0",76364:"8d8b55d1",76541:"ba8acfd5",76572:"ae23030c",76612:"13b6fb19",76642:"c9dd7e33",76738:"bf068bab",76841:"852b27d5",76850:"479ca94f",76918:"14a6b167",77008:"16e9cdf9",77166:"4ddfef73",77279:"25bbe067",77366:"c7ca07bf",77438:"f09cd7ea",77444:"63bad106",77573:"9c177513",77638:"c6be112b",77711:"81d43aab",77883:"d8775a8c",77938:"3cd19b34",78187:"98f32653",78217:"ea383ba7",78540:"1d09ccc1",78618:"8d804861",78662:"bf097e9d",78669:"e44be7fa",78719:"48e303ff",78870:"eb45be27",78884:"d71b49af",79026:"83a63a7c",79048:"93b76025",79101:"ba1a2842",79177:"7a6d4dc4",79217:"2d472d35",79272:"20bab4e6",79719:"bb293fad",79813:"61a56ccc",80007:"ccac749a",80176:"371ce4cc",80298:"1ef3970f",80485:"d116ebec",80497:"60570029",80532:"0f8a78fa",80545:"c3fd643d",80574:"23916609",80685:"d36690c2",80730:"536e9053",80819:"ff681459",80829:"a9b683c8",80970:"28a2ce95",81052:"0f83f0a6",81272:"e56aef8a",81294:"969eb4c1",81375:"2b4d73cf",81439:"48e36eec",81448:"35edb4d6",81555:"4ad4cce6",81568:"1d125bb8",81586:"756d030c",81831:"591c2c54",81885:"638657a4",81917:"b0265fcd",81925:"b7f2a096",82074:"8c2ee384",82081:"997e370e",82213:"a9fe7cbc",82243:"af355376",82421:"5d4dc4ee",82468:"17576da7",82540:"9a5e79ac",82569:"3ba32294",82575:"bf279abd",82634:"31d80148",82870:"b6626749",82917:"1c243502",82970:"bb4f282c",83058:"d0554e7c",83062:"4b623e97",83165:"17fa46b9",83249:"0b9230ee",83354:"72ff20db",83409:"52459ed9",83497:"71a2dd71",83598:"401640f2",83642:"e3e258bc",83644:"984e9be3",83658:"3d29fac2",83833:"3162a252",83944:"65da26e3",83966:"00dc39ee",84137:"0096febf",84280:"ce2407bc",84321:"41055f8f",84427:"2e170bf1",84455:"8a8ea11c",84497:"8c5bf599",84533:"6b8d72f4",84774:"8ab0f02f",84813:"3c006cd5",84829:"558b267f",85053:"e7319927",85171:"823f32e1",85216:"4844c78c",85381:"f9ecbf8b",85463:"1322deb7",85471:"ec948e77",85494:"32e0054b",85834:"a6745d83",85889:"75953048",85958:"e16c767a",86018:"e27d75e9",86044:"e37a283d",86202:"a813c25e",86374:"e7889258",86477:"bdef4018",86503:"294ce7b0",86597:"e85806c4",86603:"80a83c36",86721:"3f79b3dc",86781:"0478c6df",86865:"2df1868d",87041:"26cdad07",87154:"22f765e0",87163:"168795ff",87170:"bb503330",87229:"a91ff1d1",87347:"09e40baa",87479:"8733784a",87537:"10dcba31",87622:"6803613a",87740:"01942bc1",87749:"68473591",87795:"ffb655e2",87802:"0c30b905",87848:"bca72d5a",87870:"dae1d4e7",87970:"9033a7f3",88086:"99689e90",88151:"e72f17ff",88251:"1ad2b808",88545:"433e1aff",88633:"df36b832",88710:"3db8eaa7",88804:"a0b90625",88805:"13887d5c",89019:"ef010e7b",89107:"e839043f",89196:"644bc12b",89209:"5c23e8f9",89231:"0240adaf",89241:"cecccdae",89246:"25c02a2e",89267:"1d054a3c",89349:"dbdb4e13",89356:"5807b382",89392:"0f6dd550",89480:"75505db9",89522:"3b619488",89639:"7d3b4961",89642:"0b2a31a1",89889:"f6b49509",89914:"ab689159",90076:"f91192d3",90089:"bfae4463",90128:"15942ab4",90203:"b4d965b1",90214:"84556ce5",90349:"b5593723",90416:"2749e8f7",90440:"8524cd42",90457:"f58ca26d",90498:"3e49e067",90592:"360bf726",90618:"e6f93ba2",90810:"05159b9b",90910:"d8b254d5",91035:"dcaf984b",91078:"5a201d85",91139:"04ca9e54",91259:"4665895e",91624:"5630a03b",91721:"d3e5660e",91802:"48679a68",91832:"995dc262",91906:"cbae9db3",92128:"d454c5c0",92132:"9722d4c3",92282:"ec4a6ac4",92466:"533f6485",92554:"83b612a6",92562:"0dec28fb",92620:"cb7513bf",92637:"2e1d0451",92726:"457a5512",92764:"ea681512",92878:"7c34be35",93101:"62953700",93310:"f828f93b",93387:"b0539cf2",93564:"29b49537",93600:"f2ea881d",93613:"a85a05c8",93748:"2ef88dc8",93884:"cac21997",93933:"996fa08d",93988:"6af17b9d",94107:"6e5e16dc",94147:"f238b74a",94437:"5655807e",94446:"29363946",94697:"bd7c093e",94703:"01765d0d",94796:"74f32688",94952:"f9c305df",95031:"76073eb3",95063:"297ba730",95082:"dfc9851a",95216:"118108ff",95226:"90157cd4",95238:"14fde63f",95338:"f19f2b94",95367:"f425740a",95457:"5d02791e",95500:"16db0703",95550:"2c34bf4e",95577:"a18c117f",95591:"041588b2",95596:"1d3a718d",95644:"6943fe29",95830:"cd7997df",95889:"2cf32ffb",95894:"a861874b",95911:"84938d9f",96166:"aca10c51",96176:"b57e3078",96334:"3de4d1ea",96371:"40e69387",96401:"bacdf570",96501:"62800f8d",96681:"82cb94bd",97057:"bd760925",97136:"8041dfea",97184:"546ec104",97221:"50c38392",97289:"62d53cb7",97292:"f0c995ae",97512:"33889fd9",97566:"3fa61454",97588:"00242a51",97590:"b62702e4",97612:"63ffccbe",97614:"46819a2b",97705:"b485a928",97826:"fc9d30ac",97948:"5dadc226",97995:"c7e49d18",98085:"afd48b6c",98167:"f9639073",98271:"34feaddd",98383:"8c579191",98400:"bd42c034",98475:"cbc585c7",98526:"4d9b87b2",98550:"30410c65",98581:"dd0a4b70",98850:"71cd7012",98978:"59bf4c8a",99039:"d894e515",99055:"a5c574bf",99245:"09d81d5a",99372:"ddb86c03",99645:"1e4f9844",99652:"5cc3df7f",99668:"ffdf7eda",99949:"44a59a39"}[e]+".js",r.miniCssF=e=>{},r.g=function(){if("object"==typeof globalThis)return globalThis;try{return this||new Function("return this")()}catch(e){if("object"==typeof window)return window}}(),r.o=(e,d)=>Object.prototype.hasOwnProperty.call(e,d),c={},f="ls-fusion-docs:",r.l=(e,d,a,b)=>{if(c[e])c[e].push(d);else{var t,o;if(void 0!==a)for(var n=document.getElementsByTagName("script"),i=0;i{t.onerror=t.onload=null,clearTimeout(s);var f=c[e];if(delete c[e],t.parentNode&&t.parentNode.removeChild(t),f&&f.forEach((e=>e(a))),d)return d(a)},s=setTimeout(l.bind(null,void 0,{type:"timeout",target:t}),12e4);t.onerror=l.bind(null,t.onerror),t.onload=l.bind(null,t.onload),o&&document.head.appendChild(t)}},r.r=e=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},r.p="/",r.gca=function(e){return e={17896441:"18401",18087238:"45038",26562614:"95889",27978101:"12362",31880914:"17777",40079959:"3700",45919468:"35569",48634516:"23146",54102561:"29003",55462430:"60928",57859613:"54139",58447612:"23450",61476635:"89019",62561535:"76180",66406991:"14374",67190627:"7591",67616762:"97588",70030968:"20806",71540101:"28444",74067523:"7841",78850312:"75905",91230912:"26064","12fcb66e":"248",ffaf3051:"337","6723372e":"454",da2bb204:"510",c3937426:"524","56bf2589":"684","70bba45c":"777",da51142f:"787","8075e37c":"829","126761e4":"847","8e9f7f86":"922",f8b65bcf:"1003",f43f6780:"1143","314b8289":"1550","8d160890":"1801","568be4f2":"1827",e4d05c2b:"1864","3e585579":"1946","4e0d72ac":"2013",fe5d4fc2:"2038","9a6752cd":"2196",d0300432:"2253",fb97c684:"2272","80a222a7":"2282",bc1e2629:"2347",afa43b64:"2380",b34655e7:"2490","6bf606d5":"2524",cacf9b31:"2537","5ee76dc5":"2627","5d066053":"2780","0725d027":"2890","01834c4c":"2893","1e567a10":"2899","15fdd876":"3160","9ac3930f":"3217","46341a95":"3304","052a6d97":"3315","0b998202":"3491",e4437dc8:"3539","30a24c52":"3669","352f59be":"3962","024944b0":"4046","3d25f10b":"4072",fccbaa8a:"4138","3401db00":"4145","2e1297c6":"4270","3eaaed8f":"4380",a6676230:"4382","38066cd9":"4600","09e8369e":"4624","1f0d14dd":"4765",a74e5af2:"4896","9add4495":"5087",a92f1dee:"5132",b688cdc4:"5139","17b5cca9":"5168",fac7cdd0:"5387","6a17ced4":"5528",f7611eae:"5609","6aca40d7":"5759","94ee8623":"5905",f288aa6b:"5965","16ef2217":"6131",dde0f932:"6276","49b397e9":"6421","601dca15":"6444","82d1eb53":"6781",c30866a6:"6808","356e3172":"6827","7784095a":"6874","3ccf09c4":"7278",e535af1c:"7360","3baa3400":"7723",a4850994:"7811",b0a1c4d4:"7906",b8b939d1:"7975","8dfd147b":"7985",ea4a4292:"8015","69857d67":"8113","01a85c17":"8209","75c675c8":"8385","2a04efe7":"8629",dba3b6f0:"9159",dcf0db09:"9205","557fd269":"9211",f152ddf9:"9314","59a621e6":"9438",be0de10f:"9532","5e95c892":"9647",a024f78a:"9834","3d3ebec4":"10064",a135b49d:"10248",da96384a:"10291","6bddcc81":"10324",d610846f:"10330","7a9e23aa":"10354","677291ce":"10387",c9e287da:"10436",e5f9dd9d:"10737",bdb1b2f1:"10765",e82fa9a2:"10783","64616ca0":"10856",a1f3af9e:"10927","90605dce":"11186","020b2abb":"11192","009118ad":"11489","32a25c38":"11496",e16015ca:"11497","205ee6f9":"11545","92cf7b60":"11624",c1a27c51:"11862",b4d6c0c2:"11921","1ed7c529":"11965","47b6c9d3":"11979",b2b675dd:"11991","6c354dd3":"11997","48417a25":"12029","5383c9cf":"12167",de1fa229:"12209","3cee6f2b":"12327","9eb48b1c":"12449","0d3a481a":"12489",f17b8fc5:"12613",f7ea11ad:"12653","290f4c05":"12800",c57b668c:"12907",f6b71b72:"12956","58bce3a3":"12993","4f80f06f":"13019","5d9d588d":"13064","66e5c6a8":"13101","8f561205":"13256",aa9378a4:"13443","92029a1b":"13563","207275e3":"13566","5bd600ad":"13791",d2f348ca:"13920",bebdf8d7:"14011","09269e4e":"14165","6f90e3a4":"14175",bb66c49c:"14394",fc9158fa:"14396","536b1731":"14455",a2a5412a:"14522",ba8ad030:"14600","7ef3bdfb":"14788",ba167623:"14879",f5df3333:"14906",c18c8b11:"14988","0b420bde":"14992",bd5053b2:"14998","92d01391":"15040","94c6df18":"15066","86e47c47":"15231","028cea25":"15343","6008c803":"15467",fc5be455:"15514","730fb0f8":"15543","35fd922c":"15685",c4941d6c:"15775",cd9c3425:"15980",a7f9544a:"16066",a0a45cb6:"16211",a79250c1:"16265",bb09f00a:"16357","6a0f6bab":"16435","951179e8":"16496",b7ca464e:"16781",ae52150d:"16794","5187edfb":"16821",c5adf3a1:"17015",baf10df0:"17029","6602f274":"17043",ba9126e1:"17084",f72ee226:"17308","57f306b1":"17339","851f6438":"17504","6b20eb80":"17664","8bd50306":"17665",e249c6a0:"17767",ae953da5:"17784","5aae399f":"17810","2742f4fe":"17829","8ce9e7fd":"17952","190e2a12":"18070",bc99b2da:"18409",a39ec531:"18437",dd69638c:"18466",a2811096:"18649",ae81349d:"18662","3011cf5c":"18839",c3a6fa21:"18880",e952329e:"18925","08464a40":"18956","305109e6":"19044","7d885378":"19067","2696133d":"19275",cba1907b:"19298","5597694d":"19426",b8b265be:"19821",cf9dc769:"19958",bb96d313:"19969","689a88e0":"20160","3e4c692d":"20293","218ca708":"20491","12f77c82":"20563",ca2a456f:"20569","8a424567":"20704","9d1d1374":"20890","8025277c":"20967","9cba90bc":"21102",d3fe7700:"21105","53c3de20":"21250","9b3903e1":"21315","4b27ffe9":"21358","889af62c":"21380","98b57378":"21392","3c18655c":"21433",f3074970:"21517","150324ac":"21592","850a7836":"21649","5cda421a":"21778",b0034dbb:"21818","1685d987":"21917","4366298e":"21974",ea45dacf:"22122","4c9e35b1":"22161",cad4a10e:"22180","3e59ad6a":"22465",c5e58f52:"22726","081189a6":"22793","572069a1":"22804",a3389a28:"23162",f46d42b2:"23209",f1286dd7:"23435",efde1fe5:"23604","0316d822":"23645","2c3adde0":"23873",c817bfb2:"24014","1ea3a676":"24031","3a848f47":"24050",a7822689:"24244",e76da56a:"24376",b7d2c410:"24478","9c5725aa":"24706","7a1301e9":"24844","946c697d":"25008","86b94151":"25441","56bdc4fa":"25446",ed4b61d9:"25524","81ac3f50":"25634","6e9fa32d":"25755","3db4c89a":"25851","264da714":"25856",a47a9d5f:"25858","53af05f0":"26029",c96f6d69:"26126",a988badf:"26127","9e253187":"26229",e91a2889:"26460","86c0d560":"26591","38d0f6a8":"26661",b4253237:"26703","7fd3fa86":"26942",aa337fe7:"27008","58202a7e":"27145",b33fa6b2:"27152","4f61b578":"27188",ef5b546c:"27269",ff91b461:"27380","03279be8":"27583","010b4e9f":"27652","22a912fe":"27815",abd1d192:"27907","0ffedb1f":"28233",ff3016d2:"28533","7776d727":"28828","19a65fec":"28837","1c9bf1d6":"28895","94e6c864":"28950",e76f974f:"29041","0c03ad02":"29074",c7985978:"29213","277a36ff":"29273","4863caaf":"29291","8ca4b436":"29314","482beed6":"29347","28d15280":"29629",cbeb3d8b:"29634",d79a3b0b:"29659","44668a19":"29720",b135909b:"29794","3e4679dc":"29862","8d676d70":"29953","576c31dc":"30137",b9b74444:"30221","2a17bbe3":"30440","2007ff27":"30503","596382d8":"30517","8e9d1b33":"30598",e907ad55:"30747","572ad180":"30817","4bcf86b6":"30859",bbea21e4:"30885","7742d347":"30915","9d756d6b":"31166",b0ed8477:"31368",ce553083:"31415","3d93b3fe":"31460",cb6a4028:"31701","9fa8ec49":"32104","724b327c":"32195",af7e1017:"32505",c37d32cc:"32645","6bcfcd91":"32675",b40bf404:"32741",b3785fdb:"33040",f4b244e0:"33046","8aea9203":"33174",f28880f6:"33235","262c386c":"33258","97b55758":"33267",bb3eaf01:"33379",c1ff40dc:"33480","296e45da":"33695","51fe6e29":"33750","4b443f1f":"33847",bdc0ba33:"34121",cdcc7de8:"34586","557b46b8":"34598",c18dfc94:"34601","3cf7562b":"34617","57dd4404":"34627","70242f0c":"34727",a0130784:"34887","198af777":"35051","2c05566d":"35252",bdafb66c:"35289","0e91de8b":"35431","7b66b1b9":"35732",d5b4b205:"35829","67275e26":"35857","02e19516":"36016",e6ee5a86:"36112",a96df2a1:"36145","8a893709":"36356","7a006d9d":"36358",d8030e5b:"36380",bca7b478:"36409","52b8791a":"36490",f897154c:"36700","3ccb4b9c":"36732","7004948d":"36741",b676fb4f:"36750",fab9675f:"36867","3ff6fd03":"37509","93de59ca":"37556",a6aa9e1f:"37643",c43d2143:"37811","17f605b7":"37895","08b050ac":"37970","5202d7a7":"37999",d8e702d0:"38013","9ee914be":"38183",c20d97b0:"38334","45ca92d7":"38428","61d54a2f":"38460","1e10d35a":"38483","305d24a8":"38600","245174cd":"38663","2dccd00e":"38682","0e901f17":"38712",dd137f0b:"38810","473b8a7c":"38868","8dfd9b37":"38890","41cb9c1e":"38995",dcb0dfaf:"39113","3a1a370c":"39268","493cd66d":"39424","9cb0c414":"39711","61e16be9":"39732","2400124e":"39837","2f10980e":"39846","0ed2aab5":"39909",da278063:"40310",bb9ce830:"40313","4aae2601":"40601",dfa2316f:"40740","1e7a3293":"40754","986e2820":"40803",d6bb40ef:"40852",c9d93429:"41004","13830c90":"41308",b4df5dd4:"41608","3a10f78a":"41676","9ac004df":"41722",a1f7f6b6:"41928","9f593769":"41941",a896f8d7:"41948",a51a415d:"42061","2ba0bd54":"42105",dc0552d2:"42114","28fde7c8":"42234","0405bddc":"42467",ddf3c102:"42532","11282f6f":"42547",c31ca34e:"42616",ad940528:"42876",e9f810f8:"42950","11f7e57c":"43220","5ab0c7fe":"43298","47dc2297":"43319",bf777b2d:"43416","62da3164":"43468",e6b32f56:"43622","1ab14b9a":"43874",eacdc575:"44552",edc56720:"44775","7be871cb":"44788",deb49e8d:"45094","6260ce16":"45136",ef14d8b6:"45277",c9932547:"45391","18faa4f3":"45513","93131f85":"45559",b4d6d1b1:"45625","66da8d63":"45751",faf5ceef:"45902","6dd43181":"46172",bdd709f1:"46244",c24ab460:"46381","752b55f0":"46407",e6ad2512:"46535",ffa0d2bb:"46694",ff68c48b:"47078","183692ab":"47143","78377feb":"47274","3737ed59":"47302","1ab99136":"47399",a7eb7d96:"47606","6248e816":"47701","8c9149ad":"47724",a76ec1f7:"47797","4ec01f01":"47847",b5ed59a1:"47907","42f09255":"48056","7231de5c":"48101",fe30965a:"48106",bea5f57a:"48173",e4974747:"48243","74eaacd4":"48304","2a503532":"48508","94f0dbcb":"48807",be86555e:"48946",d083fbfa:"49099","733f8880":"49194","8ba2098d":"49421","7767d82c":"49657",e4403cb0:"49692","941a2e5c":"49697","100581b2":"49852","14831f8b":"50052",c510df87:"50177",f65eb504:"50206","493f07fa":"50333",a5fe5778:"50391","5142cdc7":"50468","523d99bf":"50557","2d57165d":"50575","74581a64":"50597",e34a95cb:"50599","09253d76":"50731",db0f9203:"50885","1f0b3959":"50974","7714b3f0":"51241","3a631c43":"51261","096bfee4":"51398",c82b4cb1:"51682",ead87263:"51835","35309c38":"51979","4366f8cb":"52089","9c40ea7d":"52220","652e4f6c":"52264","11082e32":"52381","1b55afb5":"52458","9e4087bc":"52711",e483bb51:"52753","93499cec":"52806","0f07bfca":"52898","39f211d1":"53240","27c4b6e1":"53409","8f11acd5":"53694","47619fe4":"53805","17873a97":"53928","8fad2f9d":"54009","470cbdf7":"54024",ea97ac1f:"54132",ebdae326:"54271","69cc9f3f":"54312",c24c1a5a:"54391","279ae274":"54472","7f4ab99b":"54635","4272fc1d":"54664","608ae6a4":"54722",c9ea411a:"54746","5fc35fb0":"54787","4626f2c8":"54804",a7effb6d:"54892",c3a35c08:"54917",e36a0092:"54925","808be357":"55017",a2c91a48:"55056","6b35c79d":"55250","322b9fa0":"55310",c5245225:"55371",d9bdaac5:"55498","84a4b4d2":"55552",eb27373d:"55780","293b6f39":"55851","23a66029":"56090","8abc8494":"56192","54fce789":"56232",c80bf25a:"56246","2835acb8":"56255",af5cd4f0:"56256","4965a8e8":"56273",adcd2e37:"56280","29740fbd":"56333","44ce8d0a":"56426",db8a2f2e:"56587","14eb0c94":"57253","071b25d5":"57303","96cd198d":"57477",fb2f3e51:"57505","9f24941e":"57633","089ad446":"57663","418e0342":"57722","93721f16":"57728","790f06e2":"57834","567ab979":"57981",ff197e2a:"58102",bd373c01:"58120",f739c313:"58348","6b7294c1":"58451","5ffbdeb3":"58558","814db39b":"58594","7cf51ccd":"58643","79c98027":"58854","063831dc":"58895","17dfd4b6":"58933","34c3eda1":"59241",cf016b30:"59384","66896f7f":"59445",ca515d4d:"59562",e3e5aa22:"59599","81f6e608":"59679","8a75ff44":"59790",ddd163a2:"59850","0309cbdc":"60121",d177da86:"60135",f55b8115:"60214",af6ce90f:"60467","7f5a9435":"60497",e5d014aa:"60548","8a993aba":"60639","22dbe7bb":"60765",dd668fd3:"60894","929dc912":"60896","1049ca79":"60917",ac37a370:"61068","053aba71":"61221","545b195b":"61234","0363ba50":"61245",fe34ece7:"61341",efc702ff:"61610","03bc899e":"61782","25b4346c":"61830","4dec6ce1":"61836",f65beda4:"62046","933d2dcf":"62083","1a4e3797":"62138",c331ac4d:"62285",c6d876cc:"62341","425d2d5c":"62344","74b42b47":"62479","72754f40":"62490","90cb08a2":"62902","0b024c6b":"62976","9acb76ea":"63027","7f0f9fd5":"63062","34026fad":"63143","54dcaa0b":"63331",edb215fa:"63709","8fb76749":"63876","0df7e9a4":"64047",a40169f6:"64114","45a593b9":"64139",d9c134a3:"64311",a1d696f9:"64409",e95454dd:"64433",a911e7e6:"64586","10f9e06d":"64590","350e096e":"64616","6cbe3c00":"64659",c8207785:"64755","41a08930":"65133","4b8df818":"65152",fa755ce0:"65155","8d44033a":"65200",e062462b:"65222",bd80b57e:"65290","4a07a94d":"65451","93991cd0":"65517",e5cabba2:"65560",e48b5b6b:"65659",cb6ece47:"65700","8a73e53c":"65792","1f391b9e":"66061","2868cdab":"66079","450ccefe":"66154",a0f02a96:"66168",d9025d82:"66425",a5728785:"66428",f34ca334:"66660","6cd94b4b":"66815","3505e380":"66842","5c2e2089":"66899","470b1f7f":"66904",dbf812c0:"66947","236bc1bf":"67042",a7bd4aaa:"67098",f547184b:"67146","6f8eea3d":"67253","52f8eb20":"67295","4107898e":"67385","814f3328":"67472","362d51d4":"67668","308219a2":"67679","87b53f3b":"67787","9a1a9cf2":"67887","5955506f":"67964",e24cb539:"67974","9fdb8713":"68011",fd79333d:"68018","4e2c4f37":"68047","2669367c":"68153",e67c0d43:"68175","819832a6":"68323",be949f88:"68394",be63a1d1:"68658","2adc6054":"68666",ccb693b6:"68813",bf8d3c80:"68969","8d3ad523":"69075","10024d28":"69136",f7ce4f94:"69291","288c26ee":"69384","9a41823c":"69412","761d7ef5":"69528","2b7e389b":"69563",c65aae6f:"69676",be0c0aa5:"69816","3953ecec":"69863",a7841e3a:"69881",e8a10efa:"69888",b2f70659:"69902","1924664f":"70097","05570387":"70194",e458eb98:"70337",d999b08f:"70460",dc9b0273:"70465",bc7e2dde:"70545","9c7d1b50":"70624",bb5ef324:"70810","108d6d89":"70879","03765b16":"71043","3eb5acbd":"71074",be59f68b:"71248",fcf85bf4:"71295",e873d9c1:"71335","21b1b445":"71356","964e650e":"71397","3102433c":"71480","86e3fe78":"71611","6b3fa53b":"71721",be3592bd:"71755",e23d52e7:"71786","6acc3b30":"71980",d378ffa3:"72033","6b0d9667":"72063","359bd289":"72153","0d426c35":"72188","87b2c874":"72412",e42c090c:"72467","1d72fc04":"72486","417205b4":"72550",d344b640:"72564",a7f0e895:"72596",e1da9db5:"72620","7dc17292":"72656","347eefb7":"72658","3dd5094c":"73289","4ec97119":"73300","654e019f":"73465",eed6c09e:"73480",a64b7925:"73659",f01bfdad:"73753","12d0d673":"73902","13aa5b84":"73968","8fef5462":"74059","393be207":"74134","4af3180b":"74210","8e9f0a8a":"74323","888a9eb1":"74507",e2222d85:"74601","7b1be938":"74618","3d061cbb":"74692","08bc2fd9":"74803",c8b7d8c9:"74843","88010c7c":"74963","9a96f352":"74996","6d4a59e6":"75011",b86e836f:"75277",cb390922:"75329","60afbb6a":"75519","06469ad7":"75674",e6904ee2:"75829","36aa1211":"75849","88ce5a88":"76057","2985d024":"76107","1249f471":"76141","925bf011":"76295",f0050945:"76364",eeb46d93:"76541",e8b0059d:"76572","56a4992e":"76612",f2e06602:"76642","7178b091":"76738","19a12457":"76841","0b75be44":"76850",a7a94ca7:"76918","70a637fc":"77008","3082da76":"77166","870989fe":"77279","4d25e953":"77366",fc0a57b7:"77438",b2cdfc03:"77444",a641a08a:"77573",c6fd80a3:"77638",cdc4f532:"77711",e270a67d:"77883",caf4d4e8:"77938","0731855e":"78187",b0fdad27:"78217","19612e92":"78540","266009b8":"78618",e0cb7e9b:"78662","7e6a1518":"78669","39af3e45":"78719","977a120d":"78870","7f851217":"78884","6252cb7f":"79026",a94703ab:"79048","3aa8fb49":"79101","18df7763":"79177",a220f06a:"79217","151606db":"79272","72696fbb":"79719",ce92a480:"79813","524de75b":"80007",db8a1c1c:"80176",ee3b1858:"80298","7161856f":"80485",a80da1cf:"80497",f264b025:"80532","1d40c453":"80545",d0428371:"80574",e38d51ce:"80685",b3e62ffc:"80730",e623d6b8:"80819","9dfa7700":"80829","5cbd93e8":"80970","9ff069d3":"81052","466bb3bf":"81272","0158928f":"81294","856d3e3f":"81375",b92a6266:"81439",ebd976f2:"81448",b83930dc:"81555","60ed3f6c":"81568","696d99ee":"81586","1a43103c":"81831","6bb1c934":"81885",b11736aa:"81917","60a0792e":"81925",b5d280ff:"82074",f7c13ceb:"82081",c77e940c:"82213","020164af":"82243","85ff8ae5":"82421",e5224bf9:"82468",b39c107d:"82540",f2cfa2a7:"82569",d70e32ab:"82575","78dd2d7c":"82634","49ad9989":"82870","7346d756":"82917","4458a59c":"82970",d40c5d30:"83058",b0b45554:"83062","225242c8":"83165",ccc49370:"83249","9d2c8313":"83354",f991cd73:"83409","65b935d6":"83497","45ac43d7":"83598","60aaf6d9":"83642","85ae8b77":"83644","8fd46ed4":"83658","26c7efd1":"83833","224c1d61":"83944","69ce70d3":"83966","7fc84d53":"84137","18103d28":"84280","7838c6ab":"84321",bb128489:"84427","91c67fe1":"84455",be71ca1f:"84497","1e05dda2":"84533","1626a70d":"84774","6875c492":"84813","9a4b1d4e":"84829",b55aa295:"85053",a9f37dd6:"85171","6e5a110d":"85216","4323d260":"85381","255f7ae1":"85463",c7cd36ac:"85471","763dc45a":"85494",ec4fbbf5:"85834","3e735601":"85889",dfd2a95d:"85958","29e7a45f":"86018","15048ece":"86044","36c31f16":"86202","1d9d4052":"86374",fa9d0183:"86477","768693d1":"86503",fe0eb9a8:"86597","719ecebd":"86603","21e22679":"86721","80b60d64":"86781","33f62802":"86865","76eea44d":"87041","300557da":"87154","904c5dc2":"87163","50e07840":"87170","46fdcfd5":"87229","800dedf1":"87347",d70e479b:"87479",a0d87d22:"87537","0cab1ca0":"87622",d8123b4e:"87740",e57684cb:"87749","2eafaf58":"87795","85ad8407":"87802","6b3ad60e":"87848",cd590cc4:"87870","20e873f4":"87970",e83e8e90:"88086","914404a1":"88151",d3772fcd:"88251","23307cd4":"88545","167652a6":"88633","573a32cc":"88710","8137d431":"88804","409581e6":"88805","813c5646":"89107","6df1167f":"89196","4b65008c":"89209","061d06b5":"89231","105c35c4":"89241",ab3acd0e:"89246",a7023ddc:"89267",bf778798:"89349","67bb5f29":"89356",f0cda9ee:"89392","5c5ce237":"89480","1c19c503":"89522",b6c9048d:"89639",e8291ed7:"89642","16ac7d64":"89889","0ac7dfac":"89914","327843a1":"90076","43560fdb":"90089","0c95808b":"90128",e5f14a48:"90203","86027dce":"90214","3944f4d0":"90349","079875e0":"90416",f25b4e76:"90440",a356d861:"90457",b54c34f6:"90498",af172acd:"90592",fd8bd593:"90618",d8c75aab:"90810","48e0df6b":"90910","10a408ff":"91035","4500717a":"91078","3bcbe779":"91139","0c2bde02":"91259","5d7854ee":"91624","0e2a382c":"91721",d660974a:"91802","45ec0b53":"91832","7285be48":"91906",f9396bbf:"92128","09d655f0":"92132","8d2c5b8a":"92282","9d03f0f1":"92466","6ef9d53a":"92554",c0b24b68:"92562",a1864d4c:"92620","0913d920":"92637","378a04e9":"92726","6b7b22fb":"92764","847cfb29":"92878",f2ce6c58:"93101",f8990f5d:"93310","937af0fd":"93387","6e21121a":"93564",c9451cfd:"93600","304ea052":"93613",f1844afc:"93748","30b090fe":"93884","9de1aaaf":"93933","8f6be87c":"93988","30f115bb":"94107",cad1d944:"94147","8e32fe61":"94437",cf0f284f:"94446","1f9a27ac":"94697","6a294d93":"94703","2cfecc25":"94796",cb42debe:"94952",e6ca5891:"95031","758f575e":"95063","1f7f27b4":"95082","48b56ed7":"95216",c4aed824:"95226","9f682853":"95238","924130ca":"95338",f154dce4:"95367",eb5ca0ce:"95457","7d706e04":"95500",eeb8e89e:"95550","0ea902c2":"95577","6c4a10fa":"95591","2de83f92":"95596","1c1ca6fd":"95644",e5c318a1:"95830",b2f554cd:"95894",cefe6d85:"95911","2e20e09d":"96166",de0ffc1f:"96176","031793e1":"96334","5cefb82a":"96371",b340d1a5:"96401",d6e8f7e1:"96501","8e827e8a":"96681","5a335306":"97057","5e119875":"97136",ea85e407:"97184","11a68ed0":"97221","5cc3371a":"97289","5bc5170f":"97292",ec423149:"97512","6b26cec4":"97566","0cdc2010":"97590","3b8f7586":"97612","76de6265":"97614","0f9f4702":"97705","46ed2231":"97826","15c1d801":"97948","74a2c672":"97995","56d52a81":"98085","6cd7d4e5":"98167","6395d7a7":"98271",aa074a57:"98383",d743a1d5:"98400","3570154c":"98475","9439d9b9":"98526","86cda1c5":"98550","935f2afb":"98581","1065ee2a":"98850","1ed419c0":"98978","5458faed":"99039","24d58b49":"99055","9573cbc4":"99245",e679f2e1:"99372","2df6bfe3":"99645","8bfe30f1":"99652",e4e3af74:"99668",b8a5e324:"99949"}[e]||e,r.p+r.u(e)},(()=>{var e={45354:0,71869:0};r.f.j=(d,a)=>{var c=r.o(e,d)?e[d]:void 0;if(0!==c)if(c)a.push(c[2]);else if(/^(45354|71869)$/.test(d))e[d]=0;else{var f=new Promise(((a,f)=>c=e[d]=[a,f]));a.push(c[2]=f);var b=r.p+r.u(d),t=new Error;r.l(b,(a=>{if(r.o(e,d)&&(0!==(c=e[d])&&(e[d]=void 0),c)){var f=a&&("load"===a.type?"missing":a.type),b=a&&a.target&&a.target.src;t.message="Loading chunk "+d+" failed.\n("+f+": "+b+")",t.name="ChunkLoadError",t.type=f,t.request=b,c[1](t)}}),"chunk-"+d,d)}},r.O.j=d=>0===e[d];var d=(d,a)=>{var c,f,b=a[0],t=a[1],o=a[2],n=0;if(b.some((d=>0!==e[d]))){for(c in t)r.o(t,c)&&(r.m[c]=t[c]);if(o)var i=o(r)}for(d&&d(a);n