...
OpenEdge Release | Version Information |
---|---|
11.3.3, 11.3.4, 11.4, 11.6.2, 11.6.3, 11.7, 11.7.1, 11.7.2, 11.7.3.007, 11.7.4, 12.0 | Release 11.3 #52544@2019-06-16 |
OpenEdge 12.0 support!
We are please to announce that we are not aware of any issues using the SmartComponent Library on OpenEdge 12.0. We hereby declare OpenEdge 12.0 fully supported for the SmartComponent Library as of the release of May 1st 2019.
OpenEdge 11.7.4 support!
We are please to announce that we are not aware of any issues using the SmartComponent Library on OpenEdge 11.7.4. We hereby declare OpenEdge 11.7.4 fully supported for the SmartComponent Library as of the release of November 5th 2018.
...
A login is required to participate in the forum. Don't be shy - create your account today!
Announcing the SmartFramework ERD Designer
...
SCL-2660 Fixed issue where a MetaViewer has been rendered at the wrong location
Description:
We have resolved an issue where a MetaViewer might have been rendered at the wrong position on a MetaForm.
Improvement
SCL-2653 Imported DataFields for all SmartFramework Business Entities
Description:
We have now imported the data fields for all SmartFramework Business Entities into the SmartFramework repository.
SCL-2655 Implement RESTful endpoint in UserGroupBusinessEntity to retrieve groups and possible assignments
Description:
We have implemented a RESTful endpoint that returns a users group assignments including the list of not assigned groups. Based on the user guid, the following call
http://localhost:8820/web/SmartFramework/Entities/GetUserGroupAssignments ?Value=ffcc4f24-af98-8187-e211-4714049f854c
returns
Code Block | ||
---|---|---|
| ||
{ "dsUserGroup": { "ePossibleAssignments": [ { "UserGroupGuid": "a9c4c540-2241-2dbb-5414-1474a042361f", "GroupGuid": "9f0b8fc7-b7ce-19a1-e211-b55f47246bff", "UserGuid": "ffcc4f24-af98-8187-e211-4714049f854c", "UserName": "", "GroupName": "Admin" }, { "UserGroupGuid": "a9c4c540-2241-2dbb-5414-1474a142361f", "GroupGuid": "9f0b8fc7-b7ce-19a1-e211-b65fd249a841", "UserGuid": "ffcc4f24-af98-8187-e211-4714049f854c", "UserName": "", "GroupName": "Translation" } ], "eSmartUserGroup": [ { "UserGroupGuid": "b1ec906f-df55-aca4-e211-e05f8d10946a", "GroupGuid": "9f0b8fc7-b7ce-19a1-e211-b65f48370f36", "UserGuid": "ffcc4f24-af98-8187-e211-4714049f854c", "UserName": "mikefe", "GroupName": "Consultingwerk Admin", "ParentGroupGuid": "9f0b8fc7-b7ce-19a1-e211-b55f47246bff" }, { "UserGroupGuid": "c9a39b58-71f9-f3be-e211-38f6c49cab8b", "GroupGuid": "9f0b8fc7-b7ce-19a1-e211-b65f78dd0345", "UserGuid": "ffcc4f24-af98-8187-e211-4714049f854c", "UserName": "mikefe", "GroupName": "User", "ParentGroupGuid": "" } ] } } |
...
SCL-2654 SmartDB setup script now imports all .smartrepo files provided
Description:
The SmartDB upgrade and migration script now imports the .smartrepo files provided by Consultingwerk as part of the SmartComponent Library releases.
SCL-2657 JSDO Catalog now contains Object/Token Security for CRUD Tokens
Description:
The JSDO Catalog does now contain the information about the Service Interface security tokens for the requested business entity. We have added the smartRestrictions section to the resource data.
...
SCL-2658 Added method GetInitialValues to the DataMaintenanceBusinessTask
Description:
We have implemented the method GetInitialValues to the DataMaintenanceBusinessTask to support this in the same was as expected by Business Entities.
SCL-2659 Implemented rendering of custom toolbar buttons
Description:
We have implemented the rendering of custom (non Table IO or Navigation buttons) in the Ribbon on Dynamic Forms. The rendering is based on the ToolbarButtons property of the DefaultToolbar instance. When this property is non blank, this property defines the buttons which should be rendered on the Toolbar, e.g.:
No Format |
---|
first,previous,next,last,rule,add,copy,save,update,cancel,delete,rule,country-combo,rule,customer-orders,customer-credithold |
The buttons themselves will be defined in JSON files together with the Ribbon Bands and Groups.
The .applicationsettings file is used to define the JSON files defining the toolbar buttons:
Code Block | ||
---|---|---|
| ||
"WindowsToolbarButtonDefinitions": { "tableio": "Consultingwerk/Windows/Framework/Repository/Rendering/default-buttons.json", "windowsdemo": "Consultingwerk/SmartComponentsDemo/Windows/windowsdemo-buttons.json" } |
The default-buttons.json file defines the standard Navigation and TableIO Buttons.
The file has three sections: tabs, groups and tools. Groups reference their parent tab and tools reference their parent group. Those groups and tabs will be created only when buttons are rendered referencing them.
Code Block | ||
---|---|---|
| ||
{ "tabs": { "start": { "key": "start", "caption": "Start" } }, "groups": { "navigation": { "key": "navigation", "caption": "Navigation", "tab": "start" }, "tableio": { "key": "tableio", "caption": "Maintenance", "tab": "start" } }, "tools": { "rule": { "buttonType": "separator" }, "separator": { "buttonType": "separator" }, "add": { "buttonType": "button", "buttonName": "TableIOAdd", "buttonLabel": "Add", "buttonImageSmall": "Consultingwerk/SmartComponents/Images/add.png", "buttonImageLarge": "Consultingwerk/SmartComponents/Images/add_32.png", "group": "tableio" }, "copy": { "buttonType": "button", "buttonName": "TableIOCopy", "buttonLabel": "Copy", "buttonImageSmall": "Consultingwerk/SmartComponents/Images/copyrec.png", "buttonImageLarge": "Consultingwerk/SmartComponents/Images/copyrec_32.png", "group": "tableio" }, "update": { "buttonType": "button", "buttonName": "TableIOUpdate", "buttonLabel": "Update", "buttonImageSmall": "Consultingwerk/SmartComponents/Images/update.png", "buttonImageLarge": "Consultingwerk/SmartComponents/Images/update_32.png", "group": "tableio" }, "save": { "buttonType": "button", "buttonName": "TableIOSave", "buttonLabel": "Save", "buttonImageSmall": "Consultingwerk/SmartComponents/Images/saverec.png", "buttonImageLarge": "Consultingwerk/SmartComponents/Images/saverec_32.png", "group": "tableio" }, "cancel": { "buttonType": "button", "buttonName": "TableIOCancel", "buttonLabel": "Cancel", "buttonImageSmall": "Consultingwerk/SmartComponents/Images/cancel.png", "buttonImageLarge": "Consultingwerk/SmartComponents/Images/cancel_32.png", "group": "tableio" }, "delete": { "buttonType": "button", "buttonName": "TableIODelete", "buttonLabel": "Delete", "buttonImageSmall": "Consultingwerk/SmartComponents/Images/deleterec.png", "buttonImageLarge": "Consultingwerk/SmartComponents/Images/deleterec_32.png", "group": "tableio" }, "first": { "buttonType": "button", "buttonName": "NavigationFirst", "buttonLabel": "First", "buttonImageSmall": "Consultingwerk/SmartComponents/Images/first.png", "buttonImageLarge": "Consultingwerk/SmartComponents/Images/first_32.png", "group": "navigation" }, "prev": { "buttonType": "button", "buttonName": "NavigationPrev", "buttonLabel": "Previous", "buttonImageSmall": "Consultingwerk/SmartComponents/Images/prev.png", "buttonImageLarge": "Consultingwerk/SmartComponents/Images/prev_32.png", "group": "navigation" }, "previous": { "buttonType": "button", "buttonName": "NavigationPrev", "buttonLabel": "Previous", "buttonImageSmall": "Consultingwerk/SmartComponents/Images/prev.png", "buttonImageLarge": "Consultingwerk/SmartComponents/Images/prev_32.png", "group": "navigation" }, "next": { "buttonType": "button", "buttonName": "NavigationNext", "buttonLabel": "Next", "buttonImageSmall": "Consultingwerk/SmartComponents/Images/next.png", "buttonImageLarge": "Consultingwerk/SmartComponents/Images/next_32.png", "group": "navigation" }, "last": { "buttonType": "button", "buttonName": "NavigationLast", "buttonLabel": "Last", "buttonImageSmall": "Consultingwerk/SmartComponents/Images/last.png", "buttonImageLarge": "Consultingwerk/SmartComponents/Images/last_32.png", "group": "navigation" } } } |
A sample file with custom buttons is the file windowsdemo-buttons.json:
Code Block | ||
---|---|---|
| ||
{ "tabs": { "start": { "key": "start", "caption": "Start" } }, "groups": { "customer": { "key": "customer", "caption": "Customer", "tab": "start" }, "filter": { "key": "filter", "caption": "Filter", "tab": "start" } }, "tools": { "country-combo": { "buttonType": "combo", "buttonName": "country-combo", "listItems": [ { "value": "AT", "text": "Austria" }, { "value": "AU", "text": "Australia" }, { "value": "BE", "text": "Belgium" }, { "value": "CH", "text": "Switzerland" }, { "value": "DE", "text": "Germany" }, { "value": "DK", "text": "Denmark" }, { "value": "ES", "text": "Spain" }, { "value": "FI", "text": "Finland" }, { "value": "FR", "text": "France" }, { "value": "GB", "text": "Great Britan" }, { "value": "IT", "text": "Italia" }, { "value": "NL", "text": "The Netherlands" }, { "value": "NO", "text": "Norway" }, { "value": "SE", "text": "Sweden" }, { "value": "USA", "text": "United States of America" } ], "group": "filter" }, "customer-credithold": { "buttonType": "command", "buttonAction": "PutCustomerOnHoldHandler", "buttonName": "customer-credithold", "buttonLabel": "Credit hold", "buttonTooltip": "Puts the customer on credit hold", "buttonImage": "Consultingwerk/SmartComponentsDemo/Web2/Images/sign_stop.png", "group": "customer" } } } |
This file defines a combo-box tool in the Ribbon and a custom button. When the custom button is clicked, the method referenced by the "buttonAction" attribute is executed in the Form's logic class. The method is expected to be PUBLIC and provides the two input parameters of the ToolClick event of the UltraToolbarsManager class: sender AS System.Object, e AS ToolClickEventArgs.
!screenshot-1.png|thumbnail!