Release Note 024: New Features released on June 13th 2012
OpenEdge Version compatibility note
This release of the SmartComponent Library has been tested with OpenEdge 10.2B Service Packs 3, 4, 5 and 6 as well as OpenEdge 11.0.0.003. If you are planning to use the SmartComponent Library on OpenEdge 11, please make sure to use at least the Hotfix 003. If you need support obtaining this service pack from Progress Technical Support please let us know!
We are expecting the release of OpenEdge 11.1 later this month. We will provide a feedback on compatibility with OpenEdge 11.1 soon after the release of OpenEdge 11.1.
New add-ons to the SmartComponent Library
Recently we have developed two add-ons to the SmartComponent Library. Together with the framework extension for mobile device development (SmartComponent.Mobile) the SmartComponent Library can now also be used to develop WebSpeed applications (SmartComonents.Web) and provides a very tight integration with OpenEdge BPM/Savvion. Please contact us, when you are interested in exploring the capabilities of those add-ons.
Versions of the Consultingwerk .NET Assemblies contained in this release
Assembly name | Version |
Consultingwerk.Design | 2.2.0.17550 |
Consultingwerk.SmartComponents.Design | 2.2.0.19636 |
Consultingwerk.SmartComponents | 2.2.19846 (updated) |
Consultingwerk.Support | 2.2.0.18949 |
Consultingwerk.Utilities.Support | 1.10.0.20532 (new Assembly) |
List of new features / functionality
Below is a list of the key features released today:
Change 21340: RenderedBrowseControl now can re-fetch the DB records based on a unique index (does not need to be primary unique)
Change 21339: MessageFormHelper: Changed the way the Dialog parent/owner is set because at one client using the ShowDialog with the Owner parameter caused this error (likely Progress Bug)
Change 21337: UltraToolbarsHelper: Don't update the Caption with the LABEL of a Radio-set
Change 21336: WidgetHelper:FindChildWidgetsByName
Change 21316: ListHelper:DelimitedListToDictionary
- Change 21258: Consultingwerk.Character class for Character comparison
- Change 21257: Formatting of Stack-Trace when written to the (client-)logfile
Change 21251: Enum for ClientType
Change 21250: BusinessEntityDesigner / - generator are now able to regenerate the dataset/temp-table definitions without overwriting the rest of the code
Change 21238: Ensure that AppError derived Exception class properly adds the Error Messages to the base
Change 21237: ListHelper:AlternatingListToDictionary
- Change 21227: Generic Dictionary implementation
Change 21226: Consultingwerk.Framework.Base.List:ToArray () method
Change 21223: DataTypeHelper:ByteArrayToMemptr
Change 21217: Don't restore DockManagerSettings from the registry, when there is not a stored setting (yet)
Change 21201: New method in the ServiceManager that allows registering of services that have not been started by the ServiceManager. Using that method, for instance session services loaded into the default ServiceContainer could be used by clients for InvokeTask calls
Change 21192: Ability to use alternative ServiceAdapter instances with the SmartBusinessEntityAdapter
Change 21155: Fixed SESSION:REMOTE for WebSpeed
- Change 21122: Email utility
Change 21108: Additional LogManager methods
Change 21070: UltraGridSettings: No need to provide Index by ColumnKey
Change 21043: ViewObjectsForm: Additional details about the listed objects
Change 21042: Enhancements to UltraToolbarsHelper:EraseToolbarCollection, now also deletes Ribbon Tabs and Groups
- Change 21038: Fixes for Unix/Linux compatibility
Change 21036: Resolved dependnecy to SmartComponents for ttViewerDesign.i File should be removed under Consultingwerk\SmartComponents\Implementation
Change 21033: Win32 API Methods to disable the CloseButton of a Window/Form and disable window repaint
Change 21023: FileHelper:GetFileList with support for non .NET
Change 21020: New property: BaseForm:UseStartupSizeAsMinSize Enforce Form's MinSize during OnLoad
Change 21019: IEmbeddedWindowForm:OverlayControls is now a dictionary with the Handle of the ABL Widget being the Key
Change 20986: Bug 2826: Support for Queries with more than 18 buffers in QueryHelper:RepositionToRowidArray
Change 20983: Bug 2819: FindRowWhere should use QUERY instead of FIND-FIRST
Change 20982: Fixed the way that SetQuerySort in SmartBusinessEntityAdapter is working when BatchSize > 0
Change 20981: SmartDataBrowser: Use fully qualified field name when building QuerySort
Change 20972: BindingSourceHelper:BindingBufferFieldName to resolve a column's field name with and without the UseFullFieldName Attribute of the ProBindingSource (10.2B+5)
Change 20966: New API in DockManagerHelper to store the DockManager settings in the ISettingsService. The file .BusinessEntityDesignerSettings2.xml is obsolete and should be deleted.
Change 20965: DataTypeHelper:ByteArrayToCharacter() and CharacterToByteArray ()
- Change 20964: ISettingsService now using LONGCHAR instead of CHARACTER
- Change 20962: Generic Assertion class for ABL primitive values
Change 20959: UltraTreeWithSearchControls: Turn off Timer Component in PerformSearch
Change 20958: WidgetHelper:LoadImage to use ImageHelper:MakeTransparent instead of Bitmap's MakeTransparent method.
Change 20957: WidgetHelper:FindAllFrames
Change 20951: WinKit: IToolImageProvider extended for CheckReloadImage method to allow cusotmer implementations of Image Loading also determine if the Image should be reloaded during a refresh of the state
Change 20950: WidgetHelper:CanFindWidgetBelowHeight
Change 20937: WidgetHelper:CanFindWidgetOfType
Change 20936: GLOBAL-DEFINE WinKitActive moved to winkitactive.i for better reuse
Change 20934: UltraToolbarsHelper:LinkButtonsAndTools based on a list of Button handles (in alternative to those methods based on a Frame handle)
Change 20932: WidgetHelper:ReplaceWidgets to recurse nested frames
- Change 20929: Handling of errors from Update or Delete Trigger during SAVE-ROW-CHANGES
Change 20907: EventLogHelper class - simplify working with the Windows EventLog
- Change 20902: Restrict Data-Relation Identifier to 32 characters (ABL limit)
Change 20898: New API for adding Dataset Callbacks in Consultingwerk.OERA.DataAccess
- Change 20897: Business Entity Generator: Generated Temp-Table fields will have the LABEL qualified with :T translation attribute
- Change 20896: Error-Handling when getclassnames.p did not return a valid file-name
- Change 20886: Display Progress Version in the Business Entity Designer Status
- Change 20883: Support for having the same a DB-Table name in more than one database in the Business Entity Designer
Change 20867: Bug 2808: Fix initial value for FetchQueryString
Change 20858: Bug 2808 - Additing INITIAL Value to all Property definitions which will be mapped to [DefaultValue] attributes for the Visual Designer
- Change 20857: Bug 2817: Handling of client side query strings with unquoted ? values fixed
- Change 20834: Use Column Name when there is no Column Label
Change 20801: Method to return a list of records as EntityTable instances based on a Query/QueryString
- Change 20799: Business Entity Designer Settings with activation for the Entity Object Generator Plugin
- Change 20797: Traverse child buffers and populate child objects
- Change 20796: Generate methods to copy buffer values to and from the Entity Object
- Change 20795: Maintenance of Access Mode for Entity Properties from Business Entity Designer
Change 20793: 2820 : Bug in DataAccess:FetchData when using Oracle Dataserver
- Change 20786: Generation of Entity Objects
- Change 20784: Maintenance of OO relation name, table class name and table package name
- Change 20774: Business Entity Designer: Maintenance of Relation cardinality (one/many)
- Change 20767: Abstracted the access to the dynamic viewer definition to allow retrieval and storage of the settings from or to custom data sources
- Change 20760: Replaced all TAB Characters with four SPACE Characters to preserve formatting of Consulting source code when customers are using more of less spaces for tabs
- Change 20758: Avoid Exceptions during Restoring of Ribbon Quick Access Toolbars
Change 20757: [Bug 2810] Check for VALID-HANDLE in FINALLY blocks - first part All packages except the actual Consultingwerk.SmartComponents package reviewed
Change 20756: Added method RefreshButtons now required for Interface IEmbeddedWindowForm
Change 20750: IEmbeddedWindowForm:RefreshButtons
Change 20749: WidgetHelper:ReplaceWidget
Change 20745: WidgetHelper:LeftAlingFields
- Change 20741: Double Click event should only call the DEFAULT-ACTION ABL Event, when done on a regular row
Change 20733: UltraToolbarsHelper: Moved the call to add the new item to the Tools collection to before the call to the custom ToolImageProvider class so that this class could - if required - call back to poToolItem:ToolbarsManager:DockedWithinContainer etc.
Change 20722: UltraToolbarsManager:FindToolFromWidgetHandle
Change 20691: ServiceLoader now performs PROPATH lookup to find XML file to read
Change 20685: EmbeddedWindowTabFolderForm:AssignTabLabels
- Change 20652: Enum for the Internal Entry Type
- Change 20648: Tokenizer class
Change 20637: SmartDatasetAdapter: UpdateRow (logical) Re-Evaluate the parent filter query based on eventually updated parent filter fields when in a GroupCreate situation the parent's key fields are changed on the server
Change 20631: WidgetHelper: Avoid setting the background color to the same color as the foreground.
Change 20609: UltraToolbarsHelper:GetMainMenuToolbar (poToolbarsManager)
- Change 20608: Infragistics Translation as a standard framework service (typically loaded once during application startup or when the users language changes)
Change 20607: WinKitDontEmbed Switch in embedwindow.i to allow no to embed a specific window even when the WinKit is enabled by default
- Change 20577: Fix for Bug 2807: Verify validity of Dataset handle prior to deleting it.
- Change 20574: Automatic saving of the Ribbon Quick Access Toolbar
Change 20571: RibbonBuilder service class
Change 20570: UpdateWindowAttributes in EmbeddedWindowForm for OverlayWidgets
Change 20569: WidgetHelper: New method FindWidgetsInRectangle
Change 20568: UltraToolbarsHelper new methods: GetQuickAccessToolbarTools, RestoreQuickAccessToolbarTools
Change 20565: Added Destructor to the SmartBusinessEntityLookupDialog Form to delete the Data Adpater instance used by the Lookup Dialog.
Change 20559: RenderedBrowseControl:ProcessColorCodingAndCalculatedFields to use NO-LOCK
Change 20553: RenderedBrowseControl:RestoryDynamicBrowseColumns ADD-LIKE-COLUMN should be used with NO-ERROR to suppress error messages, like issues with VALIDATE expressions that do not work in browsers
Change 20552: WidgetHelper:Refresh... routines adopted to the fact that the Tag property may carry additional information
Change 20546: RenderedBrowseControl restores the columns of Dynamic browsers after exchanging the Query handle
Change 20545: PROTECTED Method WidgetHelper:CloseDatePopup renamed to ClosePopup
Change 20544: WidgetHelper: Optionally APPLY CHOOSE or post BM_CLICK when overlay buttons are chosen by the user
Change 20537: RenderedBrowseControl: Support for ROW-DISPLAY on Buffers with NO unique index at all.
- Change 20534: An Utility to import Excel files into Temp-Tables
- Change 20533: Use the inner exception class name as the title for the Error message and not the title of the outer exception.
- Change 20525: Asynchronous Closing of ABL Window widgets from .NET Form
Change 20524: StyleLibraryHelper:LoadFromBlob
- Change 20520: Exclude ROW-DISPLAY Trigger from running the triggereind.i code
Change 20508: UltraToolbarsHelper with support for ICustomToolbarWidgetRenderer
Change 20505: MENU-ITEM's with no image should have DisplayStyle TextOnlyAlways
Change 20504: UltraToolbarsHelper:ToolbarButtonMaxDistance Ability to specify a range in which BUTTON's are kept within the same Group
Change 20487: ValueListHelper with support for ABL CharacterList and ListNameValuePair
- Change 20484: ICharacterInputValidator, IDateInputValidator, IDecimalInputValidator, IIntegerInputValidator, ILogicalInputValidator and a default implementation.
Change 20467: BeforeRetrieveData Event
- Change 20460: Don't explicitly DELETE OBJECT Form's when closing Dialog Forms
Change 20458: Workaround for bug 2774 / OpenEdge bug OE00217383 Consultingwerk.EventArgs inherits from System.EventArgs
Change 20456: Workaround for bug 2774 / OpenEdge bug OE00217383 Consultingwerk.EventArgs inherits from System.EventArgs
Change 20454: RenderedBrowseControl: Default Formatting of calculated columns
Change 20453: RenderedBrowseControl: Fixes to Updatable Browser
Change 20452: DataTypeHelper: map +/- to Logical
Change 20451: Ability to change the order of execution of the APPLY ROW-DISPLAY and the WinKitDisplayFieldsIn hook procedure.
Change 20450: Use of the ProVersionEnum
- Change 20448: Support for DB/Temp-Table fields that are (ab)used as calculated fields
- Change 20447: Cleanup unused properties from Context object
Change 20446: Integration of ILogMessageHandler into RenderedBrowseControl
Change 20442: Linked ImageList with BE structure TreeView - so that the filter icon is shown in the Tree when a table is filtered
Change 20440: BusinessEntityBrowser
Change 20435: ProVersionEnum
Change 20434: MessageFormHelper: Additional optional parameter for the ParentForm
Change 20431: Use a parameter object for the Constructor of the RenderedBrowseControl class to allow for easier extension
Change 20427: RenderedBrowseControl: Prebuild a list of columns matching the unique indexes of all tables
Change 20425: Bundled definition/access to LockWindowUpdate windows API into Consultingwerk.Windows.API.Win32.cls
Change 20414: RenderedBrowseControl: Centralized Routine to adjust ColorCodedColumnNames property to match BindingSource:UseFullFieldNames setting
Change 20413: FormatHelper to map Progress "z" in the format string to "n" for Infragistics. Digit placeholder. A group of n's can be used to create a numeric section where numbers are entered from right to left. Character must be numeric (0-9) but entry is not required.
Change 20403: Ability to display InnerException in ErrorHelper:ShowErrorMessage
Change 20402: InnerError of Exception as Progress.Lang.Error interface, not ProError implementation.
- Change 20399: List classes for ABL primitives
Change 20385: WidgetHelper:FindFramesWithinRectangle
Change 20381: ProcedureHelper:HasInternalEntriesMatching
Change 20377: CompilerHelper: Honor plMD5 parameter
Change 20363: SmartDatasetAdapter: ToString() method override that returns the Business Entity Name, Entity Table and Entity View for logging and Debugging purposes.
Change 20357: NO-ERROR on oClass = Progress.Lang.Class:GetClass (pcFormType)
Change 20318: Actional Instrumentation with the ability to log all fields of a Buffer (useful for SaveChanges)
Change 20291: Fixed ClassHelper:GetClassNamesFromExternalRuntime to work with R-Code only setups
Change 20270: Preparation for WebClient Deployment
Change 20250: AppServer proxy for the Repository Services
Change 20246: BaseForm does no longer use the foreach.i/Iterator when iterating the DependentForms list as this did cause System.InvalidReferenceExeception in .NET
Change 20245: Fixed passing of MessageFields to Actional
Change 20242: Transparency of the seperator between the BindingSource fields and other controls such as the TabFolder in the BindingSourceFieldsControl (Consultingwerk runtime Designer)
Change 20229: A Framework to integrate Actional Instrumentation into the Service Interface (AppServer, OpenEdge 11.0)
- Change 20201: Enumerator support for Dictionaries of ABL primitive types
Change 20188: Shared Interface for the Business Entity related Data Adapters to allow accessing the EntityName
Change 20186: SmartBusinessEntityAdapter: FindRowWhere on server only
- Change 20175: Interface Consultingwerk.OERA.IDSQueryString to allow custom implementations of the Query manipulatio code
Change 20170: SmartViewerControl: SET of SmartDataSource property does not EvaluateTableIOState when set outside of BeginInit and EndInit
- Change 20149: Dictionary classes for ABL Primitives (Consultingwerk.Framework.Collections)
Change 20148: ParameterNullValueException class
Change 20147: InvalidValueException with optional Description attribute
Change 20139: Consultingwerk.CancelableEventArgs INHERITS Consultingwerk.EventArgs, not System.EventArgs
Change 20134: Fixed isse with recursion (nested frames) in WidgetHelper:AddCalendarPopups
- Change 20133: foreachABL.i Include file for enumerating an ABL list
Change 20132: ISupportsListChanged event; invalidates ListEnumerator until Reset()
- Change 20131: IEnumerator / IEnumerable implementation for the Consultingwerk.Framework.Base.List class
Change 20130: BufferHelper:HasField
Change 20121: WinKit TabFolderCustomizer
Change 20107: Additional constructors to the Exception classes using the InnerException pattern
Change 20106: InvalidReferenceException
Change 20105: SmartTempTableAdapter does not require a method to validate a business entity name (ValidateBusinessEntityName). So this method was removed now.
Change 20103: ListChanged Event on List Classes
Change 20090: CompilerHelper: Supress warning messages during running the COMPILE statements to avoid raising errors from compiler warnings.
Change 20036: Literal widget type added to WidgetTypeEnum.
Change 20032: RenderedBrowseControl: Selection Type set to None, to avoid "partly selected" row after binding source position has changed
Change 19993: ObjectAssert:TypeOf
Change 19940: ServiceLoader: Ability to register more than a single Interface (role) per Service using a comma-delimited list
Change 19926: To workaround the issue described in Bug 2776 all WRITE-XML methods in the SmartComponent Library are now using the optional Formatted parameter set to TRUE
Change 19916: Bug 2775, DesignerFieldsHelper :U, removed ASSIGN keyword to workaround compiler crash
Change 19902: BufferHelper:UniqueFindPredicate: When there is no unique primary index, use the first unique index
Change 19900: SmartBindingSource: When adding fields to a viewer design, use the field name as the label when the field's label is not set.
- Change 19859: Dynamic Form Launcher
- Change 19857: IGroupCreate Implementation
Change 19856: SmartViewerControl: After an update or creation of a new record is cancelled, the SmartViewerControl now calls the EvaluateTableIOState method to ensure a proper table IO state
- Change 19855: An Enumeration that describes ABL data types
Change 19848: SmartViewerControl: Invoke EvaluateTableIOState during EndInit
Change 19847: Ensure that CreateBindignSource is not executed during design time, as the GETter of the BindingSource property will always return ? in the Visual Desginer and that would cause issues with the next call that tries to set properties of the ProBindingSource.
Change 19846: Additional .NET Properties aded to the .NET SmartViewer Interface, to increate reliability of them showing up in the PropertyGrid for new Viewers.
Change 19747: The BusinessEntityGenerator will open the generated source code files in OpenEdge Architect after they have been generated.
Change 19736: Fixed ability to create a new record on the SmartBusinessEntityAdapter before prior call to RetrieveData
Change 19719: Fix ClassLookup when using multiple projects (or SharedAVM) by passing PROPATH as a parameter to the external runtime
Change 19715: GroupCreate Link Interfaces
Change 19706: Support for UseFullFieldNames with RenderedBrowseControl
Change 19688: OpenEdge Architect customization tool that opens the selected program as a debug-listing