Presented during the event

version :

3.00ß will be released soon (V17.1). Stay on the way.

2.20 released on 13 May 2018. This is the latest version developed with v15R5.
2.15.1 released on 6 Avr 2018
2.15 released on 3 Avr 2018
2.14 released on 27 Ma 2018
2.10.a released on 7 Mar 2018
2.10 released on 22 Feb 2018
2.03 released on 15 Feb 2018
2.01 released on 7 Jan 2018
2.00 released on 3 Jan 2018
1.90 17 released on Aug 2017
1.60.1 released on 23 Dec 2016
1.60  released on 12 Dec 2016

* UPDATE(v2.05): Review some part of code for windows users and Graphviz file generation
* UPDATE(v2.05): Add a slowup function due to some optimization done and were files are used
* UPDATE(v2.10): Tested in Client / Server mode. Improve Windows working and corrections of some bugs specific to this environment
* UPDATE( v2.11): Minor bugs correction
* UPDATE(v2.11): Few interface improvements
* UPDATE(v2.13): Minor bugs correction
* NEW (v2.13): When the option is displayed, opening a form is possible by double click. The Design Explorater must be open before
* NEW (v2.14): all main screens called by WORKER instead of launch in a new process
* UPDATE (v2.15): correction of bug at start after the dialog asking to save all methods
* UPDATE (v2.15.1): restrict the VCS module to local mode use only.
* UPDATE (v2.20): Fully compliance on server configuration. External database is placed on the server, all export folders are on the client side. Both in the ‘(My) documents’ folder.
* UPDATE (v2.20): A review of v16R6 and V17ß has been done to integrate some documentation information
* UPDATE (v3.00): Review if User Interface, refactoring 80% of the code with v17 new approach. 

* NEW (2.00): add a preference button where it is possible to define some parameters used by the component.
* NEW (2.00): review of the UI.
* UPDATE(v2.05): improve UI for windows users
* UPDATE (3.00): rContinue to improve UI.

How to launch the component:

ARRAY TEXT($tTxt_Components;0)
COMPONENT LIST($tTxt_Components)
If (Find in array($tTxt_Components; »QS_Toolbox »)>0)
   EXECUTE METHOD(« QS_Toolbox »)
End if


* Can perform analysis on « all » stored methods in the structure including project methods, project form/object methods, table form/object methods, database methods and trigger methods.
* Show stats methods: line counts, comment line counts, blank line counts, code line counts, and cyclomatic complexity.
* Show method properties which will be updated directly from the interface
* Can export, as HTML disk files, every method in the structure. Can be used for archiving, backups, and source code management.
* Can export, as DOCX, HTML or RTF format, all objects of the structure (methods, forms) with screenshot, object information. Can be used for archiving, backups, and source code management.
* Can manage 4D Project Method Comments
* UPDATE (v2.00): Can export all Project Methods with DOT language to create a view in PDF, SVG, PNG or JPG format. To be able to use this function, Graphviz must be installed on your computer. (see
* (1.80): Add a ReadOnly mode. Defined by default.
* (1.80): Reduce the number of buttons used for exportation (HTML, documentation, graphwiz schema)
* (1.80): Add a status bar
* (1.90): Show methods called from a specific method, and calling methods
* NEW (2.00): review of the interface
* NEW (2.00): add the beautify of the code
* NEW (v2.00): add & remove all comments with just 1 clic
* NEW (v2.00): manage comments
* NEW (v2.10): Optimization of all processes for methods analysis (factor > x12)
* NEW (v2.10): Can export methods links (2 levels) from a specific Project Methods with DOT language
* UPDATE (v2.15): Correction of a bug which could lost a code during beautifying it
* NEW (v2.15): interface update
* NEW (v2.15): Analysis of code will start now on demand
* NEW (v2.15): Method empty or in full comment are detected and put in grey after analysis
* NEW (v2.15): Add the capability to filter method based on their execution mode (preemptif)
* NEW (v2.20): No possibility to generate reports without performing the analysis before.
* NEW (v2.20): In comment lines, take care now of condition like if (1=2), if (False), …
* NEW (v2.20): Methods list is updated every minute, only if the analysis is not performed.


* Display the screenshot of a form with all information about it (form objects, methods, object definition).
* Can display the form definition on JSON format.
* Can export the form definition on JSON format. It can be used for archiving, backups, and source code management in another tool.
* Can display the method used for a form object.
* (1.80): Add a status bar
* NEW (2.00): During page selection (included page 0), only objects of the page are listed.
* NEW (2.00): Analysis take care of 16R4 new object definition and form definition (soming soon)
* NEW (2.00): add the beautify of the code
* NEW (2.00): Screenshot of project form works with a turnaround.
* NEW (v2.10): correct a bug on Validation Package and add the picture with links between objects in the exported document
* UPDATE (v2.15): Correction of bug regarding JSON displaying on PC
* NEW (v2.15): during export of form, code of all objects has been added to the document
* NEW (v2.20): Listbox properties are managed now (displayed or printed on reports)
* NEW (v2.20): Report can be now exported in ODT format
* NEW (v2.20): Project method report can also include as option, neighboring method graphic in the doc
* NEW (v2.20): If neighboring is selected, then all pictures are created into the Form folder.

* Can display data inside a listbox and, eventually, help you to copy data into the paperboard to paste them into a spreadsheet (Excel for example).

* NEW (v1.60): Integrate C_OBJECT in the data view
* NEW (v2.03): Table with no data are listed in the dropbox between parenthesis like this (-table name-)
* NEW (v2.03): Import/Export as 4D dump
* NEW (v2.03): Export listbox result in HTML or TXT file


* Can perform analysis of the structure and display fields definition.
* Can copy, per table, all fields name and type to paperboard.
* Can update, for a select field, a BTree index if none exist
* Can perform analysis of the code to see which fields are used in a query and report if they are indexed or not and the number of call. This analysis shows also fields indexed and NOT involved into any 4D command using index.
* Check table name and field name regarding 4D recommandation (accent, 4D command name, SQL function)
* Allow SQL command execution and display result into a listbox
* Allow 4D execution code (no check done regarding code executed)
* Export all data as DUMP, and by the way, can import a DUMP. Before using this function, think to save your application data first !
* Display ‘fat’ table
* Create the code to insert a new record (code is set into memory)
* Give some information about plugins used, components used, public IP address, format system used
* Open CSM, application folder, application properties
* Start a compression of the data file. Before using this function, think to save your application data first !
* Can show 4D folders, Syst* (v1.70.5): Some correction issues for JSON view & JSON export
* REMOVE – Can install/uninstall an event manager (special thanks to Vincent De Lachaux)
* (v1.60): Event Manager has been rewritten to check consistent thrue current events and objects. Results are displayed into a listbox.
* (v1.60): Can restore all debugger button
* (v1.60): If version >=16, add the capability ‘4D File’
* (v1.60): Display relations between table and field. Result is automatically copy to the pasteboard.
* (v1.60): Correct old declaration like C_STRING, C_INTEGER, ARRAY STRING, _o_AP BLOB to print settings …
* (v1.70): Export to disk the picture library in PNG format.
* (v1.70): Replace pictures from picture library based on the name. Pictures are converted to PNG format.
* (v1.70): List all variables using picture from picture library.
* (v1.70.6) : Add the Index number when a table is selected.
* (1.80): Add a ReadOnly mode for all functions which updated the structure or data. Defined by default.
* (1.80): Add a status bar.
* NEW (v2.00): Search all objects using a specific event in all forms (project & tables) and display where they are used and what are the events associated
* NEW (v2.00): Search all objects with a specific type (combox, button, …) and display where they are used and what are the events associated
* NEW (v2.00): Overhaul supplements the correction of statement with addition of new orders to be corrected and some other options.
* NEW (v2.00): Add the research of all deprecated commands
* NEW (v2.00): Add an evaluation of Open/Close couple commands to prevent memory error (eg: Create menu/Release menu)
* NEW (v2.00): Add an analysis of commands based on specific point of the documentation (Warning, Tips …)
* NEW (v2.00): Add a 4DLink Editor. This is helpful tool to create / update a 4DLink file when an application need to be restart safely.
* NEW (v2.00): List all objects with a format (no filter is apply).
* NEW (v2.00): add an analysis of commands that can be optimized in server condition.
* NEW (v2.01): display Structure picture
* NEW (v2.01): display Table Relations (based on 4D Blog)
* UPDATE (v2.01): Integrate table & fields information from the XML structure file (based on 4D Blog)
* UPDATE (v2.02): Extend the check table/field names to object names defined in all forms
* UPDATE (v2.03): Add a specific icon for UUID fields
* NEW (v2.03): Import/Export of indexes from/to a JSON format file
* UPDATE (v2.05): Update the interface for windows users
* NEW (v2.12): List all form objects and their type.
* NEW (v2.13): Parse all methods and check local and global variables type used vs variables declaration. 
* UPDATE (v2.20): Analysis of variables: Regarding process variable, the regex doesn’t work correctly and give some false results. If you really want to add this type of variable to the extraction, you have to press the ‘Shift key’ when you call the menu
* NEW (2.14): When displayed, it is possible to open a form with a double clic. Limitation known: the explorer must be open on backgroud.
* UPDATE (v2.15): Style is displayed with the objects list
* NEW (v2.15): Style definition is displayed on a listbox
* UPDATE (v2.15): Self is now managed with the ‘Correct deprecated command’
* UPDATE (v2.20): The analysis of commands based on the documentation has been reviewed and include all points until V16R6
* NEW (v2.20): List of all TIPS used in the analysis of commands
* NEW (v2.20): Integrate the GDPR extraction base on the 4D Blog code
* NEW (v2.20): In the ‘Search & Control’ part, a repeat button has been added to call again the last menu selected
* NEW (v2.20): Check of 4D doc for V16R2/R3/R4/R5/R6
* NEW (v2.20): Display all parameters of the database in a listbox (include v17 options too)
* NEW (v2.20): Display all parameters of the WEB server
* NEW (v2.20): Display all WEB options
* NEW (v2.20): Review of the Check menu
* UPDATE (v2.20): Review of TIPS until v17
* NEW (v2.20): Display licences information (>= 4Dv16R4)

Display method path where condition is set to comment like if (1=2), if (False), …

Note 1: List of depreciated commands than can be updated
_o_Font number, _o_Font name, _o_Get platform interface, _o_DELETE RESOURCE, _o_SET PICTURE RESOURCE,
_o_SET TEXT RESOURCE, _o_SET STRING RESOURCE, _o_SET RESOURCE, _o_SET RESOURCE NAME, _o_SET RESOURCE PROPERTIES, _o_SET WEB DISPLAY LIMITS, _o_SET WEB TIMEOUT, _o_Web Context, _o_Get component resource ID, _o_SET CGI EXECUTABLE, before, _o_during, After, En entete, En rupture, En pied, _o_ACTIVER BOUTON, _o_INACTIVER BOUTON, _o_array string, _o_c_integer, _o_c_string, Self, Outside call, Activation, Desactivation, _o_QT COMPRESS PICTURE, _o_DATA SEGMENT LIST(), DOM SET XML DECLARATION, _o_USE EXTERNAL DATABASE, _o_USE INTERNAL DATABASE, _o_PICTURE TYPE LIST

Note 2: None exhaustive list of open / close command checked
create record / save record
load set / clear set
Semaphore / clear semaphore
Read write / Read only
Open window / close window
Push record / Pop record
Messages off / Messages On

* initial idea from J.Pupier. All initial methods have been rewritten
* Can save methods for Version Control perspective. You can know what is the latest version of your code
* (v1.60): Methods are saved into a 4D external database at a selected location
* (v1.60): Comparison between current version and an older one is performed with jsdifflib library
* (v1.60): Allow to navigate inside all saved version of a method
* (v1.60): Allow to force to save all methods from the database (Press shift on ‘Create a stamp point’) . Available only for the full version
* (v1.60): Allow to manage all projects in the same window.  Available only for the full version
* (v2.00): Review interface of the VCS module


VCS module save LOCALLY methods into an 4D external database using SQL commands. The default folder is Documents/QS_Toolbox
In C/S, the folder must be located in the Server.

* Display a list of all methods, including database, projectform and tableform methods, sorted by name or lastest modification date.
* List can be reduce to Methods only.
* (v1.60): List can be reduced to created/modified since x days.
* (v1.60): List can be reduced based on criteria search.
* (v1.60): Display the content of a method with the capability to copy all or a part of it to the pasteboard.
* (v1.80): Add a button to copy methods’ list to pasteboard
* NEW (2.00): Add the possibility to select methods by searching keywords included in methods code.
* NEW (2.00): Search can be done by multiple keywords

* Display used commands and location.
* Can access directly to the edition mode by double-clicking
* Can list all unused command
* Show easily the obsoleted command / function used
* (v1.60):On selection, copy on paperboard the CID of the command / function (Command:C{number})
* (v1.60): allow a search in Method name or Command name, indifferently.
* (v1.60): Display the ID and CID for each command used
* (v1.80): Reduce the number of ‘false positive’
* NEW (2.00): Overhaul the method to eliminate ‘false positive’ result and increase speed analysis

Translate page

* Based on all command names, constants and keywords used by 4D, allow the conversion from EN->FR or FR->EN of your code.
* Insert code to translate is done by copy/paste.
* Get translated code by copy/paste
* Allow to save the converted code directly as a new method into the host database
* Search Command or Constant from the current 4D version

Screenshots – Downlooad