Date: Thu, 28 Mar 2024 15:28:34 +0000 (UTC) Message-ID: <327999516.17.1711639714749@59c387307f25> Subject: Exported From Confluence MIME-Version: 1.0 Content-Type: multipart/related; boundary="----=_Part_16_1767246127.1711639714749" ------=_Part_16_1767246127.1711639714749 Content-Type: text/html; charset=UTF-8 Content-Transfer-Encoding: quoted-printable Content-Location: file:///C:/exported.html
Below is a list of the key features released today:
Change 18857: Pre-processor Switch for enabling OpenEd= ge BPM Integration or slibooxml
Change 18854: InvokeTask API simplification of the Dat= aset parameters in the invoked Task method.
Change 18850: WidgetHelper:SetFrameBackgroundColor: Ad= ditional parameter plColorLiterals to force setting the BG color of LITERAL= and FILL-IN VIEW-AS TEXT widets to the Frame's BG color
Change 18845: UltraToolbarsHelper:CreateTextBoxToolFro= mFillIn
Change 18844: WidgetHelper:FindChildWidgetByScreenValu= eAndType = span>
Change 18840: Subscribe/Unsubscribe to ActiveMdiChildC= hanged and TextChanged events with NO-ERROR
Change 18781: UltraToolbarsHelper:
&IF DEFINED (WinKit) NE 0 AND DEFINED (DotNetAcces= sible) NE 0 &THEN when accessi= ng Consultingwerk.WindowIntegrationKit.IToolImageProvider
Change 18771: New method BindingSourceHelper:GetTableS= chema
Change 18770: New Method BufferHelper:TotalNumberOfFie= lds =
Change 18754: SmartWindowForm ActiveSmartControlChange= d Event and ActiveSmartControl property: Simplified way to activate and dea= ctivate TableIO and Navigation links in a Form in cases when a SmartToolbar= Controller is linked to more than a single Navigation and TableIO Target. I= n these cases the SmartWindowForm will just have to override the OnActiveSm= artControlChanged method and execute THIS-OBJECT:ActivateLinks (THIS-OBJECT= :ActiveSmartControl) .
Change 18748: New property PromptForSaveValuesOnRowDea=
ctivate on the SmartUpdatableBrowser: =
p>
The NEW BPMAdapterProxy () will only be executed when = there is no IBPMAdapterProxy instance in the ServiceContainer yet.
Change 18743: IServiceContainer:AddService now returns= the service object back (for fluent style coding)&n= bsp;
Change 18739: Windows 7 Taskbar Icon for Business Enti= ty Designer, Tester and CustomerExplorer Demo <= /span>
Change 18729: DataAccess: BeforeSavingRowChanges and A= fterSavingRowChanges events as additional validation hooks in the DataAcces= s class
Change 18725: Ability to invoke Debugger from the Noti= fyIcon
Change 18718: SmartBusinessEntityAdapter:InvokeMerthod= e activates WAIT-STATE (hour glass and notify icon) during server call
Change 18713: Tool type validation in UltraToolbarsHel= per:GetStateButtonToolChecked / SetStateButtonToolChecked
Change 18712: SmartToolbarController: AddNavigationToo= ls, fix creation of ButtonTools that don't have a large image in design tim= e = p>
Change 18709: GenericList:ToArray()
Change 18707: Consultingwerk.ListNameValuePair
Change 18696: Added UltraCalcManager to Assemblies
Change 18694: Context menu in NotifyIconWaitStateManag= er (when DebugMode is turned on). Ability to display information about the = current process. =
Change 18692: SmartViewerControl: DeactivateEventHandl= er now checks for the validity for the containing Form before unsubscribing= from events. &nb= sp;
Change 18688: Fixed sorting on SmartDataBrowser Column= Click in SmartTempTableAdapter
Change 18687: Reference ISmartDataSource Interface in = ExternalDataSource property by USING Statement =
Change 18677: InvokeTask API in ServiceAdapter/Service= Interface <= /span>
Change 18673:
Type-check for Controls out of the ControlsCollection = and also casting a Control to Syst= em.Windows.Forms.Control is not nessesary
IF NOT RecurseCheckIsOkToClose (poControls:Item[i]:Con= trols,
Change 18672: UltraToolbarsHelper: BeginUpdate and End= Update around RefreshTools
Change 18671: Fixed DatasetControllerTemplate
Change 18662: AETF 1.0.6 - OpenEdge SDK integrated fro= m PSDN
Change 18658: SmartBusinessEntityAdapter: New AutoComm= it property and ISmartCommitSource/ISmartCommitTaret Interface, allow multi= ple updates on the client to be passed in a single request to the backend. = The current implementation is kind of a preview, currently lacking the foll= owing detail functionality:
- Prompting for commit/undo/cancel when the SmartBusin= essEntityAdapter is about to retrieve new data (due to a call to RetrieveDa= ta or when it's data parent has new data available) ? with the ability to b= lock the parent data adapter from moving to that other record - Showing error messages from the backend in th= e context of the records that raised the errors (e.g. reposition and indica= te multiple errors vs. using just a single error message dialog) - From the toolbars point of view the abilit= y to work with more than a single SmartBusinessEntityAdapter as the ISmartC= ommitTarget and the ability to change the currently active one runtime
Change 18652: New method: Consultingwerk.Util.DatasetH= elper:HasChanges =
Change 18651: Fixed ErrorHelper for formatting structu= red (ADM2 style) error messages with more than a single message
Change 18645: New NotifyIcons in CustomerExplorer Samp= le <= /p>
Change 18644: Interface IDatasetController optional th=
ru conditional compilation, only when SmartComponent Library is available
Change 18643: Our GUI for .NET products (Dynamics4.NET= , SmartComponent Library and WinKit) do typically run on Windows only. Whit= this change to products.i we do activate the conditional condition only wh= en compiling on windows. This is achieved by setting the GLOBAL-DEFINES Dyn= amics4NET, SmartComponentLibrary and WinKit when WINDOW-SYSTEM BEINGS MS-WIN
Change 18642: SmartUpdatableBrowser: Begin Edit mode w= hen beginning to change the first cell in a row, not when leaving it.
Change 18635: Collection for GroupAssignTargets in Sma= rtViewerControl &= nbsp;
Change 18634: Ability to Query the list of the SmartDa= taTarget's =
Change 18596: WidgetTypeEnum&nb= sp;
Change 18573: Integrated UserControl that combines an = UltraTree with search capability from Dynamics4.NET&= nbsp;
Change 18571: New method FindAllWidgetsOfType in Widge= tHelper
Change 18568: Consultingwerk/foreach.i CAST the collec= tion {4} to IEnumerable before accessing the GetEnumerator method to allow = for use with Collections that implement that method explicitly for that int= erface.
Change 18567: IToolImageProvider Interface to allow cu= stom implementation of services that return the Image for the ButtonTool in= WinKit &nbs= p;
Change 18550: UltraToolbarsHelper: New standarized Rou=
tine for loading images and BuildRibbonGroupFromList, method to create a Ri=
bbonGroup basde on a list of WidgetHandles (rather than the whole frame)
Change 18549: UltraToolbarsManager:BuildRibbonGroupFro= mFrame now returns the reference to the RibbonGroup&= nbsp;
Change 18548: UltraToolbarsHelper, RefreshTools: Chang= e label only when it's not just the case that is changing, for the Ribbon w= e should actually never be changing the Caption of a tool
Change 18542: Implemented Sorting in the SmartBusiness= EntityLookup class. Added two new properties to the SmartBusinessEntityLook= up class: LookupQuerySort and LookupDialogQuerySort. The LookupDialogQueryS= ort property has also been added to the ISmartBusinessEntityLookupDialog in= terface. Custom Lookup Dialog implementations will need to add this propert= y, otherwise they won't be able to compile.
The SmartWindowForm class now has two new properties: = ExternalDataSource and PrimaryDataTarget.
The PrimaryDataTarget points to a SmartViewerControl, = SmartDataBrowser or SmartDataAdapter (or derived types) inside the Form, th= e ExternalDataSource property can get assigned by the Form (or what so ever= ) has started the a new Form instance before the Form is shown. During the = Load of the Form the SmartWindowForm will assign the ExternalDataSource to = the SmartDataSource property of the PrimaryDataTarget:
DEFINE VARIABLE oForm AS SalesrepDetailForm NO-UNDO .&= nbsp; oForm =3D NEW SalesrepDetailForm (= ) . oForm:ExternalDataSource =3D s= martBusinessEntityAdapter1 . WAIT-= FOR oForm:ShowDialog () .
Change 18519: SmartDataTarget Design Time Interface (.= NET) added =
Change 18506: SmartUpdatableBrowser: When a save opera= tion is completed, the Viewer will remain no longer in Add mode (property A= ddingRecord). Prior to this fix, the first record in a query would disappea= r when it has been edited directly after the creation and the edit is cance= lled. This was because the CancelUpdate would invoke the CancelCreateRecord= in the DataSource
This is the same fix as @18492 for the SmartViewerCont= rol.
Change 18496: Centralized routine to convert Progress = DATA-TYPE into Progress.Data.DataType Enum member in DataTypeHelper class.<= span class=3D"anchor">
=Change 18495: Fixed typo's on the Progress Data-Types = in the DatasetRelationParser
Change 18494: When the position was 0 before the delet= e and is 0 after the delete we have to invoke the ParentPositionChanged eve= nt in the linked SmartDataAdapter classes by using the InvokeParentPosition= Changed method &n= bsp;
Change 18492: SmartViewerControl: When a save operatio= n is completed, the Viewer will remain no longer in Add mode (property Addi= ngRecord).
This was because the CancelUpdate would invoke the Can= celCreateRecord in the DataSource
Change 18487: The WinKit core runtime (everything excl= using the sample application and the WinKit Design tools) are now integrate= d into the SmartComponent Library. This is required for some of the tools i= n the Consultingwerk.Studio pacakge (like embedding the Progress Procedure = Editor into .NET Forms).
Change 18466: ColorTableConverter
Change 18455: New method Consultinwerk.Util.QueryHelpe= r:OpenNonMatchingQuery to open a query that returns no records (query is op= en but returns no matchess)
Change 18436: RaiseComponentChanged implementation (in= Consultingwerk.Util.DesignerHelper). Allows to dirty (mark as save is requ= ired) a Visual Design in the OpenEdge Architect Visual Designer when a Prop= erty of a SmartComponent has changed by executing a DesignerVerb
Change 18435: Generator routine for creating customiza= tion classes for the SmartComponent Library and OERA classes
Rapid prototyping of customer derived types, see = Recommended Subclassing =
Change 18434: SmartDataBrowser and SmartLookup Dialogs=
to use ISettingsService instead of direct access to the Windows Registry
Change 18432: Consultingwerk.Framework.ISettingsServic= e Interface for abstracting storing user settings from the actual storage. = Consultingwerk.Windows.RegistrySettingsService as a default implementation = reading and writing to the Registry, modified Consultingwerk.Forms.BaseForm= to store the Form position and size using the ISettingsService Interface t= o allow alternative implementations of saving user settings without having = to override the BaseForm implementation.
Change 18424: General usage of System.EventArgs:Empty = instead of NEW System.EventArgs ()
Change 18422: OERA ServiceManager: When a # is used in= the service name, we pass use entry (2,...., "#") as the parameter to the = Constructor of the service class (e.g. BusinessEntity). When no # is used t= he whole service name is used for locating the class name
Change 18419: New Event AfterBatchAvailable on SmartBu= sinessEntityAdapter that is raised together with AfterRetrieveData as well = as after fetching a new batch of records (forward or backwards)
Change 18414: Win32:PostMessage: Check for hWnd > 0= in PostMessage(A)
Change 18397: New method in ProcedureHelper: ShortDotP= Name: Returns the file-name of the current procedure handle without the pat= hname and without the extension
Change 18386: Ignore System.InvalidReferenceException = from SUPER:OnFormClosed in the Consultingwerk.Forms.BaseForm override
When a Control subscribing to the FormClosed event of = the containing Form (or grand-parent Form) is already disposed it looks lik= e in 10.2B04 the AVM is causing a NullReferenceException when the .NET side= of the bridge is trying to invoke the ABL event handler. It is considered = save to ignore those errors during OnFormClosed in the Form base class (Pro= gress.Windows.Form) as there is little we can do from the ABL to avoid thes= e errors. <= /span>
Change 18332: SmartDatasetChildAdapter does no longer = subscribe to the DatasetControllerChanged event when running in the Visual = Designer = span>
Change 18317: SmartViewerControl now also disables Con= trols with SetControlEnabled (..., ControlEnabledEnum:UpdateOnly).
Change 18315: SmartViewerControl: Do not initialize th= e event handler in the Visual Designer. This would just have an negative im= pact on the loading time.
Change 18310: Comment on FormClosedHandler usage
Change 18300: BindingSourceHelper:AssignFromBindingSou= rce
A generic routine to assign fields from a BindingSourc= e to a buffer. &n= bsp;
Change 18299: BindingSourceHelper:AssignFromBindingSou= rce =
System.NullReferenceException: Attempt to use an objec= t that has been deleted.
bei Progress.ClrBridge.ProMarshal.ToGCHandle(Object , =
Boolean ) bei Progress.ClrBridge.B=
rgClrToPro.HandleUIEvent(Object , Object , Int32 , String , Int32 , Int32 )=
bei ConsultingwerkBusinessEntityD=
esignerUIBusinessEntityDesignerFormDeactivateReceiver.OnDeactivate(Object ,=
EventArgs ) bei System.EventHandl=
er.Invoke(Object sender, EventArgs e) bei System.Windows.Forms.Form.OnDeactivate(EventArgs e) bei System.Windows.Forms.Form.set_Active(Boolean =
value) bei System.Windows.Forms.Fo=
rm.WmActivate(Message& m) bei =
System.Windows.Forms.Form.WndProc(Message& m) bei Progress.Windows.Form.WndProc(Message& m)
Change 18295: New DesignerVerb to Shut down and Reload= the running Business Entities
Change 18293: SmartBusinessEntityAdapter:FetchLastOnSe= rver is now a PUBLIC method, so that it can actually be used as an alternat= ive to RetrieveData, if a Form should be positioned on the LAST record, ins= tead of on the first record.
Change 18291: Progress.Util.BindingSourceHelper:Bindin= gFieldName =