Bug 6696, reported by Matthias Burkhardt
The prompt button inside of a form/dbForm is supposed to adjust its width based on the text in the button (Prompt_Button_Value). The font should be the same as the font used within the form itself. The font being used to determine this width is not using a form's custom font when determining the width and when the FontPointHeight is changed to a bigger number, the text will be clipped.
For example the button's text "Hello" will appear clipped:
Object oForm is a Form
Set Size to 13 126
Set Location to 13 63
Set FontPointHeight to 18
Set Prompt_Button_Value to "Hello"
Set Prompt_Button_Mode to PB_PromptOn
End_Object
Bug 6679, reported by Quality Assurance
The datetime mask does not display the proper value when the regional mask is "MMM" and the Value set in the mask contains a month name. Even though the value is stored correctly in datetime and string variables, a datetime control shows nothing.
In the example below, despite dDateT having the correct datetime in it, sd2 will be blank:
Object oForm1 is a Form
Set Size to 13 100
Set Location to 22 90
Set Form_Datatype 0 to Mask_Datetime_Window
Procedure add_focus Handle hoParent Returns Integer
DateTime dDateT dd2
String sD sD2
Move (CurrentDateTime()) to dDateT
Move (DateSetYear(dDateT,1852)) to dDateT
Move (DateSetDay(dDateT,9)) to dDateT
Move (CurrentDateTime()) to sD
Move dDateT to sD2
Move sD2 to dd2
// this sets value to a datetime with an 1852 year.
Set Value 0 to dDateT
Forward Send add_focus hoParent
Get Masked_Value to sd2
End_Procedure
End_Object
Bug 6678, reported by Quality Assurance
If the Short Regional Date Mask is set to two-digit years, when we go through a string conversion the year gets to be wrong in the end.
In the example below, iYr will have 1952 stored instead of 1852:
Procedure Test1
DateTime dt1 dt2
String st1
Integer iYr
Move (CurrentDateTime()) to dt1
Move (DateSetYear(dt1,1852)) to dt1 // datetime should now be 1852
Move dt1 to st1
Move st1 to dt2 // convert string back to datetime
Move (DateGetYear(dt2)) to iYr // get the year
If (iYr<>1852) Begin
Showln "ERROR: Bad year"
End
End_Procedure
Bug 6668, reported by Quality Assurance
The file association assignment for .DAT and .INT files did not always work. The tab-page was redesigned -- the current file association information was moved to a readonly popup dialog.
You cannot change the display text of the association anymore.
Bug 6660, reported by Phil Kirby
When you select the Export data option, and get to the panel in the wizard that asks for Output details "Choose program/output names", the checkbox that allows one to Use a Statuspanel should only be selectable if the corresponding Output option has been selected. At the moment, you can select "Output to file", and check the statuspanel option in the "Output to printer" group
Bug 6609, reported by Th. Forstmeier
If the filter value is also a column name, the column value is taken instead of a constant value.
If you wanted to compare the customer name against the value ZIP, for example, the filter would use the value of the ZIP column instead of the string ZIP.
Automatic discovering was the cause of this and it was fixed by adding a checkbox that lets you indicate whether the value typed is a columns name.
Bug 6625, reported by Quality Assurance
For 17.1 the installations (all: Studio, Server and Client) do not properly include the SQLBase.int file that is new to CK 6.0.
This new file, SQLBase.int, should be placed in the bin folder.
Bug 6166, reported by Quality Assurance
Installation and Environment Guide should recommend restarting user's machines between uninstalling one build of Visual DataFlex and installing another to avoid problems with the new revision that gets installed.
In the Installation Procedure we should add something like:
* Reboot your computer to release all DLL's which might be in memory. - after uninstalling any revision of Visual DataFlex, restart your machine prior to installing another build or revision of Visual DataFlex
Like below:
* Backup all data, your DataFlex applications and registry entries from any existing Visual DataFlex or WebApp installation.
* Reboot your computer to release all DLL's which might be in memory.
* Remove all instances of Beta or Pre-release versions of Visual DataFlex 2010 prior to installing this release. You can uninstall the program by clicking on the Add/Remove Programs button from the Windows Control Panel. Then select the appropriate Visual DataFlex version to remove from your system. Choose the Automatic Uninstall option to remove all DataFlex installed files. Any user-generated directories will remain intact.
* Reboot your computer to release all DLL's which might be in memory. - after uninstalling any revision of Visual DataFlex, restart your machine prior to installing another build or revision of Visual DataFlex.
* Make sure you are running a supported operating system and run the appropriate installation program as listed below.
Bug 6162, reported by Quality Assurance
Electos is no longer automatically installed with Visual DataFlex.
However, the Visual DataFlex installation screen and its Installation and Environment Guide still include old references such as:
Visual DataFlex 2010 includes a complete application for Web
content management - Electos! Electos is a perfect choice to
accompany Visual DataFlex 2010. Electos is immediately useful to
end-users, and it opens a wide range of opportunities for VDF
developers to integrate the system with their own applications to
create exciting new Internet solutions. The latest in content
management technology - Electos 4.0 - is automatically installed at
the end of the Studio installation.
Bug 6695, reported by Matthias Burkhardt
In Forms and dbForms the following does not work properly:
Object oForm is a Form
Entry_Item WAESCHEK.GRUPPE
Set Size to 13 100
Set Location to 10 10
Set Prompt_Button_Mode to PB_PromptOn
Set Prompt_Button_Value to "hello"
End_Object
The prompt button will show "..." and not "hello". If the order is reversed it works as expected
Object oForm is a Form
Entry_Item WAESCHEK.GRUPPE
Set Size to 13 100
Set Location to 10 10
Set Prompt_Button_Value to "hello"
Set Prompt_Button_Mode to PB_PromptOn
End_Object
Bug 6688, reported by Peter Bragg
If a cCJGrid or cDbCJGrid is activated via the mouse and it gets refreshed about during the focus change, it is possible the that row that was clicked on will no longer exist. When this happens an error occurs.
For example:
Run the order entry application and find (and note) two orders that have a different amount of items. For example, Order 103 has 4 items (and so shows 4 rows in the grid) whilst Order 104 only has 2.
Find record 103 and make sure that the cursor is in the Order Number entry.
Manually over-type this with 104 (the order I know to have less items). At this point - with the focus still inside the Order Number entry (don't find it).
Click on to the 4th row in the grid (which is still showing the lines for Order 103 because the new record has yet to be found). You will get an error.
What you should see is a timing issue whereby the act of exiting the Order Number finds the new record (104) but because Order 104 doesn't have as many items against it - and therefore not as many rows in the grid - the end result is that you then get a 'selected col has no selected row' error, followed by a 'COM object method invocation' error (because you've tried to click onto a row that now isn't there any more)
Bug 6687, reported by Anders Ohrt
In a cWebPromptList with sortable columns, I have some columns that are not from the main table but from a related table. The index picked for these columns are from the related table, in my case clicking on the these columns headers tries to sort by an index that does not even exist in the main table, so it throws an "invalid index" error.
This can be reproduced easily with the attached workspace.
Bug 6670, reported by Quality Assurance
Steps:
1. Open any of our sample cWebViews, for example Customer.wo
2. Place the cursor on any web framework class object declaration line, for example 'Object oCustomerName is a cWebForm'
3. Press Ctrl+F7 to synchronize the Properties panel to this object
4. Click in the Object (name) at the top of the Properties panel (it will say "oCustomerName")
5. Press F1
=> This will take you to the cObject page or a blank page, instead of taking you to the cWebForm in the help
The reason for this is that the web framework classes are missing the HelpTopic meta data tags, for example:
{ HelpTopic=cWebForm }
Bug 6650, reported by Vincent Oorsprong
cDbCJGridColumn.pkg has dependency to DFTable.pkg. It relies on a struct in that package named tGridComboHelper. This struct should be moved to its own file and used by both of these packages.
Bug 6642, reported by Quality Assurance
In the construct_object of the class Entry_Client_mixin the message define_Auto_Locate is sent twice. The method itself is empty, so sending it twice does not change or correct any functionality.
Bug 6641, reported by Quality Assurance
The codesense tooltip for the qualifiedItem method (in FleXML.pkg) shows incorrect information. It shows the parameters in reversed order.
Bug 6624, reported by Matthias Burkhardt
Opening the about screen in Studio, Database Builder or your own application while the Pervasive.SQL Connectivity Kit (DFBTRDRV) is loaded, generates "Invalid driver function call 10005" error.
Bug 6607, reported by Pieter van Dieren
When you set pbBypassDDFieldBuffer of a cDbTextEdit to False, the caret is moved to the beginning of the edit when the view gets the focus again and the changed state of the edit is true.
This is reproducable in the Order Entry:
Open Customer.vw
Add 'Set pbBypassDDFieldBuffer to False' to oCustomer_Comments
Compile
Start the Customer Entry View
Select a record
Add some text to the Comments Edit
Place the caret at the end of the text
Press Alt-Tab
Press Alt-Tab to go back
-> the caret is moved to the beginning of the edit
You see this any time the edit regains the focus although it actually occurs when the control loses the focus.
So, when you switch views it happens too. Or in our case, when you have a context menu with which users can add default texts to the edit. Each time the context menu is closed, the caret is moved and thus our text is inserted at the wrong location.
Bug 6589, reported by Quality Assurance
If the code dynamically changes the DD_NOENTER option for a text field the cdbTextEdit object does not become readonly and gray colored.
This report actually opened up a series of issues with the data aware cTextEdit and cRichEdit controls:
* These controls did not respect No_put (technically the extended field buffer did not respect no_put). Fixed
* These controls did not respect and apply DD_NoEnter and DD_Commit conditions. Fixed
* Now that these controls will reflect no-enter, a property, pbNoEnterReadOnly, was added to determine if a no-enter control should be disabled or readonly. The default is readonly as this allows you scroll through the text and copy it.
* A new color property ReadOnlyColor was added to determine what the background color of a readonly control should be. If clNone, no color is applied and it works as before.
Bug 6576, reported by Quality Assurance
When you type "Set private." CodeSense automatically substitutes this with "Set Private.Validation_Types" and this is not a property that should be exposed. This needs to be marked as private.
There is actually also a Private.Code_Description_Value which should be marked as private.
A change has been made so that all methods within a private class are now considered to be private. This will now hide these and other non-public methods in private classes.
Bug 6563, reported by Raveen Ryan Sundram
If you compare the vertical alignment of a Form/dbForm's label with its text the alignment is not the same. In addition a TextBox and a Form with the same height and alignment do not quite match.
This appears to have always been the case although the difference may be more noticeable with different fonts (like Segoe UI), different DPIs and different monitors. This will also be more noticeable if your form has no border, but it is the same problem.
This is caused by several different issues, which have been addressed in 18.0. Note that vertical alignment between labels and text in combos will be imperfect. This is the nature of the Windows combo control and there is little we can do to improve this.
Bug 6519, reported by Frank Cheng
GlobalFunctionsProcedures.pkg
Function PointSizeToPhysicalFontSize
.
.
.
Move (ReleaseDC(0, hDC)) to hDC
Move (SelectObject(hDC, holdFont)) to hOldFont
Move (DeleteObject(hFont)) to bVoid
Function_Return iFontSize
End_Function
The "ReleaseDC" line should be right after the "DeleteObject" line. This bug invalidates the font that's currently selected to the Desktop's DC, it also causes leaking of an existing font, which might cause painting issue of the desktop.
Bug 6513, reported by Quality Assurance
A checkbox does not support transparent_state, the property can be set however via the object properties pane in the Studio. For a FORM you cannot set it because Windows.Pkg contains the line:
{ OverrideProperty=Transparent_State DesignTime=False }
The same line needs to be added above the checkbox class.
Bug 6494, reported by Thomas Murphy
Line 61 of DD_OperationChecker.pkg contains a Lowercase() operation. It is performed on a constant instead on the passed in message name.
It should change from:
If (OPERATION_MODE=MODE_VALIDATING and sMessage<>Lowercase("request_save")) Begin
to:
If (OPERATION_MODE=MODE_VALIDATING and Lowercase(sMessage)<>"request_save") Begin
Bug 6470, reported by Flavio da Costa Figueiredo
ListRowCount does not work for dbComboForm class. It should limit the number of rows the drop down list displays, but does not.
This can easily be tested by adding a ListRowCount value to the oCustomer_State object in Customer.vw in the Order entry sample application. Set ListRowCount to 4.
It appears that the technique we were using no longer works with XP and above. We will use a different internal interface.
Bug 6464, reported by Quality Assurance
The method queries the phoInvokingObject property, but the returned value is not used.
Bug 6164, reported by Quality Assurance
The attribute DF_API_DISABLED is not documented. The attribute is set to true to avoid re-entrance. It is being set to true before the first time the callback message from an API command like SORT is received by your program and set to false at the end.
Code:
Boolean bDisabled
Open Customer
Get_Attribute DF_API_DISABLED to bDisabled // <-- false
Sort Customer.File_Number "1 2 3" (DF_SORT_OPTION_BAD_DATA_FIXUP ior DF_SORT_OPTION_DUP_DATA_ABORT) (oSimpleProcess)
Get_Attribute DF_API_DISABLED to bDisabled // <-- false again
In the code of oSimpleProcess:
Object oSimpleProcess is a cObject
Function CallBack String sMessage Integer iType Returns Integer
String sType
Boolean bDisabled
Get_Attribute DF_API_DISABLED to bDisabled
Case Begin
Case (iType = DF_MESSAGE_TEXT)
Move "(Text)" to sType
Case Break
Case (iType = DF_MESSAGE_HEADING_1)
Move "(Message Heading 1)" to sType
Case Break
Case (iType = DF_MESSAGE_HEADING_2)
Move "(Message Heading 2)" to sType
Case Break
Case (iType = DF_MESSAGE_HEADING_3)
Move "(Message Heading 3)" to sType
Case Break
Case (iType = DF_MESSAGE_HEADING_4)
Move "(Message Heading 4)" to sType
Case Break
Case (iType = DF_MESSAGE_HEADING_5)
Move "(Message Heading 5)" to sType
Case Break
Case (iType = DF_MESSAGE_WARNING)
Move "(Warning)" to sType
Case Break
Case (iType = DF_MESSAGE_PROGRESS_TITLE)
Move "(Progress Title)" to sType
Case Break
Case (iType = DF_MESSAGE_PROGRESS_VALUE)
Move "(Progress value)" to sType
Case Break
Case End
Showln sMessage " -- " sType
End_Function
End_Object
The attribute returns true.
Bug 6703, reported by Mihalis Kapiris
On the 'Reporting Order and Breakpoints' page of the WinPrint report wizard, change "Select the index to used in this report." to "Select the index to be used in this report."
Bug 6698, reported by Mihalis Kapiris
The word 'to' was added to the lines "The object name and component name will be added to your data-dictionary class. This information is used to access the lookup list within an application."
Bug 6605, reported by Wil van Antwerpen
When accessing the name of a message, which is normally only done by the DataFlex error handler or the debugger call stack an access violation may occur if that message is the last new message defined by the application.
The compiler stores all message names in the compiled .exe file. If the last message number happens to be a multiple of 32, it does not store it properly. If the runtime tries to access that name, an Access Violation occurs. Normally this would only occur when that last message has an error, because our error handler tries to get the message name.
This is an old bug, which is rather hard to encounter. To see this you'd have to have a error that involves your last defined message and even then you only have a 1/32 chance of it causing an access violation.
Bug 6652, reported by Quality Assurance
If you browse through the error grid, you quite often get a question whether you want to save changes or not, while you did not deliberately made changes.
The error grid is a special grid, as the error number is a record number plus an offset.
This bug is fixed by replacing the old dbGrid with the newer cDbCJGrid class.
Bug 6717, reported by Quality Assurance
If you delete a relationship in Table Editor, then save the Studio raises an Invalid CDS Node error. Steps to reproduce in Order Entry...
[1] Open the OrderDtl Data Dictionary. Go to the Structures Tab.
[2] In the Required Parent Tables list select the "Nulls" checkbox for the Invt table. Save all changes.
[3] Open OrderDtl in Table Explorer and delete the relationship to Invt
[4] Save
You will get two Invalid node handle errors.
Bug 6680, reported by Quality Assurance
'File is Read Only' dialog that appears when trying to save edits in a read-only file cuts off long file names.
Bug 6664, reported by Quality Assurance
The images in the Studio's statusbar do not scale well at higher DPIs like 125%. Actually the problem is they attempt to scale which looks bad. For example, if you load a pkg file like DataDict.pkg the readonly symbol looks ragged at 125% DPI.
Other images in the Studio and a Statusbar pane image in the visual modeler do not have this problem.
Bug 6646, reported by Quality Assurance
Error displayed when trying to display component in design mode when the file is from a different workspace.
To reproduce the problem:
1.) Open "Order Entry" workspace.
2.) Open a file from another workspace.
3.) Click on the Studio's View menu or press the F7 key to switch to design mode.
4.) The error below will be displayed:
C:\Program Files (x86)\Visual DataFlex 17.1\Bin\Studio.exe
COM object method invocation error. The specified file (C:\Visual DataFlex 17.1 Examples\Web Services Clients\AppSrc\CheckBook.vw) is not available in the meta database
Error: 4399
Please report this error to Data Access Corporation
GET_COMGETFILECOMPONENTTYPE (11714) - oCodeMetaData (3643) - at address 82607
GET_ISAJAXCOMPONENT (16120) - oWorkspaceExplorer_pnl (2933) - at address 197390
MSG_TOGGLEVIEWS (13666) - oObject (3647) - at address 119619
MSG_REQUESTTOGGLEVIEWS (17556) - oMain (761) - at address 225924
GET_EXECUTE@0 (11744) - oObject (662) - at address 127044
MSG_ONSHORTCUT (11746) - oObject (662) - at address 82901
MSG_PROCESS_ACCELERATOR (455) - oObject (3519) - in native code
[start] - at address 226070
Bug 6643, reported by Quality Assurance
The piMinSize of the add validation object dialog is too low. The list component on the right hand side can be resized too much and the label above it almost writes through the border. See attached image.
Bug 6630, reported by Allan Kim Eriksen
If a Long Label property of a table column in the DD class has a label with double quotes (.e.g. Invt Item "ID"), it triggers a Studio modeling error when dragging the table column to a view or dialog from DDO Explorer.
Bug 6622, reported by Allan Kim Eriksen
The Studio's web-service class generator was not properly handling the case of a schema <import> when the imported-from schema contained an attribute (xmlns:Foo="URI1") that had the same name as an attribute in the imported-to schema (xmlns:Foo="URI2"). This would result in a parsing error. You could generate the web-service class but it would not run.
This has been corrected.
Bug 6599, reported by Frank Valcarcel
I loaded a view from a different workspace into the editor to look at code and then right clicked on the view tab.
This triggered an error 4399:
C:\Visual DataFlex 17.1\Bin\Studio.exe
COM object method invocation error. The specified file (C:\Visual DataFlex 17.1 Examples\Contact Management\AppSrc\Contacts.vw) is not available in the meta database
Error: 4399
Please report this error to Data Access Corporation
GET_COMGETFILECOMPONENTTYPE (11714) - oCodeMetaData (3515) - at address 82607
GET_ISAJAXCOMPONENT (16120) - oWorkspaceExplorer_pnl (2933) - at address 197390
GET_ISENABLED (8896) - oOpenNewTabMenuItem (782) - at address 139008
SET_PBENABLED (1537) - oOpenNewTabMenuItem (782) - at address 53001
MSG_UPDATE (364) - oOpenNewTabMenuItem (782) - at address 53001
MSG_POPUPINIT (8787) - oGlobalCommandBarSystem (2796) - at address 51967
MSG_CREATEPOPUPCOMINSTANCE (8854) - oTabWindowContextMenu (762) - at address 52534
MSG_POPUP (290) - oTabWindowContextMenu (762) - at address 52545
MSG_POPUP (290) - oTabWindowContextMenu (762) - at address 83105
MSG_TABCONTEXTPOPUP (14216) - oTabWindowContextMenu (762) - at address 139133
MSG_ONTWCONTEXTMENUTAB (1667) - oMain (761) - at address 225607
[start] - at address 226070
Bug 6524, reported by Quality Assurance
If you want to force a full regenerate of DDClassList and therefore remove the file from disk the rebuild DDClassList, it does not do anything. No errors are triggered, only a message in the output that 0 tables have been added.
=> This now creates a new DDClassList.XML file if none is present. Note that you cannot delete the file while the Studio already has the workspace in question open, You must close that workspace, delete the file, then reopen the workspace and rebuild the DD Class List from Tools > Data Dictionary Maintenance > Rebuild DD List (DDClassList.XML)...
Bug 6501, reported by Richard Hogg
Increase the width of the Table Name control in the Table Editor, now that the column name length has been increased from 8 to 31 characters.
Bug 6458, reported by Quality Assurance
The remember toolbar added to 17.0 does not have a psTitle set. Now the toolbar appears as "Toolbar" in the floating menu on the commandbars.
Bug 6391, reported by Quality Assurance
When dragging and dropping a dbGroup from the Class Palette, a Use DFAllEnt.pkg statement is added to your component. For self containment, that is not needed as dbGroup requires dfClient.pkg.
Bug 6229, reported by Joao Mauricio Rinardo
If you change an object name and press the F7 key, a couple of 4399 errors are shown. The error details are below:
C:\Program Files (x86)\Visual DataFlex 16.1\Bin\Studio.exe
Erro na invoca‡ao de m‚todo objeto COM. Invalid CDS node handle
Error: 4399
Please report this error to Data Access Corporation
GET_COMGETNODESTARTLINE (11373) - OCDS (4839) - at address 78269
MSG_SETCDSLINES (13244) - OOBJECT (3408) - at address 111060
MSG_ONCOMUPDATENODE (11394) - OOBJECT (3873) - at address 114211
MSG_ONCOMUPDATENODE (11394) - OCDS (3412) - at address 81724
GET_INVOKECOMMETHOD (1374) - oDispatchDriver (2894) - in native code
MSG_COMUPDATENODE (11357) - OCDS (2893) - at address 78142
MSG_COMMITCHANGE (15864) - OOBJECTNAMEFORM (2897) - at address 191850
MSG_ONKILLFOCUS (4478) - OOBJECTNAMEFORM (2897) - at address 191806
MSG_NOTIFY_FOCUS_CHANGE (654) - OOBJECTNAMEFORM (2897) - at address 2848
MSG_ONDFFOCUS (1380) - OOBJECT (3408) - in native code
MSG_ACTIVATE (117) - OOBJECT (3408) - in native code
MSG_ACTIVATE (117) - OOBJECT (3408) - at address 1668
MSG_TOGGLEACTIVEEDITOR (13355) - OOBJECT (3873) - at address 114453
MSG_TOGGLEVIEWS (13356) - OOBJECT (3873) - at address 114541
MSG_REQUESTTOGGLEVIEWS (16491) - OMAIN (735) - at address 208391
GET_EXECUTE@0 (11481) - OOBJECT (645) - at address 121636
MSG_ONSHORTCUT (11483) - OOBJECT (645) - at address 79092
MSG_PROCESS_ACCELERATOR (455) - OOBJECTNAMEFORM (2897) - in native code
[start] - at address 208537