Aller au contenu principal
Version : Suivant

4D Write Pro Interface

L'interface de 4D Write Pro offre un ensemble de palettes, qui permettent aux utilisateurs de personnaliser facilement un document 4D Write Pro.

Un développeur 4D peut facilement implémenter ces palettes dans leur application. Ainsi, les utilisateurs finaux peuvent gérer toutes les propriétés de 4D Write Pro, telles que les polices, l'alignement du texte, les signets, la mise en page des tableaux et les cadres.

Installation et documentation

4D Write Pro Interface est un composant 4D qui doit être installé dans votre projet. Les fichiers sources de l'interface 4D Write Pro sont fournis sur Github.

La documentation principale de l'interface 4D Write Pro se trouve dans le 4D - Mode Développement. Vous trouverez ci-dessous :

  • la documentation de configuration de l'assistant de table,
  • I.A intégrée documentation.

Assistant de table

L'Assistant de table est là pour simplifier encore davantage la création de table basée sur les données de la base de données en utilisant des contextes, des sources de données et des formules.

L'Assistant de table, accessible aux utilisateurs finaux, charge les modèles fournis et configurés par les développeurs de 4D. Cela permet aux développeurs de personnaliser le modèle en fonction des cas d'utilisation spécifiques et des exigences métier des utilisateurs.

L'Assistant de table est fourni avec des modèles et des thèmes par défaut, que les développeurs peuvent configurer pour adapter son contenu en fonction des exigences spécifiques de l'application.

Pour implémenter l'Assistant de table dans votre application, les développeurs peuvent créer et configurer des fichiers de modèle.

Interface de l'Assistant de table WP

L'utilisateur ouvre la boîte de dialogue de l'Assistant de table à partir de l'élément de menu "Insérer une table" dans la barre d'outils et la barre latérale de l'interface de 4D Write Pro.

À partir de cette interface, l'utilisateur peut sélectionner un modèle ou un tableau dans la première liste déroulante et un thème dans la deuxième.

Dans Colonnes :

Selon la sélection de l'utilisateur d'un modèle ou d'un tableau, l'utilisateur peut voir la liste des champs stockés dans le modèle (Blob et les types d'objets sont automatiquement exclus). Ensuite, ils peuvent sélectionner les colonnes à afficher dans le tableau en cochant la case devant le nom du champ et les ordonner en déplaçant et en faisant glisser la liste des champs.

Dans Lignes :

Dans l'Assistant de table, l'utilisateur peut également définir le nombre de lignes d'en-tête et de lignes supplémentaires (de 0 à 5 chacune), définir les lignes de rupture (lignes de synthèse) au-dessus ou en dessous de la ligne de données, et choisir d'afficher/masquer les lignes de report.

In addition, the user has the possibility to choose the table's behavior when its datasource is empty with the following options: Show data row, Hide date row, Hide table, Show placeholder row.

Dans Affichage :

L'utilisateur ajuste le niveau de zoom selon ses préférences en sélectionnant l'option souhaitée dans une liste déroulante, utilise des boutons radio pour afficher les formules ou les données pour une présentation claire, et choisit d'afficher une règle horizontale à l'aide d'une case à cocher.

Après avoir finalisé la création et la personnalisation de la table, l'utilisateur peut cliquer sur le bouton Insérer pour ajouter la table à son document WP.

Une fois que la table a été intégrée dans le document, l'utilisateur peut personnaliser son style. Les outils de mise en forme de la barre d'outils et de la barre latérale sont toujours disponibles.

Configuration du modèle de l'Assistant de table WP

La configuration des modèles inclut:

  • Définir des tables et des champs ainsi que préparer des formules adaptées à l'application à partir du fichier de modèle.
  • Traduction des noms de table, de champ et de formule à partir du fichier de traduction.
  • Conception de styles graphiques et de thèmes personnalisés à partir du fichier de thème.

Ces trois types de fichiers contribuent à la configuration de l'Assistant de table, et bien que chacun remplisse une fonction distincte, aucun d'entre eux n'est considéré comme un composant essentiel.

Fichiers de modèle

Le fichier de modèle vous permet de définir les éléments suivants :

  • la formule qui retourne une sélection d'entité utilisée comme source de données de la table,
  • the break formulas (if any break row can be inserted)
  • les attributs de dataclass qui peuvent être utilisés comme colonnes de table,
  • the formulas available as contextual menus inside break rows, carry-over row, placeholder row or extra rows.

Le fichier modèle doit être stocké dans un dossier "Resources/4DWP_Wizard/Templates" dans votre projet.

Le fichier de modèle au format JSON contient les attributs suivants :

AttributTypeObligatoireDescription
tableDataSourceTextxFormule de la source de données de la table
columnsCollectionxCollection des colonnes de la table
columns.checkTextxVrai lorsque la colonne est déjà cochée dans l'éditeur de modèle. Faux lorsque la colonne est décochée dans l'éditeur de modèle.
columns.headerTextxÉtiquette affichée à l'utilisateur
columns.sourceTextxFormula
ruptures/sautsCollectionCollection of break objects. The order of the breaks is important. It corresponds to the order in the document when the breaks are above the data lines.
breaks.labelTextxÉtiquette affichée à l'utilisateur
breaks.sourceTextxFormula
breakFormulasCollectionCollection of formula objects applicable to break rows
breakFormulas.labelTextxÉtiquette affichée à l'utilisateur
breakFormulas.sourceTextxFormula
bcorFormulasCollectionCollection of formula objects applicable to bottom carry over rows
bcorFormulas.labelTextxÉtiquette affichée à l'utilisateur
bcorFormulas.sourceTextxFormula
extraFormulasCollectionCollection of formula objects applicable to extra rows
extraFormulas.labelTextxÉtiquette affichée à l'utilisateur
extraFormulas.sourceTextxFormula
placeholderFormulasCollectionCollection of formula objects that are inserted in the placeholder row
Langue française

Si votre application est susceptible d'être exécutée sur un 4D avec une langue définie en français, assurez-vous d'utiliser tokens dans vos formules afin qu'elles soient correctement interprétées quelle que soit la configuration de la langue de l'utilisateur.

Exemple

Voici un bref exemple de ce à quoi votre fichier JSON pourrait ressembler :

{
"tableDataSource": "ds.People.all().orderBy(\"toCompany.name asc, continent asc, country asc, city asc\")",
"columns": [{
"check": true,
"header": "Firstname",
"source": "This.item.firstname"
}, {
"check": true,
"header": "Lastname",
"source": "This.item.lastname"
}, {
"check": true,
"header": "Salary",
"source": "String(This.item.salary;\"###,###.00\")"
}
],
"breaks": [{
"label": "Company",
"source": "This.item.toCompany.name"
}
],
"breakFormulas": [{
"label": "Company",
"source": "This.item.toCompany.name"
}, {
"label": "Sum of salaries",
"source": "String(This.breakItems.sum(\"salary\"); \"###,###.00\")"
}
],
"bcorFormulas": [{
"label": "Sum of salaries",
"source": "String(This.tableData.sum(\"salary\"); \"###,###.00\")"
}
],
"extraFormulas": [{
"label": "Sum of salaries",
"source": "String(This.tableData.sum(\"salary\"); \"###,###.00\")"
}
]
}

Fichiers de traduction

Les fichiers de traduction traduisent les noms des modèles, thèmes, tables, champs et formules. Ces fichiers sont ajoutés au dossier "Resources/4DWP_Wizard/Translations" de votre projet.

Chaque fichier de traduction doit être nommé avec le code de langue correspondant (par exemple "en" pour l'anglais ou "fr" pour le français).

Le fichier de traduction au format JSON contient les attributs suivants :

AttributTypeObligatoireDescription
tablesCollectionCollection d'objets de table traduits
fieldsCollectionCollection d'objets de champ traduits
formulasCollectionCollection d'objets de formule traduits
fileNamesCollectionCollection d'objets fileName traduits (applicable au thème et au nom du modèle)

Dans chacun de ces attributs, l'objet de traduction contient les attributs suivants :

AttributTypeObligatoireDescription
originalTextxTexte original destiné à la traduction
translationTextxVersion traduite du texte original

La définition de ces attributs dans l'objet de traduction garantit une organisation et un alignement corrects entre le contenu source et le contenu traduit.

Si le nom du modèle ou la formule (rupture, ligne reportée ou supplémentaire) existe dans le fichier traduit, sa traduction est appliquée dans l'assistant de tableau. De plus, seule la table définie dans le fichier de traduction est affichée et traduite.

Le fichier de traduction sert un rôle supplémentaire lorsqu'un utilisateur sélectionne une table dans l'interface. Il peut filtrer les tables et les champs proposés à l'utilisateur. Par exemple, pour masquer les IDs de table, ce comportement est similaire aux commandes SET TABLE TITLES et SET FIELD TITLES.

Exemple
{
"tables": [{
"original": "People",
"translation": "Personne"
}
],
"fields": [{
"original": "lastname",
"translation": "Nom"
}, {
"original": "firstname",
"translation": "Prénom"
}, {
"original": "salary",
"translation": "Salaire"
}, {
"original": "company",
"translation": "Société"
}
],
"formulas": [{
"original": "Sum of salary",
"translation": "Somme des salaires"
}
]
}

Fichiers de thème

Une liste de thèmes est fournie par défaut dans le composant Interface 4D Write Pro, tels que "Arial", "CourierNew" et "YuGothic", disponibles en plusieurs variations comme "Bleu" et "Vert". Cependant, vous pouvez créer votre propre thème en le plaçant dans le dossier "Resources/4DWP_Wizard/Themes" de votre projet.

Le fichier de thème au format JSON contient les attributs suivants:

AttributTypeObligatoireDescription
defaultObjectObjet contenant le style par défaut applicable à toutes les lignes.
tableObjectObjet contenant la définition de style applicable à la table.
rowsObjectObjet contenant la définition de style applicable à toutes les lignes.
cellsObjectObjet contenant la définition de style applicable à toutes les cellules.
header1ObjectObjet contenant la définition de style applicable à la première ligne d'en-tête.
header2ObjectObjet contenant la définition de style applicable à la deuxième ligne d'en-tête.
header3ObjectObjet contenant la définition de style applicable à la ligne du troisième en-tête.
header4ObjectObjet contenant la définition de style applicable à la quatrième ligne d'en-tête.
header5ObjectObjet contenant la définition de style applicable à la cinquième ligne d'en-tête.
headersObjectObjet contenant la définition de style applicable aux lignes d'en-tête, si un en-tête spécifique (comme header1, header2...) n'est pas défini.
dataObjectObjet contenant la définition du style applicable à la ligne de données répétée.
break1ObjectObjet contenant la définition du style applicable à la première ligne de rupture.
break2ObjectObjet contenant la définition du style applicable à la deuxième ligne de rupture.
break3ObjectObjet contenant la définition du style applicable à la troisième ligne de rupture.
break4ObjectObjet contenant la définition du style applicable à la quatrième ligne de rupture.
break5ObjectObjet contenant la définition du style applicable à la cinquième ligne de rupture.
ruptures/sautsObjectObjet contenant la définition du style applicable aux lignes de rupture, s'il s'agit d'une rupture spécifique (comme break1, break2...) n'est pas défini.
bcorObjectObject containing the style definition applicable to the bottom carry-over row.
placeholderObjectObject containing the default style applicable to the placeholder row.

For every attribute used in your JSON file (header, data, carry-over, summary, and extra rows), you can define the following WP attributes, mentionned with their corresponding WP constant:

Attributs WPConstante WP correspondante
textAlignwk text align
backgroundColorwk background color
borderColorwk border color
borderStylewk border style
borderWidthwk border width
fontwk font
colorwk font color
fontFamilywk font family
fontSizewk font size
paddingwk padding
Exemple
{
"default": {
"backgroundColor": "#F0F0F0",
"borderColor": "#101010",
"borderStyle": 1,
"borderWidth": "0.5pt",
"font": "Times New Roman",
"color": "#101010",
"fontFamily": "Times New Roman",
"fontSize": "7pt",
"padding": "2pt"
},
"table": {
"backgroundColor": "#E1EAF3"
},
"header1": {
"textAlign": 2,
"borderColor": "#41548F",
"borderWidth": "1.5pt",
"backgroundColor": "#979BA9",
"color": "#F4F4FF",
"font": "Times New Roman Bold"
},
"data": {
"fontSize": "13pt",
"textAlign": 0
},
"break1": {
"textAlign": 2,
"fontSize": "15pt"
}
}

Voir également

4D Write Pro - Table Wizard (vidéo tutorial)

IA intégrée

You can use an integrated AI in the 4D Write Pro interface so that you can easily translate or enhance your documents without having to use an external AI application.

Once you have enabled the AI feature, you can display a chat box over your 4D Write Pro document and interact with chatGPT to modify the text of the selection or of the document itself.

note

The 4D Write Pro interface uses OpenAI, for which you need to provide your own key (see below).

Limitations

In the current implementation, the feature has the following limitations:

  • use of a predefined AI provider and necessity to pass your OpenAI key
  • basic chatting features
  • no image handling
  • non-configurable predefined action commands
  • predefined translations English/French and French/English only

Enabling the AI feature

The AI dialog box is available by clicking on a button in the 4D Write Pro interface. This button is hidden by default, you need to enable it explicitely.

To display the AI dialog box button, you need to:

  1. Get an API key from the OpenAI website.
  2. Execute the following 4D code:

WP SetAIKey ("<Your OpenAI Key>") //

note

No checking is done on the OpenAI key validity. If it is invalid, the chatGPT box will stay empty.

The A.I. button is then displayed:

ai button

  • in the 4D Write Pro Toolbar, in the Import Export tab,
  • in the 4D Write Pro Widget, in the Font Style tab.

Click on the button to display the AI dialog box.

AI dialog box

The 4D Write Pro AI dialog box allows a straightforward interaction between the chat area and the 4D Write Pro document.

Prompt area

At the bottom of the window, the prompt area allows you to enter any question to send to the AI.

To send your question to the AI, click on the Send button:

ai send

The button icon changes when the same request is sent again:

ai resend

On the left side of this area, a pop up menu provides examples of common actions that can be usually delegated to the AI.

Selecting an action writes a corresponding question to the prompt. If necessary, you can modify the question and then to click on the Send button to actually send it:

ai menu

note

Default translation actions are based upon the current 4D default configuration and depend on available languages.

Copy buttons

These buttons propose basic interactions between the chat area, the underlying 4D Write Pro document, and the clipboard:

ai interaction

  • Return raw text/Return styled text: Copy the latest response or the selected response from the AI to the 4D Write Pro document at the current insertion point, replacing the selected text if any.
  • Copy raw text/Copy styled text: Copy the latest response or the selected response from the AI in the clipboard.

In both cases, if the response was provided with styles, you can decide to copy the text with or without styles.

note

The chat box uses the Markdown language to format text. Basic styles such as bold, italic, underline, titles are supported. When pasting styled text from the AI in the 4D Write Pro area, you may lose some formatting information.

Chat area

The Chat area displays the whole interaction between you and the AI. You can scroll and select and part you want.

To empty this area, you can click on the Erase button of the History area (resets the window and all interactions).

Historique

The History area lists all your prompts sent to the AI. You can hide/show this area using the button on the top right corner of the Chat area.

The Erase button allows you to reset the whole window and erase all interactions. It is equivalent to close/reopen the AI dialog box.

Multi-level list style sheets

4D Write Pro Interface allows users to create and manage multi-level lists directly from both the toolbar and widget sidebar.

Toolbar:

Sidebar:

To manage multi-level list style sheets, click the multi-level list button.

When the multi-level list mode is enabled, the Style Sheets panel displays the multi-level list style sheets defined in the document as well as predefined templates.

Managing multi-level style sheets

The Style Sheets panel allows you in general to:

  • Create a new style sheet.
  • Delete a style sheet.
  • Update a style sheet.

Once a multi-level list style sheet is selected, the panel provides also tools to manage the hierarchy and numbering of the list:

  • Increase the list level of selected paragraphs.
  • Decrease the list level of selected paragraphs.
  • Append a level to the list and create a new sub-level.
  • Modify numbering formats.
  • Concatenate numbering markers between levels.

Creating a style sheet

To create a multi-level list style sheet you can either:

  • Select and apply one of the predefined templates to the paragraph(s), the selected template and all it sub-levels are then displayed on the top part of the sytle sheets panel. You can customize its levels and formatting (such as numbering styles, colors, fonts, or hierarchy), and then create a new style sheet based on the resulting selection.

  • Duplicate one of the existing style sheets via the Duplicate option in the bottom menu.

  • Click the button and then "New style sheet based on selection" after having selected paragraph(s) to use for the style sheet according to the following:

    • If the selected paragraph(s) use(s) a list marker, a new multi-level list style sheet made of one level is created based on the current formatting.
    • If the selected paragraph(s) already use(s) a root-level or a sub-level of a multi-level list style sheet, the complete hierarchy is duplicated.
note

For detailed information about creating and configuring multi-level list style sheets by programming, see Multi-level list style sheets.

Applying a multi-level list

You can apply either a multi-level list style sheet defined in the document or one of the predefined templates to the selected paragraphs using the Style Sheets panel:

Predefined templates

The interface provides the following predefined multi-level list templates:

Technical Blueprint

Level 1: 1
Level 2: 1.1
Level 3: 1.1.1
Level 4: 1.1.1.1
Level 5: 1.1.1.1.1

Legal & Governance

Level 1: I.
Level 2: A.
Level 3: 1.
Level 4: a)
Level 5: (1)
Level 6: (a)
Level 7: (i)

Educational Material

Level 1: I.
Level 2: 1.
Level 3: 1.1.
Level 4: a.
Level 5: ●

Meeting Minutes

Level 1: 1.
Level 2: ●

Visual Hierarchy

Level 1: ♣ (Club)
Level 2: ♦ (Diamond)
Level 3: ■ (Square)
Level 4: □ (Hollow Square)
Level 5: ● (Disc)
Level 6: ○ (Circle)
Level 7: – (Dash)

Customizing predefined templates

You can customize the available templates to provide users with predefined multi-level lists that match the needs of your application.

The predefined multi-level list templates are defined in a JSON file named multiLevelStyles.json. This file is located in the 4D Write Pro Interface component Resources folder.

You can customize the available templates by adding your own multiLevelStyles.json file in either:

  • the project's local Resources folder directly,
  • a 4D WritePro Interface folder located within the project Resources folder.

If a multiLevelStyles.json file is present in both locations, the file located in the 4D WritePro Interface folder takes precedence.

Each template definition includes:

  • a template name,
  • one or more list levels,
  • the 4D Write Pro attributes applied to each level. Any 4D Write Pro attribute can be used in a template definition.

You can use either the attribute names or the corresponding 4D Write Pro constants as JSON keys and values. For example, the following definitions are equivalent:

  • "listStyleType": "wk upper roman"
  • "wk list style type": "wk upper roman"

Exemple

Example of a customized JSON file:

{
"predefinedMultiLevelLists": [
{
"name": "Technical Blue Print Updated",
"levels": [
{ "listStyleType": "wk decimal" },
{ "listStyleType": "wk decimal", "listConcatStringFormat": true }
]
}
]
}

Voir également