Bugs Fixed in DataFlex 18.2
Runtime
Sending Refind_Records to a DDO may clear the file buffer of a DDO based on a system file
Bug 7082, reported by Clive Richmond
If Refind_Records is sent to a System file DDO and that DDO's current_record is 0 (i.e., DDO thinks there is no current record), it will clear the table's buffer so that the buffer matches what the DDO thinks is the current record. This should probably not happen with System files. DDOs should not be able to clear a system file's buffer.
This is an old behavior but rarely occurs. For this to happen you need a system file DDO; that file needs to be attached to the DDO structure and that system file DDO has to not yet be in use when it receives the Refind_Records message. None of these are normal or even common conditions.
Add_Focus changes the value of the hoParent parameter as if it were by-reference
Bug 7051, reported by Frank Cheng
If you send or forward-send Add_Focus to the runtime class level, your first parameter, which is hoParent, will get changed during the call. It will end up containing the Add_Focus return value, which most likely will be 0. If you use the Get syntax (for example Get msg_Add_Focus of hoButton hoParent to iRetVal), the return parameter (iRetVal) will be unchanged (because the return value is getting placed in the first parameter).
For example, in DF 18.1, open the Order Entry example, set a breakpoint in DFAbout.pkg (in the pkg folder) at line 477:
Procedure Add_Focus Integer hoParent
Forward Send Add_Focus hoParent // <<<<< Set a breakpoint on this line
Send Delete_Data // <<<<< Set a breakpoint on this line as well
End_Procedure
Notice the value of hoParent: it should be something non-zero. After the forward send, hoParent becomes 0, which is the return value of a successful Add_Focus operation.
This has been in the product since Add_Focus was introduced. The problem is rarely encountered because:
1. Add_Focus is not called or augmented often,
2. you don't tend to use the hoParent parameter after the call, and
3. Add_Focus rarely fails so testing the return value is usually zero anyway.
Possible side effects from this fix:
1. You were depending on a send/get to Add_Focus actually changing the first parameter to a return status value. Since this is not intentional or documented behavior, this seems unlikely.
2. You are using the Get or Forward Get syntax like this:
Forward Get msg_Add_Focus hoParent to iRetVal
If (iRetVal) Begin
// handle the add_focus failure
End
iRetVal was not actually receiving the return value, it was 0 (or whatever it was) even if the Add_Focus failed. Now that it might be called, your code is working as documented but may be untested. Keep in mind that Add_Focus rarely fails, so this code path will most likely remain unexecuted.
Orphan records can cause problems with multi-level relates-to constrained AutoFill DDOs
Bug 6953, reported by Garret Mott
When relates-to constrained DDO structures have child or grand-child records that are null-orphans, the finding process may not behave as expected. A null-orphan is a child that has a null relate (0 or "") to a parent. This is only an issue if the DDO is Auto_Fill, which usually occurs when a DEO Grid is connected to a child DDO (which sets the DDO Auto_Fill_State to True).
During parent finding and autofill, relates-to child attempts to find a related record. An empty parent will find the null-orphan child and consider it valid. With multi-level DDO constraints (parent <- child <- grandchild) where there is no child record, a null-orphan grandchild will find a valid record for the empty child.
This creates erratic behavior. In some cases, a parent clear will result in a grid of orphan "children". If the grandchild is the orphan a parent clear will cause the parent to appear cleared.
A multi-level constrained DDO structure might be:
Customer
\ c
OrderHea
\ c
OrderDtl
c indicates a relates-to constraint. Orphans in OrderHea or OrderDtl can cause display problems.
The DDO constrained child find propagation behavior has been changed so that a null parent will always make sure that the child is null (i.e., it will never find and never accept a null-orphan).
This is a very old DDO behavior. This may result in changed behavior in a view, but in these cases that change should be an improvement. You should only see changes when you have constrained child null-orphan records (which is almost always an error in itself).
Form, dbForm and CJ column grid controls display some characters oddly when editing under Windows 10
Bug 6951, reported by Quality Assurance
Forms, dbForms and CJ grid column edits (which use Forms for editing) do not display heavily kerned characters well when editing them. Examples are FAFAFA or VAVAVA. Windows 10's Segoe UI kerns these pairs much more heavily than earlier versions. The logic used to determine character string width should have taken kerning into account but for some reason did not. The width is now determined using a different mechanism.
This is not Windows 10-only; you could see the same behavior with other fonts (e.g., Helvetica in Windows 7), but that is rare. Characters are displayed and stored properly — the issue only appears while editing the form.
StringToUCharArray has a memory leak
Bug 6942, reported by Harm Wibier
Each call to StringToUCharArray left behind a small amount of unclaimed memory.
Example:
Use Windows.pkg
Procedure test String st
UChar[] uca
Move (StringToUCharArray(st)) to uca
End_Procedure
Repeat
Send test "john"
Loop
Context menus in Forms and dbForms show Copy and Cut enabled when Password_State = True
Bug 6912, reported by John Tuohy
Setting Password_State in a Form or dbForm disables copy and cut, but the context menus allowed these options. They did nothing when Password_State is True, so this was cosmetic. The Can_Copy and Can_Cut functions were returning the wrong value and have been fixed.
StatusPanel does not work properly when used from a modal dialog
Bug 6843, reported by Quality Assurance
If StatusPanel is used from a modal dialog it did not stop the user from interacting with the dialog behind it, including closing it. This bug was introduced in VDF 12.0 when the improved modality logic was introduced and the status panel was replaced.
To reproduce:
- Place the attached SL in the Order sample (replaces the standard Customer.sl) and add an extra button; example:
Object oButton1 is a Button
Set Location to 32 98
Set Label to "Sentinel"
Procedure OnClick
Integer userCancel
Send Initialize_StatusPanel of ghoStatusPanel "Cap" "Tit" "Msg"
Send Start_StatusPanel of ghoStatusPanel
For WindowIndex from 0 to 1000000
Send Update_StatusPanel of ghoStatusPanel (Trim(WindowIndex))
Get Check_StatusPanel of ghoStatusPanel to userCancel
If userCancel Procedure_Return
Loop
Send Stop_StatusPanel of ghoStatusPanel
End_Procedure
End_Object
FindByRowid / Find_By_Recnum may not set Found properly if the finding value is 0/Null
Bug 6826, reported by Raveen Ryan Sundram
In some cases, FindByRowId and/or Find_By_Recnum returned the global indicator FOUND as True even if the find was False. If the finding value is "no-record" (zero recnum or null RowId), the DD Clear message is sent. If this message changes Found, it may return True. This has been changed so these messages return the proper value for Found.
DataDictionary's IsDataInvalid function in a transaction would rollback the transaction if the data was invalid
Bug 6813, reported by Allan Kim Eriksen
The private DDO function IsDataInvalid was used to determine if the data being moved to the DDO buffer can be properly cast. It performed a cast and trapped errors via an error object. This had side-effects inside a transaction: testing for invalid data generated an error which rolled back the transaction and aborted the function. This is not intended behavior.
This function has been changed to evaluate without rolling back the transaction. It can now return True without aborting the transaction.
Forms and DbForms with Entry_State = False can still be changed via Delete and Backspace keys
Bug 6810, reported by Allan Kim Eriksen
If a (db)Form's Entry_State is False, you can place the cursor inside the form but not enter any data. However, Backspace, Delete, and the period key on the numeric keypad could change contents when they shouldn't. Context menus also provided options that should be disabled (e.g., Paste and Delete). These have been fixed.
UCharArrayToString raises an exception if end position < start position
Bug 6800, reported by Quality Assurance
Test code:
Procedure OnClick
UChar[] myString
String sValue
Move (Ascii("T")) to myString[0]
Move (Ascii("e")) to myString[1]
Move (Ascii("s")) to myString[2]
Move (Ascii("t")) to myString[3]
Move (Ascii("i")) to myString[4]
Move (Ascii("n")) to myString[5]
Move (Ascii("g")) to myString[6]
Move (UCharArrayToString(myString, 2, 4)) to sValue
End_Procedure
Operation_Mode and Operation_Origin are not reset when the transaction is aborted inside Request_Validate
Bug 6732, reported by Quality Assurance
Operation_Mode and Operation_Origin were not reset when a transaction was aborted inside Request_Validate. This only occurred with nested transactions (i.e., a DDO Request_Save inside a Begin_Transaction / End_Transaction block). The behavior is corrected.
To reproduce (example button code added to Customer.vw):
Object oButton1 is a Button
Set Location to 5 182
Set Label to 'oButton1'
Procedure OnClick
Integer iRet
// Begin_Transaction
Send Clear of Customer_DD
Set Field_Changed_Value of Customer_DD Field Customer.City to "ADAD"
Get Request_Validate of Customer_DD to iRet
If (iRet = 0) Send Request_Save of Customer_DD
// End_Transaction
End_Procedure
End_Object
Begin_Transaction / End_Transaction were uncommented, Operation_Mode could be left in an incorrect state.
Variant and RowId return types in watches window give "External function not found" (e.g., pvXml, CurrentRowId)
Bug 6661, reported by Quality Assurance
Some object-based methods that returned variant or rowid types could not be evaluated in the debugger's watches window or via the Eval() function. Examples: pvXML(hoXML) or GetCurrentRowId(hoDD) returned "Error: External function not found". This has been fixed.
Reproduction steps (examples shown in original report) show adding watches to halted debug sessions resulted in the error.
Times are displayed incorrectly when using Mask_Time with European (Dutch) Windows Regional settings
Bug 6648, reported by Peter van Mil
Steps to reproduce:
1. Convert Customer table in Order (Windows, not Web) sample to SQL Server in Database Builder.
2. Click Refresh from definition for Customer.
3. Add column Test_Time, type time.
4. Drag the new column from DDO Explorer to Customer view.
5. In dbForm:
Set Form_Datatype to Mask_Time
Set Form_Mask to "hh:mm"
Results:
- Entering 08:15 becomes 20:15 after save (database still has 08:15:00).
- Times that are 00:00:00 in the database are shown as 12:00.
If you remove Form_Mask, the time is displayed correctly.
Problem with XML nodes longer than the maximum argument size (memory overwrite)
Bug 6636, reported by Emil Stojanov
XML documents that contain nodes longer than the maximum argument size could create a memory overwrite. For example, executing a Get psText might cause a memory overwrite instead of truncating. This was fixed in 18.0: when text is too long an error DFERR_STRING_TOO_LONG is raised. Messages affected: Get psText, psXml, psNodeValue, TransformNode, Value, and SubStringData.
AM/PM handling: datetime/time values with more digits than mask and AM/PM can be wrong
Bug 6615, reported by Quality Assurance
If the datetime or time value being set has more digits than the mask and it has AM/PM, the result can be wrong.
Example:
Set Form_Datatype to Mask_Time
Set Form_Mask to "hh:mm ap"
Set Value to "4:01:00 PM" // may become 4:01 AM
AM/PM vs 24-hour mask conversion problems
Bug 6614, reported by Quality Assurance
If Value is set with AM/PM while the form mask uses 24-hour time, conversion problems can occur.
Example:
Set Form_Datatype to Mask_Time
Set Form_Mask to "hh:mm"
Move "16:17:18" to tt1
Set Value to tt1
Value set with AM/PM and Mask_Datetime_Window issues
Bug 6613, reported by Peter van Mil
If Value is set with AM/PM, time problems occur when used with 24-hour mask datatypes.
Example:
Set Form_Datatype to Mask_Datetime_Window
Set Form_Mask to "mm/dd/yy hh:mm:ss"
Set Value to "1/2/2013 6:01 PM" // may become 6:01 AM
Set Value to "1/2/2013 12:01 AM" // may become 12:01 PM
24-hour masks that are not complete show an extra separator when editing
Bug 6611, reported by Peter van Mil
If the form_mask is "hh:mm", pressing End shows 09:15: (extra separator). You can't enter seconds unless you press Backspace first. This was fixed for dates but not time; behavior improved in 18.2. Ensure Windows "Long Time" Regional Settings set to 24-hour time when testing.
Example dbForm:
Object oCustomer_TestTime is a dbForm
Entry_Item Customer.TestTime
Set Location to 84 62
Set Size to 13 48
Set Label to "TestTime:"
Set Label_Justification_Mode to JMode_Right
Set Label_Col_Offset to 2
Set Form_Datatype to Mask_Time
Set Form_Mask to "hh:mm"
End_Object
A Direct_Output within Read/Readln changes their behavior (SEQEOL is cleared)
Bug 6573, reported by Andrew Kennard
A Direct_Output executed during an input process resulted in SEQEOL being changed. SEQEOL is used by Read and Readln to determine end-of-line. Sequential output commands should not change SEQEOL. This is now fixed.
Refind_Records may not find all records in Child DDOs
Bug 6556, reported by Quality Assurance
In 17.0 a change was made to make Refind_Records find down as well as up the DDO structure; this did not always work. Example test (replace Print button code in Order.vw):
Procedure OnClick
// check file buffers in the debugger - should be filled
Clear Customer
Clear OrderHea
Clear OrderDtl
Clear SalesP
Clear Vendor
Clear Invt
// check file buffers in the debugger - should be cleared
Send Refind_Records of OrderHea_DD
// check file buffers in the debugger - should be filled
End_Procedure
Vertically resizing a list that uses anchors causes it to move in large jumps
Bug 1717, reported by Grant Harrington
Using anchors with objects based on the list class caused the vertical size of the lists to move in large "jumps" when resized. This was addressed by the addition of new grid and list classes in DataFlex 16.0.
Database Builder
Spelling error in wizard on "Primary key and Recnum table conversion rules" page
Bug 6991, reported by Quality Assurance
SQL Server Conversion Wizard displays "Primay" instead of "Primary". Fixed.
Installation
DataFlex 18.1 Personal and Eval editions trigger errors on Windows 10
Bug 6920, reported by Quality Assurance
Evaluation and Personal licenses for DataFlex 18.1 were not fully compatible with Windows 10 for debug/run of Windows projects (unhandled FLT_DIVIDE_BY_ZERO exception). This will be addressed in the next release.
When Client.cfg contains CONNECTIVITY=N and dfini.cfg includes 4096=ODBC_DRV, it results in a startup error
Bug 5946, reported by Quality Assurance
When installing a Client License with Client.cfg containing CONNECTIVITY=N and dfini.cfg including 4096=ODBC_DRV, a startup error occurred. The 18.2 client installation now installs different dfini.cfg files depending on the CONNECTIVITY setting in the client configuration.
Debugger
Error in the Watches Window may change the value of the ERR indicator
Bug 6929, reported by Frank Valcarcel
The Watches window may show the wrong value for Err if evaluating a watch entry generates an error (e.g., "invalid message"). The runtime Err flag could be set to True, potentially disrupting the application flow. This has been fixed.
Reproduce steps outline provided in original report (adding watches that generate invalid message errors).
Packages
DataDictionary's augmentation of FindByRowIdExNoAutofill is named wrong
Bug 7093, reported by Thomas Murphy
The augmentation in DataDict.pkg was incorrectly named FindByRowIdExAutofill instead of FindByRowIdExNoAutofill (missing the No), so the augmentation was not called. This prevented OnPreFind and OnPostFind from being invoked as part of WebApp request synchronization. The naming is corrected. Note: in 18.1 this would not have compiled because of Bug 7092.
HttpVerbAddrRequest and FindByRowIdExNoAutoFill are defined improperly in FMAC
Bug 7092, reported by Harm Wibier
Messages GET_FINDBYROWIDEXNOAUTOFILL and GET_HTTPVERBADDRREQUEST were defined with an improper format ("|CI0$0" instead of "|CI$0"). The improper format worked when sending the message but prevented creating functions with those names (making augmentation impossible). Definitions corrected.
Time value typed into a cDbCJGridColumn disappears when tabbing out of column
Bug 7086, reported by Quality Assurance
When entering a time value on a grid column set to Mask_Time, the value was blanked out upon tabbing out of the column. This was fixed.
Reproduce:
- Modify Order.vw column to:
Object oInvt_Description is a cDbCJGridColumn
// Entry_Item Invt.Description
Set piWidth to 213
Set psCaption to "Description"
Set peDataType to Mask_Time
End_Object
Error 52 when using MASK_TIME on Grid
Bug 7011, reported by Clive Richmond
When a column's data type is MASK_TIME and columns are sorted, clicking the column heading could trigger Error 52 ("Bad format of expression"). This occurred in sort comparison logic and has been fixed. Reproduction and stack trace provided in the original report.
In cDbCJGrids, saved records that are constraint-invalid are not removed from the cache and are displayed
Bug 6999, reported by Thomas Aravich
If a saved record becomes filtered (constraint or SQL filtering) and thus should not belong in the grid, it was not removed and could cause "can't refind record" errors. In 18.2 the record is validated post-save and, if it does not belong, it is removed from the grid (removed, not deleted). Note: saving a record and having it disappear may be confusing for end users.
Test steps and explanation provided in original report.
Prompt objects in modal dialogs do not work
Bug 6981, reported by Anders Ohrt
Prompt button logic for the DDO was disabled for the drill-down style by checking peViewStyle but only checking wvsDesktop; prompt buttons were also disabled for modal dialogs with peViewStyle = wvsDialog. This has been corrected.
If a DEO is not bound to a File.Field, changing this DEO sets parent DDO Changed_State to True
Bug 6974, reported by Ola Eldoy
If a DEO is not bound (Entry_Item missing or empty) and that DEO is edited, the change incorrectly set Changed_State on all parent DDOs (a change introduced in 17.0). As of 18.2, only the DEO's Server DDO will have its Changed_State set to True (restoring compatibility).
Header/Detail: changing data in header, navigating to detail DEO and saving may not save the header change
Bug 6973, reported by Pieter van Dieren
In a header/detail view, saving from the child DEO could result in the header value not being saved when the header DDO was treated as foreign (a side-effect introduced in 18.1). This is fixed. Note it only occurred when header is main DDO and it lacks Set Allow_Foreign_New_Save_State to True.
Reproduction steps provided in the original report.
Wrong function used in DDCurrentValue in cInternetSessionBusinessProcess.pkg
Bug 6971, reported by Torben Lund
On line ~400:
Move (StringToUCharArray(UCData)) to sValue
Move (UCharArrayToString(UCData)) to sValue
AddSoapHeaderNode uses wrong namespace with SOAP 1.2 services
Bug 6962, reported by Evertjan Dondergoor
AddSoapHeaderNode used SOAP 1.1 namespace:
http://schemas.xmlsoap.org/soap/envelope/
http://www.w3.org/2003/05/soap-envelope
Client RPC web-services may not properly parse return values
Bug 6954, reported by Vincent Oorsprong
RPC web-services did not handle return parameter validation correctly and could return:
Soap/Http Transfer error. Received SOAP data not formatted according to service description
Unhandled error when editing text field data in legacy ASP-style web application
Bug 6921, reported by Quality Assurance
Viewing and then saving a record containing one or more TEXT fields could cause an unhandled error. Fixed.
ParentNoSwitchIfCommitted allows parent to be switched if grandparent is committed
Bug 6905, reported by Wil van Antwerpen
Switching a committed parent raised an error, but switching a committed grandparent did not. This was introduced in 17.0 with committed record support and has been fixed.
Example hierarchy:
Customer
|
OrderHea
|
OrderDtl
OrderHea is saved and the Customer is switched then saving from OrderDtl should raise an error (now corrected). Reproduction example and UI suggestions provided in the original report.
Saving an empty text field via a dbTextEdit saves a zero byte string length 1 to the database
Bug 6897, reported by Quality Assurance
If you change a text field via a cDbTextEdit to empty text, the value saved to the DB will be a zero-byte string of length 1. Retrieving that data via Get_Field_Data returns a string of size 1 containing a 0 byte. dbTextEdit behavior changed and this has been fixed.
Field_Current_Value returns null-terminated string when retrieving a blank text field
Bug 6896, reported by Pieter van Dieren
Field_Current_Value on a blank TEXT field returned a null-terminated string (new in 18.1). This broke concatenation workflows (e.g., building merged strings). Fixed. Test example and reproduction steps are included in the original report.
Incorrect epoch conversion for years in 100–199 range
Bug 6824, reported by Quality Assurance
Dates between years 100 and 199 (e.g., 3/3/0145) were converted by adding 1900 (e.g., 1/2/123 → 1/2/2023). This ancient epoch fixup has been corrected.
Reproduce:
Date dTest
Move 1/2/123 to dTest
Showln dTest
Wrap_State not shown in Properties panel for dbSpinForm and SpinForm
Bug 6805, reported by Lee Roden
Wrap_State was missing from the Studio Properties panel. Documentation mismatch between help and SpnFrmMx.pkg (default values) was fixed.
View_Latch_State does not work with local relationships
Bug 6793, reported by Raveen Ryan Sundram
View_Latch_State failed when a DD used local relationships because initial seeding used global file relates instead of local relates. This was corrected. Test steps and reproduction provided in original report.
SuggestionForm does not respect pbEnterKeyAsTabKey
Bug 6785, reported by Pieter Saelens
If pbEnterKeyAsTabKey is set in cApplication and you use a c(DB)SuggestionForm, the Enter key did not navigate to the next control. Fixed.
Combo Forms in cCJGrids flash and disappear instead of properly dropping down
Bug 6776, reported by Quality Assurance
Under specific conditions (manually changing Enabled_State while the grid's combo-edit has focus and pbComboEntryState = False) the combo would flash and disappear. Fixed. Contacts sample showed the issue.
cClientWebServer does not handle a simple element type with attributes when nullable simple types are enabled
Bug 6763, reported by Marco Kuipers
When nullable simple types were enabled (studio generates tNString instead of String) and used with simpleContent schema types (a simple value plus attributes), the generated struct had the null flag as the first member and the element value as the second; attributes followed. cClientWebService did not handle this; fixed.
OpenFileDialog returns OEM filenames but ANSI filenames if MultiSelect is true
Bug 6759, reported by Quality Assurance
Show_Dialog in AbstractFileDialog did not convert multiple filenames (when MultiSelect_State is True) from ANSI to OEM. Files in Selected_Files are now consistent.
Error dialog shows "VDF Error#:" instead of "DataFlex Error#:" or "DF Error#:"
Bug 6737, reported by Quality Assurance
The error dialog caption was incorrect. Fixed.
cHtmlHelp and a few classes should only be in the Windows (not common) class set
Bug 6727, reported by Quality Assurance
Help incorrectly showed cHtmlHelp as part of the common class set; it should only be in Windows class set. Same for:
- cCJGridCachedDataSource
- cCJGridDataSource
- cDbCJGridDataSource
- cCJGridDataSourceColumn
Mouse Up changes selected row in Grid (selection on both mouse down and mouse up)
Bug 6606, reported by Quality Assurance
CJ grid selection occurred on both mousedown and mouseup; previous behavior was mousedown only. Fixed so selection occurs consistently.
Transaction rollback leaves DEO Object_Validation set to True
Bug 6579, reported by Quality Assurance
If Request_Validate is called within a transaction and it raises an error, the DEO Object_Validation property was not reset. The runtime now resets this during error handling.
Reproduction and attached test view in original report.
SeedData does not find data in cCJGridPromptList if list not sorted first
Bug 6555, reported by Allan Kim Eriksen
OnSeedList assumed the data list was already sorted. If un-sorted, seeded find could stop early. Example:
Object oSelList is a cCJGridPromptList
Set Size to 111 291
Set Location to 0 0
Set peAnchors to anAll
Object oCJGridColumn1 is a cCJGridColumn
Set piWidth to 100
Set psCaption to "column"
End_Object
Procedure Activating
Forward Send Activating
Send DoFillList
End_Procedure
Procedure DoFillList
tDataSourceRow[] lsData
// Note this list is not in order!
Move "B" to lsData[0].sValue[0]
Move "A" to lsData[1].sValue[0]
Move "C" to lsData[2].sValue[0]
Send InitializeData lsData
End_Procedure
End_Object
OnSeedData detects unsorted lists and sorts them before searching. Workarounds and augmentation tips provided in original report.
Under some circumstances, mixin class properties are not displayed in Studio's Properties panel
Bug 6024, reported by Ian Smith
Studio did not show initial values for properties defined in immediate mixin classes in some views. This is fixed. Examples and steps in original report.
Help
Class Reference: some inherited properties, events and methods do not display in subclass lists
Bug 7066, reported by Quality Assurance
Examples:
- cWebGrid: Server
- dbTrackBar: Visible_Tick_State
- AboutDialog: Auto_Locate_State
Help listings updated to include inherited items properly.
Language Reference: Mod function has wrong example on negative values
Bug 6961, reported by Quality Assurance
Help stated:
Mod returns a value having the same sign as the quotient of {dividend} divided by {divisor} would have. Mod(3, -2) = -1
It should state:
Mod returns a value having the same sign as
{dividend}. Mod(-3, 2) = -1
Documentation corrected.
Class Reference: Help samples for Notify_Select_State use incorrect parameter names
Bug 6868, reported by Chuck Atkinson
Help examples used ToItem, FromItem but the property panel prototypes use NewId, OldId. Parameter names have been made consistent in documentation and samples.
Class Reference: Document that Rebuild_Constraints does not clear DD buffer if row loaded is invalid
Bug 6566, reported by Emil Stojanov
Help updated to describe expected behavior when rebuild_constraints makes the current loaded row in the DD invalid.
Duplicate index entry for cDbCJGrid causing error
Bug 6383, reported by Flavio da Costa Figueiredo
Help index displayed both cDbCJGrid and cDBCJGrid. Clicking the second produced an error dialog. Index corrected to eliminate duplicates.
Class Reference: psText from BaseXMLDomNode doc incorrect (tags vs values)
Bug 4983, reported by Frank Valcarcel
Help previously said psText returns textual representation including tags and markups, but it actually returned values of nodes and descendants (no tags). Documentation updated to reflect actual behavior.
OnConstrain doc for cWinReport2 and BasicReport is blank
Bug 3953, reported by Samuel Pizarro
Documentation filled in for OnConstrain.
Studio Wizards
"Learn more about main DDO selection" button displays an error
Bug 7052, reported by Quality Assurance
In both report wizards the "Learn more about main DDO selection" button on the "Select Main DDO" wizard page showed an unsupported error. Fixed.
Migration Wizard: Images on pre-12.0 Workspace Migration Wizard are old-style
Bug 6958, reported by Quality Assurance
Pre-12.0 Workspace Migration Wizard still used old Visual DataFlex logo. Updated.
Pressing Esc in a wizard preview causes loss of all wizard data/actions
Bug 6923, reported by Jack Baugh
Pressing Esc while previewing a wizard previously cancelled the wizard and wiped out all selections. Behavior changed so Esc now acts like the preview window close (red "X"). If destructive action would occur, a warning is shown first.
Migration Wizard: pre-12.0 migration wizard creates .SWS file with wrong version information
Bug 6899, reported by Quality Assurance
8.0 to 11.0 migration wizard created .SWS files with Version property set to 17.1 instead of 18.1. Fixed.
Help does not work (F1 in Wizards)
Bug 6742, reported by Matthias Burkhardt
Pressing F1 in Studio Wizards (e.g., WebViewWizard) resulted in a Windows help format error. Help invocation fixed.
"Assign Lookup List to Fields in the Data Dictionary" does not allow scrolling
Bug 6730, reported by Quality Assurance
Web Lookup Wizard grid did not allow scrolling on the "Assign Lookup List to Fields in the Data Dictionary" page for tables with many columns. Fixed. Applies to Win Lookup Wizard as well.
Data Entry View wizard does not create controls in view with anchor definitions that are listed in the Studio
Bug 5442, reported by Bob Worsley
Data Entry View wizard used an anchor definition not listed in the Studio, resulting in controls configured with anLeftRight instead of anTopLeftRight. Fixed.
New Workspace Wizard: Info about IdeSrc folder incorrect
Bug 4210, reported by Quality Assurance
Description of files normally found in IdeSrc in the New Workspace Wizard was outdated. Documentation updated.
When creating a new workspace, trailing space in workspace name should not be allowed
Bug 3495, reported by Quality Assurance
Wizard would create invalid directory structure for workspace names with trailing spaces. Wizard now disallows trailing spaces in workspace names.
Not all Files/Directories from Usr\New are copied to a new workspace
Bug 779, reported by Nick Nickjuluw
Wizard did not copy files from Usr\New\Bitmaps, Usr\New\Help, Usr\New\Programs, Usr\New\AppHtml. Fixed. Note: IdeSrc files are intentionally not copied (workspace-specific temporary files).
Workspace Wizard creates wrong WS paths
Bug 296, reported by Marcia Booth
Workspace wizard produced incorrect path values for certain combinations of paths. Path generation logic corrected.
Samples
OemAnsiWizard may think a table is converted and not convert it to OEM/ANSI format
Bug 7055, reported by Quality Assurance
If the first table inspected is already in the desired format, the wizard could report that all tables are correct because it did not properly close tested tables. Fixed.
Studio
Property Panel does not pick up initial values of properties defined in an immediate mixin class
Bug 7046, reported by Quality Assurance
Properties defined in a mixin class did not show initial values in the property panel for the class. Fix implemented. Prior workarounds (OverrideProperty/InitialValue meta-tags) removed.
Using the Studio's Property Panel to change a mixin property generates bad code
Bug 7045, reported by Quality Assurance
Changing a mixin's property in the Property Panel generated a Procedure Construct_Object and set the property there, which is incorrect for mixins. The Property Panel is now read-only for mixin classes to avoid incorrect code generation.
Changing a property in the Studio's Property panel may create multiple Construct_Object procedures
Bug 7044, reported by Quality Assurance
Changing properties using the Property Panel could generate multiple Construct_Object procedures in a class. Fixed; Property Panel behavior improved to avoid duplicate constructors.
Dragging custom control onto WebApp Designer causes a JS error
Bug 7039, reported by Michael Salzlechner
Dragging a custom control from class palette to WebApp Designer caused:
Unable to get property 'aProps' of undefined or null reference
WebAppDesigner.js. Fixed.
WebApp Check Help does not work when launched from the Studio
Bug 7036, reported by Quality Assurance
Launching WebApp Check from Tools menu and pressing F1 failed to locate help files. Fixed.
Table Editor treeview loses "save needed" icon when selecting table from treeview
Bug 7032, reported by Peter H. van Wijk
Double-clicking a table in Table Explorer to bring it to front cleared the pending-edits icon. Fixed.
Cut, Copy & Paste do not work in DD Modeler Structures grids
Bug 7031, reported by Peter H. van Wijk
Copy/cut in the Structures grids raised errors; paste did not work. Fixed.
Data Dictionary Modeler "Problems" tab does not indicate the number of problems
Bug 7029, reported by John van Houten
Problems tab label should indicate the number of problems. Fixed.
cCJGridColumnRowIndicator piWidth default set to 50 which may be too big
Bug 7017, reported by Michael Mullan
Dragging a cCJGridColumnRowIndicator added Set piWidth to 50. Default removed to match expected 19px width.
System Information dialog does not list JavaScript Engine version
Bug 6975, reported by Quality Assurance
About dialog now lists the version of the DataFlex JavaScript Engine.
Data Dictionary Modeler does not support Set Field_Error 0
Bug 6970, reported by John Tuohy
When Set Field_Error was set to 0 or blank the generated code was malformed. Rules:
- If error_number is 0 or empty and description empty — don't write any code.
- If error_number is 0 or empty and description non-empty — write 0 "description".
- If error_number is not empty and description empty — write error_number "".
Studio now generates proper Set Field_Error statements.
Table Editor gets confused if you Alt-Tab while creating a new column
Bug 6928, reported by Michael Salzlechner
Alt+Tab while typing a new column name could leave Table Editor unable to save. Fixed.
SQL Connection Wizard creates double spaces in INT file
Bug 6926, reported by Martin Moleman
INT file had double spaces between keyword and value. Fixed.
Quick-Info tooltips sometimes show commands as other symbols
Bug 6919, reported by John Tuohy
Quick-info logic improved: tokens that are the first token in a line are treated as commands (avoids showing Property Integer Class when hovering Class).
Find In Files "Current Project" does not search unsaved changes in open files
Bug 6916, reported by Quality Assurance
Find In Files "Current Project" now includes unsaved changes from open editors.
Can't drag and drop files onto the Workspace Dashboard in the Studio
Bug 6904, reported by Quality Assurance
File drag & drop onto the Workspace Dashboard failed (new in 18.1). Fixed (drag & drop to Start Center already worked).
DD Modeler: F5 does not compile from Structures tab
Bug 6827, reported by Bob Cergol
F5 did nothing from the Structures tab; fixed.
Various DEO properties do not show correct values in Studio's Property Panel
Bug 6806, reported by Quality Assurance
Several DEO mixin properties were not displaying initial values. Fixed properties:
- Auto_Label_State
- pbPointerControl
- pbBypassDDFieldBuffer
- ReadOnlyColor
- pbNoEnterReadOnly
- pbValidateOnNext
Search mode in "More Projects" list is broken
Bug 6802, reported by Bob Worsley
Typing first character in "Select Current Project" dialog did not navigate to that project. Fixed.
Use DFEntry.pkg duplicated for each column added from DDO Explorer to a dbModalPanel
Bug 6794, reported by Chuck Atkinson
Adding columns to a dbModalPanel could repeat Use DFEntry.pkg for each column. Fixed.
Typing a table name in DD Modeler Structures tab results in incorrect Open statements
Bug 6778, reported by Raveen Ryan Sundram
If you typed a table name instead of using the drop-down, stray Open statements were inserted. Fixed.
Table viewer does not show contents of system table row well when not in edit mode
Bug 6774, reported by Quality Assurance
Colors used in the grid hid system table data when not in edit mode. Fixed.
WSDL Parser incorrectly creates member data type for attributes when simple type null members supported
Bug 6762, reported by Marco Kuipers
Attributes were made nullable when nullable simple types were enabled. Attributes should always be simple types. Fixed.
Table Editor: inserting a new column then adding an index segment lists NEWCOLUMN1
Bug 6746, reported by Chuck Atkinson
If you insert a column and then add an index segment before saving, the drop-down showed NEWCOLUMN1. Also index tab didn't reflect renamed column until save/reopen. Fixed.
Alt-Tab during new column entry confuses Table Editor
Bug 6735, reported by Quality Assurance
Alt+Tab while creating new column left Table Editor in an inconsistent state. Fixed.
Detect and report failure when updating JavaScript library
Bug 6725, reported by Quality Assurance
Updating JS libraries now detects failure (e.g., destination files read-only or insufficient rights) and reports a warning or error.
Edit validation data can incorrectly save a CodeType
Bug 6692, reported by Quality Assurance
Closing the validation data dialog via the X after editing could save changes that should be undone. Fixed.
New index number after "Change Index number" not reflected in Table Editor after save
Bug 6686, reported by Quality Assurance
Table Editor now shows updated index number immediately after save (no need to close/reopen).
Adding project generates innumerable errors when file has different extension
Bug 6685, reported by Quality Assurance
Adding a text file via Workspace Explorer (All (*.*)) generated COM errors if file extension was not recognized. Fixed.
Studio crashes when viewing data binding for grid using table with circular relationship
Bug 6684, reported by Anders Ohrt
Viewing data binding for a grid with a circular relationship caused Studio crash. Fixed.
Menu designer does not work if object created without visual designer active
Bug 6676, reported by Quality Assurance
If you create a new package and drag a cCJContextMenu into source then open the visual modeler, the menu designer did not respond. Fixed.
Lookup Wizard generates assert when IFDEF in DD code
Bug 6629, reported by Anders Ohrt
IFDEF blocks near End_Class caused an insertion-point assertion when running Lookup Wizard. Fixed.
Hyperlink stops at first dash
Bug 6495, reported by Quality Assurance
Hyperlinks in comments truncated at the first dash. Fixed.
Reset Value in DD does not clear properly
Bug 6461, reported by Quality Assurance
In the Data Dictionary Modeler, "Reset value" for validation checkbox did not behave like setting validation type to None. Fixed.
Error 4399 when unchecking "Show Horizontal Scrollbar" from Code Editor options
Bug 6453, reported by Quality Assurance
Switching from design to code view after unchecking this setting produced a COM error. Fixed.
Filter Options dialog caption mismatch ("Message trace options")
Bug 6451, reported by Quality Assurance
Floating menu "Filter Options" opened dialog captioned "Message trace options". Caption and menu label now consistent.
Code highlighting: missing constructs
Bug 6413, reported by Marco Kuipers
Editor syntax highlighting did not handle DO, FOR_ALL, or BEGIN_TRANSACTION properly. Highlighting improved.
Visual Modeler not aware of removed field_prompt_object in Alias DD usage
Bug 6392, reported by Quality Assurance
Visual Modeler still showed prompt list for ALIAS DDs where prompt was removed. Fixed.
Changing DD class name in Studio DD editor in DESIGN mode does not update DDClassList.xml
Bug 6362, reported by Michael Mullan
Changing class name in DD Modeler did not update DDClassList.xml. Fixed (when editing via the modeler).
Max rows in Configure Studio is an integer
Bug 6359, reported by Quality Assurance
Configure Studio allowed entering values larger than integer range and saved incorrect values. Validation improved.
"Size to Container" on a tab-page
Bug 6354, reported by Quality Assurance
Resizing logic for tab-pages fixed so "Size to container" resizes the tab-dialog rather than hiding tabs.
Icon 1 has size 0x0 pixels
Bug 6334, reported by Quality Assurance
Studio reported ICO first image size 0x0 for certain ICO files. Handled better and documentation link added:
https://msdn.microsoft.com/en-us/library/windows/desktop/dn742485(v=vs.85).aspx
Studio may get very slow interacting with Locals Panel when long strings displayed
Bug 6294, reported by Quality Assurance
Long single-line strings (~4 million) in watch/local windows caused extreme slowness due to Windows tooltip/track activation behavior. Performance improved and edge cases mitigated.
Start Center generates error after creating workspace with apostrophe in name
Bug 6293, reported by Frank Cheng
Workspaces with an apostrophe in the name caused Start Center errors on next Studio startup. Fixed.
Configure Database Connection cannot handle multiple paths in DDSrcPath
Bug 6280, reported by Quality Assurance
DDSrcPath with multiple paths produced incorrect output filename. Wizard logic corrected.
Table Editor does not show correct end offset for overlap column
Bug 6232, reported by Flavio da Costa Figueiredo
End offset column displayed incorrectly; corrected.
Alias tables not properly removed from DDClassList.xml
Bug 6223, reported by Jim Hurson
Removing alias DD did not remove its entry from DDClassList.xml, causing ghost entries. Fixed.
"[File not found]" repeated in project name when file missing
Bug 6179, reported by Quality Assurance
If a project file is missing Studio appended [File not found] repeatedly each time selected. Fixed so it only appends once.
After adding new column to table with 10+ columns, column not shown in Validation "Apply to Column" list
Bug 5765, reported by Antonio Jimenez
New column not shown in "Apply to Column" when table has many columns. Fixed.
Grid from Validation Objects displays duplicate lines
Bug 5625, reported by Quality Assurance
Adding a new validation line could cause duplicate lines in grid when sorting. Fixed.
ValidationTable object properties expose Value in Data category
Bug 5559, reported by Quality Assurance
Value property should be hidden from property panel; moved to runtime-only and hidden in design.
Improve error information for "Unable to Create Temporary File"
Bug 5556, reported by Quality Assurance
More detailed error messages added for temporary file creation failure (three potential causes explained in original report).
Table Explorer does not allow adding CodeMast & CodeType to the filelist appropriate slots
Bug 5544, reported by Peter Bosch
Table Explorer blocked adding CodeMast & CodeType to reserved slots 253 & 254 with a warning. Exception added so these two are allowed.
Studio removes Set Server line from dbGrid
Bug 5529, reported by Ivan Kaupa
Studio removed Set Server when dragging fields into a dbGrid with DDO server not related to View's DDO Server. Fixed.
Remove DataDictionary in Table Explorer can cause OnGetInfoTip invalid message errors
Bug 5523, reported by Quality Assurance
After removing DataDictionary in Table Explorer, a tree node remained and caused OnGetInfoTip invalid messages. Fix ensures tree updated and avoids invalid message errors.
TreeView label properties not respected by designer
Bug 5513, reported by Quality Assurance
TreeView label properties were not shown in designer. Designer updated to reflect label settings correctly.
Tabpage blanked out due to a Set Location that should not be present
Bug 4998, reported by Quality Assurance
Tabpage content could be blanked if a Set Location to 14 3 statement was present. Designer fixed.
Indenting in ReportViewObject.Tpl not consistent (4 spaces)
Bug 4627, reported by Quality Assurance
Template indentation lines 151–152 had 3 spaces instead of 4. Fixed.
Error when previewing bitmap in Project Properties dialog for 72 DPI images
Bug 4526, reported by Vincent Oorsprong
Preview failed for bitmaps at 72 DPI. Preview code improved; Visual Designer unaffected.
dbViews should only offer Border_Dialog and Border_Thick
Bug 4487, reported by Quality Assurance
Only border_thick and border_dialog work correctly at runtime for dbViews. Studio now limits options shown to match runtime.
Web Server
WebApp Administrator's "Add a New WebApp" wizard may think a virtual directory exists when it does not
Bug 7091, reported by Garret Mott
Under certain partial-match conditions (e.g., trying to create WebOrder while WebOrder_18_1 exists) the wizard would reject the new share name saying an existing share has a different location. Validation logic improved to avoid false matches.
Add custom HTTP headers to response
Bug 6987, reported by Quality Assurance
New AddHttpResponseHeader procedure on cWebService and cWebBusinessProcess allows adding custom headers (e.g., for CORS):
Send AddHttpResponseHeader "Access-Control-Allow-Origin" "*"
Web services with multiple ByRef parameters of different types trigger a web server error
Bug 6741, reported by Anders Ohrt
Server would error when a web service procedure had multiple ByRef arrays of different types. Example:
{ Published = True }
Procedure TestByRefArrays String[] ByRef Strs Integer[] ByRef Ints
Move "X" to Strs[0]
Move 1 to Ints[0]
End_Procedure
ByRef arrays corrected.
WebApp Framework
ShowControlError doesn't update the UI properly
Bug 7080, reported by Frank Valcarcel
ShowControlError did not update UI when an error was already visible, and HideControlError did not work properly. Now ShowControlError updates error text and multiple errors; HideControlError works.
Example reproduction and code in original report.
cWebForm: The numeric keypad . cannot be used as decimal separator in some regional/keyboard combos
Bug 7071, reported by Quality Assurance
With Dutch regional settings and United States-International keyboard, . from numeric keypad was not accepted as decimal separator (, expected). The behavior was fixed so keypad . maps correctly to configured decimal separator.
cWebForm: Pasting alphanumeric data into a numeric form causes NaN
Bug 7070, reported by Quality Assurance
Pasting non-numeric data into a numeric field resulted in NaN being sent to the server. Framework now checks for NaN and replaces with 0.0 before sending.
Dragging a menu item to a different menu position hangs the web application
Bug 7057, reported by Quality Assurance
Dragging a menu item within a menu could appear to freeze the app after releasing the item. Fixed.
cWebGrid: Microsoft Edge navigation gets stuck
Bug 7043, reported by Quality Assurance
In Edge, navigating into a new empty row prevented navigating back up with arrow keys. Fixed (also addressed in Edge 25).
Double-clicking list sometimes causes "View already in view stack"
Bug 7042, reported by Quality Assurance
Double-clicking rows could cause "Cannot Navigate to (oZoomOrder). View is already in the view stack." Root cause: OnRowClick server action mode typo; fixed.
Cannot return to grid cell after validation error
Bug 7022, reported by Anders Ohrt
After ValidateRow throws an error, focus vanished when tabbing out of last cell. Fixed.
WebGrid current record on detail grid
Bug 7020, reported by Sture Andersen
Implementing OnShow to find a record on a detail grid didn't work if view hadn't been used before. Fixed.
psUnhandledErrorCaption not always used in cWebErrorHandler
Bug 7016, reported by Clive Richmond
psUnhandledErrorCaption property could be bypassed by direct language string usage. Fixed so property is respected.
Error "Invalid Message GET_WEBOBJECTNAME" when eUpdateMode is umPromptNonInvoking in cWebPromptList
Bug 7015, reported by Ian Vagg
InitializePromptList assumed an invoking object. When umPromptNonInvoking was used (no invoking object), it attempted to Get WebObjectName of 0, causing the error. Logic updated to handle no invoking object.
cWebImage: Changing pePosition at runtime doesn't always work properly
Bug 7014, reported by Quality Assurance
WebSetResponsive on pePosition sometimes produced incorrect rendering behavior. Fixed.
cWebMenuBar: Submenus do not hide until another submenu opened
Bug 7008, reported by Tiyo
Hovering a menu item and leaving it would keep the submenu open. Fixed.
cWebLists handle missing (deleted) rows in HandleCacheError incorrectly
Bug 7004, reported by Quality Assurance
HandleCacheError refresh process did nothing and left lists in an inconsistent state. Default behavior restored (refresh and remove missing rows) and pbSuppressCacheError respected.
cWebModalDialog: Setting piHeight to 0 causes rendering issues
Bug 7001, reported by Quality Assurance
WebSet of piHeight to 0 made dialog render excessively large. Logic corrected.
cWebPanel: add setter for peRegion so it can be moved at runtime
Bug 7000, reported by Quality Assurance
peRegion was only read at render time; setter added so WebSet can move panels at runtime.
WebMenuBar: Disabled menu still shows their submenu
Bug 6998, reported by Quality Assurance
Disabled menu items with submenus still showed submenu on hover. Fixed.
WebList: Scrolling using scrollbar arrow buttons
Bug 6996, reported by Anders Ohrt
Using scrollbar arrow buttons could stop before showing first records. Fixed.
pbValueAsTooltip on cWebColumn shows raw value (ignores masks)
Bug 6995, reported by Chuck Atkinson
Tooltip displayed raw transport format (e.g., date) ignoring masks and date settings. Now uses masked/display value.
Uploading the same file twice fails
Bug 6994, reported by Quality Assurance
cWebFileUploadButton failed when uploading the same file twice consecutively. Fixed.
WebTabContainer clips tab page
Bug 6989, reported by Anders Ohrt
Tab container with full-height grid caused clipping depending on next tab contents. Corrected.
cWebGrid doesn't apply piDefaultIndex on a constrained grid
Bug 6984, reported by Anders Ohrt
Constrained grids ignored explicit piDefaultIndex. Fixed so explicit settings are respected.
cWebGrid does not update CSS class during save
Bug 6983, reported by Wim Schimmel
OnDefineCssClass executed on save but new class wasn't applied to client. Fix ensures CSS class updated on client after save.
Example column procedure in original report.
WebSet on psCSSClass of cWebMenuItem doesn't work
Bug 6980, reported by Anders Ohrt
WebSet psCSSClass for cWebMenuItem did not change the DOM classname. Fixed.
Error balloon position does not take piLabelOffset into account
Bug 6968, reported by Marco Kuipers
Error balloon used wrong element for positioning and didn't consider label offset. Correct function name and positioning logic used.
cWebSpacer doesn't respect piHeight below ~40
Bug 6966, reported by Sture Andersen
Themes set a minimum height resulting in cWebSpacer being larger than requested. Minimum height now applied only where appropriate; cWebSpacer respects small heights.
UploadFolder assumes single path
Bug 6965, reported by Raveen Ryan Sundram
UploadFolder didn't support multiple data paths (e.g., c:\rp\data;c:\rp\config). It produced c:\rp\data;c:\rp\config\uploads. Corrected to pick a valid path from the list.
Reproduction steps provided in original report.
cWebModalDialog height not full-screen
Bug 6960, reported by Frank Valcarcel
Modal dialogs were limited to view height and could clip content. Dialogs now stretch full available screen height.
Closing a modal dialog causes 4402 Out of scope errors
Bug 6959, reported by Quality Assurance
Closing a modal dialog via the X button left focus handling in a state causing out-of-scope errors on next toolbar operation. Fixed.
cWebImage::UpdateLocalImage generates URL for empty path string
Bug 6956, reported by Raveen Ryan Sundram
Sending UpdateLocalImage with an empty image path generated a download URL used by the image and caused an ASP error. Logic now guards against empty paths.
Views rendered using renderView do not take the space they need
Bug 6955, reported by Mike Peat
When embedding views in custom HTML via oWebApp.renderView, some views did not stretch their container. Layout logic improved. Reproduction files provided in original report.
cWebRadio doesn't function properly in drill-down model
Bug 6952, reported by Quality Assurance
Data-bound sets of cWebRadio controls in drill-down apps sometimes displayed incorrect selected value. Slave checkboxes now take value from master during initialization. Test view provided in original report.
cWebSlider throws label assertion errors when decreasing piMaxValue
Bug 6947, reported by Raveen Ryan Sundram
Decreasing piMaxValue when labels exist could throw:
Error 999 : The position you want this label on is unreachable for the slider.
cWebCheckbox outside of cWebView doesn't get psChecked
Bug 6944, reported by Quality Assurance
cWebCheckbox outside a view (e.g., under oWebApp) didn't get default psChecked/psUnchecked. Defaults are now applied from cWebApp so controls work outside views.
Steps and sample code provided in original report.
Cannot reread all records in view during SyncDDO
Bug 6941, reported by Michael Salzlechner
pbOverrideStateOnShow = True optimized view loading but could result in SyncDDO errors on subsequent loads because view state wasn't rebuilt. Now the framework stores view definitions and rebuilds web objects to reset view state when needed.
Input filter may prevent valid characters from being entered
Bug 6940, reported by Eddy Kleinjan
Date/datetime input filters were too restrictive when editing parts of a date (e.g., 12//2015 then inserting a digit). The filter is now less strict and allows necessary edits while preventing invalid formats (e.g., too many separators).
Internet Explorer 11 on a touch-screen device detected as mobile
Bug 6938, reported by Quality Assurance
User-agent detection misclassified IE11 on touch-screen as mobile (applied mobile stylesheet). Detection updated to avoid false mobile detection.
cWebList errors when dropped on view without changes
Bug 6936, reported by Quality Assurance
A cWebList with no DDO structure generated errors (e.g., Invalid message GET_ORDERING) when using the scroll wheel. Fixed.
Panel rendering bug at WebApp level
Bug 6933, reported by Oscar Mintegui
Adding left/right panel at WebApp level caused it to render on top of view. Fixed.
pbShowLabel and psLabel do not properly "move the border"
Bug 6932, reported by Frank Valcarcel
cWebGroup caption did not push the border as expected because border applied to wrong wrapper div. Fixed. Example and test code provided in original report.
WebGroups misaligned if no caption
Bug 6931, reported by Quality Assurance
cWebGroup hid caption and its reserved space when psCaption was empty. New property pbShowCaption controls caption visibility.
Fixed height on cWebGroup caused rendering issue
Bug 6930, reported by Quality Assurance
Sizing logic miscalculated dimensions of cWebGroup wrappers. Fixed.
cWebForm using OnSetCalculatedValue does not properly clear
Bug 6907, reported by Eddy Kleinjan
A cWebForm that returned an empty string in OnSetCalculatedValue could still display the previous value. The clear/update logic was corrected. Reproduction and sample code provided in original report.
Df_Windows_Like theme: zooming out under Chrome pushed prompt buttons to next line
Bug 6892, reported by Quality Assurance
Df_Windows_Like theme adjusted to avoid layout issues when zooming out in Chrome.
Fixed error icon in Df_Windows_Like and Df_High_Contrast themes
Bug 6891, reported by Quality Assurance
Double icon displayed on error dialogs in these themes; fixed.
Fixed display of text selection for Df_Flat_Touch theme
Bug 6889, reported by Quality Assurance
Text selection inside textarea (cWebEdit) improved for Df_Flat_Touch.
Improved df.WebBaseMenu
Bug 6888, reported by Quality Assurance
getItemByPath now works on provider-only objects like WebMenuButton. Fixes designer errors when selecting menu items.
AllowViewAccess called with incorrect parameter
Bug 6882, reported by Quality Assurance
AllowViewAccess was called with the view handle as second parameter during LoadWebApp; it should receive the view's object name. Fixed.
WebSet and WebGet should throw compiler errors when called with an invalid object
Bug 6877, reported by Quality Assurance
WebSet/WebGet did not generate compile-time errors for unknown object symbols (unlike Set/Get). Compiler now catches invalid object names.
pbNewLine of cWebColumn_Mixin did not change when set at runtime
Bug 6851, reported by Thomas Murphy
No setter implemented for pbNewLine so runtime changes caused rendering issues. Setter added.
pbShowHeader of cWebList causes JavaScript errors when changed at runtime
Bug 6850, reported by Thomas Murphy
Changing pbShowHeader with WebSetResponsive could hide header but not show it again; JS errors occurred. Logic updated so header visibility toggles safely across sizes.
Reproduction steps included in original report.
Ctrl+End in cWebPromptList does not show data
Bug 6838, reported by Quality Assurance
Ctrl+End immediately after opening a cWebModalDialog with a cWebPromptList could wipe out list data; page-up or arrow-up restored data. Fixed.
The Should_Save Web DEO message does not work and should be removed
Bug 6736, reported by Quality Assurance
Should_Save on web DEO classes raised an error and should not be used. Use Should_Save of the DEO's Server or IsViewChanged of cWebView instead. Should_Save will be removed from web DEO classes and documentation.
Example alternatives:
// DON'T use:
Get Should_Save to bChanged
// Use instead:
Get Should_Save of oCustomerDD to bChanged
// or:
Get IsViewChanged to bChanged
(End of DataFlex 18.2 bugfix summary)