DataFlex 19.0 (Released November 2017)

Be sure to check out the examples that illustrate some of the latest changes and additions...

Primary Development Areas

Connectivity

DataFlex 2017 sets a new level of usability and functionality when using SQL databases. You will experience:

While one of the main changes in DataFlex 2017 is the full integration of Managed Connections, there are many more SQL-related improvements throughout the new product from the drivers, up through the language and the Studio that enhance productivity and efficiency with SQL databases. Among them are:

Note that there are also changes in minimum required SQL Client; read more about this in SQL Database Drivers Client Usage.

Managed Connections

The DataFlex SQL drivers support the use of Connection IDs to make it easier to store database server strings in a central location. The cConnection class integrates Connection ID support into the framework. The Studio and other DataFlex tools generate, maintain and use Connection IDs. DataFlex has a cConnection class, which handles connections for drivers that support Connection IDs. We refer to this as using Managed Connections.

Improved Index Support

DataFlex provides enhanced index capabilities when working with the DataFlex SQL Drivers. You can now define client only indexes (index definitions in your INT file that do not have an exact counterpart in the SQL Table) and temporary indexes (indexes that can be defined at run time). See SQL Indexes for more.

Driver Build Notes

The full Build Notes for the DataFlex SQL Driver are provided for those interested.

Windows Framework

 

Studio

Major changes have been made to the Studio as part of the overall undertaking to make DataFlex easier and more productive when developing with SQL databases. The Table Explorer, the Table Editor, Workspace Creation and Migration Wizard, the Conversion and Connection Wizards and the Object Properties panel are all enhanced in DataFlex 2017/19.0.

The Studio has a fresh, new look too. We applied all of DataFlex 2017’s DPI changes to the Studio and replaced all the images with multi-sized, flat icons and updated the Studio’s theme to a more modern look.

See Studio Build Notes for details.

Packages

 

cCharTranslate

There are new UChar array functions added to cCharTranslate class to support various character encodings. We encourage the use of UChar arrays as a more efficient and less-restrictive alternative to direct string or memory manipulation when dealing with character or binary data. The additional functions in cCharTranslate allow you to deal with the various character and binary encodings for the source and destination types more easily. The new UChar functions also make it easier to work with JSON and UChar arrays (ParseUTF8 and StringifyUTF8).

Added UChar array functions to cCharTranslate to support various character encodings. This will make it easier to work with JSON and UChar arrays (ParseUTF8 and StringifyUTF8).

Codejock CommandBars

DataFlex 2017/19.0 includes Codejock Command Bar changes to properly support the myriad of new visual themes that Codejock now supports. These DataFlex changes solve the problem where various themes would not show a status panel (it would be black) after Codejock changed their rules for setting visual themes. Setting a simple Codejock property simply no longer worked. You now must load .dlls and .ini files. We've tried to hide all of this so DataFlex Windows developers won't have to deal with it.

Added 6 files to Bin – Office2007.dll, Office2010.dll, Office2013.dll, VisualStudio2012.dll, VisualStudio2015.dll and Windows7.dll.

[1] Changed the order of icon image loading. Resource Icons are now loaded first (if found), otherwise it will load a matching icon file. Previously the reverse was true.

[2] Added tWinGrpIconDirEntry & tWinGrpIconDir structs

[3] Added FindResource, LoadResource, LockResource, SizeofResource Win32 API functions

[4] Added pbAutoResizeIcons property. This controls whether CommandBar Icon sizes are automatically selected to match Windows DPI scaling value. Default is False.

[5] CommandBars now load all icon sizes and color depths for embedded icon resources. Previously only the first icon in the icon resource was loaded.

Details

DataFlex 19.0 now uses the 17.3.0 release (both COM and MFC) and all the related components have been updated.

The Codejock interface was changed so you can pass two parameters with ChangeTheme. One sets the theme enum (same as before) and the other, themeIni is a string that sets the custom DLL / INI file which should be found in bin\styles. This makes the themes appear properly in the Studio itself and it allows for proper visual modeling of the themes in the designer. The themeIni values are constants which have been added to the Studio.

Created new theme names that do not exist in the Codejock themes. Codejock expects you to use integer theme but it allows you to load a theme dll/ini file right before you set the theme. Some themes (VS2012, Office2103) need these to handle all of sub-themes. For example the Codejock theme xtpThemeOffice2013, support sub themes for Word, Outlook, Excel, etc. I created extra constants for these by:

Define xtpThemeOffice2013Word            

Define xtpThemeOffice2013Outlook            

Define xtpThemeOffice2013Excel         

Define xtpThemeOffice2013PowerPoint           

Define xtpThemeOffice2013Access      

Define xtpThemeOffice2013Publisher            

Define xtpThemeOffice2013OneNote             

When our class sets the theme it figures out what theme dll is needed and what ini section it should use in the theme. As of 19.0 it expects those theme dlls to live in bin\styles. Prior to this we recommended that developers put the themes in programs and load them manually. This was really confusing and we expect no one did this and they just used crippled themes. This should all now just work.

Updated the cCjGrid class to use the styles folder.

This XMLHandle change will normally not be seen. As soon as you start using the XML document, you will be using OEM string interfaces and so you will not see a change. There are advanced interfaces where you can work around the OEM conversions and those will now work. For example, you could receive an XML document via XMLHandle and save it to a file without any kind of conversion. Or, you could carefully work with the document using pvXML, LoadXmlFromVariant and pvNodeValue. While doing this is not easy, it is now possible. Previously the XML document will have been 1) received as Unicode, 2) converted to OEM, 3) loaded into the DOM document and converted back to Unicode. Now it is 1) received as Unicode, 2) loaded into the DOM document as Unicode (no conversions).

Web Framework

Runtime

Web Application Server

 

Development Tools

Database Builder and Database Explorer have had significant changes made similar to those elsewhere in the product, including the following main areas:

See Development Tool Build Notes for details.

See Also

Working with a New Release

Migrating Workspaces to DataFlex 2017

Bugs Fixed in DataFlex 19.0

Suggestions Implemented in DataFlex 19.0

What's New