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. That will make it easier to read large columns and make it less often needed to resize such columns.
Suggestion 6667, reported by Quality Assurance
Added a input box 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 the edit control.
The SQL filter string will also be stored in <tablename>.DBE-Filter or Default-<tablename>.DBE-Filter
Suggestion 6663, reported by Quality Assurance
Make it possible to sort the indexes of all tables listed in the treeview
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 as part of the process 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, and they are also XML documents themselves, which can be really useful.
It would be great if Database Explorer offered that option when exporting a data file to XML through the wizard.
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.
Suggestion 6632, reported by Bernd Ullenboom
Make it possible to enter a wildcard value for a FROM (Old) value, so that the value of a certain column can be set to a fixed value for all rows in the filter.
Suggestion 5679, reported by Quality Assurance
When 'Max Columns' is set, tables with more columns than that number will not have all its columns displayed in Database Explorer grid or data views.
It would be good to have an indication that not columns are being displayed as a consequence of that setting. Otherwise, there is no obvious way to see why a column that is in the column list is not in the grid on the Data tab.
We added a statusbar icon that indicates that not all columns of the current opened table are displayed in the grid.
Suggestion 6546, reported by Frank Cheng
The documentation on loading asynchronous XML files this has been improved.
Specifically:
* The default for pbAsync has been changed to False - this is the easiest way to load and process a document
* pbReadyState has been fixed. It returns true when an asynchronous XML document is loaded and parsed
* LastParseError has been added for asynchronous XML document testing
* the documentation for pbAsync, pbReadyState, LastParseError have been improved and a sample is provided.
* the documentation for pbResolveExternals, AddExternalSchemaDocument, AddExternalSchemaFile, ValidateDocument and pbValidateOnParse have been improved.
For the record the undocumented methods: piReadyState and OnReadyStateChange either do nothing or do not exist. Don't use them
Suggestion 6528, reported by Quality Assurance
The behavior of the ComboForm and dbComboForm class has changed to better support horizontal scrolling while entering text.
If entry_state is true, we now always allow horizontal scrolling. Form_Margin controls this further. If form_margin is 0 or default (-1), we do not apply any text limit. If Form_Margin is greater than zero, the Comboform's text limit is set to Form_Margin.
Normally a ComboForm has a Form_Margin of 0. Prior to 18.0 dbComboForm had a Form_Margin of 100. 100 was picked because it was a big number. In 18.0 a dbComboForm's value is set to -1, which means it is a default value. Prior to 18.0 Form_margin did nothing.
We do not set the Form_Margin to the length of the Database field as we do with dbForm objects because ComboForms often contain text other than the actual data value (e.g., Validation lists) and we don't know what the length limit should be. If you know the limit you can set Form_Margin in the dbComboForm object.
When Entry_State is False, none of this applies and it works as it always did.
Suggestion 6511, reported by Marco Kuipers
Currently the Extended_Error_Message function retrieves the table name via a DF_FILE_LOGICAL_NAME attribute query. Can this be extracted to a function like TableNameForErrorDialog passing the table number so that the name retrieval can be easier augmented?
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). However, a developer may augment to provide a different name of their choosing. This is called when a DataDictionary error needs to display a table.
Function ErrorMessageTableName Integer iTable Returns String
Suggestion 6398, reported by Quality Assurance
Currently, the class used to create the column search dialog is fixed and hard coded. Please make it possible to change the class via a property. In the current situation, we cannot simply sub-class the dialog class and let it be used.
Implementation Notes: 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 you should study this private class and extend or replace it carefully. This is an advanced technique.
Suggestion 6397, reported by Marco Kuipers
Please enhance the error information with a 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 intead of just showing the table number:
It now displays the table name and the table number for save and delete
e.g.,
Can't Save. File 25 (Customer) required
Can't Delete. File 25 (Customer) required
This gets the table name using the new DD function Get ErrorMessageTableName (see 6511), which can be augmented by the developer to provide additional table name information.
Suggestion 6390, reported by Samuel Pizarro
Our customer has a Validation Table using the ValidationTable class. He added a field about an object of the cDbCJGridColumn class. (pbComboButton to True). But the values are displayed as they were created.
A new property, pbComboSort, has been added which will display the combo items in grid columns in sorted order.
Suggestion 5865, reported by Paolo Bruno
We had a problem and tracked that down to the fact, that the global handle "ghoApplication" still contains the object handle *after* the cApplication object had been destroyed.
Add this code to Procedure Destroy_Object in the cApplication class:
If (ghoApplication=Self) Begin
Move 0 to ghoApplication
End
Suggestion 5834, reported by Chris Spencer
Moved tWinInitCommonControlsEX to tWinStructs.pkg. Moved InitCommonControlsEx to Commctrl.pkg. These had been in cLinkLabel.pkg
Note that neither of there are used anywhere in our packages. We could remove them except someone might be using them in their code.
Suggestion 5201, reported by Vincent Oorsprong
Please make the DD_Debug dialog resizable and set peAnchors of all child objects affected.
Suggestion 3637, reported by Thomas Murphy
When placed at the desktop level in an SDI application, DFTimer crashes the applcation on line
Set Justification_Mode To (Jmode_Left+jmode_Vcenter)
in Procedure Construct_Object in Class TextBox in dfbase.pkg.
Basing the class on DFBaseTextbox instead solves this problem and does not change any other behavior.
The DFTimer class is now obsolete and has been replaced with cTimer, which has a simpler interface and is more flexible.
Suggestion 6647, reported by Chuck Atkinson
There are too many confirmations throughout the migration wizard.
For example:
1) Confirm you want to migrate the library
2) Select migration type - copy or in place.
3) Confirm you want to migrate in place
4) Confirm you will migrate the library
Suggestion 6582, reported by Quality Assurance
When you click the close button on the "Create New Validation Object" dialog after making changes you get a question "Do you wish to create this validation object (Y/N)?".
The Close button was renamed to Cancel and the confirmation text changed to 'You clicked Cancel instead of Ok, create the validation object (sName) anyway?'
Suggestion 6510, reported by Quality Assurance
Add a toolbar to the Message Trace window with the same options as are available on the floating menu. It would make it easier and faster to enable / disable tracing, configure filters, save to file etc.