Skip to content

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
Because 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
Where 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
Using the Windows memory monitor you can observe memory use slowly increase in 18.1 but not in 18.2.


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
- Run Order. - Bring up Customer view and press the prompt button on Customer Number — the modal dialog will be displayed. - Click on "Test StatusPanel" — the status panel will be displayed. - Click the Search button on the modal panel — the text displayed on the status panel will pause (no visual update) while the process continues — OK. - Click the Cancel button on the modal panel — the status panel may disappear from the screen while the application is still running the process (fixed).


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
Previously this could raise an exception if the end position was less than the start position. This has been corrected.


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
If 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"
6. Change Windows Regional Settings: set Format to "Dutch (Netherlands)". 7. Compile and run.

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
This behavior has been corrected.


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
- Find an order, navigate to the description column, enter a time and press Tab — previously the value disappeared.


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
should be:
Move (UCharArrayToString(UCData)) to sValue
Fixed.


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/
for SOAP 1.2 services. It should use:
http://www.w3.org/2003/05/soap-envelope
This has been corrected.


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
This has been fixed.


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
If 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/1231/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
In 18.2 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
in 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.


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.


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
Server-side handling of multiple 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.
Setter now avoids repaint before labels updated; client update sequence improved.


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)