Suggestions Implemented in DataFlex 18.0
Database Explorer
Implement a maximum column width in grid mode
Suggestion 6669, reported by Evertjan Dondergoor
If you open a table in grid mode and it contains columns with a large size (e.g., 255 characters), the default width is unworkable. A new constant maximum width was implemented, making it easier to read large columns and reducing the need to resize such columns.
Implement SQL Filters
Suggestion 6667, reported by Quality Assurance
An input box has been added to the DDO tree tab-page where the value for psSQLFilter can be entered. The developer is responsible for the correctness of the statement. The value will be automatically loaded when the focus is moved out of the edit control. The SQL filter string will also be stored in .DBE-Filter or Default-.DBE-Filter.
Add an option to re-sort the data of all tables listed in the filelist treeview
Suggestion 6663, reported by Quality Assurance
It is now possible to sort the indexes of all tables listed in the treeview.
DbExplorer should generate XSD files (more modern than a DTD)
Suggestion 6662, reported by Quality Assurance
When choosing XML as the export format in the export wizard, there is an option to create a DTD file, but no option to generate an XSD file. XSD is more recent than DTD and has a richer feature set, including data types and namespaces. It would be beneficial if Database Explorer offered the option to export a data file to XML with XSD generation.
Re-open table after zerofile
Suggestion 6656, reported by Phil Kirby
Using the "Erase all data" option under Database Explorer seems to disable all of the tab pages after data is erased. Being able to view column and attribute information after such action is still necessary.
Modify Change Column Contents dialog to accept a wildcard for the old value
Suggestion 6632, reported by Bernd Ullenboom
It is now possible to enter a wildcard value for a FROM (Old) value, allowing the value of a certain column to be set to a fixed value for all rows in the filter.
Indicate that columns that are past the configured 'Max Columns' are not being displayed
Suggestion 5679, reported by Quality Assurance
When 'Max Columns' is set, tables with more columns than that number will not display all their columns in Database Explorer grid or data views. A status bar icon has been added to indicate that not all columns of the currently opened table are displayed in the grid.
Packages
Make piReadyState, pbReadyState and ONREADYSTATECHANGE public
Suggestion 6546, reported by Frank Cheng
The documentation on loading asynchronous XML files has been improved. Specifically:
- The default for
pbAsynchas been changed toFalse, which is the easiest way to load and process a document. pbReadyStatehas been fixed to return true when an asynchronous XML document is loaded and parsed.LastParseErrorhas been added for asynchronous XML document testing.- Documentation for
pbAsync,pbReadyState, andLastParseErrorhas been improved, with a sample provided. - Documentation for
pbResolveExternals,AddExternalSchemaDocument,AddExternalSchemaFile,ValidateDocument, andpbValidateOnParsehas also been improved.
For the record, the undocumented methods piReadyState and OnReadyStateChange either do nothing or do not exist. Do not use them.
Extend the ComboForm class so entered text will auto-scroll horizontally
Suggestion 6528, reported by Quality Assurance
The behavior of the ComboForm and dbComboForm classes has changed to better support horizontal scrolling while entering text. If entry_state is true, horizontal scrolling is always allowed. Form_Margin controls this further:
- If
Form_Marginis 0 or default (-1), no text limit is applied. - If
Form_Marginis greater than zero, the ComboForm's text limit is set toForm_Margin.
When Entry_State is false, none of this applies, and it works as it always did.
Extend the Datadictionary Extended_Error_Message with a function to supply table information
Suggestion 6511, reported by Marco Kuipers
The Extended_Error_Message function now retrieves the table name via a DF_FILE_LOGICAL_NAME attribute query. A new DD function named ErrorMessageTableName has been added to the DataDictionary class. By default, it returns the logical table name (DF_FILE_LOGICAL_NAME), but developers may augment it to provide a different name of their choosing. This function is called when a DataDictionary error needs to display a table.
Function ErrorMessageTableName Integer iTable Returns String
Make it possible to specify the class name for the RequestColumnSearch dialog
Suggestion 6398, reported by Quality Assurance
The class used to create the column search dialog is now configurable via a property. RequestColumnsSearch now calls the new function CreateGridSearchDialogObject, which creates and returns a search dialog object. By default, it returns a cCJGridSearchDialog object, which is a private class. If you augment CreateGridSearchDialogObject, study this private class carefully.
Show the table name in a can't save/delete file xx required error
Suggestion 6397, reported by Marco Kuipers
The error information has been enhanced to include the table name where it says "can't save file xxx required". If a DDO structure is incomplete, a Request_Save or Request_Delete will now display the name of the table that is missing instead of just the table number:
Can't Save. File 25 (Customer) required
Can't Delete. File 25 (Customer) required
This uses the new DD function Get ErrorMessageTableName (see suggestion 6511), which can be augmented by the developer to provide additional table name information.
Support sorted combo lists in cCJGridColumn objects
Suggestion 6390, reported by Samuel Pizarro
A new property, pbComboSort, has been added to display the combo items in grid columns in sorted order.
Reset ghoApplication to 0 in Destroy_Object of cApplication
Suggestion 5865, reported by Paolo Bruno
To resolve an issue where the global handle ghoApplication still contains the object handle after the cApplication object has been destroyed, add the following code to Procedure Destroy_Object in the cApplication class:
If (ghoApplication=Self) Begin
Move 0 to ghoApplication
End
Move external function declaration out of cLinkedLabel.pkg
Suggestion 5834, reported by Chris Spencer
Moved tWinInitCommonControlsEX to tWinStructs.pkg and InitCommonControlsEx to Commctrl.pkg. These were previously in cLinkLabel.pkg. Note that neither of these are used anywhere in our packages. They could be removed, but someone might be using them in their code.
Make DD_Debug dialog resizable
Suggestion 5201, reported by Vincent Oorsprong
The DD_Debug dialog is now resizable, and peAnchors of all affected child objects have been set.
Base DFTimer class on DFBaseTextBox instead of TextBox
Suggestion 3637, reported by Thomas Murphy
When placed at the desktop level in an SDI application, DFTimer crashes the application on the line:
Set Justification_Mode To (Jmode_Left+jmode_Vcenter)
This occurs in Procedure Construct_Object in Class TextBox in dfbase.pkg. Basing the class on DFBaseTextbox instead resolves this problem without changing any other behavior. The DFTimer class is now obsolete and has been replaced with cTimer, which has a simpler interface and is more flexible.
Studio Wizards
Migration Wizard: Remove Confirmation for 'in Place' migration and Summary page
Suggestion 6647, reported by Chuck Atkinson
There are too many confirmations throughout the migration wizard. For example:
- Confirm you want to migrate the library
- Select migration type - copy or in place.
- Confirm you want to migrate in place.
- Confirm you will migrate the library.
Studio
Create New Validation Object dialog confirmation wording should be improved
Suggestion 6582, reported by Quality Assurance
When you click the close button on the "Create New Validation Object" dialog after making changes, you receive the question: "Do you wish to create this validation object (Y/N)?". The Close button has been renamed to Cancel, and the confirmation text has been changed to: "You clicked Cancel instead of Ok, create the validation object (sName) anyway?"
Add a tool-bar to message trace window
Suggestion 6510, reported by Quality Assurance
A toolbar has been added to the Message Trace window with the same options as those available on the floating menu. This enhancement makes it easier and faster to enable/disable tracing, configure filters, save to file, etc.