What's New in DataFlex 2025 (Released April 2025)
DataFlex 2025 introduces new Dashboards, Composite Classes, a Navigation
Designer and more.
Watch the What’s New in DataFlex 2025 Learning
Center course.
Changes in DataFlex 2025 Build 25.0.30.78
Bug Fixes
- SQL Drivers: Corrected the way DB2_Drv handles Unicode data
for CLOB, DBCLOB, and XML type columns
- Dashboard: Resolved issue with multiple levels of nested
dynamic objects
- Dashboard: Fixed error generated when removing a widget with
a weblist containing a header, which did not allow the widget to be
removed
- Doc: Reversed incorrect edits to Validate_Delete_No_Cascade
in the Class Ref.
- Doc: Added link to the What’s New in DataFlex 2025 Learning
Center course
- Doc: Updated link address to correct 404 error when accessing
DF_DATABASE_TRIM_VARCHAR_VALUES from the list of Database Attributes
- Installer: Updated initial registration code for WebApp Server
license that comes with Studio evaluation to resolve issues when entering
a new license
- Runtime: Fixed error when creating Composite with cWebColum
objects
- Studio: Handled error in the Breakpoints panel instead of
displaying "Invalid message MSG_SETINACTIVEBREAKPOINT" on
old breakpoint files
- Studio: Adjusted the Studio to better handle User TEMP folders
containing spaces and avoid error "No valid Workspacename available
for the Wizard" when using the wizards
- Web Controls: Improved customization of cWebColumnLink not
to show _ when no link is available
- Web Controls: Fixed error generated when calling WebDrawing
ExportDrawingPNG
- Web Controls: Fixed JavaScript errors that were generated
when dragging over a WebList that had pbScroll set to False
- Web Controls: Corrected cWebColorForm closing unexpectedly
when dragging the slider or the color dot
Changes Between the final release previous versions in the DataFlex
2025 release cycle
This page lists all new features in DataFlex 2025.
See DataFlex 2025
Final Release Changes for the specific list of changes in DataFlex
2025 between Release Candidate 1 and the Final Release.
See DataFlex
2025 Release Candidate 1 Changes for the specific list of changes
in DataFlex 2025 between Beta 2 and Release Candidate 1.
See DataFlex 2025 Beta 2
Changes for the specific list of changes in DataFlex 2025 between
Beta 1 and Beta 2.
See DataFlex 2025 Beta 1
Changes for the specific list of changes in DataFlex 2025 between
Beta 1 and Alpha 1.
Compatibility
Notes
DF_DATE_4_STATE_ONLY_ON_PARSE
is now turned on by default
We added the DF_DATE_4_STATE_ONLY_ON_PARSE
attribute in DataFlex 24.0 and left the default as off. We are now changing
the default of this property to be on, as this is the better behavior.
Overlap Fields are now Obsolete
Overlap fields have been deprecated since we introduced multi-segment
relationships in DataFlex 11.0 (2005) and we have been encouraging developers
to switch to newer, better alternatives ever since. As of DataFlex 20.0,
when we added Unicode support, Overlap fields that overlap any non-ASCII
fields no longer work and we have no plans to change this. Thus Overlap
Fields are now officially obsolete.1
RunProgram no longer falls back to command prompt calls
RunProgram
no longer falls back to command prompt calls (comparable to Shell). Note:
if your program no longer starts, you will have to add the 'Shell' attribute.
- Users that called a .bat file should now do that using 'Shell'.
- Users that depended on capital .EXE,.COM,.BAT behaviors should
now do that using 'Shell' in the .bat scenario.
Standard Password Hashing
changes to the cWebSessionManagerStandard class
The cWebSessionManagerStandard
class now does password hashing out of the box using the PBKDF2_HMAC_SHA_512
algorithm. This means that if you did not already yourself implement a
hashing algorithm, and abstracted the UserLogin and/or other functions,
the passwords in the database would now be what we would call “plain text
passwords”.
See Standard Password Hashing
for details and migration information.
The password column of WebAppUser must now be at least 128 characters
long
If you have existing workspaces with WebApps using the WebAppUser table,
you will need to adjust the password column to accommodate the new password
length. Workspace with new WebApps will automatically get the table with
the new column size.
We renamed incorrectly named (typo) constants in cWebSessionManagerStandard.pkg
and Language_WebApp_xxx.inc
- C_$WebAppSesionValidateFailed
is now C_$WebAppSessionValidateFailed
- C_$WebAppSesionSaveFailed
is now C_$WebAppSessionSaveFailed
Codejock controls have been update to the latest released version (24.0.0)
There should be no impact on compiling your programs, but we encourage
you to test your Windows applications.
The WebApp Designer is not a panel anymore
Instead of being a dockable panel within the Studio, the WebApp
Designer is now shown as a tab. It behaves the same as the Windows
Designer, so a file can be toggled between the editor and the designer
using F7. A file can also be opened in a separate designer tab using the
‘Open designer in separate tab’ context menu item.
The Default Username and Password for WebApps has changed
The default username and password provided in the WebAppUser table for
a new WebApp and the sample WebApps has changed from Guest and guest to
admin and admin.
The Default for psAcceptTypes (cJsonHttpTransfer) has changed
The default value for the property psAcceptTypes
has been changed from "text/*" to "application/json"
in the class cJasonHttpTransfer.
Migration
The only change the migration wizard makes to workspaces already in
versions 20.0 (and later) is to update the SWS file.
Workspaces currently in versions prior to 20.0 will have their filelist
inspected for any OEM tables and their projects’ CFG files adjusted to
accommodate compiling in 64 bits. Those workspaces may be adjusted further
depending on the version of DataFlex the workspace is actually coming
from.
JavaScript Engine migrated to EcmaScript6
(ES6) Classes
All the JavaScript code of the WebApp Framework has been refactored
into actual JavaScript ES6 classes. Previous versions used so called ‘pseudo
classes’ which was a custom-built class system using df.defineClass. Now
that all supported modern browser support the ‘new’ JavaScript classes,
the usage of these pseudo classes has been deprecated. This change will
only be visible for developers doing JavaScript extensions to the WebApp
Framework, like building custom controls.
It is recommended to migrate all custom controls to the new format.
Pseudo classes could already be subclasses with actual JavaScript classes
(as both are based on prototypes) so these will be compatible with older
versions.
Support for subclassing using pseudo classes (df.defineClass) is added
but has certain limitations. The constructor of the base class is called
before the constructor of the subclass and base.constructor is now an
empty function. Old style mixins (df.mixin) do not work with the new framework
classes.
See the ES6 Conversion Guide
for details of how to migrate your JavaScript classes to ES6.
New Features
Regular Expressions Class
The new cRegEx class is a
runtime addition that provides the ability to use regular expressions
in DataFlex programs without third-party dependencies and libraries. The
new class is based on PCRE2 (Perl Compatible Regular Expressions) which
is one, if not the most, popular and compatible RegEx standard. Developers
can use this class for both convenience and improving performance of their
applications. Finding, matching, substituting, and extracting in one single
class!
Refactored and Extended API -- Beta 2 changes
The cRegEx API has been extended
and refactored. To avoid confusion with the database find operations,
the method names of Find, FindAll, FindAllGroups, FindAllExCallback have
been changed into Match, MatchAll, MatchAllGroups and MatchAllCallback.
Note that this means that Match now returns the offset of the first match,
where 0 means no match.
For completeness, a couple of methods have been created - SubstituteAll
and MatchAllOffsets – and also several properties to configure the regex
behavior have been added (pbMultiline, pbGreedy, pbAnchored, pbIgnoreCase,
pbUnicodeProperties).
Demo & Test View
The WebOrder sample now contains a view that demonstrates the regular
expression engine. It also serves as an environment to test and develop
regular expressions.
Find the view in the menu under the “Demo > Regular Expressions”.

Studio Find in Files
Regular expressions can now be used when searching through multiple
files. The Find in Files dialog has been modified to allow regular expressions
to be entered.

Dashboards
We added a set of controls to the product that allow for the creation
of dynamic dashboards in DataFlex WebApps or via FlexTron
in Windows applications. Dynamic dashboards are customizable by end users
and consist of configurable tiles / widgets that work individually.
See Dashboards Quick Start
for more information.

The cWebWidgetContainer
class hosts a dashboard and is responsible for storing the dashboard configuration.
The configuration consists of the layout and positioning of widgets and
the configuration per widget.
The cWebWidget class
represents a widget, multiple instances of a single widget can be placed
on the dashboard where the widget configuration differentiates them. Widgets
will normally be built using the composite class. cWebWidgetPalette
is a helper class that is used to render a widget.
Studio support is added
with the WebApp Designer
being able to model widgets and templates are available for the dashboard
and widget.
Composite Classes
The Composite
Class is a new object-oriented class type that allows for creating
compositions of multiple objects. This means that a Composite can be instantiated
like a Class,
but the scope in-between Composite and End_Composite is written like an
object. This allows for nested objects and procedures which makes it very
comparable to an instantiable template.
This new class type was initially added to help with the instantiation
of multiple objects as a single component, like for example a cWebWidget,
but can be used in many ways. The Composite is also very useful when dealing
with complex Dynamic Objects as the framework will automatically pick
up on the nested objects.
Navigation Designer
New in the Studio is the Navigation Designer panel. This panel helps
with the development of drill-down applications. It visualizes the navigation
paths between the views and widgets of an application by reading the WebRegisterPath
instructions. It also allows the generation of new views by dropping
them from the palette on the designer. It suggests views based on the
tables and their relations. From the Navigation Designer, views can be
opened and deleted / removed as well.
See the Navigation Designer
page for more information.

Configurable Object Names for Navigation Designer
When a block for a view was dragged from the palette onto the Navigation
Designer, the objects created had a fixed name format: oSelect<Tablename>,
oZoom<TableName> or oZoomDetail<TableName>.
That has been changed to be configurable in the Studio, enabling developers
to decide on the name applied at the object creation.
This option can be configured in the Tools menu, Configure Workspace
option. The block of Navigation Designer configurable options on the Workspace
Preferences tab now includes three forms – Select, Zoom, Detail - where
the name format can be entered using ${TableName} to determine a naming
pattern for new objects.
Notice that objects already created will not have their names changed
to follow the defined pattern.

Standard Password Hashing
The WebApp Framework
now supports out of the box password
hashing.
Automatic Primary Key Columns
When creating a new table in the Studio, it can now automatically add
an auto-increment column. For this, the Create New Table dialog has been
extended with a checkbox, and when checked, the new table will automatically
receive a <tablename>Id column and a unique index based on this
column. When using SQL, this index will be marked as primary key and the
column will be marked as identity column.
When using the embedded database, it will look for a system table named
DFLastId and add an auto-increment column to it. New workspaces will have
this DFLastId table, giving the smoothest experience for new developers.
Read more in Automatic Primary
Key Columns.
Changes in Primary Key Creation -- Beta 2
Introduced in Beta 1, automatically creating a primary key during new
table creation was configured through a simple checkbox – which defaulted
to true. This feature has been enhanced in Beta 2 to offer an option for
creating a primary key and to save what table will be remembered during
this Studio session.
Read more in Automatic Primary
Key Columns.
Configurable name for ID columns
The automatically created ID columns for the Auto Increment table were
using a predefined, fixed name format: <TableName>ID.
That has now been made configurable and can be defined using the Tools
menu, Configure Workspace option.
In the Table Editor group, the form Primary key format is available
for developers to define the name format for new ID columns using ${TableName}.

Note that column length is limited to 32 characters and the name of
the table will be truncated to fit the combination defined as the format
for column names.
Added COMP$TIMESTAMP for embedding of a compile time build timestamp
Some developers might want more specific build information of their
program builds. Previously, developers might have done this using pre-compilation
steps and custom scripts. This is no longer needed.
A new Define/Replace is globally available in your programs called COMP$TIMESTAMP
which is defined as the UNIX UTC (number of seconds since 1 January 1970)
timestamp as a constant UBigInt. We use a UNIX UTC timestamp to make sure
that build timestamps are independent of locale.
While custom calculations are possible depending on your use case, the
Date & Time library is available to do any
calculations in an easy manner.
Move COMP$TIMESTAMP to ullUnixUTC
Improved Performance when loading Workspaces
The process to collect information required for view generation involves
opening every table in the workspace, and retrieving and parsing every
DDO associated with them. This caused a noticeable delay when starting
the Studio, especially when a workspace had a great number of tables.
This process has been reviewed and improved, and it is now done during
the initial opening of the Navigation Designer instead, lightening the
load and removing the long wait when opening a workspace.
As part of this review, the “Cannot open table…” errors when a database
connection was not successful at the opening of a workspace have also
been eliminated.
Composite Classes
The Composite
Class is a new object-oriented class type that allows for creating
compositions of multiple objects. This means that a Composite can be instantiated
like a Class,
but the scope in-between Composite and End_Composite is written like an
object. This allows for nested objects and procedures which makes it very
comparable to an instantiable template.
This new class type was initially added to help with the instantiation
of multiple objects as a single component, like for example a cWebWidget,
but can be used in many ways. The Composite is also very useful when dealing
with complex Dynamic Objects as the framework will automatically pick
up on the nested objects.
Configurable Object Names for Navigation Designer
When a block for a view was dragged from the palette onto the Navigation
Designer, the objects created had a fixed name format: oSelect<Tablename>,
oZoom<TableName> or oZoomDetail<TableName>.
That has been changed to be configurable in the Studio, enabling developers
to decide on the name applied at the object creation.
This option can be configured in the Tools menu, Configure Workspace
option. The block of Navigation Designer configurable options on the Workspace
Preferences tab now includes three forms – Select, Zoom, Detail - where
the name format can be entered using ${TableName} to determine a naming
pattern for new objects.
Notice that objects already created will not have their names changed
to follow the defined pattern.
Web Themes are now configurable using CSS variables
The web themes have been adjusted to use CSS variables for their main
colors and some dimensions. This allows configuration of the themes without
changing them, which means less trouble during updates! The main variable
names are shared between the themes, but most themes extend these with
extra variables.
The full list of variables can be found at the top of the Theme.css
file. Initially, themes will support the same configuration options that
were already provided by the DataFlex
Styler. These variables can be changed outside of the Theme.css file.
It is recommended to place these inside CssStyle/Application.css.
Placing the following code in CssStyle/Application.css changes the main
colors for the Df_Material theme.
:root{
--df-MainDark: #567d2e;
--df-MainRegular: #7CB342;
--df-MainMedium: #89ba54;
--df-MainLight: #a3c97a;
--df-MainLight2: #cae0b3;
--df-MainLight3: #e4efd9;
--df-MainLight4: #f1f7ec;
}
Improvements and Bug Fixes
Studio
Redesigned the Start Center with new tabs and clean & modern look.

Implemented a new style for the Studio Dashboard.

- Added Close Workspace button.
- Properties Panel: allow multiple quotes in before & after compile
parameters.
- Table Explorer: added context menu option to view table in Database
Explorer.
- Workspace Explorer: no longer automatically closes missing files.
- Automatically saves invisible files, when closing the Studio/Workspace.
Invisible files, in this instance, are files opened in background,
non-visible editors, Like those used by the Navigation Designer. These
will now be saved automatically instead of popping up as pending changes.
Any files with pending changes that are opened as a tab, will still
prompt for confirmation.
- Moving a Web Control horizontally within the flow layout with piColumnIndex
not set will place it one column to the left.
- Find in Files now seeds Code Editor find so that F3 can find the
next hit within a file.
- Custom class can now be specified for fields dragged from DDO Explorer.
- Improved Studio performance when switching between tabs.
- Fixed error "LINK ERROR: UNABLE TO OPEN FILE" when compiling
a WebApp.
- After/Before compile no longer strips quotes from parameters.
- Added an option to 'Close Workspace' to the File menu in the Studio.
- Added option to view a table via Database Explorer to Table Explorer's
floating menu.
Compiler
- Optimizations for the compiler (gaining ~10% compile speed).
- Fixed linker issue with linking files that have non-ASCII characters
in their file name.
Connectivity
- Fixed memory leak in SaveRecord for MS SQL.
- SQLBindFile generated error for DateTime columns.
- Improved the EnumerateServersLocal function that could sometimes
wrongly return nothing.
- Database driver DLLs are now Codesigned.
- Triggers larger than 2,000 characters in SQL Server were not recreated
during restructuring process.
- cSQLExecutor: DB2 Prepared execution generated Invalid cursor state
error when executed a second time.
SQL Executor
- SQLExecutor returned no result set after INSERT of empty result
set.
DataDictionary Inspectors
- We added Ctrl+Q as accelerator key to
Windows and Web DD
Inspectors (in addition to Ctrl+D)
Ctrl+D made sense in Windows because D=debug, but in most modern browsers,
Ctrl+D pops up the 'Add bookmark' dialog. Even with the new shortcut
key (Ctrl+Q), you need to make sure the focus is in a focusable object
for it to pop up, but the worst that can happen when pressing Ctrl+Q
is nothing; you don’t have to cancel the ‘add bookmark’ dialog when
using Ctrl+Q. We kept the existing accelerator key (Ctrl+D) for backward
compatibility.
Database Explorer
- Different icons now identify when the index segment is descending
or case insensitive.
- Error dialog in Database Explorer can now be resized, maintaining
the dialog's layout.
- Fixed errors when accessing filters in Database Explorer.
- Fixed errors when accessing filters.
Debugger
- Dragged global or local variables can now be dropped onto the Watches
window.
Examples
- Added a new example to Specialized Components workspace to demonstrate
how collate works in DataFlex using ICU (International Components
for Unicode). DemoCollate.vw was added to the ShowCollate.src program.
- Adjusted examples in WebOrder to use colors set by theme not custom
background color set in the source. Some sample controls had specific
colors applied to them, which overrode custom themes, such as those
created using the DataFlex
Styler, and looked off.
- Basic Report in Order Entry Example generated a RAW file error
when choosing Print instead of Preview.
- Installed Examples now use DFLastID as Auto Increment table.
Installer
- Solved case sensitivity issue with path to WorkstationSetup.exe.
Packages
- Fixed message displayed for client/server version check.
- UpdatePageTitle did not correctly update psApplicationTitle.
- Added SetUserPassword function to cWebSessionManager interface.
- cWebParentCombo did not expand/show list when peLabelPosition was
set to lpFloat.
- SelectWorkspace.dg and related translation constants have been
removed from the product. The technique was used in the DataFlex version
8-11 and technically redesigned with the “new” Studio released with
DataFlex 12. The dialog referred to a DLL and EXE that are no longer
provided (at least since DataFlex 18.1).
Registration Program
- The Registration Program can now be resized, enabling grid columns
to better display license information.
Runtime
- Fixed sizing issue with a dbView being maximized and then reopened.
- Changed Mod function return type back to LongPtr to fix expression
typing issues.
- Fixed CodeJock Windows 10 and Windows 11 themes that displayed
black on black.
Studio
- Restrict calls to Reconciling/Rebuilding libraries to processes
that update classlist.xml. This should help load workspaces faster.
- Fixed resizing Codejock grid columns in the Windows Designer.
- The Studio no longer adds a BOM to non-DataFlex source files.
- Web Designer did not get the focus when switching back from Table
Explorer.
- Studio no longer saves an extra space to the end of 64BitSuffix
if that setting is blank.
- Corrected code placement for Properties when objects are created
via a DFO file.
- Enhanced the options to make setting identity column easier.
- Corrected label in Conversion Wizard for MSSQL from Owner to Schema.
- SQL Conversion Wizard selected wrong index for PK when there was
a gap in index numbers.
- Adjusted Workspace Dashboard style to better accommodate number
of items above 100.
Web Controls
- Fixed rendering issue with cWebTabContainer when navigating back.
- Labels of cWebList grouping selector are now translated.
- ActionMode scModeWait was not blocking when inside cWebModalDialog.
- Fixed sizing issue with lazy rendering of tabs in cWebTabContainer.
- Fixed cWebDrawing localization issues with floats.
- Improved df.defineClass compatibility for non-ES6 custom controls.
- Fixed cWebTagsForm not showing initial tags.
- Fixed bug in Dynamic Object Container when using nested dynamic
objects.
- Fixed issue with Dynamic Object Container storing handles in server
web properties.
- Fixed cWebMenuButton JavaScript error and positioning issue.
- Added peVerticalAlign property to cWebColumn.
- cWebDynamicObject container now checks for # and $ characters in
dynamic object ID's as these are not allowed.
- Fixed Web Control locking issue exposing itself with cWebForm its
OnChange event.
- UpdateSubNodes of cWebTreeView before expand no longer causes error
when expanding later.
- cWebParentCombo should not call Establish_Find_Direction as this
might clear the first item its RowId.
- Escape key no longer closes cWebModalDialog when pbServerOnEscape
is True and OnEscape does not close the modal dialog.
- Fixed uncaught error in dev tools console when removing all groups
from web lists.
- For cWebDDOHost_mixin classes (cWebGroup, cWebCard), Main_DD at
runtime now does not return 0 if there is no DDO structure in objects
of those classes. It will delegate and return the Main_DD of its parent.
This makes it more consistent with Server which will also delegate
and restores backwards compatibility.
- cWebCombo required 2 clicks to expand.
- WebListExpandPanel swiping did not work when a swipe button was
present in the main list.
FlexTron
- Improved focus control when using Web Controls in a cDbLocalWebControlHost.
- DataFlex Reports report generated error in FlexTron example.
Web Framework
- Take pbScroll into account when calculating center panel height,
also make it work without setting pbFillHeight.
- Fixed a CSS issue in the Windows-Like theme for the cWebMultiSelectList
class, where it would highlight non-data containing rows.
- Fixed a memory leak in the cWebDynamicObjectContainer class.
- Fixed an issue in the cWebService class where the auto-generated
documentation might not always contain valid parameters.
- Fixed an issue where the cJsonHttpTransfer class would not
send an application/json Accept header.
WebApp Administrator
- Fixed Web Application Administrator becoming really small.
Documentation
What's New
Tutorials
- Updated Tutorials
to DataFlex 25.0 standards.
- Replaced lots
of screenshots.
- Renamed all
table and column names based on our updated sample workspaces.
- Add DFLastID
system table use.
- Removed ‘Skinning
Your Windows Applications’, since we no longer recommend Skinning.
Tools / Studio
- Renamed Visual Designer to Windows Designer (but left the help
page names the same so that old links will continue to work)
- Clarified WebProperty pages with supported data types.
- Updated doc for menus and toolbars for the current Studio. Numerous
options and screenshots were outdated.
- Copied Navigation Designer page from What's New to Studio book
Development Guide
- Added additional info on how to use displayView and displayApp
to ‘The JavaScript Engine’ page.
- Added info and samples for grouping manual web lists to WebList
Grouping topic in Development Guide and cWebList class page.
- Updated JavaScript / Custom Web Control pages with new syntax after
JavaScript code of the WebApp Framework has been refactored into actual
JavaScript ES6 classes.
- Added ‘Configurable
Widgets’ page
- Development
Guide: JavaScript information on dfdebug corrected (from vdfdebug).
- Updated JavaScript
/ Custom Web Control pages with new syntax after JavaScript code of
the WebApp Framework has been refactored into actual JavaScript ES6
classes. This was started in RC1 and completed in the final release.
- Documentation
of Trim_Varchar_Values was
incomplete, also added it to DB2DRV.INT and ODBC_DRV.INT pages.
Language Reference
- Fixed indentation of arguments in Include_Text.
- Added doc for Composite command.
- Added doc for
tWidgetConfigProp,
tWidgetConfigPropSettings,
tWidgetConfigPropValue,
tWidgetDef
- Corrected wording
in DF_DATE_4_STATE_ONLY_ON_PARSE, which had String and Date types
reversed in the explanation.
- Language Reference:
SearchArray should have been SortArray in BinarySearch paragraph.
- Documentation
of Trim_Varchar_Values and
associated attributes (DF_DRIVER_TRIM_VARCHAR_VALUES, DF_DATABASE_TRIM_VARCHAR_VALUES)
was incomplete.
Class Reference
- Added predefined values to constants in Class Reference. The values
now appear in parentheses following the constant. For example:
crumbHorizontal (0)
crumbDropDown (1)
crumbCaption (2)
- OnDefineRowCssClass: corrected CSS in sample and added note that
the global buffers will have the proper record loaded for a
data aware grid.
- Updated cRegEx doc with latest changes (e.g. new Properties,
renamed Functions).
- Added doc for
Widget classes: cWebWidget, cWebWidgetConfigurationWizard, cWebWidgetConfigurationWizardStandard,
cWebWidgetContainer, cWebWidgetContainerContextMenu, cWebWidgetPalette.
- Added doc for
pbUpdateApplicationTitle.
- Added doc for
cPasswordHasher class.
- Description
of the example in DfDateToSqlDate now makes it clear the different
in behavior between SQL Server and other drivers.
- Updated doc
to show that 'For cWebDDOHost_mixin classes (cWebGroup, cWebCard),
Main_DD at runtime now does not return 0 if there is no DDO structure
in objects of those classes. It will delegate and return the Main_DD
of its parent. This makes it more consistent with Server which will
also delegate and restores backwards compatibility.'
- Misc. edits.
Deployment Guide
- Installation
& Environment Guide: the DataFlex Windows Client is missing "Client"
in the name of the installation EXE, also updated to 25.0.
Miscellaneous
- Fixed a number of typos, including "paramater".
;-)
See Also
What's New