4D v16.3

Changes in behavior

Home

 
4D v16.3
Changes in behavior

Changes in behavior    


 

License management for 4D products has been improved in 4D v16:

First activation simplified: Entering a new license number in the "LIcense Manager" dialog box now automatically activates, in a single operation, 4D Server and all of its related expansions (additional clients, plug-ins, etc.)

New Refresh button: You can now activate your licenses by simply clicking on the Refresh button in the "License Manager" dialog box. 

This new button connects you to our custoner database and automatically activates all your new licenses or updates linked to the current license (the current license appears in bold in the Active Licenses list). You just need to enter your 4D identifiers (account and password). You can click on the Refresh button in the following contexts:

  • when you have acquired an additional expansion and want to activate it,
  • when you need to update an expired temporary number (Partners or evolutions).

New auto-activation feature: This feature is triggered when you launch a more recent 4D product for which you have not yet entered your license, or when the license detected on the machine where the product was launched is not valid. The auto-activation procedure starts:

  • when you open/create a local interpreted database with 4D Developer Edition. In this case, a dialog box informs you that you will be connected to our customer database and your licenses will be activated (you will have to enter the password for your user account).
  • when you launch a 4D Server application. In this case, in order to allow its use as a service or to permit automatic updates, the auto-activation process is transparent to the user and entirely automatic (no dialog box is displayed).

OBJECT SET FORMAT / OBJECT Get format: These commands now support icons in list box headers.

METHOD GET CODE: This command returns code as indented text.

DELETE FOLDER: This command can now delete a folder that is not empty

Fonts  

The FONT LIST command under Windows only returns vectorial fonts.

64-bit versions only: The new features detailed in this section are only available in 4D v16 64-bit versions (4D Developer Edition and 4D Volume Desktop, see the Printing architecture (redesign) section).

The printing architecture was entirely rewritten in 4D 64-bit versions to benefit from the most recent OS-based printing libraries and dialog boxes. Although this internal update is mostly transparent to 4D users, the following changes should be noted:

  • The Print job dialog box (Windows and OS X) has been upgraded and is a standard system dialog on both platforms.
  • On Windows, the Page Setup dialog box has been updated; it is now provided by the operating system.
  • PRINT SETTINGS command: The Page Setup dialog box is not longer displayed automatically when a print command is called. To display it, you need to use the Page setup dialog constant in the dialType parameter.
    A second constant has been added to this command: Print dialog lets you indicate whether or not to display the print dialog.
  • The following print options (used with GET PRINT OPTION or SET PRINT OPTION commands) have been modified:

    Option (constant)OSStatus in 4D v16Comments
    2 (Orientation option)Windows and OS XUpdatedCan be called within a print job, which means that you can switch to portrait or landscape orientation in the same print job.
    8 (Color option)Windows onlyRemovedDeprecated
    13 (Mac spool file format option)OS X onlyRemovedReplaced by new option of the SET CURRENT PRINTER command.

Note: The OPEN PRINTING JOB, CLOSE PRINTING JOB, SET PRINT OPTION and SET PRINT OPTION commands are compatibles wiht the 4D Write Pro  WP PRINT command: for more information, see WP PRINT. All options are supported for 4D Write Pro documents, except for the Paper option and Orientation option options, for which we recommend using the WP USE PAGE SETUP command instead in order to set the page size and orientation separately.

Row Control Array

A new Row Control Array property gives you the ability to control new interface properties:

  • hidden or visible (visible by default))
  • enabled or disabled (enabled by default)
  • selectable or not selectable (selectable by default)
    The Row Control Array property can be set or get using the LISTBOX SET ARRAY and LISTBOX Get array commands. The array can also be returned by the LISTBOX GET ARRAYS command.
    In previous versions of 4D, this property was named "Hidden Rows Array" and expected a Boolean array. For compatibility's sake, a Boolean array supported as a row control array. In this array, each element represents the hidden/displayed status of its corresponding row in the list box. True means that the row is hidden and False means that it is displayed.

Headers and footers

The minimum height for headers, in pixels, depends on the system. If you pass a value that is too small, it is replaced by the minimum size defined in the system for headers. There is no minimum size for rows and footers.

Under Windows 7, the minimum header height is 24 pixels. Any headers in your converted databases whose height is less than this are automatically resized to 24 pixels.
You can also set the height of headers and footers dynamically using the LISTBOX SET HEADERS HEIGHT amd LISTBOX SET FOOTERS HEIGHT commands.

Since the rendering may not entirely match your expectations, this is a something you must remember to check on your forms.

Converted list boxes

List boxes resulting from the conversion of former grouped scrollable areas are connected. Connected list boxes function in a coordinated manner: selecting a row in one list box leads to the same row being selected in any other list boxes belonging to the same connected group; scrolling a list box vertically triggers the same scrolling in all the list boxes belonging to the same connected group.

Note: Converted list boxes are also grouped in the form (standard 4D function).
List boxes can be connected and disconnected using the Connect and Disconnect commands found in the Object menu of the Form editor:

These commands are enabled when several list boxes are selected in a form. When a connected list box (i.e. a list box belonging to a connected group) is selected, a specific "badge" is displayed on all the list boxes that belong to this same connected group:

These principles allow you to reproduce the same operation of the former grouped scrollable areas; however, we recommend that you adapt your converted forms to use standard list box features.

Forms  

The advanced options of the Form wizard have been updated based on the 4D product and hardware evolutions:

  • The Screen Sizes list now includes "2048x1536" resolution:

  • In the forms generated, the Variable name property is now left blank for navigation buttons.

Thanks to a new internal algorithm, the execution of the [#cmd id="233"/] command has been significantly accelerated in 4D v15 R3 when you replace a string by another of a different length. This is the case for example in the following replacements:

 vResult:=Replace string(Source_Text;"a";"aa") //based on characters
 vResult2:=Replace string(Source_Text2;"à";"aa";*) //based on character codes

The new algorithm is optimized for both syntaxes: the larger the source text and the more replacements there are, the more significant the optimization will be.

Our benchmarks show the following results, compared with the previous algorithm:

Replacements based on character code (* passed)Replacements based on character (* omitted)
About 950 times fasterAbout 4400 times faster

These tests were done by replacing "a" with "aa" in a file containing 32,000 occurrences to replace.

Note: Replacement of strings of the same length is just as fast as with the previous algorithm.

Additional information is provided when duplicates are detected in unique fields:

  • When using the MSC or a command such as VERIFY DATA FILE, resulting logs now contain the names of the offending tables and fields, as well as each duplicated value
  • During data entry, the "Duplicated key" error dialog box now contains the name of the offending table and field, as well as the duplicated value
  • The GET LAST ERROR STACK command also contains detailed information on any duplicates.
  • When 4D opens a data file, if an index needs to be built (or rebuilt), duplicates are now automatically detected in the associated field(s) declared as unique. In this case, a specific warning dialog box is displayed before database opening, providing the user with the information needed to identify and remove duplicates:

In previous 4D releases, the DOM Get XML element and DOM Count XML elements commands were case insensitive regarding the elementName parameter, that is not xml compliant. Starting with 4D v16.2, these commands are case sensitive by default. If you want to maintain their previous operation, call the [#cmd id="1090"/] command with the XML DOM case sensitivity selector to XML case insensitive.

4D always uses the period character (.) as decimal separator when evaluating a numerical expression using the 4DTEXT, 4DVAR, 4DHTML, 4DHTMLVAR and 4DEVAL tags. Regional settings are now ignored in this context.

For example, whatever the regional settings are:

 value:=10/4
 input:="<!--#4DTEXT value-->"
 PROCESS 4D TAGS(input;output)
  // always outputs 2.5 even if regional settings use the ',' as separator

So if your code evaluates numerical expressions using 4D tags with respect to the regional settings, you need to adapt it using the String command:

  • To get value with a period as decimal point: <!--#4DTEXT value-->
  • To get value with a decimal point based on the regional settings: <!--#4DTEXT String(value)-->

For more information, refer to 4D HTML Tags.

Disabling of the HTTP TRACE method, error 405. If you need to enable this method, you can use the Web HTTP TRACE option with the WEB SET OPTION command. 

The names of log files generated during maintenance operations through the MSC or the 4D Server administration window are now unique and therefore differ each time they are saved to disk. In previous versions, these files always used the same name so the previous log file (if any) was overwritten by the new one each time a new maintenance operation was performed, meaning that prior log files were automatically purged. It is now up to the database administrator to remove older log files as necessary, both for 4D and 4D Server.

Modifications between versions v15.x/v15Rx and v16: concerning management of encoding and charsets, in particular for attachment filenames when sending emails. In databases where workarounds were implemented, you need to verify that these modifications do not cause any malfunctions.

Two commands were updated: SMTP_Charset and SMTP_SetPrefs.

  • SMTP_Charset 
    Attachment filenames are encoded in base64 
    - Value 0 for parameters indicates using the default value (and not "Do not manage"), which means:
         For encodeHeaders: UTF-8 charset for "Subject", ISO-8859-1 for other fields
         For bodyCharset: UTF-8 charset encoded in base 64
    - Value 1 for parameters indicates using values defined by the SMTP_SetPrefs command.
  • SMTP_SetPrefs
    The second parameter (renamed charset&Encoding) indicates the charset and encoding used in the message body, as well as the charset of headers and attachment filenames to be sent. The documentation was clarified and lists all the combinations accepted:
    ValueBody charset and encodingHeaders and attachment filenames charset (encoding always base64)
    -1No changeNo change
    0Application & binary; no encodingISO-8859-1
    1Default: UTF-8 & base64Default: UTF-8 for subject, ISO-8859-1 for other fields
    2US-ASCII & 7bitISO-8859-1
    3US-ASCII & quotable-printableISO-8859-1
    4US-ASCII  & base 64ISO-8859-1
    5ISO-8859-1 & quotable-printableISO-8859-1
    6ISO-8859-1 & base64ISO-8859-1
    7ISO-8859-1 & 8bitISO-8859-1
    8ISO-8859-1 & binaryISO-8859-1
    9ReservedReserved
    10ISO-2022-JP (Japanese) & 7bitISO-2022-JP
    11ISO-2022-KR (Korean) & 7 bitsISO-2022-KR
    12ISO-2022-CN (Traditional & Simplified Chinese) & 7 bitISO-2022-CN
    13HZ-GB-2312 (Simplified Chinese) & 7 bitHZ-GB-2312
    14Shift-JIS (Japanese) & base64Shift-JIS
    15UTF-8 & quoted-printableUTF-8
    16UTF-8 & base64UTF-8

 
 

 
PROPERTIES 

Product: 4D
Theme: Changes in behavior

 
HISTORY 

New
Modified: 4D v16.2

 
ARTICLE USAGE

Conversion to 4D v16 ( 4D v16.2)
Conversion to 4D v16 ( 4D v16.3)

Inherited from : Changes in behavior ( 4D v16)