diff --git a/i18n/es/docusaurus-plugin-content-docs/current/FormEditor/forms.md b/i18n/es/docusaurus-plugin-content-docs/current/FormEditor/forms.md index 778f2c08cd4d61..76729ea8382ac0 100644 --- a/i18n/es/docusaurus-plugin-content-docs/current/FormEditor/forms.md +++ b/i18n/es/docusaurus-plugin-content-docs/current/FormEditor/forms.md @@ -100,6 +100,10 @@ Un formulario multipáginas tiene una página de fondo y varias páginas de visu On Windows, 4D supports **Fluent UI** form rendering, Microsoft's modern graphical user interface design, based upon **WinUI 3** technology. **WinUI 3** is the foundation of the Windows App SDK and represents the upcoming Windows graphical interfaces. +| Light theme | Dark theme | +| --------------------------------------- | -------------------------------------------- | +| ![](../assets/en/FormEditor/fluent.png) | ![](../assets/en/FormEditor/fluent-dark.png) | + :::caution Vista previa para desarrolladores Fluent UI support is currently in the Developer Preview phase. No debe utilizarse en producción. diff --git a/i18n/es/docusaurus-plugin-content-docs/current/assets/en/FormEditor/fluent-dark.png b/i18n/es/docusaurus-plugin-content-docs/current/assets/en/FormEditor/fluent-dark.png new file mode 100644 index 00000000000000..fe35b22f4c5438 Binary files /dev/null and b/i18n/es/docusaurus-plugin-content-docs/current/assets/en/FormEditor/fluent-dark.png differ diff --git a/i18n/es/docusaurus-plugin-content-docs/current/assets/en/FormEditor/fluent.png b/i18n/es/docusaurus-plugin-content-docs/current/assets/en/FormEditor/fluent.png new file mode 100644 index 00000000000000..f8ece4b7fb5fbb Binary files /dev/null and b/i18n/es/docusaurus-plugin-content-docs/current/assets/en/FormEditor/fluent.png differ diff --git a/i18n/es/docusaurus-plugin-content-docs/version-21/FormEditor/forms.md b/i18n/es/docusaurus-plugin-content-docs/version-21/FormEditor/forms.md index 778f2c08cd4d61..76729ea8382ac0 100644 --- a/i18n/es/docusaurus-plugin-content-docs/version-21/FormEditor/forms.md +++ b/i18n/es/docusaurus-plugin-content-docs/version-21/FormEditor/forms.md @@ -100,6 +100,10 @@ Un formulario multipáginas tiene una página de fondo y varias páginas de visu On Windows, 4D supports **Fluent UI** form rendering, Microsoft's modern graphical user interface design, based upon **WinUI 3** technology. **WinUI 3** is the foundation of the Windows App SDK and represents the upcoming Windows graphical interfaces. +| Light theme | Dark theme | +| --------------------------------------- | -------------------------------------------- | +| ![](../assets/en/FormEditor/fluent.png) | ![](../assets/en/FormEditor/fluent-dark.png) | + :::caution Vista previa para desarrolladores Fluent UI support is currently in the Developer Preview phase. No debe utilizarse en producción. diff --git a/i18n/es/docusaurus-plugin-content-docs/version-21/assets/en/FormEditor/fluent-dark.png b/i18n/es/docusaurus-plugin-content-docs/version-21/assets/en/FormEditor/fluent-dark.png new file mode 100644 index 00000000000000..fe35b22f4c5438 Binary files /dev/null and b/i18n/es/docusaurus-plugin-content-docs/version-21/assets/en/FormEditor/fluent-dark.png differ diff --git a/i18n/es/docusaurus-plugin-content-docs/version-21/assets/en/FormEditor/fluent.png b/i18n/es/docusaurus-plugin-content-docs/version-21/assets/en/FormEditor/fluent.png new file mode 100644 index 00000000000000..f8ece4b7fb5fbb Binary files /dev/null and b/i18n/es/docusaurus-plugin-content-docs/version-21/assets/en/FormEditor/fluent.png differ diff --git a/i18n/fr/docusaurus-plugin-content-docs/current/API/WebServerClass.md b/i18n/fr/docusaurus-plugin-content-docs/current/API/WebServerClass.md index cc56372ee96210..870338b9731bb5 100644 --- a/i18n/fr/docusaurus-plugin-content-docs/current/API/WebServerClass.md +++ b/i18n/fr/docusaurus-plugin-content-docs/current/API/WebServerClass.md @@ -187,7 +187,7 @@ Le nom de la page home par d *Propriété en lecture seulement.* -A collection of custom HTTP handler objects. An HTTP handler object contains a listened URL pattern, a handled verb, and the code to be called. HTTP handlers can be defined through a HTTPHandlers.json file or the *settings* parameter of the [`.start()`](#start) function. For more information, please refer to the [HTTP Request handler](../WebServer/http-request-handler.md) page. +Une collection d'objets gestionnaires HTTP personnalisés . Un objet HTTP handler contient un motif d'URL écouté, un verbe pris en charge et le code à appeler. Les gestionnaires HTTP peuvent être définis dans un fichier HTTPHandlers.json ou dans le paramètre *settings* de la fonction [`.start()`](#start). Pour plus d'informations, veuillez consulter la page [HTTP Request handler](../WebServer/http-request-handler.md). @@ -495,7 +495,7 @@ Le chemin du dossier racine du se *Propriété en lecture seulement.* -A collection of rule objects currently handled to customize HTTP headers. A rule object contains a "regexPattern" property, as well as an action name with a value. HTTP rules can be defined through a HTTPRules.json file or the *settings* parameter of the [`.start()`](#start) function. For more information, please refer to the [HTTP Rules](../WebServer/http-rules.md) page. +La collection d'objets de règles HTTP mises en oeuvre pour personnaliser les en-têtes HTTP. Un objet règle contient une propriété "regexPattern" ainsi qu'un nom d'action avec une valeur. Les règles HTTP peuvent être définies dans un fichier HTTPRules.json ou dans le paramètre *settings* de la fonction [`.start()`](#start). Pour plus d'informations, veuillez consulter la page [Règles HTTP](../WebServer/http-rules.md). diff --git a/i18n/fr/docusaurus-plugin-content-docs/current/FormEditor/forms.md b/i18n/fr/docusaurus-plugin-content-docs/current/FormEditor/forms.md index aa94b2fc1eac72..7401d23f42858a 100644 --- a/i18n/fr/docusaurus-plugin-content-docs/current/FormEditor/forms.md +++ b/i18n/fr/docusaurus-plugin-content-docs/current/FormEditor/forms.md @@ -96,72 +96,76 @@ Il n'y a aucune restriction sur le nombre de pages qu'un formulaire peut conteni Un formulaire multi-pages contient à la fois une page d'arrière-plan et plusieurs pages d'affichage. Les objets placés sur la page d'arrière-plan peuvent être visibles sur toutes les pages d'affichage, mais il ne peuvent être sélectionnés et modifiés que sur la page d'arrière-plan. Dans les formulaires multi-pages, vous devez placer votre palette de boutons sur la page d'arrière-plan. Vous devez également inclure un ou plusieurs objets sur la page d'arrière-plan qui fournissent à l'utilisateur des outils de navigation de page. -## Fluent UI rendering (Developer Preview) +## Rendu Fluent UI (Developer Preview) -On Windows, 4D supports **Fluent UI** form rendering, Microsoft's modern graphical user interface design, based upon **WinUI 3** technology. **WinUI 3** is the foundation of the Windows App SDK and represents the upcoming Windows graphical interfaces. +Sous Windows, 4D prend en charge le rendu de formulaire **Fluent UI**, l'interface utilisateur graphique moderne de Microsoft, basée sur la technologie **WinUI 3**. **WinUI 3** est la base du Windows App SDK et représente les prochaines interfaces graphiques de Windows. + +| Light theme | Dark theme | +| --------------------------------------- | -------------------------------------------- | +| ![](../assets/en/FormEditor/fluent.png) | ![](../assets/en/FormEditor/fluent-dark.png) | :::caution Developer Preview -Fluent UI support is currently in the Developer Preview phase. Il ne doit pas être utilisé en production. +La prise en charge de Fluent UI est actuellement en phase d'aperçu pour les développeurs. Il ne doit pas être utilisé en production. ::: :::info macOS -This feature can only be used on Windows. On macOS, it is ignored. +Cette fonctionnalité ne peut être utilisée que sous Windows. Sous macOS, elle est ignorée. ::: -### Fluent UI rendering availability +### Disponibilité du rendu Fluent UI -The Fluent UI rendering is available in the following execution environments only: +Le rendu Fluent UI est disponible dans les environnements d'exécution suivants uniquement : -- Windows with [Windows App SDK](https://learn.microsoft.com/en-us/windows/apps/windows-app-sdk/downloads) version 1.7.3 installed (you need to install this SDK on any Windows machine displaying your forms). +- Windows avec la version 1.7.3 du [Windows App SDK](https://learn.microsoft.com/en-us/windows/apps/windows-app-sdk/downloads) installée (vous devez installer ce SDK sur toute machine Windows affichant vos formulaires). - Application 4D fusionnée [autonome](../Desktop/building.md#build-stand-alone-application) ou [cliente](../Desktop/building.md#build-client-application) -- [**Test application** feature](../Menus/bars.md#previewing-menu-bars) available from the Run menu. +- [Fonction **Tester l'application**](../Menus/bars.md#previewing-menu-bars) disponible dans le menu **Exécution**. :::note -If the Windows App SDK is not properly installed, 4D will render all your forms in classic mode with no error. +Si le Windows App SDK n'est pas correctement installé, 4D utilisera le rendu classique pour vos formulaires sans erreur. ::: -### Enabling the Fluent UI rendering +### Activer le rendu Fluent UI -You can enable the Fluent UI rendering mode at the application level or at the form level. Form setting has priority over application setting. +Vous pouvez activer le mode de rendu Fluent UI au niveau de l'application ou au niveau du formulaire. Le paramétrage du formulaire a la priorité par rapport aux paramètres de l'application. -#### Application setting +#### Paramètres de l'application -Check the **Use Fluent UI on Windows** option in the "Interface" page of the Settings dialog box. +Cochez l'option **Utiliser Fluent UI sous Windows** dans la page "Interface" de la boîte de dialogue des Propriétés. ![](../assets/en/FormObjects/fluentui-setting.png) -In this case, the Fluent UI rendering mode will be used by default on Windows for all forms. +Dans ce cas, le mode de rendu Fluent UI sera utilisé par défaut sur Windows pour tous les formulaires. -#### Form setting +#### Paramètres du formulaire -Each form can define its own rendering via the **Widget appearance** property. Les options suivantes sont disponibles : +Chaque formulaire peut définir son propre rendu via la propriété **Apparence des contrôles**. Les options suivantes sont disponibles : -- **Inherited**: inherits the global application setting (default), -- **Classic**: uses the classic Windows style, -- **Fluent UI**: enables the modern rendering based on Fluent UI.
+- **Hérité** : hérite des propriétés globales de l'application (par défaut), +- **Classic** : utilise le style classique de Windows, +- **Fluent UI** : active le rendu moderne basé sur Fluent UI.
![](../assets/en/FormObjects/fluentui-form.png) -The corresponding [JSON form property](./properties_JSONref.md) is `fluentUI` with value undefined (i.e. inherited, default value), "true" or "false". +La [propriété de formulaire JSON](./properties_JSONref.md) correspondante est `fluentUI` avec la valeur undefined (i.e. hérité, valeur par défaut), "true" ou "false". -### Features and limitations +### Caractéristiques et limitations -Fluent UI rendering offers modern and attractive controls, support of dark/light system themes, smoother rendering optimized for high-resolution displays, and consistent user experience aligned with recent Microsoft applications. +Le rendu Fluent UI offre des contrôles modernes et agréables, la prise en charge des thèmes système dark/light, un rendu plus fluide optimisé pour les écrans haute résolution et une expérience utilisateur cohérente alignée sur les applications Microsoft récentes. -When using 4D forms with Fluent UI rendering, you need to pay attention to the following points: +Lorsque vous utilisez les formulaires 4D avec le rendu Fluent UI, vous devez prêter attention aux points suivants : -- The `FORM Window theme` command returns the actual display theme of the current form. Possible values: "Classic" or "FluentUI". If there is no current form or the command is called on macOS, and empty string is returned. -- If [`GET STYLE SHEET INFO`](../commands-legacy/get-style-sheet-info.md) is called in the context of a form, the information returned relates to the current appearance of the form (Classic or FluentUI). If the command is called outside the context of a form, the information returned relates to the [global project settings](#application-setting). -- [`SET MENU ITEM STYLE`](../commands-legacy/set-menu-item-style.md) with `Underline` *itemStyle* parameter is not supported (ignored) for pop up menus. -- A focus ring can be added to picture and text [inputs](../FormObjects/input_overview.md). -- [Stepper](../FormObjects/stepper.md) form object does not support [double-click event](../Events/onDoubleClicked.md). -- [Circle buttons](../FormObjects/button_overview.md#circle) are supported (similar as macOS). -- The [`WA ZOOM IN`](../commands-legacy/wa-zoom-in.md) / [`WA ZOOM OUT`](../commands-legacy/wa-zoom-out.md) commands are not supported in Web areas with system rendering engine. +- La commande `FORM Window theme` renvoie le thème d'affichage réel du formulaire courant. Valeurs possibles : "Classic" ou "FluentUI". S'il n'y a pas de formulaire courant ou si la commande est appelée sous macOS, une chaîne vide est renvoyée. +- Si [`GET STYLE SHEET INFO`](../commands-legacy/get-style-sheet-info.md) est appelée dans le contexte d'un formulaire, les informations renvoyées concernent l'apparence courante du formulaire (Classic ou FluentUI). Si la commande est appelée en dehors du contexte d'un formulaire, les informations renvoyées concernent les [propriétés globales du projet](#application-setting). +- [`SET MENU ITEM STYLE`](../commands-legacy/set-menu-item-style.md) avec le paramètre *itemStyle* `Underline` n'est pas pris en charge (ignoré) pour les menus pop up. +- Un rectangle de focus peut être ajouté aux [zones de saisie](../FormObjects/input_overview.md) image et texte. +- L'objet de formulaire [Stepper](../FormObjects/stepper.md) ne prend pas en charge l'événement [double-clic](../Events/onDoubleClicked.md). +- Les [boutons circulaires](../FormObjects/button_overview.md#circle) sont pris en charge (comme sur macOS). +- Les commandes [`WA ZOOM IN`](../commands-legacy/wa-zoom-in.md) / [`WA ZOOM OUT`](../commands-legacy/wa-zoom-out.md) ne sont pas prises en charge dans les zones Web avec moteur de rendu système. ## Formulaires hérités diff --git a/i18n/fr/docusaurus-plugin-content-docs/current/FormEditor/properties_FormSize.md b/i18n/fr/docusaurus-plugin-content-docs/current/FormEditor/properties_FormSize.md index 6ab25ecd64f45e..f7d879c24c7fac 100644 --- a/i18n/fr/docusaurus-plugin-content-docs/current/FormEditor/properties_FormSize.md +++ b/i18n/fr/docusaurus-plugin-content-docs/current/FormEditor/properties_FormSize.md @@ -11,15 +11,15 @@ Les options de taille dépendent de la valeur de l'option **Taille basée sur**. ## Taille basée sur -- **Automatic Size**: The size of the form will be that necessary to display all the objects, to which will be added the margin values (in pixels) entered in the [**Hor Margin**](#hor-margin) and [**Vert Margin**](#vert-margin) fields. +- **Taille automatique** : La taille du formulaire sera celle nécessaire à l'affichage de tous les objets, à laquelle s'ajouteront les valeurs de marge (en pixels) saisies dans les champs [**Marge hor.**](#hor-margin) et [**Marge vert.**](#vert-margin). Vous pouvez choisir cette option lorsque vous souhaitez utiliser des objets actifs placés dans une zone hors écran (c'est-à-dire en dehors du rectangle de délimitation de la fenêtre) avec une fenêtre de taille automatique. Grâce à cette option, la présence de ces objets ne modifiera pas la taille de la fenêtre. -- **Set Size**: The size of the form will be based on what you enter (in pixels) in the [**Width**](#width) and [**Height**](#height) fields. +- **Fixer taille** : La taille du formulaire sera basée sur ce que vous entrez (en pixels) dans les champs [**Largeur**](#width) and [**Hauteur**](#height). -- `\`: The size of the form will be based on the position of the selected form object. Par exemple, si vous choisissez un objet qui est placé dans la partie inférieure droite de la zone à afficher, la taille du formulaire sera constituée d'un rectangle dont le coin supérieur gauche sera l'origine du formulaire et le coin inférieur droit correspondra à celle de l'objet sélectionné, plus les éventuelles valeurs de marge. +- `` : La taille du formulaire sera basée sur la position de l'objet du formulaire sélectionné. Par exemple, si vous choisissez un objet qui est placé dans la partie inférieure droite de la zone à afficher, la taille du formulaire sera constituée d'un rectangle dont le coin supérieur gauche sera l'origine du formulaire et le coin inférieur droit correspondra à celle de l'objet sélectionné, plus les éventuelles valeurs de marge. -> For output forms, only the [**Hor margin**](#hor-margin) or [**Width**](#width) fields are available. +> Pour les formulaires de sortie, seuls les champs [**Marge hor.**](#hor-margin) ou [**Largeur**](#width) sont disponibles. #### Grammaire JSON @@ -43,7 +43,7 @@ Hauteur du formulaire (en pixels) lorsque la [taille du formulaire](#size-based- ## Marge hor. -Valeur à ajouter (en pixels) à la marge droite du formulaire lorsque la [taille du formulaire](#size-based-on) est définie sur **Taille automatique** ou `\` +Valeur à ajouter (en pixels) à la marge droite du formulaire lorsque la [taille du formulaire](#size-based-on) est définie sur **Taille automatique** ou `\` Cette valeur détermine également les marges droites des formulaires utilisés dans l'éditeur d'étiquettes. @@ -57,7 +57,7 @@ Cette valeur détermine également les marges droites des formulaires utilisés ## Marge hor. -Value to add (in pixels) to the bottom margin of the form when the [form size](#size-based-on) is **Automatic size** or `\`. +Valeur à ajouter (en pixels) à la marge inférieure du formulaire lorsque la [taille du formulaire](#size-based-on) est définie sur **Taille automatique** ou `\`. Cette valeur détermine également les marges supérieures des formulaires utilisés dans l'éditeur d'étiquettes. diff --git a/i18n/fr/docusaurus-plugin-content-docs/current/ORDA/client-server-optimization.md b/i18n/fr/docusaurus-plugin-content-docs/current/ORDA/client-server-optimization.md index 5cc95b6062eb55..090b1b0011716a 100644 --- a/i18n/fr/docusaurus-plugin-content-docs/current/ORDA/client-server-optimization.md +++ b/i18n/fr/docusaurus-plugin-content-docs/current/ORDA/client-server-optimization.md @@ -3,7 +3,7 @@ id: client-server-optimization title: Optimisation client/serveur --- -4D optimise automatiquement les requêtes ORDA qui utilisent des entity selections ou chargent des entités dans l'architecture client/serveur. Ces optimisations accélèrent l'exécution de votre application 4D en réduisant drastiquement le volume d'informations transmises sur le réseau. Elles incluent : +En architecture client/serveur, 4D optimise automatiquement les requêtes ORDA qui utilisent des entity selections ou chargent des entités. Ces optimisations accélèrent l'exécution de votre application 4D en réduisant drastiquement le volume d'informations transmises sur le réseau. Elles incluent : - le **contexte d'optimisation** - le **Cache ORDA** @@ -27,7 +27,7 @@ Le contexte d'optimisation est fondé sur ce qui suit : - [`dataClass.query()`](../API/DataClassClass.md#query) - [`entitySelection.query()`](../API/EntitySelectionClass.md#query) -- Les requêtes ultérieures envoyées au serveur sur la même entity selection réutilisent automatiquement le contexte d'optimisation et lisent uniquement les attributs nécessaires depuis le serveur, ce qui accélère le traitement. Les requêtes ultérieures envoyées au serveur sur la même entity selection réutilisent automatiquement le contexte d'optimisation et lisent uniquement les attributs nécessaires depuis le serveur, ce qui accélère le traitement. L'affichage des lignes suivantes est optimisé. Les fonctions suivantes associent automatiquement le contexte d'optimisation de l'entity selection d'origine à l'entity selection retournée : +- Les requêtes ultérieures envoyées au serveur sur la même entity selection réutilisent automatiquement le contexte d'optimisation et lisent uniquement les attributs nécessaires depuis le serveur, ce qui accélère le traitement. Par exemple, dans une [list box de type entity selection](#entity-selection-based-list-box), la phase d'apprentissage a lieu pendant l'affichage de la première ligne. L'affichage des lignes suivantes est optimisé. Les fonctions suivantes associent automatiquement le contexte d'optimisation de l'entity selection d'origine à l'entity selection retournée : - [`entitySelection.and()`](../API/EntitySelectionClass.md#and) - [`entitySelection.minus()`](../API/EntitySelectionClass.md#minus) - [`entitySelection.or()`](../API/EntitySelectionClass.md#or) @@ -35,7 +35,7 @@ Le contexte d'optimisation est fondé sur ce qui suit : - [`entitySelection.slice()`](../API/EntitySelectionClass.md#slice) - [`entitySelection.drop()`](../API/EntitySelectionClass.md#drop) -- An existing optimization context can be passed as a property to another entity selection of the same dataclass, thus bypassing the learning phase and accelerating the application (see [Reusing the context property](#reusing-the-context-property) below). +- Un contexte d'optimisation existant peut être passé en tant que propriété à une autre entity selection de la même dataclass, ce qui permet d'économiser la phase d'apprentissage et d'accélérer l'application (voir [Réutilisation de la propriété context](#reusing-the-context-property) ci-dessous). - Vous pouvez créer des contextes d'optimisation manuellement à l'aide de la fonction [`dataStore.setRemoteContextInfo()`](../API/DataStoreClass.md#setremotecontextinfo) (voir [Préconfiguration des contextes](#preconfiguring-contexts)). @@ -66,7 +66,7 @@ Vous pouvez augmenter les avantages de l'optimisation en utilisant la propriét > Vous pouvez également créer des contextes en utilisant la fonction [`.setRemoteContextInfo()`](../API/DataStoreClass.md#setremotecontextinfo). -Une même propriété de contexte d'optimisation peut être passée à un nombre illimité d"entity selections de la même dataclass. Une même propriété de contexte d'optimisation peut être passée à un nombre illimité d"entity selections de la même dataclass. Il est toutefois important de garder à l'esprit qu'un contexte est automatiquement mis à jour lorsque de nouveaux attributs sont utilisés dans d'autres parties du code. Si le même contexte est réutilisé dans différents codes, il risque d'être surchargé et de perdre en efficacité. +Une même propriété de contexte d'optimisation peut être passée à un nombre illimité d"entity selections de la même dataclass. Toutes les fonctions ORDA qui gèrent les entity selections prennent en charge la propriété **context** (par exemple [`dataClass.query()`](../API/DataClassClass.md#query) ou [`dataClass.all()`](../API/DataClassClass.md#all)). Il est toutefois important de garder à l'esprit qu'un contexte est automatiquement mis à jour lorsque de nouveaux attributs sont utilisés dans d'autres parties du code. Si le même contexte est réutilisé dans différents codes, il risque d'être surchargé et de perdre en efficacité. > Un mécanisme similaire est implémenté pour les entités qui sont chargées, de sorte que seuls les attributs utilisés sont demandés (voir la fonction [`dataClass.get()`](../API/DataClassClass.md#get)). @@ -77,22 +77,22 @@ Une même propriété de contexte d'optimisation peut être passée à un nombre var $data : Collection $querysettings:=New object("context";"shortList") $querysettings2:=New object("context";"longList") - + $sel1:=ds.Employee.query("lastname = S@";$querysettings) - $data:=extractData($sel1) // In extractData method an optimization is triggered - // and associated to context "shortList" - + $data:=extractData($sel1) // dans la méthode extractData un contexte d'optimisation + // est généré et associé au contexte "shortList" + $sel2:=ds.Employee.query("lastname = Sm@";$querysettings) - $data:=extractData($sel2) // In extractData method the optimization associated - // to context "shortList" is applied - + $data:=extractData($sel2) // dans la méthode extractData le contexte d'optimisation + // associé au contexte "shortList" est appliqué + $sel3:=ds.Employee.query("lastname = Smith";$querysettings2) - $data:=extractDetailedData($sel3) // In extractDetailedData method an optimization - // is triggered and associated to context "longList" - + $data:=extractDetailedData($sel3) // dans la méthode extractDetailedData un contexte d'optimisation + // est généré et associé au contexte "longList" + $sel4:=ds.Employee.query("lastname = Brown";$querysettings2) - $data:=extractDetailedData($sel4) // In extractDetailedData method the optimization - // associated to context "longList" is applied + $data:=extractDetailedData($sel4) // dans extractDetailedData le contexte d'optimisation + // associé au contexte "longList" est appliqué ``` ### List box de type entity selection @@ -133,7 +133,7 @@ Pour des raisons d'optimisation, les données demandées au serveur via ORDA son Les données contenues dans le cache sont considérées comme expirées lorsque le délai d'attente est atteint. Tout accès à des données périmées provoquera l'envoi d'une requête au serveur. Les données périmées restent dans le cache jusqu'à ce que l'on ait besoin d'espace. -You can force entity selection data in the ORDA cache to expire at any moment by using the [`refresh()`](../API/EntitySelectionClass.md#refresh) function. +Vous pouvez forcer les données de sélection d'entité dans le cache ORDA à expirer à tout moment en utilisant la fonction [`refresh()`](../API/EntitySelectionClass.md#refresh). Par défaut, le cache ORDA est géré de manière transparente par 4D. Cependant, vous pouvez contrôler son contenu en utilisant les fonctions ORDA suivantes : diff --git a/i18n/fr/docusaurus-plugin-content-docs/current/ORDA/dsMapping.md b/i18n/fr/docusaurus-plugin-content-docs/current/ORDA/dsMapping.md index 15c307c47cc3e3..f6ec06c336527b 100644 --- a/i18n/fr/docusaurus-plugin-content-docs/current/ORDA/dsMapping.md +++ b/i18n/fr/docusaurus-plugin-content-docs/current/ORDA/dsMapping.md @@ -3,15 +3,15 @@ id: dsmapping title: Objets du modèle de données --- -The ORDA technology is based upon an automatic mapping of an underlying [database structure](https://doc.4d.com/4Dv20/4D/20.2/Creating-a-database-structure.200-6750097.en.html). Elle permet également d'accéder aux données via des objets sélection d'entités (entity selection) et entité (entity). Par conséquent, ORDA expose la base de données entière comme un ensemble d'objets de modèle de données. +La technologie ORDA est basée sur une correspondance automatique d'une [structure de base de données](https://doc.4d.com/4Dv20/4D/20.2/Creating-a-database-structure.200-6750097.en.html) sous-jacente. Elle permet également d'accéder aux données via des objets sélection d'entités (entity selection) et entité (entity). Par conséquent, ORDA expose la base de données entière comme un ensemble d'objets de modèle de données. ## Correspondance de la structure Lorsque vous appelez un datastore à l'aide de la commande [`ds`](commands/ds.md) ou [`Open datastore`](commands/open-datastore.md), 4D référence automatiquement les tables et les champs de la structure 4D correspondante en tant que propriétés de l'objet [datastore](#datastore) renvoyé : -- Tables are mapped to [dataclasses](#dataclass). -- Fields are mapped to [storage attributes](#storage-and-relation-attributes). -- Relations are mapped to [relation attributes](#storage-and-relation-attributes) - relation names, defined in the [Structure editor](https://doc.4d.com/4Dv20/4D/20.2/Creating-and-modifying-relations.300-6750296.en.html), are used as relation attribute names. +- Les tables correspondent à des [dataclasses](#dataclass). +- Les champs correspondent à des [attributs de stockage](#storage-and-relation-attributes). +- Les liens correspondent à des [attributs relationnels](#storage-and-relation-attributes) - les noms des liens, définis dans l'[éditeur de structure](https://doc.4d.com/4Dv20/4D/20.2/Creating-and-modifying-relations.300-6750296.en.html), sont utilisés comme noms d'attributs de relation. ![](../assets/en/ORDA/datastoreMapping.png) @@ -19,7 +19,7 @@ Lorsque vous appelez un datastore à l'aide de la commande [`ds`](commands/ds.md Les règles suivantes s'appliquent à toutes les conversions : -- Les noms de table, de champ et de relation correspondent à des noms de propriété d'objet. Assurez-vous que ces noms sont conformes aux règles générales de dénomination des objets, comme expliqué dans la section [Conventions de dénomination des objets](Concepts/identifiers.md). +- Les noms de table, de champ et de relation correspondent à des noms de propriété d'objet. Assurez-vous que ces noms sont conformes aux règles générales de dénomination des objets, comme expliqué dans la section [consacrée aux identifiants](Concepts/identifiers.md). - Un datastore ne référence que les tables avec une seule clé primaire. Les tables suivantes ne sont pas référencées : - Tables sans clé primaire - Tables avec clés primaires composites. @@ -28,12 +28,12 @@ Les règles suivantes s'appliquent à toutes les conversions : > La correspondance ORDA ne prend pas en compte : > > - l'option "Invisible" pour les tables ou les champs, -> - the virtual structure defined through [`SET TABLE TITLES`](../commands-legacy/set-table-titles.md) or [`SET FIELD TITLES`](../commands-legacy/set-field-titles.md), +> - la structure virtuelle définie par [`SET TABLE TITLES`](../commands-legacy/set-table-titles.md) et [`SET FIELD TITLES`](../commands-legacy/set-field-titles.md), > - la propriété "manuelle" ou "automatique" des relations. ### Règles de contrôle d'accès à distance -Lorsque vous accédez à un datastore distant via la commande `Ouvrir datastore` ou des [requêtes REST](REST/gettingStarted.md), seules les tables et les champs avec la propriété de ressource **Expose as REST resource** sont disponibles à distance. +Lorsque vous accédez à un datastore distant via la commande `Open datastore` ou des [requêtes REST](REST/gettingStarted.md), seuls les tables et les champs avec la propriété **Exposer avec le service REST** sont disponibles à distance. Cette option doit être choisie au niveau de la structure 4D pour chaque table et chaque champ que vous souhaitez voir apparaître comme dataclass et attribut dans le datastore : @@ -47,12 +47,12 @@ Toute modification apportée à la structure de la base invalide la couche coura - le renommage d'une table, d'un champ ou d'une relation - la modification d'une propriété principale d'un champ (type, unique, index, autoincrement, valeur null) -Lorsque la couche courante de données ORDA est invalidée, elle est automatiquement rechargée et mise à jour dans les prochains appels du datastore local `ds` vers 4D et 4D Server. A noter que les références existantes vers des objets ORDA tels que des entités ou des sélections d'entités continueront d'utiliser les données à partir desquelles elles ont été créées, et ce jusqu'à ce qu'elles soient regénérées. +Lorsque le modèle ORDA courant est invalidé, il est automatiquement rechargé et mis à jour dans les appels ultérieurs du datastore local `ds` sur 4D et 4D Server. A noter que les références existantes vers des objets ORDA tels que des entités ou des sélections d'entités continueront d'utiliser les données à partir desquelles elles ont été créées, et ce jusqu'à ce qu'elles soient regénérées. -Toutefois, la couche de données ORDA mise à jour n'est pas automatiquement disponible dans les contextes suivants : +Toutefois, le modèle de données ORDA mis à jour n'est pas automatiquement disponible dans les contextes suivants : - une application 4D distante connectée à 4D Server -- l'application distante doit être reconnectée au serveur. -- un datastore distant ouvert à l'aide de `Ouvrir datastore` ou des [appels REST](REST/gettingStarted.md) -- une nouvelle session doit être ouverte. +- un datastore distant ouvert à l'aide de `Open datastore` ou des [appels REST](REST/gettingStarted.md) -- une nouvelle session doit être ouverte. ## Définitions des objets @@ -63,14 +63,14 @@ Un datastore est l'objet d'interface d'une base de données. Il crée une repré - Le modèle contient et décrit toutes les dataclasses qui composent le datastore. Il est indépendant de la base de données sous-jacente. - Les données se réfèrent à l'information qui va être utilisée et stockée dans ce modèle. Par exemple, les noms, adresses et dates de naissance des employés sont des éléments de données que vous pouvez utiliser dans un datastore. -A datastore object is handled through functions and properties of the [**DataStore**](../API/DataStoreClass.md) class. +Un objet datastore est géré par les fonctions et les propriétés de la classe [**DataStore**](../API/DataStoreClass.md). Lorsqu'il est géré via le code, le datastore est un objet dont les propriétés sont toutes les [dataclasses](#dataclass) ayant été spécifiquement exposées. -4d vous permet de gérer les datastores suivants : +4D vous permet de gérer les datastores suivants : - le datastore local, fondé sur la base 4D courante, retourné par la commande `ds` (le datastore principal). -- un ou plusieurs datastores distants, exposés en tant que ressources RESET dans des bases 4D distantes, retournés par la commande `Ouvrir datastore`. +- un ou plusieurs datastores distants, exposés en tant que ressources RESET dans des bases 4D distantes, retournés par la commande `Open datastore`. Un datastore ne référence qu'une seule base de données locale ou distante. @@ -88,21 +88,21 @@ Les propriétés du datastore sont toutefois énumérables : //$prop contient les noms de toutes les dataclasses ``` -Le datastore principal (par défaut) est toujours disponible via la commande `ds`, mais la commande `Ouvrir datastore` permet de référencer n'importe quel datastore distant. +Le datastore principal (par défaut) est toujours disponible via la commande `ds`, mais la commande `Open datastore` permet de référencer n'importe quel datastore distant. ### Dataclass Une dataclasse est l'équivalent d'une table. Elle est utilisée comme modèle d'objet et référence tous les champs comme attributs, y compris les attributs relationnels (attributs construits à partir des relations entre les dataclasses). Les attributs relationnels peuvent être utilisés dans les requêtes comme tout autre attribut. -A dataclass object is handled through functions and properties of the [**DataClass**](../API/DataClassClass.md) class. +Un objet dataclass est géré par les fonctions et les propriétés de la classe [**DataClass**](../API/DataClassClass.md). -Toutes les dataclasses d'un projet 4D sont disponibles en tant que propriété du datastore `ds`. Pour les datastores distants accédés via `Open datastore` ou les [requêtes REST](REST/gettingStarted.md), l'option **Exposer comme ressource REST** doit être sélectionnée au niveau de la structure 4D pour chaque table que vous souhaitez exposer en tant que dataclass du datastore. +Toutes les dataclasses d'un projet 4D sont disponibles en tant que propriété du datastore `ds`. Pour les datastores distants accédés via `Open datastore` ou les [requêtes REST](REST/gettingStarted.md), l'option **Exposer avec le service REST** doit être sélectionnée au niveau de la structure 4D pour chaque table que vous souhaitez exposer en tant que dataclass du datastore. Par exemple, considérons cette table dans la structure suivante : ![](../assets/en/ORDA/companyTable.png) -La table `Company` est automatiquement disponible en tant que dataclasse dans la banque de données `ds`. Vous pouvez écrire : +La table `Company` est automatiquement disponible en tant que dataclass dans le datastore `ds`. Vous pouvez écrire : ```4d var $compClass : cs.Company //déclare une variable objet $compClass de la classe Company @@ -111,7 +111,7 @@ $compClass:=ds.Company //affecte la référence de dataclasse Company à $compCl Un objet dataclass peut contenir : -- attributes +- des attributs - des attributs relationnels La dataclass offre une abstraction de la base de données physique et permet de gérer un modèle de données conceptuel. La dataclass est le seul moyen d'interroger le datastore. Une requête est effectuée à partir d'une seule dataclass. Les requêtes sont construites autour des attributs et des noms d'attributs relationnels des dataclasses. Les attributs relationnels sont ainsi les moyens d'impliquer plusieurs tables liées dans une requête. @@ -139,10 +139,10 @@ Les propriétés de dataclass sont des objets attribut décrivant les champs ou $revenuesAttribute:=ds.Company["revenues"] //méthode alternative ``` -Ce code attribue à `$nameAttribute` et `$revenuesAttribute` des références aux attributs name et revenues de la classe `Company`. This syntax does NOT return values held inside of the attribute, but instead returns references to the attributes themselves [with their **attribute properties**](../API/DataClassClass.md#attributename). +Ce code attribue à `$nameAttribute` et `$revenuesAttribute` des références aux attributs name et revenues de la classe `Company`. Cette syntaxe ne renvoie PAS les valeurs contenues dans l'attribut, mais des références aux attributs eux-mêmes [avec leurs **propriétés d'attribut**](../API/DataClassClass.md#attributename). Pour gérer les valeurs, vous devez passer par les [Entités](#entite). -Tous les fichiers éligibles d'une table sont disponibles en tant qu'attributs de leur [dataclass](#dataclass) parente. Pour les datastores distants accessibles via `Open datastore` ou les [requêtes REST](REST/gettingStarted.md), l'option **Exposer comme ressource REST** doit être sélectionnée au niveau de la structure 4D pour chaque champ que vous souhaitez exposer en tant qu'attribut de dataclass. +Tous les champs éligibles d'une table sont disponibles en tant qu'attributs de leur [dataclass](#dataclass) parente. Pour les datastores distants accessibles via `Open datastore` ou les [requêtes REST](REST/gettingStarted.md), l'option **Exposer avec le service REST** doit être sélectionnée au niveau de la structure 4D pour chaque champ que vous souhaitez exposer en tant qu'attribut de dataclass. #### Attributs de stockage et relationnels @@ -155,17 +155,17 @@ Prenons l'exemple de la structure de base de données partielle suivante et les ![](../assets/en/ORDA/relationProperties.png) -Tous les attributs relationnels seront disponibles automatiquement : +Tous les attributs de stockage seront disponibles automatiquement : - dans la dataclass Project : "ID", "name", et "companyID" - dans la dataclass Company : "ID", "name", et "discount" -En outre, les attributs relationnels suivant seront également disponibles automatiquement : +En outre, les attributs relationnels suivants seront également disponibles automatiquement : - dans la dataclass Project : l'attribut **theClient**, du type "relatedEntity" ; il y a au plus une compagnie pour chaque projet (le client) - dans la dataclass Company : l'attribut **companyProjects**, du type "relatedEntities" ; pour chaque compagnie, il existe un certain nombre de projets reliés. -> La propriété manuelle ou automatique d'une relation de base de données n'a aucun effet dans ORDA. +> La propriété Manuel ou Automatique d'un lien de base de données n'a aucun effet dans ORDA. Tous les attributs de la dataclass sont exposés en tant que propriétés de la dataclass : @@ -175,7 +175,7 @@ Gardez à l'esprit que ces objets décrivent des attributs, mais ne donnent pas #### Attributs calculés et Alias -Les [attributs calculés](ordaClasses.md#computed-attributes) et les[attributs alias](ordaClasses.md#alias-attributes) sont des attributs "virtuels". Leur valeur n'est pas stockée mais évaluée à chaque fois qu'on y accède. Ils n'appartiennent pas à la structure sous-jacente de la base, mais ils se basent sur elle et peuvent être utilisés comme n'importe quel champ du modèle de données. +Les [attributs calculés](ordaClasses.md#computed-attributes) et les [attributs alias](ordaClasses.md#alias-attributes) sont des attributs "virtuels". Leur valeur n'est pas stockée mais évaluée à chaque fois qu'on y accède. Ils n'appartiennent pas à la structure sous-jacente de la base, mais ils se basent sur elle et peuvent être utilisés comme n'importe quel champ du modèle de données. ### Entity @@ -183,7 +183,7 @@ Une entité est l'équivalent d'un enregistrement. Il s'agit d'un objet qui fait Le but de l'entité est de gérer les données (créer, mettre à jour, supprimer). Lorsqu'une référence d'entité est obtenue au moyen d'une sélection d'entité, elle conserve également des informations sur la sélection d'entité qui permet une itération à travers la sélection. -An entity object is handled through functions and properties of the [**Entity**](../API/EntityClass.md) class. +Un objet entité est géré par les fonctions et les propriétés de la classe [**Entity**](../API/EntityClass.md). L'objet entité lui-même ne peut pas être copié en tant qu'objet : @@ -203,7 +203,7 @@ Les propriétés de l'entité sont toutefois énumérables : Une entity selection est un objet contenant une ou plusieurs référence(s) à des entités appartenant à la même dataclasse. Elle est généralement créée à la suite d'une requête ou retournée à partir d'un attribut relationnel. Une entity selection peut contenir 0, 1 ou X entités de la dataclass - où X peut représenter le nombre total d'entités contenues dans la dataclass. -An entity selection object is handled through functions and properties of the [**EntitySelection**](../API/EntitySelectionClass.md) class. +Un objet Entity selection est géré par les fonctions et les propriétés de la classe [**EntitySelection**](../API/EntitySelectionClass.md). Voici un exemple : @@ -233,18 +233,18 @@ Les propriétés des entity selections sont toutefois énumérables : #### Entity selections triées vs Entity selections non-triées -Pour des raisons d'optimisation, par défaut, 4D ORDA crée généralement des sélections d'entités non-ordonnées, sauf lorsque vous utilisez la méthode `orderBy( )` ou si vous utilisez les options appropriées. Dans cette documentation, sauf indication contraire, "entity selection" fait généralement référence à une "entity selection non-triée". +Pour des raisons d'optimisation, par défaut, 4D ORDA crée généralement des entity selections non-ordonnées, sauf lorsque vous utilisez la méthode `orderBy()` ou si vous utilisez les options appropriées. Dans cette documentation, sauf indication contraire, "entity selection" fait généralement référence à une "entity selection non-triée". Les entity selections triées sont créées uniquement lorsque cela est nécessaire ou lorsqu'elles sont spécifiquement demandées à l'aide d'options, c'est-à-dire dans les cas suivants : -- résultat d'un `orderBy( )` sur une sélection (de n'importe quel type) ou un `orderBy( )` sur une dataclass, -- résultat de la méthode `newSelection( )` avec l'option `dk keep ordered` +- résultat d'un `orderBy()` sur une sélection (de n'importe quel type) ou un `orderBy()` sur une dataclass, +- résultat de la méthode `newSelection()` avec l'option `dk keep ordered` -Les sélections d'entités non-triées sont créées dans les cas suivants : +Les entity selections non-triées sont créées dans les cas suivants : - résultat d'un `query()` standard sur une sélection (de n'importe quel type) ou un `query()` sur une dataclass, - résultat de la méthode `newSelection()` sans option, -- résultat de l'une des méthodes de comparaison, quel que soit le type de sélection saisi : `or()`, `and()`, `minus()`. +- résultat de l'une des méthodes de comparaison, quel que soit le type de sélection d'origine : `or()`, `and()`, `minus()`. > Les entity selections suivantes sont toujours **triées** : > diff --git a/i18n/fr/docusaurus-plugin-content-docs/current/ORDA/entities.md b/i18n/fr/docusaurus-plugin-content-docs/current/ORDA/entities.md index 0be4eacb122866..bee47dac9df190 100644 --- a/i18n/fr/docusaurus-plugin-content-docs/current/ORDA/entities.md +++ b/i18n/fr/docusaurus-plugin-content-docs/current/ORDA/entities.md @@ -120,7 +120,7 @@ $entity.save() //sauvegarder les modifications :::note Notes -- Database Object fields can be [associated with classes](../Develop/field-properties.md), in which case only objects of the defined class can be assigned to the entity attribute. +- Les champs objet de la base de données peuvent être [associés à des classes](../Develop/field-properties.md), auquel cas seuls les objets de la classe définie peuvent être affectés à l'attribut de l'entité. - Les champs Blob des bases de données ([blobs scalaires](Concepts/dt_blob.md)) sont automatiquement convertis en attributs d'objets blob ([`4D.Blob`](Concepts/dt_blob.md)) lorsqu'ils sont traités par ORDA. Lorsque vous sauvegardez un attribut d'objet blob, gardez à l'esprit que, contrairement à la taille de l'objet blob qui n'est limitée que par la mémoire disponible, la taille du champ Blob est limitée à 2 Go. ::: @@ -288,7 +288,7 @@ La nature **partageable** ou **modifiable** d'une entity selection est définie Une nouvelle entity selection est **partageable** dans les cas suivants : -- la nouvelle entity selection résulte d'une fonction de classe ORDA appliquée à une dataClass : [dataClass.all()](API/DataClassClass.md#all), [dataClass.fromCollection()](API/DataClassClass.md#fromcollection), [dataClass.query()](API/DataClassClass.md#quer +- la nouvelle entity selection résulte d'une fonction de classe ORDA appliquée à une dataClass : [dataClass.all()](API/DataClassClass.md#all), [dataClass.fromCollection()](API/DataClassClass.md#fromcollection), [dataClass.query()](API/DataClassClass.md#query), - la nouvelle entity selection est basée sur une relation [entity.*attributeName*](API/EntityClass.md#attributename) (par exemple, "company.employees") lorsque *attributeName* est un attribut lié 1-vers-N mais que l'entité n'appartient pas à une entity selection. - la nouvelle entity selection est explicitement copiée comme partageable avec [entitySelection.copy()](API/EntitySelectionClass.md#copy) ou `OB Copy` (c'est-à-dire avec l'option `ck shared`). @@ -449,7 +449,7 @@ Les filtres s'appliquent aux **entités**. Si vous souhaitez restreindre l'accè ### Comment définir un filtre de restriction -You create a filter for a dataclass by defining an `event restrict` function in the [**dataclass class**](dsMapping.md#dataclass) of the dataclass. Le filtre est alors automatiquement activé. +Vous créez un filtre pour une dataclass en définissant une fonction `event restrict` dans la [**classe**](dsMapping.md#dataclass) de la dataclasse. Le filtre est alors automatiquement activé. ### `Function event restrict` @@ -466,7 +466,7 @@ Le filtre doit retourner une entity selection de la dataclass. Il peut s'agir d' :::note -Pour des raisons de performances, nous recommandons d'utiliser les **attributs indexés** dans la définition du filtre. +Pour des raisons de performances, nous recommandons d'utiliser des **attributs indexés** dans la définition du filtre. ::: diff --git a/i18n/fr/docusaurus-plugin-content-docs/current/ORDA/glossary.md b/i18n/fr/docusaurus-plugin-content-docs/current/ORDA/glossary.md index 29ecb988e206b8..0802de867e16c6 100644 --- a/i18n/fr/docusaurus-plugin-content-docs/current/ORDA/glossary.md +++ b/i18n/fr/docusaurus-plugin-content-docs/current/ORDA/glossary.md @@ -9,7 +9,7 @@ title: Glossaire ## Action -Chaque action qui peut être effectuée sur une [ressource](#resource). Available actions are: create, read, update, drop, execute, and promote. +Chaque action qui peut être effectuée sur une [ressource](#resource). Les actions disponibles sont : create, read, update, drop, execute, and promote. ## Attribut @@ -18,11 +18,11 @@ Un attribut est la plus petite cellule de stockage dans une base de données rel - Dans un objet dataclass, chaque propriété est un attribut de dataclass qui correspond à un champ dans la table correspondante (même nom et même type). - Dans un objet entity, les attributs d'entités sont des propriétés qui contiennent les valeurs pour les attributs du datastore correspondants. -> \> Attributes and properties are similar concepts. "Attribut" est utilisé pour désigner les propriétés de la dataclass qui stockent les données, tandis que "propriété" est plus générique et définit une donnée stockée dans un objet. +> Les *attributs* et les *propriétés* sont des concepts similaires. "Attribut" est utilisé pour désigner les propriétés de la dataclass qui stockent les données, tandis que "propriété" est plus générique et définit une donnée stockée dans un objet. ## AttributePath -Un attributePath est le chemin d'un attribut à l'intérieur d'une dataclass ou d'une entité donnée. See also [PropertyPath](#propertypath). +Un attributePath est le chemin d'un attribut à l'intérieur d'une dataclass ou d'une entité donnée. Voir aussi [PropertyPath](#propertypath). ## Class code @@ -89,7 +89,7 @@ Une entité est un objet qui correspond à un modèle de dataclass. Une entité Une entité peut être vue comme une instance de la dataclass, comme un enregistrement de la table correspondante à la dataclass dans son datastore associé. Cependant, une entité contient également des données connexes. Le but de l'entité est de gérer les données (créer, mettre à jour, supprimer). -For more information, see [entities](entities.md). +Pour plus d'informations, voir [entities](entities.md). ## Entity selection diff --git a/i18n/fr/docusaurus-plugin-content-docs/current/ORDA/orda-events.md b/i18n/fr/docusaurus-plugin-content-docs/current/ORDA/orda-events.md index cc75f45301a848..f714b870b00567 100644 --- a/i18n/fr/docusaurus-plugin-content-docs/current/ORDA/orda-events.md +++ b/i18n/fr/docusaurus-plugin-content-docs/current/ORDA/orda-events.md @@ -5,118 +5,118 @@ title: Events
Historique -| Release | Modifications | -| ------- | ----------------------------------------------------------------------------------------------------- | -| 21 | Added events: validateSave / saving / afterSave / validateDrop / dropping / afterDrop | -| 20 R10 | touched event added | +| Release | Modifications | +| ------- | ------------------------------------------------------------------------------------------------------------ | +| 21 | Événements ajoutés : validateSave / saving / afterSave / validateDrop / dropping / afterDrop | +| 20 R10 | ajout événement touched |
-ORDA events are functions that are automatically invoked by ORDA each time entities and entity attributes are manipulated (added, deleted, or modified). You can write very simple events, and then make them more sophisticated. +Les événements ORDA sont des fonctions qui sont automatiquement invoquées par ORDA chaque fois que des entités et des attributs d'entités sont manipulés (ajoutés, supprimés ou modifiés). Vous pouvez écrire des événements très simples, puis les rendre plus sophistiqués. -You cannot directly trigger event function execution. Events are called automatically by ORDA based on user actions or operations performed through code on entities and their attributes. +Vous ne pouvez pas déclencher directement l'exécution d'une fonction d'événement. Les événements sont appelés automatiquement par ORDA en fonction des actions de l'utilisateur ou des opérations effectuées par le code sur les entités et leurs attributs. :::tip Article(s) de blog sur le sujet -[ORDA – Handle an event-driven logic during data persistence actions](https://blog.4d.com/orda-handle-an-event-driven-logic-during-data-persistence-actions) +[ORDA - Gérer une logique événementielle lors des actions de persistance des données](https://blog.4d.com/orda-handle-an-event-driven-logic-during-data-persistence-actions) ::: -:::info Compatibility note +:::info Note de compatibilité -ORDA events in the datastore are equivalent to triggers in the 4D database. However, actions triggered at the 4D database level using the 4D classic language commands or standard actions do not trigger ORDA events. +Les événements d'entité ORDA dans le datastore sont équivalents aux triggers dans la base de données 4D. Cependant, les actions déclenchées au niveau de la base de données 4D à l'aide des commandes du langage classique 4D ou des actions standard ne déclenchent pas les événements ORDA. ::: ## Vue d’ensemble -### Event level +### Niveau de l'événement -A event function is always defined in the [Entity class](../ORDA/ordaClasses.md#entity-class). +Une fonction d'événement d'entité est toujours définie dans la [classe Entity](../ORDA/ordaClasses.md#entity-class). -It can be set at the **entity** level and/or the **attribute** level (it includes [**computed attributes**](../ORDA/ordaClasses.md#computed-attributes)). In the first case, it will be triggered for any attributes of the entity; on the other case, it will only be triggered for the targeted attribute. +Un événement peut être défini au niveau de l'**entité** et/ou de l'**attribut** (y compris les [**attributs calculés**](../ORDA/ordaClasses.md#computed-attributes)). Dans le premier cas, il sera déclenché pour tous les attributs de l'entité ; dans l'autre cas, il ne sera déclenché que pour l'attribut ciblé. -For the same event, you can define different functions for different attributes. +Pour un même événement, vous pouvez définir différentes fonctions pour différents attributs. -You can also define the same event at both attribute and entity levels. The attribute event is called first and then the entity event. +Vous pouvez également définir le même événement au niveau de l'attribut et de l'entité. L'événement attribut est appelé en premier, puis l'événement entité. -### Execution in remote configurations +### Exécution en configuration distante -Usually, ORDA events are executed on the server. +En général, les événements ORDA sont exécutés sur le serveur. -In client/server configuration however, the `touched()` event function can be executed on the **server or the client**, depending on the use of [`local`](./ordaClasses.md#local-functions) keyword. A specific implementation on the client side allows the triggering of the event on the client. +Cependant, dans une configuration client/serveur, la fonction d'événement `touched()` peut être exécutée sur **le serveur ou le client**, en fonction de l'utilisation du mot-clé [`local`](./ordaClasses.md#local-functions). Une implémentation spécifique côté client permet de déclencher l'événement sur le client. :::note -ORDA [`constructor()`](./ordaClasses.md#class-constructor) functions are always executed on the client. +Les fonctions ORDA [`constructor()`](./ordaClasses.md#class-constructor) sont toujours exécutées sur le client. ::: -With other remote configurations (i.e. Qodly applications, [REST API requests](../REST/REST_requests.md), or requests through [`Open datastore`](../commands/open-datastore.md)), the `touched()` event function is always executed **server-side**. It means that you have to make sure the server can "see" that an attribute has been touched to trigger the event (see below). +Avec d'autres configurations distantes (i.e. applications Qodly, [requêtes via l'API REST](../REST/REST_requests.md), ou requêtes via [`Open datastore`](../commands/open-datastore.md)), la fonction d'événement `touched()` est toujours exécutée **côté serveur**. Cela signifie que vous devez vous assurer que le serveur peut "voir" qu'un attribut a été touché pour déclencher l'événement (voir ci-dessous). -### Summary table +### Tableau de synthèse -The following table lists ORDA events along with their rules. +Le tableau suivant liste les événements d'entité ORDA ainsi que leurs règles. -| Evénement | Niveau | Function name | (C/S) Executed on | Can stop action by returning an error | -| :------------------------ | :------- | :------------------------------------------------------ | :------------------------------------------------------------------: | ------------------------------------- | -| Entity instantiation | Entity | [`constructor()`](./ordaClasses.md#class-constructor-1) | client | non | -| Attribute touched | Attribut | `event touched ()` | Depends on [`local`](../ORDA/ordaClasses.md#local-functions) keyword | non | -| | Entity | `event touched()` | Depends on [`local`](../ORDA/ordaClasses.md#local-functions) keyword | non | -| Before saving an entity | Attribut | `validateSave ()` | server | oui | -| | Entity | `validateSave()` | server | oui | -| When saving an entity | Attribut | `saving ()` | server | oui | -| | Entity | `saving()` | server | oui | -| After saving an entity | Entity | `afterSave()` | server | non | -| Before dropping an entity | Attribut | `validateDrop ()` | server | oui | -| | Entity | `validateDrop()` | server | oui | -| When dropping an entity | Attribut | `dropping ()` | server | oui | -| | Entity | `dropping()` | server | oui | -| After dropping an entity | Entity | `afterDrop()` | server | non | +| Evénement | Niveau | Nom de la fonction | (C/S) Exécuté sur | Peut arrêter l'action en renvoyant une erreur | +| :------------------------------------ | :------- | :------------------------------------------------------ | :-----------------------------------------------------------------: | --------------------------------------------- | +| Instanciation d'entité | Entity | [`constructor()`](./ordaClasses.md#class-constructor-1) | client | non | +| Attribut touched | Attribut | `event touched ()` | Dépend du mot-clé [`local`](../ORDA/ordaClasses.md#local-functions) | non | +| | Entity | `event touched()` | Dépend du mot-clé [`local`](../ORDA/ordaClasses.md#local-functions) | non | +| Avant l'enregistrement d'une entité | Attribut | `validateSave ()` | serveur | oui | +| | Entity | `validateSave()` | serveur | oui | +| Pendant l'enregistrement d'une entité | Attribut | `saving ()` | serveur | oui | +| | Entity | `saving()` | serveur | oui | +| Après l'enregistrement d'une entité | Entity | `afterSave()` | serveur | non | +| Avant la suppression d'une entité | Attribut | `validateDrop ()` | serveur | oui | +| | Entity | `validateDrop()` | serveur | oui | +| Pendant la suppression d'une entité | Attribut | `dropping ()` | serveur | oui | +| | Entity | `dropping()` | serveur | oui | +| Après la suppression d'une entité | Entity | `afterDrop()` | serveur | non | :::note -The [`constructor()`](./ordaClasses.md#class-constructor-1) function is not actually an event function but is always called when a new entity is instantiated. +La fonction [`constructor()`](./ordaClasses.md#class-constructor-1) n'est pas en soi une fonction d'événement, mais elle est toujours appelée lorsqu'une nouvelle entité est instanciée. ::: -## *event* parameter +## Paramètre *event* -Event functions accept a single *event* object as parameter. When the function is called, the parameter is filled with several properties: +Les fonctions d'événement acceptent un seul objet *event* comme paramètre. Lorsque la fonction est appelée, le paramètre est rempli avec diverses propriétés : -| Nom de propriété | Disponibilité | Type | Description | | -| :------------------ | :----------------------------------------------------------------------------------------------------------------------- | :------------------- | :-------------------------------------------------------------------------------------------------------------------- | - | -| "kind" | Toujours | String | Event name: "touched", "validateSave", "saving", "afterSave", "validateDrop", "dropping", "afterDrop" | | -| *attributeName* | Only for events implemented at attribute level ("validateSave", "saving", "validateDrop", "dropping") | String | Nom de l'attribut (*ex.* "firstname") | | -| *dataClassName* | Toujours | String | Nom du verre de données (*ex.* "Company") | | -| "savedAttributes" | Only in [`afterSave()`](#function-event-aftersave) | Collection of String | Names of attributes properly saved | | -| "droppedAttributes" | Only in [`afterDrop()`](#function-event-afterdrop) | Collection of String | Names of attributes properly dropped | | -| "saveStatus" | Only in [`afterSave()`](#function-event-aftersave) | String | "success" if the save was successful, "failed" otherwise | | -| "dropStatus" | Only in [`afterDrop()`](#function-event-afterdrop) | String | "success" if the drop was successful, "failed" otherwise | | +| Nom de propriété | Disponibilité | Type | Description | | +| :------------------ | :--------------------------------------------------------------------------------------------------------------------------------------- | :-------------------- | :----------------------------------------------------------------------------------------------------------------------------- | - | +| "kind" | Toujours | String | Nom de l'événement : "touched", "validateSave", "saving", "afterSave", "validateDrop", "dropping", "afterDrop" | | +| *attributeName* | Uniquement pour les événements définis au niveau des attributs ("validateSave", "saving", "validateDrop", "dropping") | String | Nom de l'attribut (*ex.* "firstname") | | +| *dataClassName* | Toujours | String | Nom du verre de données (*ex.* "Company") | | +| "savedAttributes" | Uniquement dans [`afterSave()`](#function-event-aftersave) | Collection de chaînes | Noms des attributs correctement enregistrés | | +| "droppedAttributes" | Uniquement dans [`afterDrop()`](#function-event-afterdrop) | Collection de chaînes | Noms des attributs correctement supprimés | | +| "saveStatus" | Uniquement dans [`afterSave()`](#function-event-aftersave) | String | "success" si l'enregistrement a réussi, "failed" sinon | | +| "dropStatus" | Uniquement dans [`afterDrop()`](#function-event-afterdrop) | String | "success" si la suppression a réussi, "failed" sinon | | -## Error object +## Objet error -[Some event functions](#summary-table) can return an **error object** to raise an error and stop the running action. +[Certaines fonctions d'événement](#summary-table) peuvent renvoyer un **objet error** pour déclencher une erreur et arrêter l'action en cours. -When an error occurs in an event, the other events are stopped at the first raised error and the action (save or drop) is also stopped. This error is sent before other potential errors like [stamp has changed, entity locked](../API/EntityClass.md#save), etc. +Lorsqu'une erreur survient dans un événement, les autres événements sont stoppés à la première erreur signalée et l'action (enregistrement pu suppression) est également arrêtée. Cette erreur est envoyée avant d'autres erreurs potentielles telles que [stamp has changed, entity locked](../API/EntityClass.md#save), etc. -### Error object properties +### Propriétés de l'objet error -| Propriété | Type | Description | Set by the developer | -| ------------------ | ------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ----------------------------------------- | -| errCode | Integer | Same as for [`Last errors`](../commands/last-errors.md) command | Oui | -| message | Text | Same as for [`Last errors`](../commands/last-errors.md) command | Oui | -| extraDescription | Object | Free information to set up | Oui | -| seriousError | Boolean | Used only with validate events (see below).
  • `True`: creates a [serious (unpredictable) error](../Concepts/error-handling.md#predictable-vs-unpredictable-errors) and triggers an exception. Adds the `dk status serious validation error` status
  • creates only a [silent (predictable) error](../Concepts/error-handling.md#predictable-vs-unpredictable-errors). Adds the `dk status validation failed` status
  • | Yes (default is false) | -| componentSignature | Text | Always "DBEV" | Non | +| Propriété | Type | Description | Fixé par le développeur | +| ------------------ | ------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------- | +| errCode | Integer | Identique à la commande [`Last errors`](../commands/last-errors.md) | Oui | +| message | Text | Identique à la commande [`Last errors`](../commands/last-errors.md) | Oui | +| extraDescription | Object | Informations libres à définir | Oui | +| seriousError | Boolean | Utilisé uniquement avec les événements de validation (voir ci-dessous).
  • `True` : crée une [erreur critique (imprévisible)](../Concepts/error-handling.md#predictable-vs-unpredictable-errors) et déclenche une exception. Ajoute le statut `dk status serious validation error`
  • ne crée qu'une [erreur silencieuse (prévisible)](../Concepts/error-handling.md#predictable-vs-unpredictable-errors). Ajoute le statut `dk status validation failed`.
  • | Oui (par défaut : False) | +| componentSignature | Text | Toujours "DBEV" | Non | -- [Serious errors](../Concepts/error-handling.md#predictable-vs-unpredictable-errors) are stacked in the `errors` collection property of the **Result object** returned by the [`save()`](../API/EntityClass.md#save) or [`drop()`](../API/EntityClass.md#drop) functions. -- In case of an error triggered by a **validate** event, the `seriousError` property allows you to choose the level of the error to generate: - - If **true**: a serious error is thrown and should be handled by the [error processing code](../Concepts/error-handling.md#predictable-vs-unpredictable-errors), such as a [try catch](../Concepts/error-handling.md#trycatchend-try). In the result object of the calling function, `status` gets `dk status serious validation error` and `statusText` gets "Serious Validation Error". The error is raised at the end of the event and reach the client requesting the save/drop action (REST client for example). - - If **false** (default): a [silent (predictable) error is generated](../Concepts/error-handling.md#predictable-vs-unpredictable-errors). It does not trigger any exception and is not stacked in the errors returned by the [`Last errors`](../commands/last-errors.md) command. In the result object of the calling function, `status` gets `dk status validation failed` and `statusText` gets "Mild Validation Error". -- In case of an error triggered by a **saving/dropping** event, when an error object is returned, the error is always raised as a serious error whatever the `seriousError` property value. +- Les [erreurs critiques](../Concepts/error-handling.md#predictable-vs-unpredictable-errors) sont empilées dans la collection de la propriété `errors` de l'objet **Result** renvoyé par les fonctions [`save()`](../API/EntityClass.md#save) ou [`drop()`](../API/EntityClass.md#drop). +- Dans le cas d'une erreur déclenchée par un événement **validate**, la propriété `seriousError` permet de choisir le niveau d'erreur à générer : + - Si **true** : une erreur critique est déclenchée et doit être traitée par le [code de traitement des erreurs](../Concepts/error-handling.md#predictable-vs-unpredictable-errors), tel qu'un ["try catch"](../Concepts/error-handling.md#trycatchend-try). Dans l'objet résultat de la fonction appelante, `status` vaut `dk status serious validation error` et `statusText` vaut "Serious Validation Error". L'erreur est levée à la fin de l'événement et parvient au client qui demande l'action d'enregistrement/suppression (client REST par exemple). + - Si **false** (défaut) : une [erreur silencieuse (prévisible) est générée](../Concepts/error-handling.md#predictable-vs-unpredictable-errors). Elle ne déclenche aucune exception et n'est pas empilée dans les erreurs retournées par la commande [`Last errors`](../commands/last-errors.md). Dans l'objet résultat de la fonction appelante, `status` vaut `dk status validation failed` et `statusText` vaut "Mild Validation Error". +- Dans le cas d'une erreur déclenchée par un événement **saving/dropping**, lorsqu'un objet d'erreur est renvoyé, l'erreur est toujours définie comme critique, quelle que soit la valeur de la propriété `seriousError`. -## Event function description +## Description des fonctions ### `Function event touched` @@ -128,19 +128,19 @@ When an error occurs in an event, the other events are stopped at the first rais // code ``` -This event is triggered each time a value is modified in the entity. +Cet événement est déclenché chaque fois qu'une valeur est modifiée dans l'entité. -- If you defined the function at the entity level (first syntax), it is triggered for modifications on any attribute of the entity. -- If you defined the function at the attribute level (second syntax), it is triggered only for modifications on this attribute. +- Si vous avez défini la fonction au niveau de l'entité (première syntaxe), elle est déclenchée pour des modifications sur n'importe quel attribut de l'entité. +- Si vous avez défini la fonction au niveau de l'attribut (deuxième syntaxe), elle n'est déclenchée que pour les modifications sur cet attribut. -This event is triggered as soon as the 4D Server / 4D engine can detect a modification of attribute value which can be due to the following actions: +Cet événement est déclenché dès que le moteur de 4D Server / 4D détecte une modification de la valeur de l'attribut qui peut être due aux actions suivantes : -- in **client/server with the [`local` keyword](../ORDA/ordaClasses.md#local-functions)** or in **4D single-user**: - - the user sets a value on a 4D form, - - the 4D code makes an assignment with the `:=` operator. The event is also triggered in case of self-assignment (`$entity.attribute:=$entity.attribute`). -- in **client/server without the `local` keyword**: some 4D code that makes an assignment with the `:=` operator is [executed on the server](../commands-legacy/execute-on-server.md). -- in **client/server without the `local` keyword**, in **[Qodly application](https://developer.qodly.com/docs)** and **[remote datastore](../commands/open-datastore.md)**: the entity is received on 4D Server while calling an ORDA function (on the entity or with the entity as parameter). It means that you might have to implement a *refresh* or *preview* function on the remote application that sends an ORDA request to the server and triggers the event. -- with the REST server: the value is received on the REST server with a [REST request](../REST/$method.md#methodupdate) (`$method=update`) +- en **client/serveur avec le [mot-clé `local`](../ORDA/ordaClasses.md#local-functions)** ou en **4D mono-utilisateur** : + - l'utilisateur saisit une valeur dans un formulaire 4D, + - le code 4D effectue une assignation avec l'opérateur `:=`. L'événement est également déclenché en cas d'auto-assignation (`$entity.attribute:=$entity.attribute`). +- en **client/serveur sans le mot-clé `local`** : du code 4D effectue une assignation avec l'opérateur `:=` est [exécuté sur le serveur](../commands-legacy/execute-on-server.md). +- en **client/serveur sans le mot-clé `local`**, une **[application Qodly](https://developer.qodly.com/docs)** ou **[datastore distant](../commands/open-datastore.md)** : l'entité est reçue sur le serveur 4D lors de l'appel d'une fonction ORDA (sur l'entité ou avec l'entité en tant que paramètre). Cela signifie que vous devrez peut-être mettre en place une fonction *refresh* ou *preview* sur l'application distante qui envoie une requête ORDA au serveur et déclenche l'événement. +- avec le serveur REST : la valeur est reçue sur le serveur REST avec une [requête REST](../REST/$method.md#methodupdate) (`$method=update`) The function receives an [*event* object](#event-parameter) as parameter. diff --git a/i18n/fr/docusaurus-plugin-content-docs/current/assets/en/FormEditor/fluent-dark.png b/i18n/fr/docusaurus-plugin-content-docs/current/assets/en/FormEditor/fluent-dark.png new file mode 100644 index 00000000000000..fe35b22f4c5438 Binary files /dev/null and b/i18n/fr/docusaurus-plugin-content-docs/current/assets/en/FormEditor/fluent-dark.png differ diff --git a/i18n/fr/docusaurus-plugin-content-docs/current/assets/en/FormEditor/fluent.png b/i18n/fr/docusaurus-plugin-content-docs/current/assets/en/FormEditor/fluent.png new file mode 100644 index 00000000000000..f8ece4b7fb5fbb Binary files /dev/null and b/i18n/fr/docusaurus-plugin-content-docs/current/assets/en/FormEditor/fluent.png differ diff --git a/i18n/fr/docusaurus-plugin-content-docs/version-19/ORDA/dsMapping.md b/i18n/fr/docusaurus-plugin-content-docs/version-19/ORDA/dsMapping.md index 08f36d867a5392..b1b1098459a8b0 100644 --- a/i18n/fr/docusaurus-plugin-content-docs/version-19/ORDA/dsMapping.md +++ b/i18n/fr/docusaurus-plugin-content-docs/version-19/ORDA/dsMapping.md @@ -67,7 +67,7 @@ A datastore object is handled through functions and properties of the [**DataSto Lorsqu'il est géré via le code, le datastore est un objet dont les propriétés sont toutes les [dataclasses](#dataclass) ayant été spécifiquement exposées. -4d vous permet de gérer les datastores suivants : +4D vous permet de gérer les datastores suivants : * le datastore local, fondé sur la base 4D courante, retourné par la commande `ds` (le datastore principal). * un ou plusieurs datastores distants, exposés en tant que ressources RESET dans des bases 4D distantes, retournés par la commande `Ouvrir datastore`. @@ -154,12 +154,12 @@ Prenons l'exemple de la structure de base de données partielle suivante et les ![](../assets/en/ORDA/relationProperties.png) -Tous les attributs relationnels seront disponibles automatiquement : +Tous les attributs de stockage seront disponibles automatiquement : * dans la dataclass Project : "ID", "name", et "companyID" * dans la dataclass Company : "ID", "name", et "discount" -En outre, les attributs relationnels suivant seront également disponibles automatiquement : +En outre, les attributs relationnels suivants seront également disponibles automatiquement : * dans la dataclass Project : l'attribut **theClient**, du type "relatedEntity" ; il y a au plus une compagnie pour chaque projet (le client) * dans la dataclass Company : l'attribut **companyProjects**, du type "relatedEntities" ; pour chaque compagnie, il existe un certain nombre de projets reliés. @@ -235,7 +235,7 @@ Les entity selections triées sont créées uniquement lorsque cela est nécessa * résultat d'un `orderBy()` sur une sélection (de n'importe quel type) ou un `orderBy()` sur une dataclass, * résultat de la méthode `newSelection()` avec l'option `dk keep ordered` -Les sélections d'entités non-triées sont créées dans les cas suivants : +Les entity selections non-triées sont créées dans les cas suivants : * résultat d'un `query()` standard sur une sélection (de n'importe quel type) ou un `query()` sur une dataclass, * résultat de la méthode `newSelection()` sans option, diff --git a/i18n/fr/docusaurus-plugin-content-docs/version-20-R10/FormEditor/properties_FormSize.md b/i18n/fr/docusaurus-plugin-content-docs/version-20-R10/FormEditor/properties_FormSize.md index 6ab25ecd64f45e..f7d879c24c7fac 100644 --- a/i18n/fr/docusaurus-plugin-content-docs/version-20-R10/FormEditor/properties_FormSize.md +++ b/i18n/fr/docusaurus-plugin-content-docs/version-20-R10/FormEditor/properties_FormSize.md @@ -11,15 +11,15 @@ Les options de taille dépendent de la valeur de l'option **Taille basée sur**. ## Taille basée sur -- **Automatic Size**: The size of the form will be that necessary to display all the objects, to which will be added the margin values (in pixels) entered in the [**Hor Margin**](#hor-margin) and [**Vert Margin**](#vert-margin) fields. +- **Taille automatique** : La taille du formulaire sera celle nécessaire à l'affichage de tous les objets, à laquelle s'ajouteront les valeurs de marge (en pixels) saisies dans les champs [**Marge hor.**](#hor-margin) et [**Marge vert.**](#vert-margin). Vous pouvez choisir cette option lorsque vous souhaitez utiliser des objets actifs placés dans une zone hors écran (c'est-à-dire en dehors du rectangle de délimitation de la fenêtre) avec une fenêtre de taille automatique. Grâce à cette option, la présence de ces objets ne modifiera pas la taille de la fenêtre. -- **Set Size**: The size of the form will be based on what you enter (in pixels) in the [**Width**](#width) and [**Height**](#height) fields. +- **Fixer taille** : La taille du formulaire sera basée sur ce que vous entrez (en pixels) dans les champs [**Largeur**](#width) and [**Hauteur**](#height). -- `\`: The size of the form will be based on the position of the selected form object. Par exemple, si vous choisissez un objet qui est placé dans la partie inférieure droite de la zone à afficher, la taille du formulaire sera constituée d'un rectangle dont le coin supérieur gauche sera l'origine du formulaire et le coin inférieur droit correspondra à celle de l'objet sélectionné, plus les éventuelles valeurs de marge. +- `` : La taille du formulaire sera basée sur la position de l'objet du formulaire sélectionné. Par exemple, si vous choisissez un objet qui est placé dans la partie inférieure droite de la zone à afficher, la taille du formulaire sera constituée d'un rectangle dont le coin supérieur gauche sera l'origine du formulaire et le coin inférieur droit correspondra à celle de l'objet sélectionné, plus les éventuelles valeurs de marge. -> For output forms, only the [**Hor margin**](#hor-margin) or [**Width**](#width) fields are available. +> Pour les formulaires de sortie, seuls les champs [**Marge hor.**](#hor-margin) ou [**Largeur**](#width) sont disponibles. #### Grammaire JSON @@ -43,7 +43,7 @@ Hauteur du formulaire (en pixels) lorsque la [taille du formulaire](#size-based- ## Marge hor. -Valeur à ajouter (en pixels) à la marge droite du formulaire lorsque la [taille du formulaire](#size-based-on) est définie sur **Taille automatique** ou `\` +Valeur à ajouter (en pixels) à la marge droite du formulaire lorsque la [taille du formulaire](#size-based-on) est définie sur **Taille automatique** ou `\` Cette valeur détermine également les marges droites des formulaires utilisés dans l'éditeur d'étiquettes. @@ -57,7 +57,7 @@ Cette valeur détermine également les marges droites des formulaires utilisés ## Marge hor. -Value to add (in pixels) to the bottom margin of the form when the [form size](#size-based-on) is **Automatic size** or `\`. +Valeur à ajouter (en pixels) à la marge inférieure du formulaire lorsque la [taille du formulaire](#size-based-on) est définie sur **Taille automatique** ou `\`. Cette valeur détermine également les marges supérieures des formulaires utilisés dans l'éditeur d'étiquettes. diff --git a/i18n/fr/docusaurus-plugin-content-docs/version-20-R10/ORDA/client-server-optimization.md b/i18n/fr/docusaurus-plugin-content-docs/version-20-R10/ORDA/client-server-optimization.md index 5cc95b6062eb55..090b1b0011716a 100644 --- a/i18n/fr/docusaurus-plugin-content-docs/version-20-R10/ORDA/client-server-optimization.md +++ b/i18n/fr/docusaurus-plugin-content-docs/version-20-R10/ORDA/client-server-optimization.md @@ -3,7 +3,7 @@ id: client-server-optimization title: Optimisation client/serveur --- -4D optimise automatiquement les requêtes ORDA qui utilisent des entity selections ou chargent des entités dans l'architecture client/serveur. Ces optimisations accélèrent l'exécution de votre application 4D en réduisant drastiquement le volume d'informations transmises sur le réseau. Elles incluent : +En architecture client/serveur, 4D optimise automatiquement les requêtes ORDA qui utilisent des entity selections ou chargent des entités. Ces optimisations accélèrent l'exécution de votre application 4D en réduisant drastiquement le volume d'informations transmises sur le réseau. Elles incluent : - le **contexte d'optimisation** - le **Cache ORDA** @@ -27,7 +27,7 @@ Le contexte d'optimisation est fondé sur ce qui suit : - [`dataClass.query()`](../API/DataClassClass.md#query) - [`entitySelection.query()`](../API/EntitySelectionClass.md#query) -- Les requêtes ultérieures envoyées au serveur sur la même entity selection réutilisent automatiquement le contexte d'optimisation et lisent uniquement les attributs nécessaires depuis le serveur, ce qui accélère le traitement. Les requêtes ultérieures envoyées au serveur sur la même entity selection réutilisent automatiquement le contexte d'optimisation et lisent uniquement les attributs nécessaires depuis le serveur, ce qui accélère le traitement. L'affichage des lignes suivantes est optimisé. Les fonctions suivantes associent automatiquement le contexte d'optimisation de l'entity selection d'origine à l'entity selection retournée : +- Les requêtes ultérieures envoyées au serveur sur la même entity selection réutilisent automatiquement le contexte d'optimisation et lisent uniquement les attributs nécessaires depuis le serveur, ce qui accélère le traitement. Par exemple, dans une [list box de type entity selection](#entity-selection-based-list-box), la phase d'apprentissage a lieu pendant l'affichage de la première ligne. L'affichage des lignes suivantes est optimisé. Les fonctions suivantes associent automatiquement le contexte d'optimisation de l'entity selection d'origine à l'entity selection retournée : - [`entitySelection.and()`](../API/EntitySelectionClass.md#and) - [`entitySelection.minus()`](../API/EntitySelectionClass.md#minus) - [`entitySelection.or()`](../API/EntitySelectionClass.md#or) @@ -35,7 +35,7 @@ Le contexte d'optimisation est fondé sur ce qui suit : - [`entitySelection.slice()`](../API/EntitySelectionClass.md#slice) - [`entitySelection.drop()`](../API/EntitySelectionClass.md#drop) -- An existing optimization context can be passed as a property to another entity selection of the same dataclass, thus bypassing the learning phase and accelerating the application (see [Reusing the context property](#reusing-the-context-property) below). +- Un contexte d'optimisation existant peut être passé en tant que propriété à une autre entity selection de la même dataclass, ce qui permet d'économiser la phase d'apprentissage et d'accélérer l'application (voir [Réutilisation de la propriété context](#reusing-the-context-property) ci-dessous). - Vous pouvez créer des contextes d'optimisation manuellement à l'aide de la fonction [`dataStore.setRemoteContextInfo()`](../API/DataStoreClass.md#setremotecontextinfo) (voir [Préconfiguration des contextes](#preconfiguring-contexts)). @@ -66,7 +66,7 @@ Vous pouvez augmenter les avantages de l'optimisation en utilisant la propriét > Vous pouvez également créer des contextes en utilisant la fonction [`.setRemoteContextInfo()`](../API/DataStoreClass.md#setremotecontextinfo). -Une même propriété de contexte d'optimisation peut être passée à un nombre illimité d"entity selections de la même dataclass. Une même propriété de contexte d'optimisation peut être passée à un nombre illimité d"entity selections de la même dataclass. Il est toutefois important de garder à l'esprit qu'un contexte est automatiquement mis à jour lorsque de nouveaux attributs sont utilisés dans d'autres parties du code. Si le même contexte est réutilisé dans différents codes, il risque d'être surchargé et de perdre en efficacité. +Une même propriété de contexte d'optimisation peut être passée à un nombre illimité d"entity selections de la même dataclass. Toutes les fonctions ORDA qui gèrent les entity selections prennent en charge la propriété **context** (par exemple [`dataClass.query()`](../API/DataClassClass.md#query) ou [`dataClass.all()`](../API/DataClassClass.md#all)). Il est toutefois important de garder à l'esprit qu'un contexte est automatiquement mis à jour lorsque de nouveaux attributs sont utilisés dans d'autres parties du code. Si le même contexte est réutilisé dans différents codes, il risque d'être surchargé et de perdre en efficacité. > Un mécanisme similaire est implémenté pour les entités qui sont chargées, de sorte que seuls les attributs utilisés sont demandés (voir la fonction [`dataClass.get()`](../API/DataClassClass.md#get)). @@ -77,22 +77,22 @@ Une même propriété de contexte d'optimisation peut être passée à un nombre var $data : Collection $querysettings:=New object("context";"shortList") $querysettings2:=New object("context";"longList") - + $sel1:=ds.Employee.query("lastname = S@";$querysettings) - $data:=extractData($sel1) // In extractData method an optimization is triggered - // and associated to context "shortList" - + $data:=extractData($sel1) // dans la méthode extractData un contexte d'optimisation + // est généré et associé au contexte "shortList" + $sel2:=ds.Employee.query("lastname = Sm@";$querysettings) - $data:=extractData($sel2) // In extractData method the optimization associated - // to context "shortList" is applied - + $data:=extractData($sel2) // dans la méthode extractData le contexte d'optimisation + // associé au contexte "shortList" est appliqué + $sel3:=ds.Employee.query("lastname = Smith";$querysettings2) - $data:=extractDetailedData($sel3) // In extractDetailedData method an optimization - // is triggered and associated to context "longList" - + $data:=extractDetailedData($sel3) // dans la méthode extractDetailedData un contexte d'optimisation + // est généré et associé au contexte "longList" + $sel4:=ds.Employee.query("lastname = Brown";$querysettings2) - $data:=extractDetailedData($sel4) // In extractDetailedData method the optimization - // associated to context "longList" is applied + $data:=extractDetailedData($sel4) // dans extractDetailedData le contexte d'optimisation + // associé au contexte "longList" est appliqué ``` ### List box de type entity selection @@ -133,7 +133,7 @@ Pour des raisons d'optimisation, les données demandées au serveur via ORDA son Les données contenues dans le cache sont considérées comme expirées lorsque le délai d'attente est atteint. Tout accès à des données périmées provoquera l'envoi d'une requête au serveur. Les données périmées restent dans le cache jusqu'à ce que l'on ait besoin d'espace. -You can force entity selection data in the ORDA cache to expire at any moment by using the [`refresh()`](../API/EntitySelectionClass.md#refresh) function. +Vous pouvez forcer les données de sélection d'entité dans le cache ORDA à expirer à tout moment en utilisant la fonction [`refresh()`](../API/EntitySelectionClass.md#refresh). Par défaut, le cache ORDA est géré de manière transparente par 4D. Cependant, vous pouvez contrôler son contenu en utilisant les fonctions ORDA suivantes : diff --git a/i18n/fr/docusaurus-plugin-content-docs/version-20-R10/ORDA/dsMapping.md b/i18n/fr/docusaurus-plugin-content-docs/version-20-R10/ORDA/dsMapping.md index 15c307c47cc3e3..e5dbe4896d20e7 100644 --- a/i18n/fr/docusaurus-plugin-content-docs/version-20-R10/ORDA/dsMapping.md +++ b/i18n/fr/docusaurus-plugin-content-docs/version-20-R10/ORDA/dsMapping.md @@ -3,15 +3,15 @@ id: dsmapping title: Objets du modèle de données --- -The ORDA technology is based upon an automatic mapping of an underlying [database structure](https://doc.4d.com/4Dv20/4D/20.2/Creating-a-database-structure.200-6750097.en.html). Elle permet également d'accéder aux données via des objets sélection d'entités (entity selection) et entité (entity). Par conséquent, ORDA expose la base de données entière comme un ensemble d'objets de modèle de données. +La technologie ORDA est basée sur une correspondance automatique d'une [structure de base de données](https://doc.4d.com/4Dv20/4D/20.2/Creating-a-database-structure.200-6750097.en.html) sous-jacente. Elle permet également d'accéder aux données via des objets sélection d'entités (entity selection) et entité (entity). Par conséquent, ORDA expose la base de données entière comme un ensemble d'objets de modèle de données. ## Correspondance de la structure Lorsque vous appelez un datastore à l'aide de la commande [`ds`](commands/ds.md) ou [`Open datastore`](commands/open-datastore.md), 4D référence automatiquement les tables et les champs de la structure 4D correspondante en tant que propriétés de l'objet [datastore](#datastore) renvoyé : -- Tables are mapped to [dataclasses](#dataclass). -- Fields are mapped to [storage attributes](#storage-and-relation-attributes). -- Relations are mapped to [relation attributes](#storage-and-relation-attributes) - relation names, defined in the [Structure editor](https://doc.4d.com/4Dv20/4D/20.2/Creating-and-modifying-relations.300-6750296.en.html), are used as relation attribute names. +- Les tables correspondent à des [dataclasses](#dataclass). +- Les champs correspondent à des [attributs de stockage](#storage-and-relation-attributes). +- Les liens correspondent à des [attributs relationnels](#storage-and-relation-attributes) - les noms des liens, définis dans l'[éditeur de structure](https://doc.4d.com/4Dv20/4D/20.2/Creating-and-modifying-relations.300-6750296.en.html), sont utilisés comme noms d'attributs de relation. ![](../assets/en/ORDA/datastoreMapping.png) @@ -19,7 +19,7 @@ Lorsque vous appelez un datastore à l'aide de la commande [`ds`](commands/ds.md Les règles suivantes s'appliquent à toutes les conversions : -- Les noms de table, de champ et de relation correspondent à des noms de propriété d'objet. Assurez-vous que ces noms sont conformes aux règles générales de dénomination des objets, comme expliqué dans la section [Conventions de dénomination des objets](Concepts/identifiers.md). +- Les noms de table, de champ et de relation correspondent à des noms de propriété d'objet. Assurez-vous que ces noms sont conformes aux règles générales de dénomination des objets, comme expliqué dans la section [consacrée aux identifiants](Concepts/identifiers.md). - Un datastore ne référence que les tables avec une seule clé primaire. Les tables suivantes ne sont pas référencées : - Tables sans clé primaire - Tables avec clés primaires composites. @@ -28,12 +28,12 @@ Les règles suivantes s'appliquent à toutes les conversions : > La correspondance ORDA ne prend pas en compte : > > - l'option "Invisible" pour les tables ou les champs, -> - the virtual structure defined through [`SET TABLE TITLES`](../commands-legacy/set-table-titles.md) or [`SET FIELD TITLES`](../commands-legacy/set-field-titles.md), +> - la structure virtuelle définie par [`SET TABLE TITLES`](../commands-legacy/set-table-titles.md) et [`SET FIELD TITLES`](../commands-legacy/set-field-titles.md), > - la propriété "manuelle" ou "automatique" des relations. ### Règles de contrôle d'accès à distance -Lorsque vous accédez à un datastore distant via la commande `Ouvrir datastore` ou des [requêtes REST](REST/gettingStarted.md), seules les tables et les champs avec la propriété de ressource **Expose as REST resource** sont disponibles à distance. +Lorsque vous accédez à un datastore distant via la commande `Open datastore` ou des [requêtes REST](REST/gettingStarted.md), seuls les tables et les champs avec la propriété **Exposer avec le service REST** sont disponibles à distance. Cette option doit être choisie au niveau de la structure 4D pour chaque table et chaque champ que vous souhaitez voir apparaître comme dataclass et attribut dans le datastore : @@ -47,12 +47,12 @@ Toute modification apportée à la structure de la base invalide la couche coura - le renommage d'une table, d'un champ ou d'une relation - la modification d'une propriété principale d'un champ (type, unique, index, autoincrement, valeur null) -Lorsque la couche courante de données ORDA est invalidée, elle est automatiquement rechargée et mise à jour dans les prochains appels du datastore local `ds` vers 4D et 4D Server. A noter que les références existantes vers des objets ORDA tels que des entités ou des sélections d'entités continueront d'utiliser les données à partir desquelles elles ont été créées, et ce jusqu'à ce qu'elles soient regénérées. +Lorsque le modèle ORDA courant est invalidé, il est automatiquement rechargé et mis à jour dans les appels ultérieurs du datastore local `ds` sur 4D et 4D Server. A noter que les références existantes vers des objets ORDA tels que des entités ou des sélections d'entités continueront d'utiliser les données à partir desquelles elles ont été créées, et ce jusqu'à ce qu'elles soient regénérées. Toutefois, la couche de données ORDA mise à jour n'est pas automatiquement disponible dans les contextes suivants : - une application 4D distante connectée à 4D Server -- l'application distante doit être reconnectée au serveur. -- un datastore distant ouvert à l'aide de `Ouvrir datastore` ou des [appels REST](REST/gettingStarted.md) -- une nouvelle session doit être ouverte. +- un datastore distant ouvert à l'aide de `Open datastore` ou des [appels REST](REST/gettingStarted.md) -- une nouvelle session doit être ouverte. ## Définitions des objets @@ -63,14 +63,14 @@ Un datastore est l'objet d'interface d'une base de données. Il crée une repré - Le modèle contient et décrit toutes les dataclasses qui composent le datastore. Il est indépendant de la base de données sous-jacente. - Les données se réfèrent à l'information qui va être utilisée et stockée dans ce modèle. Par exemple, les noms, adresses et dates de naissance des employés sont des éléments de données que vous pouvez utiliser dans un datastore. -A datastore object is handled through functions and properties of the [**DataStore**](../API/DataStoreClass.md) class. +Un objet datastore est géré par les fonctions et les propriétés de la classe [**DataStore**](../API/DataStoreClass.md). Lorsqu'il est géré via le code, le datastore est un objet dont les propriétés sont toutes les [dataclasses](#dataclass) ayant été spécifiquement exposées. -4d vous permet de gérer les datastores suivants : +4D vous permet de gérer les datastores suivants : - le datastore local, fondé sur la base 4D courante, retourné par la commande `ds` (le datastore principal). -- un ou plusieurs datastores distants, exposés en tant que ressources RESET dans des bases 4D distantes, retournés par la commande `Ouvrir datastore`. +- un ou plusieurs datastores distants, exposés en tant que ressources RESET dans des bases 4D distantes, retournés par la commande `Open datastore`. Un datastore ne référence qu'une seule base de données locale ou distante. @@ -88,21 +88,21 @@ Les propriétés du datastore sont toutefois énumérables : //$prop contient les noms de toutes les dataclasses ``` -Le datastore principal (par défaut) est toujours disponible via la commande `ds`, mais la commande `Ouvrir datastore` permet de référencer n'importe quel datastore distant. +Le datastore principal (par défaut) est toujours disponible via la commande `ds`, mais la commande `Open datastore` permet de référencer n'importe quel datastore distant. ### Dataclass Une dataclasse est l'équivalent d'une table. Elle est utilisée comme modèle d'objet et référence tous les champs comme attributs, y compris les attributs relationnels (attributs construits à partir des relations entre les dataclasses). Les attributs relationnels peuvent être utilisés dans les requêtes comme tout autre attribut. -A dataclass object is handled through functions and properties of the [**DataClass**](../API/DataClassClass.md) class. +Un objet dataclass est géré par les fonctions et les propriétés de la classe [**DataClass**](../API/DataClassClass.md). -Toutes les dataclasses d'un projet 4D sont disponibles en tant que propriété du datastore `ds`. Pour les datastores distants accédés via `Open datastore` ou les [requêtes REST](REST/gettingStarted.md), l'option **Exposer comme ressource REST** doit être sélectionnée au niveau de la structure 4D pour chaque table que vous souhaitez exposer en tant que dataclass du datastore. +Toutes les dataclasses d'un projet 4D sont disponibles en tant que propriété du datastore `ds`. Pour les datastores distants accédés via `Open datastore` ou les [requêtes REST](REST/gettingStarted.md), l'option **Exposer avec le service REST** doit être sélectionnée au niveau de la structure 4D pour chaque table que vous souhaitez exposer en tant que dataclass du datastore. Par exemple, considérons cette table dans la structure suivante : ![](../assets/en/ORDA/companyTable.png) -La table `Company` est automatiquement disponible en tant que dataclasse dans la banque de données `ds`. Vous pouvez écrire : +La table `Company` est automatiquement disponible en tant que dataclass dans le datastore `ds`. Vous pouvez écrire : ```4d var $compClass : cs.Company //déclare une variable objet $compClass de la classe Company @@ -139,10 +139,10 @@ Les propriétés de dataclass sont des objets attribut décrivant les champs ou $revenuesAttribute:=ds.Company["revenues"] //méthode alternative ``` -Ce code attribue à `$nameAttribute` et `$revenuesAttribute` des références aux attributs name et revenues de la classe `Company`. This syntax does NOT return values held inside of the attribute, but instead returns references to the attributes themselves [with their **attribute properties**](../API/DataClassClass.md#attributename). +Ce code attribue à `$nameAttribute` et `$revenuesAttribute` des références aux attributs name et revenues de la classe `Company`. Cette syntaxe ne renvoie PAS les valeurs contenues dans l'attribut, mais des références aux attributs eux-mêmes [avec leurs **propriétés d'attribut**](../API/DataClassClass.md#attributename). Pour gérer les valeurs, vous devez passer par les [Entités](#entite). -Tous les fichiers éligibles d'une table sont disponibles en tant qu'attributs de leur [dataclass](#dataclass) parente. Pour les datastores distants accessibles via `Open datastore` ou les [requêtes REST](REST/gettingStarted.md), l'option **Exposer comme ressource REST** doit être sélectionnée au niveau de la structure 4D pour chaque champ que vous souhaitez exposer en tant qu'attribut de dataclass. +Tous les champs éligibles d'une table sont disponibles en tant qu'attributs de leur [dataclass](#dataclass) parente. Pour les datastores distants accessibles via `Open datastore` ou les [requêtes REST](REST/gettingStarted.md), l'option **Exposer avec le service REST** doit être sélectionnée au niveau de la structure 4D pour chaque champ que vous souhaitez exposer en tant qu'attribut de dataclass. #### Attributs de stockage et relationnels @@ -155,12 +155,12 @@ Prenons l'exemple de la structure de base de données partielle suivante et les ![](../assets/en/ORDA/relationProperties.png) -Tous les attributs relationnels seront disponibles automatiquement : +Tous les attributs de stockage seront disponibles automatiquement : - dans la dataclass Project : "ID", "name", et "companyID" - dans la dataclass Company : "ID", "name", et "discount" -En outre, les attributs relationnels suivant seront également disponibles automatiquement : +En outre, les attributs relationnels suivants seront également disponibles automatiquement : - dans la dataclass Project : l'attribut **theClient**, du type "relatedEntity" ; il y a au plus une compagnie pour chaque projet (le client) - dans la dataclass Company : l'attribut **companyProjects**, du type "relatedEntities" ; pour chaque compagnie, il existe un certain nombre de projets reliés. @@ -175,7 +175,7 @@ Gardez à l'esprit que ces objets décrivent des attributs, mais ne donnent pas #### Attributs calculés et Alias -Les [attributs calculés](ordaClasses.md#computed-attributes) et les[attributs alias](ordaClasses.md#alias-attributes) sont des attributs "virtuels". Leur valeur n'est pas stockée mais évaluée à chaque fois qu'on y accède. Ils n'appartiennent pas à la structure sous-jacente de la base, mais ils se basent sur elle et peuvent être utilisés comme n'importe quel champ du modèle de données. +Les [attributs calculés](ordaClasses.md#computed-attributes) et les [attributs alias](ordaClasses.md#alias-attributes) sont des attributs "virtuels". Leur valeur n'est pas stockée mais évaluée à chaque fois qu'on y accède. Ils n'appartiennent pas à la structure sous-jacente de la base, mais ils se basent sur elle et peuvent être utilisés comme n'importe quel champ du modèle de données. ### Entity @@ -183,7 +183,7 @@ Une entité est l'équivalent d'un enregistrement. Il s'agit d'un objet qui fait Le but de l'entité est de gérer les données (créer, mettre à jour, supprimer). Lorsqu'une référence d'entité est obtenue au moyen d'une sélection d'entité, elle conserve également des informations sur la sélection d'entité qui permet une itération à travers la sélection. -An entity object is handled through functions and properties of the [**Entity**](../API/EntityClass.md) class. +Un objet entité est géré par les fonctions et les propriétés de la classe [**Entity**](../API/EntityClass.md). L'objet entité lui-même ne peut pas être copié en tant qu'objet : @@ -203,7 +203,7 @@ Les propriétés de l'entité sont toutefois énumérables : Une entity selection est un objet contenant une ou plusieurs référence(s) à des entités appartenant à la même dataclasse. Elle est généralement créée à la suite d'une requête ou retournée à partir d'un attribut relationnel. Une entity selection peut contenir 0, 1 ou X entités de la dataclass - où X peut représenter le nombre total d'entités contenues dans la dataclass. -An entity selection object is handled through functions and properties of the [**EntitySelection**](../API/EntitySelectionClass.md) class. +Un objet Entity selection est géré par les fonctions et les propriétés de la classe [**EntitySelection**](../API/EntitySelectionClass.md). Voici un exemple : @@ -233,18 +233,18 @@ Les propriétés des entity selections sont toutefois énumérables : #### Entity selections triées vs Entity selections non-triées -Pour des raisons d'optimisation, par défaut, 4D ORDA crée généralement des sélections d'entités non-ordonnées, sauf lorsque vous utilisez la méthode `orderBy( )` ou si vous utilisez les options appropriées. Dans cette documentation, sauf indication contraire, "entity selection" fait généralement référence à une "entity selection non-triée". +Pour des raisons d'optimisation, par défaut, 4D ORDA crée généralement des entity selections non-ordonnées, sauf lorsque vous utilisez la méthode `orderBy()` ou si vous utilisez les options appropriées. Dans cette documentation, sauf indication contraire, "entity selection" fait généralement référence à une "entity selection non-triée". Les entity selections triées sont créées uniquement lorsque cela est nécessaire ou lorsqu'elles sont spécifiquement demandées à l'aide d'options, c'est-à-dire dans les cas suivants : -- résultat d'un `orderBy( )` sur une sélection (de n'importe quel type) ou un `orderBy( )` sur une dataclass, -- résultat de la méthode `newSelection( )` avec l'option `dk keep ordered` +- résultat d'un `orderBy()` sur une sélection (de n'importe quel type) ou un `orderBy()` sur une dataclass, +- résultat de la méthode `newSelection()` avec l'option `dk keep ordered` -Les sélections d'entités non-triées sont créées dans les cas suivants : +Les entity selections non-triées sont créées dans les cas suivants : - résultat d'un `query()` standard sur une sélection (de n'importe quel type) ou un `query()` sur une dataclass, - résultat de la méthode `newSelection()` sans option, -- résultat de l'une des méthodes de comparaison, quel que soit le type de sélection saisi : `or()`, `and()`, `minus()`. +- résultat de l'une des méthodes de comparaison, quel que soit le type de sélection d'origine : `or()`, `and()`, `minus()`. > Les entity selections suivantes sont toujours **triées** : > diff --git a/i18n/fr/docusaurus-plugin-content-docs/version-20-R10/ORDA/entities.md b/i18n/fr/docusaurus-plugin-content-docs/version-20-R10/ORDA/entities.md index 50d4730852d6fa..307430b46754dd 100644 --- a/i18n/fr/docusaurus-plugin-content-docs/version-20-R10/ORDA/entities.md +++ b/i18n/fr/docusaurus-plugin-content-docs/version-20-R10/ORDA/entities.md @@ -120,7 +120,7 @@ $entity.save() //sauvegarder les modifications :::note Notes -- Database Object fields can be [associated with classes](../Develop/field-properties.md), in which case only objects of the defined class can be assigned to the entity attribute. +- Les champs objet de la base de données peuvent être [associés à des classes](../Develop/field-properties.md), auquel cas seuls les objets de la classe définie peuvent être affectés à l'attribut de l'entité. - Les champs Blob des bases de données ([blobs scalaires](Concepts/dt_blob.md)) sont automatiquement convertis en attributs d'objets blob ([`4D.Blob`](Concepts/dt_blob.md)) lorsqu'ils sont traités par ORDA. Lorsque vous sauvegardez un attribut d'objet blob, gardez à l'esprit que, contrairement à la taille de l'objet blob qui n'est limitée que par la mémoire disponible, la taille du champ Blob est limitée à 2 Go. ::: @@ -288,7 +288,7 @@ La nature **partageable** ou **modifiable** d'une entity selection est définie Une nouvelle entity selection est **partageable** dans les cas suivants : -- la nouvelle entity selection résulte d'une fonction de classe ORDA appliquée à une dataClass : [dataClass.all()](API/DataClassClass.md#all), [dataClass.fromCollection()](API/DataClassClass.md#fromcollection), [dataClass.query()](API/DataClassClass.md#quer +- la nouvelle entity selection résulte d'une fonction de classe ORDA appliquée à une dataClass : [dataClass.all()](API/DataClassClass.md#all), [dataClass.fromCollection()](API/DataClassClass.md#fromcollection), [dataClass.query()](API/DataClassClass.md#query), - la nouvelle entity selection est basée sur une relation [entity.*attributeName*](API/EntityClass.md#attributename) (par exemple, "company.employees") lorsque *attributeName* est un attribut lié 1-vers-N mais que l'entité n'appartient pas à une entity selection. - la nouvelle entity selection est explicitement copiée comme partageable avec [entitySelection.copy()](API/EntitySelectionClass.md#copy) ou `OB Copy` (c'est-à-dire avec l'option `ck shared`). @@ -449,7 +449,7 @@ Les filtres s'appliquent aux **entités**. Si vous souhaitez restreindre l'accè ### Comment définir un filtre de restriction -You create a filter for a dataclass by defining an `event restrict` function in the [**dataclass class**](dsMapping.md#dataclass) of the dataclass. Le filtre est alors automatiquement activé. +Vous créez un filtre pour une dataclass en définissant une fonction `event restrict` dans la [**classe**](dsMapping.md#dataclass) de la dataclasse. Le filtre est alors automatiquement activé. ### `Function event restrict` @@ -466,7 +466,7 @@ Le filtre doit retourner une entity selection de la dataclass. Il peut s'agir d' :::note -Pour des raisons de performances, nous recommandons d'utiliser les **attributs indexés** dans la définition du filtre. +Pour des raisons de performances, nous recommandons d'utiliser des **attributs indexés** dans la définition du filtre. ::: diff --git a/i18n/fr/docusaurus-plugin-content-docs/version-20-R10/ORDA/glossary.md b/i18n/fr/docusaurus-plugin-content-docs/version-20-R10/ORDA/glossary.md index 29ecb988e206b8..0802de867e16c6 100644 --- a/i18n/fr/docusaurus-plugin-content-docs/version-20-R10/ORDA/glossary.md +++ b/i18n/fr/docusaurus-plugin-content-docs/version-20-R10/ORDA/glossary.md @@ -9,7 +9,7 @@ title: Glossaire ## Action -Chaque action qui peut être effectuée sur une [ressource](#resource). Available actions are: create, read, update, drop, execute, and promote. +Chaque action qui peut être effectuée sur une [ressource](#resource). Les actions disponibles sont : create, read, update, drop, execute, and promote. ## Attribut @@ -18,11 +18,11 @@ Un attribut est la plus petite cellule de stockage dans une base de données rel - Dans un objet dataclass, chaque propriété est un attribut de dataclass qui correspond à un champ dans la table correspondante (même nom et même type). - Dans un objet entity, les attributs d'entités sont des propriétés qui contiennent les valeurs pour les attributs du datastore correspondants. -> \> Attributes and properties are similar concepts. "Attribut" est utilisé pour désigner les propriétés de la dataclass qui stockent les données, tandis que "propriété" est plus générique et définit une donnée stockée dans un objet. +> Les *attributs* et les *propriétés* sont des concepts similaires. "Attribut" est utilisé pour désigner les propriétés de la dataclass qui stockent les données, tandis que "propriété" est plus générique et définit une donnée stockée dans un objet. ## AttributePath -Un attributePath est le chemin d'un attribut à l'intérieur d'une dataclass ou d'une entité donnée. See also [PropertyPath](#propertypath). +Un attributePath est le chemin d'un attribut à l'intérieur d'une dataclass ou d'une entité donnée. Voir aussi [PropertyPath](#propertypath). ## Class code @@ -89,7 +89,7 @@ Une entité est un objet qui correspond à un modèle de dataclass. Une entité Une entité peut être vue comme une instance de la dataclass, comme un enregistrement de la table correspondante à la dataclass dans son datastore associé. Cependant, une entité contient également des données connexes. Le but de l'entité est de gérer les données (créer, mettre à jour, supprimer). -For more information, see [entities](entities.md). +Pour plus d'informations, voir [entities](entities.md). ## Entity selection diff --git a/i18n/fr/docusaurus-plugin-content-docs/version-20-R10/ORDA/orda-events.md b/i18n/fr/docusaurus-plugin-content-docs/version-20-R10/ORDA/orda-events.md index ba1fd2735d3605..f1b63f3dc3681d 100644 --- a/i18n/fr/docusaurus-plugin-content-docs/version-20-R10/ORDA/orda-events.md +++ b/i18n/fr/docusaurus-plugin-content-docs/version-20-R10/ORDA/orda-events.md @@ -5,67 +5,67 @@ title: ORDA Events
    Historique -| Release | Modifications | -| ------- | ------------------- | -| 20 R10 | touched event added | +| Release | Modifications | +| ------- | ----------------------- | +| 20 R10 | ajout événement touched |
    -ORDA events are functions that are automatically invoked by ORDA each time entities and entity attributes are manipulated (added, deleted, or modified). You can write very simple events, and then make them more sophisticated. +Les événements ORDA sont des fonctions qui sont automatiquement invoquées par ORDA chaque fois que des entités et des attributs d'entités sont manipulés (ajoutés, supprimés ou modifiés). Vous pouvez écrire des événements très simples, puis les rendre plus sophistiqués. -You cannot directly trigger event function execution. Events are called automatically by ORDA based on user actions or operations performed through code on entities and their attributes. +Vous ne pouvez pas déclencher directement l'exécution d'une fonction d'événement. Les événements sont appelés automatiquement par ORDA en fonction des actions de l'utilisateur ou des opérations effectuées par le code sur les entités et leurs attributs. -:::info Compatibility note +:::info Note de compatibilité -ORDA events in the datastore are equivalent to triggers in the 4D database. However, actions triggered at the 4D database level using the 4D classic language commands or standard actions do not trigger ORDA events. +Les événements d'entité ORDA dans le datastore sont équivalents aux triggers dans la base de données 4D. Cependant, les actions déclenchées au niveau de la base de données 4D à l'aide des commandes du langage classique 4D ou des actions standard ne déclenchent pas les événements ORDA. ::: ## Vue d’ensemble -### Event level +### Niveau de l'événement -A event function is always defined in the [Entity class](../ORDA/ordaClasses.md#entity-class). +Une fonction d'événement d'entité est toujours définie dans la [classe Entity](../ORDA/ordaClasses.md#entity-class). -It can be set at the **entity** level and/or the **attribute** level (it includes [**computed attributes**](../ORDA/ordaClasses.md#computed-attributes)). In the first case, it will be triggered for any attributes of the entity; on the other case, it will only be triggered for the targeted attribute. +Un événement peut être défini au niveau de l'**entité** et/ou de l'**attribut** (y compris les [**attributs calculés**](../ORDA/ordaClasses.md#computed-attributes)). Dans le premier cas, il sera déclenché pour tous les attributs de l'entité ; dans l'autre cas, il ne sera déclenché que pour l'attribut ciblé. -For the same event, you can define different functions for different attributes. +Pour un même événement, vous pouvez définir différentes fonctions pour différents attributs. -You can also define the same event at both attribute and entity levels. The attribute event is called first and then the entity event. +Vous pouvez également définir le même événement au niveau de l'attribut et de l'entité. L'événement attribut est appelé en premier, puis l'événement entité. -### Execution in remote configurations +### Exécution en configuration distante -Usually, ORDA events are executed on the server. +En général, les événements ORDA sont exécutés sur le serveur. -In client/server configuration however, the `touched()` event function can be executed on the **server or the client**, depending on the use of [`local`](./ordaClasses.md#local-functions) keyword. A specific implementation on the client side allows the triggering of the event on the client. +Cependant, dans une configuration client/serveur, la fonction d'événement `touched()` peut être exécutée sur **le serveur ou le client**, en fonction de l'utilisation du mot-clé [`local`](./ordaClasses.md#local-functions). Une implémentation spécifique côté client permet de déclencher l'événement sur le client. :::note -ORDA [`constructor()`](./ordaClasses.md#class-constructor) functions are always executed on the client. +Les fonctions ORDA [`constructor()`](./ordaClasses.md#class-constructor) sont toujours exécutées sur le client. ::: -With other remote configurations (i.e. Qodly applications, [REST API requests](../REST/REST_requests.md), or requests through [`Open datastore`](../commands/open-datastore.md)), the `touched()` event function is always executed **server-side**. It means that you have to make sure the server can "see" that an attribute has been touched to trigger the event (see below). +Avec d'autres configurations distantes (i.e. applications Qodly, [requêtes via l'API REST](../REST/REST_requests.md), ou requêtes via [`Open datastore`](../commands/open-datastore.md)), la fonction d'événement `touched()` est toujours exécutée **côté serveur**. Cela signifie que vous devez vous assurer que le serveur peut "voir" qu'un attribut a été touché pour déclencher l'événement (voir ci-dessous). -### Summary table +### Tableau de synthèse -The following table lists ORDA events along with their rules. +Le tableau suivant liste les événements d'entité ORDA ainsi que leurs règles. -| Evénement | Niveau | Function name | (C/S) Executed on | -| :------------------- | :------- | :------------------------------------------------------ | :------------------------------------------------------------------: | -| Entity instantiation | Entity | [`constructor()`](./ordaClasses.md#class-constructor-1) | client | -| Attribute touched | Attribut | `event touched ()` | Depends on [`local`](../ORDA/ordaClasses.md#local-functions) keyword | -| | Entity | `event touched()` | Depends on [`local`](../ORDA/ordaClasses.md#local-functions) keyword | +| Evénement | Niveau | Nom de la fonction | (C/S) Exécuté sur | +| :--------------------- | :------- | :------------------------------------------------------ | :-----------------------------------------------------------------: | +| Instanciation d'entité | Entity | [`constructor()`](./ordaClasses.md#class-constructor-1) | client | +| Attribut touched | Attribut | `event touched ()` | Dépend du mot-clé [`local`](../ORDA/ordaClasses.md#local-functions) | +| | Entity | `event touched()` | Dépend du mot-clé [`local`](../ORDA/ordaClasses.md#local-functions) | :::note -The [`constructor()`](./ordaClasses.md#class-constructor-1) function is not actually an event function but is always called when a new entity is instantiated. +La fonction [`constructor()`](./ordaClasses.md#class-constructor-1) n'est pas en soi une fonction d'événement, mais elle est toujours appelée lorsqu'une nouvelle entité est instanciée. ::: -## *event* parameter +## Paramètre *event* -Event functions accept a single *event* object as parameter. When the function is called, the parameter is filled with several properties: +Les fonctions d'événement acceptent un seul objet *event* comme paramètre. Lorsque la fonction est appelée, le paramètre est rempli avec diverses propriétés : | Nom de propriété | Disponibilité | Type | Description | | :--------------- | :------------------------------------- | :----- | :--------------------------------------------------------------------------- | @@ -73,7 +73,7 @@ Event functions accept a single *event* object as parameter. When the function i | *attributeName* | Only for events involving an attribute | String | Nom de l'attribut (*ex.* "firstname") | | *dataClassName* | Toujours | String | Nom du verre de données (*ex.* "Company") | -## Event function description +## Description des fonctions ### `Function event touched` @@ -85,19 +85,19 @@ Event functions accept a single *event* object as parameter. When the function i // code ``` -This event is triggered each time a value is modified in the entity. +Cet événement est déclenché chaque fois qu'une valeur est modifiée dans l'entité. - if you defined the function at the entity level (first syntax), it is triggered for modifications on any attribute of the entity. - if you defined the function at the attribute level (second syntax), it is triggered only for modifications on this attribute. -This event is triggered as soon as the 4D Server / 4D engine can detect a modification of attribute value which can be due to the following actions: +Cet événement est déclenché dès que le moteur de 4D Server / 4D détecte une modification de la valeur de l'attribut qui peut être due aux actions suivantes : -- in **client/server with the [`local` keyword](../ORDA/ordaClasses.md#local-functions)** or in **4D single-user**: - - the user sets a value on a 4D form, - - the 4D code makes an assignment with the `:=` operator. The event is also triggered in case of self-assignment (`$entity.attribute:=$entity.attribute`). -- in **client/server without the `local` keyword**: some 4D code that makes an assignment with the `:=` operator is [executed on the server](../commands-legacy/execute-on-server.md). -- in **client/server without the `local` keyword**, in **[Qodly application](https://developer.qodly.com/docs)** and **[remote datastore](../commands/open-datastore.md)**: the entity is received on 4D Server while calling an ORDA function (on the entity or with the entity as parameter). It means that you might have to implement a *refresh* or *preview* function on the remote application that sends an ORDA request to the server and triggers the event. -- with the REST server: the value is received on the REST server with a [REST request](../REST/$method.md#methodupdate) (`$method=update`) +- en **client/serveur avec le [mot-clé `local`](../ORDA/ordaClasses.md#local-functions)** ou en **4D mono-utilisateur** : + - l'utilisateur saisit une valeur dans un formulaire 4D, + - le code 4D effectue une assignation avec l'opérateur `:=`. L'événement est également déclenché en cas d'auto-assignation (`$entity.attribute:=$entity.attribute`). +- en **client/serveur sans le mot-clé `local`** : du code 4D effectue une assignation avec l'opérateur `:=` est [exécuté sur le serveur](../commands-legacy/execute-on-server.md). +- en **client/serveur sans le mot-clé `local`**, une **[application Qodly](https://developer.qodly.com/docs)** ou **[datastore distant](../commands/open-datastore.md)** : l'entité est reçue sur le serveur 4D lors de l'appel d'une fonction ORDA (sur l'entité ou avec l'entité en tant que paramètre). Cela signifie que vous devrez peut-être mettre en place une fonction *refresh* ou *preview* sur l'application distante qui envoie une requête ORDA au serveur et déclenche l'événement. +- avec le serveur REST : la valeur est reçue sur le serveur REST avec une [requête REST](../REST/$method.md#methodupdate) (`$method=update`) The function receives an [*event* object](#event-parameter) as parameter. diff --git a/i18n/fr/docusaurus-plugin-content-docs/version-20/ORDA/dsMapping.md b/i18n/fr/docusaurus-plugin-content-docs/version-20/ORDA/dsMapping.md index 343d91147dc8fb..21239ea04f027d 100644 --- a/i18n/fr/docusaurus-plugin-content-docs/version-20/ORDA/dsMapping.md +++ b/i18n/fr/docusaurus-plugin-content-docs/version-20/ORDA/dsMapping.md @@ -69,7 +69,7 @@ A datastore object is handled through functions and properties of the [**DataSto Lorsqu'il est géré via le code, le datastore est un objet dont les propriétés sont toutes les [dataclasses](#dataclass) ayant été spécifiquement exposées. -4d vous permet de gérer les datastores suivants : +4D vous permet de gérer les datastores suivants : - le datastore local, fondé sur la base 4D courante, retourné par la commande `ds` (le datastore principal). - un ou plusieurs datastores distants, exposés en tant que ressources RESET dans des bases 4D distantes, retournés par la commande `Ouvrir datastore`. @@ -162,12 +162,12 @@ Prenons l'exemple de la structure de base de données partielle suivante et les ![](../assets/en/ORDA/relationProperties.png) -Tous les attributs relationnels seront disponibles automatiquement : +Tous les attributs de stockage seront disponibles automatiquement : * dans la dataclass Project : "ID", "name", et "companyID" * dans la dataclass Company : "ID", "name", et "discount" -En outre, les attributs relationnels suivant seront également disponibles automatiquement : +En outre, les attributs relationnels suivants seront également disponibles automatiquement : * dans la dataclass Project : l'attribut **theClient**, du type "relatedEntity" ; il y a au plus une compagnie pour chaque projet (le client) * dans la dataclass Company : l'attribut **companyProjects**, du type "relatedEntities" ; pour chaque compagnie, il existe un certain nombre de projets reliés. diff --git a/i18n/fr/docusaurus-plugin-content-docs/version-21/API/WebServerClass.md b/i18n/fr/docusaurus-plugin-content-docs/version-21/API/WebServerClass.md index cc56372ee96210..870338b9731bb5 100644 --- a/i18n/fr/docusaurus-plugin-content-docs/version-21/API/WebServerClass.md +++ b/i18n/fr/docusaurus-plugin-content-docs/version-21/API/WebServerClass.md @@ -187,7 +187,7 @@ Le nom de la page home par d *Propriété en lecture seulement.* -A collection of custom HTTP handler objects. An HTTP handler object contains a listened URL pattern, a handled verb, and the code to be called. HTTP handlers can be defined through a HTTPHandlers.json file or the *settings* parameter of the [`.start()`](#start) function. For more information, please refer to the [HTTP Request handler](../WebServer/http-request-handler.md) page. +Une collection d'objets gestionnaires HTTP personnalisés . Un objet HTTP handler contient un motif d'URL écouté, un verbe pris en charge et le code à appeler. Les gestionnaires HTTP peuvent être définis dans un fichier HTTPHandlers.json ou dans le paramètre *settings* de la fonction [`.start()`](#start). Pour plus d'informations, veuillez consulter la page [HTTP Request handler](../WebServer/http-request-handler.md). @@ -495,7 +495,7 @@ Le chemin du dossier racine du se *Propriété en lecture seulement.* -A collection of rule objects currently handled to customize HTTP headers. A rule object contains a "regexPattern" property, as well as an action name with a value. HTTP rules can be defined through a HTTPRules.json file or the *settings* parameter of the [`.start()`](#start) function. For more information, please refer to the [HTTP Rules](../WebServer/http-rules.md) page. +La collection d'objets de règles HTTP mises en oeuvre pour personnaliser les en-têtes HTTP. Un objet règle contient une propriété "regexPattern" ainsi qu'un nom d'action avec une valeur. Les règles HTTP peuvent être définies dans un fichier HTTPRules.json ou dans le paramètre *settings* de la fonction [`.start()`](#start). Pour plus d'informations, veuillez consulter la page [Règles HTTP](../WebServer/http-rules.md). diff --git a/i18n/fr/docusaurus-plugin-content-docs/version-21/FormEditor/forms.md b/i18n/fr/docusaurus-plugin-content-docs/version-21/FormEditor/forms.md index aa94b2fc1eac72..7401d23f42858a 100644 --- a/i18n/fr/docusaurus-plugin-content-docs/version-21/FormEditor/forms.md +++ b/i18n/fr/docusaurus-plugin-content-docs/version-21/FormEditor/forms.md @@ -96,72 +96,76 @@ Il n'y a aucune restriction sur le nombre de pages qu'un formulaire peut conteni Un formulaire multi-pages contient à la fois une page d'arrière-plan et plusieurs pages d'affichage. Les objets placés sur la page d'arrière-plan peuvent être visibles sur toutes les pages d'affichage, mais il ne peuvent être sélectionnés et modifiés que sur la page d'arrière-plan. Dans les formulaires multi-pages, vous devez placer votre palette de boutons sur la page d'arrière-plan. Vous devez également inclure un ou plusieurs objets sur la page d'arrière-plan qui fournissent à l'utilisateur des outils de navigation de page. -## Fluent UI rendering (Developer Preview) +## Rendu Fluent UI (Developer Preview) -On Windows, 4D supports **Fluent UI** form rendering, Microsoft's modern graphical user interface design, based upon **WinUI 3** technology. **WinUI 3** is the foundation of the Windows App SDK and represents the upcoming Windows graphical interfaces. +Sous Windows, 4D prend en charge le rendu de formulaire **Fluent UI**, l'interface utilisateur graphique moderne de Microsoft, basée sur la technologie **WinUI 3**. **WinUI 3** est la base du Windows App SDK et représente les prochaines interfaces graphiques de Windows. + +| Light theme | Dark theme | +| --------------------------------------- | -------------------------------------------- | +| ![](../assets/en/FormEditor/fluent.png) | ![](../assets/en/FormEditor/fluent-dark.png) | :::caution Developer Preview -Fluent UI support is currently in the Developer Preview phase. Il ne doit pas être utilisé en production. +La prise en charge de Fluent UI est actuellement en phase d'aperçu pour les développeurs. Il ne doit pas être utilisé en production. ::: :::info macOS -This feature can only be used on Windows. On macOS, it is ignored. +Cette fonctionnalité ne peut être utilisée que sous Windows. Sous macOS, elle est ignorée. ::: -### Fluent UI rendering availability +### Disponibilité du rendu Fluent UI -The Fluent UI rendering is available in the following execution environments only: +Le rendu Fluent UI est disponible dans les environnements d'exécution suivants uniquement : -- Windows with [Windows App SDK](https://learn.microsoft.com/en-us/windows/apps/windows-app-sdk/downloads) version 1.7.3 installed (you need to install this SDK on any Windows machine displaying your forms). +- Windows avec la version 1.7.3 du [Windows App SDK](https://learn.microsoft.com/en-us/windows/apps/windows-app-sdk/downloads) installée (vous devez installer ce SDK sur toute machine Windows affichant vos formulaires). - Application 4D fusionnée [autonome](../Desktop/building.md#build-stand-alone-application) ou [cliente](../Desktop/building.md#build-client-application) -- [**Test application** feature](../Menus/bars.md#previewing-menu-bars) available from the Run menu. +- [Fonction **Tester l'application**](../Menus/bars.md#previewing-menu-bars) disponible dans le menu **Exécution**. :::note -If the Windows App SDK is not properly installed, 4D will render all your forms in classic mode with no error. +Si le Windows App SDK n'est pas correctement installé, 4D utilisera le rendu classique pour vos formulaires sans erreur. ::: -### Enabling the Fluent UI rendering +### Activer le rendu Fluent UI -You can enable the Fluent UI rendering mode at the application level or at the form level. Form setting has priority over application setting. +Vous pouvez activer le mode de rendu Fluent UI au niveau de l'application ou au niveau du formulaire. Le paramétrage du formulaire a la priorité par rapport aux paramètres de l'application. -#### Application setting +#### Paramètres de l'application -Check the **Use Fluent UI on Windows** option in the "Interface" page of the Settings dialog box. +Cochez l'option **Utiliser Fluent UI sous Windows** dans la page "Interface" de la boîte de dialogue des Propriétés. ![](../assets/en/FormObjects/fluentui-setting.png) -In this case, the Fluent UI rendering mode will be used by default on Windows for all forms. +Dans ce cas, le mode de rendu Fluent UI sera utilisé par défaut sur Windows pour tous les formulaires. -#### Form setting +#### Paramètres du formulaire -Each form can define its own rendering via the **Widget appearance** property. Les options suivantes sont disponibles : +Chaque formulaire peut définir son propre rendu via la propriété **Apparence des contrôles**. Les options suivantes sont disponibles : -- **Inherited**: inherits the global application setting (default), -- **Classic**: uses the classic Windows style, -- **Fluent UI**: enables the modern rendering based on Fluent UI.
    +- **Hérité** : hérite des propriétés globales de l'application (par défaut), +- **Classic** : utilise le style classique de Windows, +- **Fluent UI** : active le rendu moderne basé sur Fluent UI.
    ![](../assets/en/FormObjects/fluentui-form.png) -The corresponding [JSON form property](./properties_JSONref.md) is `fluentUI` with value undefined (i.e. inherited, default value), "true" or "false". +La [propriété de formulaire JSON](./properties_JSONref.md) correspondante est `fluentUI` avec la valeur undefined (i.e. hérité, valeur par défaut), "true" ou "false". -### Features and limitations +### Caractéristiques et limitations -Fluent UI rendering offers modern and attractive controls, support of dark/light system themes, smoother rendering optimized for high-resolution displays, and consistent user experience aligned with recent Microsoft applications. +Le rendu Fluent UI offre des contrôles modernes et agréables, la prise en charge des thèmes système dark/light, un rendu plus fluide optimisé pour les écrans haute résolution et une expérience utilisateur cohérente alignée sur les applications Microsoft récentes. -When using 4D forms with Fluent UI rendering, you need to pay attention to the following points: +Lorsque vous utilisez les formulaires 4D avec le rendu Fluent UI, vous devez prêter attention aux points suivants : -- The `FORM Window theme` command returns the actual display theme of the current form. Possible values: "Classic" or "FluentUI". If there is no current form or the command is called on macOS, and empty string is returned. -- If [`GET STYLE SHEET INFO`](../commands-legacy/get-style-sheet-info.md) is called in the context of a form, the information returned relates to the current appearance of the form (Classic or FluentUI). If the command is called outside the context of a form, the information returned relates to the [global project settings](#application-setting). -- [`SET MENU ITEM STYLE`](../commands-legacy/set-menu-item-style.md) with `Underline` *itemStyle* parameter is not supported (ignored) for pop up menus. -- A focus ring can be added to picture and text [inputs](../FormObjects/input_overview.md). -- [Stepper](../FormObjects/stepper.md) form object does not support [double-click event](../Events/onDoubleClicked.md). -- [Circle buttons](../FormObjects/button_overview.md#circle) are supported (similar as macOS). -- The [`WA ZOOM IN`](../commands-legacy/wa-zoom-in.md) / [`WA ZOOM OUT`](../commands-legacy/wa-zoom-out.md) commands are not supported in Web areas with system rendering engine. +- La commande `FORM Window theme` renvoie le thème d'affichage réel du formulaire courant. Valeurs possibles : "Classic" ou "FluentUI". S'il n'y a pas de formulaire courant ou si la commande est appelée sous macOS, une chaîne vide est renvoyée. +- Si [`GET STYLE SHEET INFO`](../commands-legacy/get-style-sheet-info.md) est appelée dans le contexte d'un formulaire, les informations renvoyées concernent l'apparence courante du formulaire (Classic ou FluentUI). Si la commande est appelée en dehors du contexte d'un formulaire, les informations renvoyées concernent les [propriétés globales du projet](#application-setting). +- [`SET MENU ITEM STYLE`](../commands-legacy/set-menu-item-style.md) avec le paramètre *itemStyle* `Underline` n'est pas pris en charge (ignoré) pour les menus pop up. +- Un rectangle de focus peut être ajouté aux [zones de saisie](../FormObjects/input_overview.md) image et texte. +- L'objet de formulaire [Stepper](../FormObjects/stepper.md) ne prend pas en charge l'événement [double-clic](../Events/onDoubleClicked.md). +- Les [boutons circulaires](../FormObjects/button_overview.md#circle) sont pris en charge (comme sur macOS). +- Les commandes [`WA ZOOM IN`](../commands-legacy/wa-zoom-in.md) / [`WA ZOOM OUT`](../commands-legacy/wa-zoom-out.md) ne sont pas prises en charge dans les zones Web avec moteur de rendu système. ## Formulaires hérités diff --git a/i18n/fr/docusaurus-plugin-content-docs/version-21/FormEditor/properties_FormSize.md b/i18n/fr/docusaurus-plugin-content-docs/version-21/FormEditor/properties_FormSize.md index 6ab25ecd64f45e..f7d879c24c7fac 100644 --- a/i18n/fr/docusaurus-plugin-content-docs/version-21/FormEditor/properties_FormSize.md +++ b/i18n/fr/docusaurus-plugin-content-docs/version-21/FormEditor/properties_FormSize.md @@ -11,15 +11,15 @@ Les options de taille dépendent de la valeur de l'option **Taille basée sur**. ## Taille basée sur -- **Automatic Size**: The size of the form will be that necessary to display all the objects, to which will be added the margin values (in pixels) entered in the [**Hor Margin**](#hor-margin) and [**Vert Margin**](#vert-margin) fields. +- **Taille automatique** : La taille du formulaire sera celle nécessaire à l'affichage de tous les objets, à laquelle s'ajouteront les valeurs de marge (en pixels) saisies dans les champs [**Marge hor.**](#hor-margin) et [**Marge vert.**](#vert-margin). Vous pouvez choisir cette option lorsque vous souhaitez utiliser des objets actifs placés dans une zone hors écran (c'est-à-dire en dehors du rectangle de délimitation de la fenêtre) avec une fenêtre de taille automatique. Grâce à cette option, la présence de ces objets ne modifiera pas la taille de la fenêtre. -- **Set Size**: The size of the form will be based on what you enter (in pixels) in the [**Width**](#width) and [**Height**](#height) fields. +- **Fixer taille** : La taille du formulaire sera basée sur ce que vous entrez (en pixels) dans les champs [**Largeur**](#width) and [**Hauteur**](#height). -- `\`: The size of the form will be based on the position of the selected form object. Par exemple, si vous choisissez un objet qui est placé dans la partie inférieure droite de la zone à afficher, la taille du formulaire sera constituée d'un rectangle dont le coin supérieur gauche sera l'origine du formulaire et le coin inférieur droit correspondra à celle de l'objet sélectionné, plus les éventuelles valeurs de marge. +- `` : La taille du formulaire sera basée sur la position de l'objet du formulaire sélectionné. Par exemple, si vous choisissez un objet qui est placé dans la partie inférieure droite de la zone à afficher, la taille du formulaire sera constituée d'un rectangle dont le coin supérieur gauche sera l'origine du formulaire et le coin inférieur droit correspondra à celle de l'objet sélectionné, plus les éventuelles valeurs de marge. -> For output forms, only the [**Hor margin**](#hor-margin) or [**Width**](#width) fields are available. +> Pour les formulaires de sortie, seuls les champs [**Marge hor.**](#hor-margin) ou [**Largeur**](#width) sont disponibles. #### Grammaire JSON @@ -43,7 +43,7 @@ Hauteur du formulaire (en pixels) lorsque la [taille du formulaire](#size-based- ## Marge hor. -Valeur à ajouter (en pixels) à la marge droite du formulaire lorsque la [taille du formulaire](#size-based-on) est définie sur **Taille automatique** ou `\` +Valeur à ajouter (en pixels) à la marge droite du formulaire lorsque la [taille du formulaire](#size-based-on) est définie sur **Taille automatique** ou `\` Cette valeur détermine également les marges droites des formulaires utilisés dans l'éditeur d'étiquettes. @@ -57,7 +57,7 @@ Cette valeur détermine également les marges droites des formulaires utilisés ## Marge hor. -Value to add (in pixels) to the bottom margin of the form when the [form size](#size-based-on) is **Automatic size** or `\`. +Valeur à ajouter (en pixels) à la marge inférieure du formulaire lorsque la [taille du formulaire](#size-based-on) est définie sur **Taille automatique** ou `\`. Cette valeur détermine également les marges supérieures des formulaires utilisés dans l'éditeur d'étiquettes. diff --git a/i18n/fr/docusaurus-plugin-content-docs/version-21/ORDA/client-server-optimization.md b/i18n/fr/docusaurus-plugin-content-docs/version-21/ORDA/client-server-optimization.md index 5cc95b6062eb55..090b1b0011716a 100644 --- a/i18n/fr/docusaurus-plugin-content-docs/version-21/ORDA/client-server-optimization.md +++ b/i18n/fr/docusaurus-plugin-content-docs/version-21/ORDA/client-server-optimization.md @@ -3,7 +3,7 @@ id: client-server-optimization title: Optimisation client/serveur --- -4D optimise automatiquement les requêtes ORDA qui utilisent des entity selections ou chargent des entités dans l'architecture client/serveur. Ces optimisations accélèrent l'exécution de votre application 4D en réduisant drastiquement le volume d'informations transmises sur le réseau. Elles incluent : +En architecture client/serveur, 4D optimise automatiquement les requêtes ORDA qui utilisent des entity selections ou chargent des entités. Ces optimisations accélèrent l'exécution de votre application 4D en réduisant drastiquement le volume d'informations transmises sur le réseau. Elles incluent : - le **contexte d'optimisation** - le **Cache ORDA** @@ -27,7 +27,7 @@ Le contexte d'optimisation est fondé sur ce qui suit : - [`dataClass.query()`](../API/DataClassClass.md#query) - [`entitySelection.query()`](../API/EntitySelectionClass.md#query) -- Les requêtes ultérieures envoyées au serveur sur la même entity selection réutilisent automatiquement le contexte d'optimisation et lisent uniquement les attributs nécessaires depuis le serveur, ce qui accélère le traitement. Les requêtes ultérieures envoyées au serveur sur la même entity selection réutilisent automatiquement le contexte d'optimisation et lisent uniquement les attributs nécessaires depuis le serveur, ce qui accélère le traitement. L'affichage des lignes suivantes est optimisé. Les fonctions suivantes associent automatiquement le contexte d'optimisation de l'entity selection d'origine à l'entity selection retournée : +- Les requêtes ultérieures envoyées au serveur sur la même entity selection réutilisent automatiquement le contexte d'optimisation et lisent uniquement les attributs nécessaires depuis le serveur, ce qui accélère le traitement. Par exemple, dans une [list box de type entity selection](#entity-selection-based-list-box), la phase d'apprentissage a lieu pendant l'affichage de la première ligne. L'affichage des lignes suivantes est optimisé. Les fonctions suivantes associent automatiquement le contexte d'optimisation de l'entity selection d'origine à l'entity selection retournée : - [`entitySelection.and()`](../API/EntitySelectionClass.md#and) - [`entitySelection.minus()`](../API/EntitySelectionClass.md#minus) - [`entitySelection.or()`](../API/EntitySelectionClass.md#or) @@ -35,7 +35,7 @@ Le contexte d'optimisation est fondé sur ce qui suit : - [`entitySelection.slice()`](../API/EntitySelectionClass.md#slice) - [`entitySelection.drop()`](../API/EntitySelectionClass.md#drop) -- An existing optimization context can be passed as a property to another entity selection of the same dataclass, thus bypassing the learning phase and accelerating the application (see [Reusing the context property](#reusing-the-context-property) below). +- Un contexte d'optimisation existant peut être passé en tant que propriété à une autre entity selection de la même dataclass, ce qui permet d'économiser la phase d'apprentissage et d'accélérer l'application (voir [Réutilisation de la propriété context](#reusing-the-context-property) ci-dessous). - Vous pouvez créer des contextes d'optimisation manuellement à l'aide de la fonction [`dataStore.setRemoteContextInfo()`](../API/DataStoreClass.md#setremotecontextinfo) (voir [Préconfiguration des contextes](#preconfiguring-contexts)). @@ -66,7 +66,7 @@ Vous pouvez augmenter les avantages de l'optimisation en utilisant la propriét > Vous pouvez également créer des contextes en utilisant la fonction [`.setRemoteContextInfo()`](../API/DataStoreClass.md#setremotecontextinfo). -Une même propriété de contexte d'optimisation peut être passée à un nombre illimité d"entity selections de la même dataclass. Une même propriété de contexte d'optimisation peut être passée à un nombre illimité d"entity selections de la même dataclass. Il est toutefois important de garder à l'esprit qu'un contexte est automatiquement mis à jour lorsque de nouveaux attributs sont utilisés dans d'autres parties du code. Si le même contexte est réutilisé dans différents codes, il risque d'être surchargé et de perdre en efficacité. +Une même propriété de contexte d'optimisation peut être passée à un nombre illimité d"entity selections de la même dataclass. Toutes les fonctions ORDA qui gèrent les entity selections prennent en charge la propriété **context** (par exemple [`dataClass.query()`](../API/DataClassClass.md#query) ou [`dataClass.all()`](../API/DataClassClass.md#all)). Il est toutefois important de garder à l'esprit qu'un contexte est automatiquement mis à jour lorsque de nouveaux attributs sont utilisés dans d'autres parties du code. Si le même contexte est réutilisé dans différents codes, il risque d'être surchargé et de perdre en efficacité. > Un mécanisme similaire est implémenté pour les entités qui sont chargées, de sorte que seuls les attributs utilisés sont demandés (voir la fonction [`dataClass.get()`](../API/DataClassClass.md#get)). @@ -77,22 +77,22 @@ Une même propriété de contexte d'optimisation peut être passée à un nombre var $data : Collection $querysettings:=New object("context";"shortList") $querysettings2:=New object("context";"longList") - + $sel1:=ds.Employee.query("lastname = S@";$querysettings) - $data:=extractData($sel1) // In extractData method an optimization is triggered - // and associated to context "shortList" - + $data:=extractData($sel1) // dans la méthode extractData un contexte d'optimisation + // est généré et associé au contexte "shortList" + $sel2:=ds.Employee.query("lastname = Sm@";$querysettings) - $data:=extractData($sel2) // In extractData method the optimization associated - // to context "shortList" is applied - + $data:=extractData($sel2) // dans la méthode extractData le contexte d'optimisation + // associé au contexte "shortList" est appliqué + $sel3:=ds.Employee.query("lastname = Smith";$querysettings2) - $data:=extractDetailedData($sel3) // In extractDetailedData method an optimization - // is triggered and associated to context "longList" - + $data:=extractDetailedData($sel3) // dans la méthode extractDetailedData un contexte d'optimisation + // est généré et associé au contexte "longList" + $sel4:=ds.Employee.query("lastname = Brown";$querysettings2) - $data:=extractDetailedData($sel4) // In extractDetailedData method the optimization - // associated to context "longList" is applied + $data:=extractDetailedData($sel4) // dans extractDetailedData le contexte d'optimisation + // associé au contexte "longList" est appliqué ``` ### List box de type entity selection @@ -133,7 +133,7 @@ Pour des raisons d'optimisation, les données demandées au serveur via ORDA son Les données contenues dans le cache sont considérées comme expirées lorsque le délai d'attente est atteint. Tout accès à des données périmées provoquera l'envoi d'une requête au serveur. Les données périmées restent dans le cache jusqu'à ce que l'on ait besoin d'espace. -You can force entity selection data in the ORDA cache to expire at any moment by using the [`refresh()`](../API/EntitySelectionClass.md#refresh) function. +Vous pouvez forcer les données de sélection d'entité dans le cache ORDA à expirer à tout moment en utilisant la fonction [`refresh()`](../API/EntitySelectionClass.md#refresh). Par défaut, le cache ORDA est géré de manière transparente par 4D. Cependant, vous pouvez contrôler son contenu en utilisant les fonctions ORDA suivantes : diff --git a/i18n/fr/docusaurus-plugin-content-docs/version-21/ORDA/dsMapping.md b/i18n/fr/docusaurus-plugin-content-docs/version-21/ORDA/dsMapping.md index 15c307c47cc3e3..e5dbe4896d20e7 100644 --- a/i18n/fr/docusaurus-plugin-content-docs/version-21/ORDA/dsMapping.md +++ b/i18n/fr/docusaurus-plugin-content-docs/version-21/ORDA/dsMapping.md @@ -3,15 +3,15 @@ id: dsmapping title: Objets du modèle de données --- -The ORDA technology is based upon an automatic mapping of an underlying [database structure](https://doc.4d.com/4Dv20/4D/20.2/Creating-a-database-structure.200-6750097.en.html). Elle permet également d'accéder aux données via des objets sélection d'entités (entity selection) et entité (entity). Par conséquent, ORDA expose la base de données entière comme un ensemble d'objets de modèle de données. +La technologie ORDA est basée sur une correspondance automatique d'une [structure de base de données](https://doc.4d.com/4Dv20/4D/20.2/Creating-a-database-structure.200-6750097.en.html) sous-jacente. Elle permet également d'accéder aux données via des objets sélection d'entités (entity selection) et entité (entity). Par conséquent, ORDA expose la base de données entière comme un ensemble d'objets de modèle de données. ## Correspondance de la structure Lorsque vous appelez un datastore à l'aide de la commande [`ds`](commands/ds.md) ou [`Open datastore`](commands/open-datastore.md), 4D référence automatiquement les tables et les champs de la structure 4D correspondante en tant que propriétés de l'objet [datastore](#datastore) renvoyé : -- Tables are mapped to [dataclasses](#dataclass). -- Fields are mapped to [storage attributes](#storage-and-relation-attributes). -- Relations are mapped to [relation attributes](#storage-and-relation-attributes) - relation names, defined in the [Structure editor](https://doc.4d.com/4Dv20/4D/20.2/Creating-and-modifying-relations.300-6750296.en.html), are used as relation attribute names. +- Les tables correspondent à des [dataclasses](#dataclass). +- Les champs correspondent à des [attributs de stockage](#storage-and-relation-attributes). +- Les liens correspondent à des [attributs relationnels](#storage-and-relation-attributes) - les noms des liens, définis dans l'[éditeur de structure](https://doc.4d.com/4Dv20/4D/20.2/Creating-and-modifying-relations.300-6750296.en.html), sont utilisés comme noms d'attributs de relation. ![](../assets/en/ORDA/datastoreMapping.png) @@ -19,7 +19,7 @@ Lorsque vous appelez un datastore à l'aide de la commande [`ds`](commands/ds.md Les règles suivantes s'appliquent à toutes les conversions : -- Les noms de table, de champ et de relation correspondent à des noms de propriété d'objet. Assurez-vous que ces noms sont conformes aux règles générales de dénomination des objets, comme expliqué dans la section [Conventions de dénomination des objets](Concepts/identifiers.md). +- Les noms de table, de champ et de relation correspondent à des noms de propriété d'objet. Assurez-vous que ces noms sont conformes aux règles générales de dénomination des objets, comme expliqué dans la section [consacrée aux identifiants](Concepts/identifiers.md). - Un datastore ne référence que les tables avec une seule clé primaire. Les tables suivantes ne sont pas référencées : - Tables sans clé primaire - Tables avec clés primaires composites. @@ -28,12 +28,12 @@ Les règles suivantes s'appliquent à toutes les conversions : > La correspondance ORDA ne prend pas en compte : > > - l'option "Invisible" pour les tables ou les champs, -> - the virtual structure defined through [`SET TABLE TITLES`](../commands-legacy/set-table-titles.md) or [`SET FIELD TITLES`](../commands-legacy/set-field-titles.md), +> - la structure virtuelle définie par [`SET TABLE TITLES`](../commands-legacy/set-table-titles.md) et [`SET FIELD TITLES`](../commands-legacy/set-field-titles.md), > - la propriété "manuelle" ou "automatique" des relations. ### Règles de contrôle d'accès à distance -Lorsque vous accédez à un datastore distant via la commande `Ouvrir datastore` ou des [requêtes REST](REST/gettingStarted.md), seules les tables et les champs avec la propriété de ressource **Expose as REST resource** sont disponibles à distance. +Lorsque vous accédez à un datastore distant via la commande `Open datastore` ou des [requêtes REST](REST/gettingStarted.md), seuls les tables et les champs avec la propriété **Exposer avec le service REST** sont disponibles à distance. Cette option doit être choisie au niveau de la structure 4D pour chaque table et chaque champ que vous souhaitez voir apparaître comme dataclass et attribut dans le datastore : @@ -47,12 +47,12 @@ Toute modification apportée à la structure de la base invalide la couche coura - le renommage d'une table, d'un champ ou d'une relation - la modification d'une propriété principale d'un champ (type, unique, index, autoincrement, valeur null) -Lorsque la couche courante de données ORDA est invalidée, elle est automatiquement rechargée et mise à jour dans les prochains appels du datastore local `ds` vers 4D et 4D Server. A noter que les références existantes vers des objets ORDA tels que des entités ou des sélections d'entités continueront d'utiliser les données à partir desquelles elles ont été créées, et ce jusqu'à ce qu'elles soient regénérées. +Lorsque le modèle ORDA courant est invalidé, il est automatiquement rechargé et mis à jour dans les appels ultérieurs du datastore local `ds` sur 4D et 4D Server. A noter que les références existantes vers des objets ORDA tels que des entités ou des sélections d'entités continueront d'utiliser les données à partir desquelles elles ont été créées, et ce jusqu'à ce qu'elles soient regénérées. Toutefois, la couche de données ORDA mise à jour n'est pas automatiquement disponible dans les contextes suivants : - une application 4D distante connectée à 4D Server -- l'application distante doit être reconnectée au serveur. -- un datastore distant ouvert à l'aide de `Ouvrir datastore` ou des [appels REST](REST/gettingStarted.md) -- une nouvelle session doit être ouverte. +- un datastore distant ouvert à l'aide de `Open datastore` ou des [appels REST](REST/gettingStarted.md) -- une nouvelle session doit être ouverte. ## Définitions des objets @@ -63,14 +63,14 @@ Un datastore est l'objet d'interface d'une base de données. Il crée une repré - Le modèle contient et décrit toutes les dataclasses qui composent le datastore. Il est indépendant de la base de données sous-jacente. - Les données se réfèrent à l'information qui va être utilisée et stockée dans ce modèle. Par exemple, les noms, adresses et dates de naissance des employés sont des éléments de données que vous pouvez utiliser dans un datastore. -A datastore object is handled through functions and properties of the [**DataStore**](../API/DataStoreClass.md) class. +Un objet datastore est géré par les fonctions et les propriétés de la classe [**DataStore**](../API/DataStoreClass.md). Lorsqu'il est géré via le code, le datastore est un objet dont les propriétés sont toutes les [dataclasses](#dataclass) ayant été spécifiquement exposées. -4d vous permet de gérer les datastores suivants : +4D vous permet de gérer les datastores suivants : - le datastore local, fondé sur la base 4D courante, retourné par la commande `ds` (le datastore principal). -- un ou plusieurs datastores distants, exposés en tant que ressources RESET dans des bases 4D distantes, retournés par la commande `Ouvrir datastore`. +- un ou plusieurs datastores distants, exposés en tant que ressources RESET dans des bases 4D distantes, retournés par la commande `Open datastore`. Un datastore ne référence qu'une seule base de données locale ou distante. @@ -88,21 +88,21 @@ Les propriétés du datastore sont toutefois énumérables : //$prop contient les noms de toutes les dataclasses ``` -Le datastore principal (par défaut) est toujours disponible via la commande `ds`, mais la commande `Ouvrir datastore` permet de référencer n'importe quel datastore distant. +Le datastore principal (par défaut) est toujours disponible via la commande `ds`, mais la commande `Open datastore` permet de référencer n'importe quel datastore distant. ### Dataclass Une dataclasse est l'équivalent d'une table. Elle est utilisée comme modèle d'objet et référence tous les champs comme attributs, y compris les attributs relationnels (attributs construits à partir des relations entre les dataclasses). Les attributs relationnels peuvent être utilisés dans les requêtes comme tout autre attribut. -A dataclass object is handled through functions and properties of the [**DataClass**](../API/DataClassClass.md) class. +Un objet dataclass est géré par les fonctions et les propriétés de la classe [**DataClass**](../API/DataClassClass.md). -Toutes les dataclasses d'un projet 4D sont disponibles en tant que propriété du datastore `ds`. Pour les datastores distants accédés via `Open datastore` ou les [requêtes REST](REST/gettingStarted.md), l'option **Exposer comme ressource REST** doit être sélectionnée au niveau de la structure 4D pour chaque table que vous souhaitez exposer en tant que dataclass du datastore. +Toutes les dataclasses d'un projet 4D sont disponibles en tant que propriété du datastore `ds`. Pour les datastores distants accédés via `Open datastore` ou les [requêtes REST](REST/gettingStarted.md), l'option **Exposer avec le service REST** doit être sélectionnée au niveau de la structure 4D pour chaque table que vous souhaitez exposer en tant que dataclass du datastore. Par exemple, considérons cette table dans la structure suivante : ![](../assets/en/ORDA/companyTable.png) -La table `Company` est automatiquement disponible en tant que dataclasse dans la banque de données `ds`. Vous pouvez écrire : +La table `Company` est automatiquement disponible en tant que dataclass dans le datastore `ds`. Vous pouvez écrire : ```4d var $compClass : cs.Company //déclare une variable objet $compClass de la classe Company @@ -139,10 +139,10 @@ Les propriétés de dataclass sont des objets attribut décrivant les champs ou $revenuesAttribute:=ds.Company["revenues"] //méthode alternative ``` -Ce code attribue à `$nameAttribute` et `$revenuesAttribute` des références aux attributs name et revenues de la classe `Company`. This syntax does NOT return values held inside of the attribute, but instead returns references to the attributes themselves [with their **attribute properties**](../API/DataClassClass.md#attributename). +Ce code attribue à `$nameAttribute` et `$revenuesAttribute` des références aux attributs name et revenues de la classe `Company`. Cette syntaxe ne renvoie PAS les valeurs contenues dans l'attribut, mais des références aux attributs eux-mêmes [avec leurs **propriétés d'attribut**](../API/DataClassClass.md#attributename). Pour gérer les valeurs, vous devez passer par les [Entités](#entite). -Tous les fichiers éligibles d'une table sont disponibles en tant qu'attributs de leur [dataclass](#dataclass) parente. Pour les datastores distants accessibles via `Open datastore` ou les [requêtes REST](REST/gettingStarted.md), l'option **Exposer comme ressource REST** doit être sélectionnée au niveau de la structure 4D pour chaque champ que vous souhaitez exposer en tant qu'attribut de dataclass. +Tous les champs éligibles d'une table sont disponibles en tant qu'attributs de leur [dataclass](#dataclass) parente. Pour les datastores distants accessibles via `Open datastore` ou les [requêtes REST](REST/gettingStarted.md), l'option **Exposer avec le service REST** doit être sélectionnée au niveau de la structure 4D pour chaque champ que vous souhaitez exposer en tant qu'attribut de dataclass. #### Attributs de stockage et relationnels @@ -155,12 +155,12 @@ Prenons l'exemple de la structure de base de données partielle suivante et les ![](../assets/en/ORDA/relationProperties.png) -Tous les attributs relationnels seront disponibles automatiquement : +Tous les attributs de stockage seront disponibles automatiquement : - dans la dataclass Project : "ID", "name", et "companyID" - dans la dataclass Company : "ID", "name", et "discount" -En outre, les attributs relationnels suivant seront également disponibles automatiquement : +En outre, les attributs relationnels suivants seront également disponibles automatiquement : - dans la dataclass Project : l'attribut **theClient**, du type "relatedEntity" ; il y a au plus une compagnie pour chaque projet (le client) - dans la dataclass Company : l'attribut **companyProjects**, du type "relatedEntities" ; pour chaque compagnie, il existe un certain nombre de projets reliés. @@ -175,7 +175,7 @@ Gardez à l'esprit que ces objets décrivent des attributs, mais ne donnent pas #### Attributs calculés et Alias -Les [attributs calculés](ordaClasses.md#computed-attributes) et les[attributs alias](ordaClasses.md#alias-attributes) sont des attributs "virtuels". Leur valeur n'est pas stockée mais évaluée à chaque fois qu'on y accède. Ils n'appartiennent pas à la structure sous-jacente de la base, mais ils se basent sur elle et peuvent être utilisés comme n'importe quel champ du modèle de données. +Les [attributs calculés](ordaClasses.md#computed-attributes) et les [attributs alias](ordaClasses.md#alias-attributes) sont des attributs "virtuels". Leur valeur n'est pas stockée mais évaluée à chaque fois qu'on y accède. Ils n'appartiennent pas à la structure sous-jacente de la base, mais ils se basent sur elle et peuvent être utilisés comme n'importe quel champ du modèle de données. ### Entity @@ -183,7 +183,7 @@ Une entité est l'équivalent d'un enregistrement. Il s'agit d'un objet qui fait Le but de l'entité est de gérer les données (créer, mettre à jour, supprimer). Lorsqu'une référence d'entité est obtenue au moyen d'une sélection d'entité, elle conserve également des informations sur la sélection d'entité qui permet une itération à travers la sélection. -An entity object is handled through functions and properties of the [**Entity**](../API/EntityClass.md) class. +Un objet entité est géré par les fonctions et les propriétés de la classe [**Entity**](../API/EntityClass.md). L'objet entité lui-même ne peut pas être copié en tant qu'objet : @@ -203,7 +203,7 @@ Les propriétés de l'entité sont toutefois énumérables : Une entity selection est un objet contenant une ou plusieurs référence(s) à des entités appartenant à la même dataclasse. Elle est généralement créée à la suite d'une requête ou retournée à partir d'un attribut relationnel. Une entity selection peut contenir 0, 1 ou X entités de la dataclass - où X peut représenter le nombre total d'entités contenues dans la dataclass. -An entity selection object is handled through functions and properties of the [**EntitySelection**](../API/EntitySelectionClass.md) class. +Un objet Entity selection est géré par les fonctions et les propriétés de la classe [**EntitySelection**](../API/EntitySelectionClass.md). Voici un exemple : @@ -233,18 +233,18 @@ Les propriétés des entity selections sont toutefois énumérables : #### Entity selections triées vs Entity selections non-triées -Pour des raisons d'optimisation, par défaut, 4D ORDA crée généralement des sélections d'entités non-ordonnées, sauf lorsque vous utilisez la méthode `orderBy( )` ou si vous utilisez les options appropriées. Dans cette documentation, sauf indication contraire, "entity selection" fait généralement référence à une "entity selection non-triée". +Pour des raisons d'optimisation, par défaut, 4D ORDA crée généralement des entity selections non-ordonnées, sauf lorsque vous utilisez la méthode `orderBy()` ou si vous utilisez les options appropriées. Dans cette documentation, sauf indication contraire, "entity selection" fait généralement référence à une "entity selection non-triée". Les entity selections triées sont créées uniquement lorsque cela est nécessaire ou lorsqu'elles sont spécifiquement demandées à l'aide d'options, c'est-à-dire dans les cas suivants : -- résultat d'un `orderBy( )` sur une sélection (de n'importe quel type) ou un `orderBy( )` sur une dataclass, -- résultat de la méthode `newSelection( )` avec l'option `dk keep ordered` +- résultat d'un `orderBy()` sur une sélection (de n'importe quel type) ou un `orderBy()` sur une dataclass, +- résultat de la méthode `newSelection()` avec l'option `dk keep ordered` -Les sélections d'entités non-triées sont créées dans les cas suivants : +Les entity selections non-triées sont créées dans les cas suivants : - résultat d'un `query()` standard sur une sélection (de n'importe quel type) ou un `query()` sur une dataclass, - résultat de la méthode `newSelection()` sans option, -- résultat de l'une des méthodes de comparaison, quel que soit le type de sélection saisi : `or()`, `and()`, `minus()`. +- résultat de l'une des méthodes de comparaison, quel que soit le type de sélection d'origine : `or()`, `and()`, `minus()`. > Les entity selections suivantes sont toujours **triées** : > diff --git a/i18n/fr/docusaurus-plugin-content-docs/version-21/ORDA/entities.md b/i18n/fr/docusaurus-plugin-content-docs/version-21/ORDA/entities.md index 50d4730852d6fa..307430b46754dd 100644 --- a/i18n/fr/docusaurus-plugin-content-docs/version-21/ORDA/entities.md +++ b/i18n/fr/docusaurus-plugin-content-docs/version-21/ORDA/entities.md @@ -120,7 +120,7 @@ $entity.save() //sauvegarder les modifications :::note Notes -- Database Object fields can be [associated with classes](../Develop/field-properties.md), in which case only objects of the defined class can be assigned to the entity attribute. +- Les champs objet de la base de données peuvent être [associés à des classes](../Develop/field-properties.md), auquel cas seuls les objets de la classe définie peuvent être affectés à l'attribut de l'entité. - Les champs Blob des bases de données ([blobs scalaires](Concepts/dt_blob.md)) sont automatiquement convertis en attributs d'objets blob ([`4D.Blob`](Concepts/dt_blob.md)) lorsqu'ils sont traités par ORDA. Lorsque vous sauvegardez un attribut d'objet blob, gardez à l'esprit que, contrairement à la taille de l'objet blob qui n'est limitée que par la mémoire disponible, la taille du champ Blob est limitée à 2 Go. ::: @@ -288,7 +288,7 @@ La nature **partageable** ou **modifiable** d'une entity selection est définie Une nouvelle entity selection est **partageable** dans les cas suivants : -- la nouvelle entity selection résulte d'une fonction de classe ORDA appliquée à une dataClass : [dataClass.all()](API/DataClassClass.md#all), [dataClass.fromCollection()](API/DataClassClass.md#fromcollection), [dataClass.query()](API/DataClassClass.md#quer +- la nouvelle entity selection résulte d'une fonction de classe ORDA appliquée à une dataClass : [dataClass.all()](API/DataClassClass.md#all), [dataClass.fromCollection()](API/DataClassClass.md#fromcollection), [dataClass.query()](API/DataClassClass.md#query), - la nouvelle entity selection est basée sur une relation [entity.*attributeName*](API/EntityClass.md#attributename) (par exemple, "company.employees") lorsque *attributeName* est un attribut lié 1-vers-N mais que l'entité n'appartient pas à une entity selection. - la nouvelle entity selection est explicitement copiée comme partageable avec [entitySelection.copy()](API/EntitySelectionClass.md#copy) ou `OB Copy` (c'est-à-dire avec l'option `ck shared`). @@ -449,7 +449,7 @@ Les filtres s'appliquent aux **entités**. Si vous souhaitez restreindre l'accè ### Comment définir un filtre de restriction -You create a filter for a dataclass by defining an `event restrict` function in the [**dataclass class**](dsMapping.md#dataclass) of the dataclass. Le filtre est alors automatiquement activé. +Vous créez un filtre pour une dataclass en définissant une fonction `event restrict` dans la [**classe**](dsMapping.md#dataclass) de la dataclasse. Le filtre est alors automatiquement activé. ### `Function event restrict` @@ -466,7 +466,7 @@ Le filtre doit retourner une entity selection de la dataclass. Il peut s'agir d' :::note -Pour des raisons de performances, nous recommandons d'utiliser les **attributs indexés** dans la définition du filtre. +Pour des raisons de performances, nous recommandons d'utiliser des **attributs indexés** dans la définition du filtre. ::: diff --git a/i18n/fr/docusaurus-plugin-content-docs/version-21/ORDA/glossary.md b/i18n/fr/docusaurus-plugin-content-docs/version-21/ORDA/glossary.md index 29ecb988e206b8..0802de867e16c6 100644 --- a/i18n/fr/docusaurus-plugin-content-docs/version-21/ORDA/glossary.md +++ b/i18n/fr/docusaurus-plugin-content-docs/version-21/ORDA/glossary.md @@ -9,7 +9,7 @@ title: Glossaire ## Action -Chaque action qui peut être effectuée sur une [ressource](#resource). Available actions are: create, read, update, drop, execute, and promote. +Chaque action qui peut être effectuée sur une [ressource](#resource). Les actions disponibles sont : create, read, update, drop, execute, and promote. ## Attribut @@ -18,11 +18,11 @@ Un attribut est la plus petite cellule de stockage dans une base de données rel - Dans un objet dataclass, chaque propriété est un attribut de dataclass qui correspond à un champ dans la table correspondante (même nom et même type). - Dans un objet entity, les attributs d'entités sont des propriétés qui contiennent les valeurs pour les attributs du datastore correspondants. -> \> Attributes and properties are similar concepts. "Attribut" est utilisé pour désigner les propriétés de la dataclass qui stockent les données, tandis que "propriété" est plus générique et définit une donnée stockée dans un objet. +> Les *attributs* et les *propriétés* sont des concepts similaires. "Attribut" est utilisé pour désigner les propriétés de la dataclass qui stockent les données, tandis que "propriété" est plus générique et définit une donnée stockée dans un objet. ## AttributePath -Un attributePath est le chemin d'un attribut à l'intérieur d'une dataclass ou d'une entité donnée. See also [PropertyPath](#propertypath). +Un attributePath est le chemin d'un attribut à l'intérieur d'une dataclass ou d'une entité donnée. Voir aussi [PropertyPath](#propertypath). ## Class code @@ -89,7 +89,7 @@ Une entité est un objet qui correspond à un modèle de dataclass. Une entité Une entité peut être vue comme une instance de la dataclass, comme un enregistrement de la table correspondante à la dataclass dans son datastore associé. Cependant, une entité contient également des données connexes. Le but de l'entité est de gérer les données (créer, mettre à jour, supprimer). -For more information, see [entities](entities.md). +Pour plus d'informations, voir [entities](entities.md). ## Entity selection diff --git a/i18n/fr/docusaurus-plugin-content-docs/version-21/ORDA/orda-events.md b/i18n/fr/docusaurus-plugin-content-docs/version-21/ORDA/orda-events.md index cc75f45301a848..743e4f1da399fa 100644 --- a/i18n/fr/docusaurus-plugin-content-docs/version-21/ORDA/orda-events.md +++ b/i18n/fr/docusaurus-plugin-content-docs/version-21/ORDA/orda-events.md @@ -5,118 +5,118 @@ title: Events
    Historique -| Release | Modifications | -| ------- | ----------------------------------------------------------------------------------------------------- | -| 21 | Added events: validateSave / saving / afterSave / validateDrop / dropping / afterDrop | -| 20 R10 | touched event added | +| Release | Modifications | +| ------- | ------------------------------------------------------------------------------------------------------------ | +| 21 | Événements ajoutés : validateSave / saving / afterSave / validateDrop / dropping / afterDrop | +| 20 R10 | ajout événement touched |
    -ORDA events are functions that are automatically invoked by ORDA each time entities and entity attributes are manipulated (added, deleted, or modified). You can write very simple events, and then make them more sophisticated. +Les événements ORDA sont des fonctions qui sont automatiquement invoquées par ORDA chaque fois que des entités et des attributs d'entités sont manipulés (ajoutés, supprimés ou modifiés). Vous pouvez écrire des événements très simples, puis les rendre plus sophistiqués. -You cannot directly trigger event function execution. Events are called automatically by ORDA based on user actions or operations performed through code on entities and their attributes. +Vous ne pouvez pas déclencher directement l'exécution d'une fonction d'événement. Les événements sont appelés automatiquement par ORDA en fonction des actions de l'utilisateur ou des opérations effectuées par le code sur les entités et leurs attributs. :::tip Article(s) de blog sur le sujet -[ORDA – Handle an event-driven logic during data persistence actions](https://blog.4d.com/orda-handle-an-event-driven-logic-during-data-persistence-actions) +[ORDA - Gérer une logique événementielle lors des actions de persistance des données](https://blog.4d.com/orda-handle-an-event-driven-logic-during-data-persistence-actions) ::: -:::info Compatibility note +:::info Note de compatibilité -ORDA events in the datastore are equivalent to triggers in the 4D database. However, actions triggered at the 4D database level using the 4D classic language commands or standard actions do not trigger ORDA events. +Les événements d'entité ORDA dans le datastore sont équivalents aux triggers dans la base de données 4D. Cependant, les actions déclenchées au niveau de la base de données 4D à l'aide des commandes du langage classique 4D ou des actions standard ne déclenchent pas les événements ORDA. ::: ## Vue d’ensemble -### Event level +### Niveau de l'événement -A event function is always defined in the [Entity class](../ORDA/ordaClasses.md#entity-class). +Une fonction d'événement d'entité est toujours définie dans la [classe Entity](../ORDA/ordaClasses.md#entity-class). -It can be set at the **entity** level and/or the **attribute** level (it includes [**computed attributes**](../ORDA/ordaClasses.md#computed-attributes)). In the first case, it will be triggered for any attributes of the entity; on the other case, it will only be triggered for the targeted attribute. +Un événement peut être défini au niveau de l'**entité** et/ou de l'**attribut** (y compris les [**attributs calculés**](../ORDA/ordaClasses.md#computed-attributes)). Dans le premier cas, il sera déclenché pour tous les attributs de l'entité ; dans l'autre cas, il ne sera déclenché que pour l'attribut ciblé. -For the same event, you can define different functions for different attributes. +Pour un même événement, vous pouvez définir différentes fonctions pour différents attributs. -You can also define the same event at both attribute and entity levels. The attribute event is called first and then the entity event. +Vous pouvez également définir le même événement au niveau de l'attribut et de l'entité. L'événement attribut est appelé en premier, puis l'événement entité. -### Execution in remote configurations +### Exécution en configuration distante -Usually, ORDA events are executed on the server. +En général, les événements ORDA sont exécutés sur le serveur. -In client/server configuration however, the `touched()` event function can be executed on the **server or the client**, depending on the use of [`local`](./ordaClasses.md#local-functions) keyword. A specific implementation on the client side allows the triggering of the event on the client. +Cependant, dans une configuration client/serveur, la fonction d'événement `touched()` peut être exécutée sur **le serveur ou le client**, en fonction de l'utilisation du mot-clé [`local`](./ordaClasses.md#local-functions). Une implémentation spécifique côté client permet de déclencher l'événement sur le client. :::note -ORDA [`constructor()`](./ordaClasses.md#class-constructor) functions are always executed on the client. +Les fonctions ORDA [`constructor()`](./ordaClasses.md#class-constructor) sont toujours exécutées sur le client. ::: -With other remote configurations (i.e. Qodly applications, [REST API requests](../REST/REST_requests.md), or requests through [`Open datastore`](../commands/open-datastore.md)), the `touched()` event function is always executed **server-side**. It means that you have to make sure the server can "see" that an attribute has been touched to trigger the event (see below). +Avec d'autres configurations distantes (i.e. applications Qodly, [requêtes via l'API REST](../REST/REST_requests.md), ou requêtes via [`Open datastore`](../commands/open-datastore.md)), la fonction d'événement `touched()` est toujours exécutée **côté serveur**. Cela signifie que vous devez vous assurer que le serveur peut "voir" qu'un attribut a été touché pour déclencher l'événement (voir ci-dessous). -### Summary table +### Tableau de synthèse -The following table lists ORDA events along with their rules. +Le tableau suivant liste les événements d'entité ORDA ainsi que leurs règles. -| Evénement | Niveau | Function name | (C/S) Executed on | Can stop action by returning an error | -| :------------------------ | :------- | :------------------------------------------------------ | :------------------------------------------------------------------: | ------------------------------------- | -| Entity instantiation | Entity | [`constructor()`](./ordaClasses.md#class-constructor-1) | client | non | -| Attribute touched | Attribut | `event touched ()` | Depends on [`local`](../ORDA/ordaClasses.md#local-functions) keyword | non | -| | Entity | `event touched()` | Depends on [`local`](../ORDA/ordaClasses.md#local-functions) keyword | non | -| Before saving an entity | Attribut | `validateSave ()` | server | oui | -| | Entity | `validateSave()` | server | oui | -| When saving an entity | Attribut | `saving ()` | server | oui | -| | Entity | `saving()` | server | oui | -| After saving an entity | Entity | `afterSave()` | server | non | -| Before dropping an entity | Attribut | `validateDrop ()` | server | oui | -| | Entity | `validateDrop()` | server | oui | -| When dropping an entity | Attribut | `dropping ()` | server | oui | -| | Entity | `dropping()` | server | oui | -| After dropping an entity | Entity | `afterDrop()` | server | non | +| Evénement | Niveau | Nom de la fonction | (C/S) Exécuté sur | Peut arrêter l'action en renvoyant une erreur | +| :------------------------------------ | :------- | :------------------------------------------------------ | :-----------------------------------------------------------------: | --------------------------------------------- | +| Instanciation d'entité | Entity | [`constructor()`](./ordaClasses.md#class-constructor-1) | client | non | +| Attribut touched | Attribut | `event touched ()` | Dépend du mot-clé [`local`](../ORDA/ordaClasses.md#local-functions) | non | +| | Entity | `event touched()` | Dépend du mot-clé [`local`](../ORDA/ordaClasses.md#local-functions) | non | +| Avant l'enregistrement d'une entité | Attribut | `validateSave ()` | server | oui | +| | Entity | `validateSave()` | server | oui | +| Pendant l'enregistrement d'une entité | Attribut | `saving ()` | server | oui | +| | Entity | `saving()` | server | oui | +| Après l'enregistrement d'une entité | Entity | `afterSave()` | server | non | +| Avant la suppression d'une entité | Attribut | `validateDrop ()` | server | oui | +| | Entity | `validateDrop()` | server | oui | +| Pendant la suppression d'une entité | Attribut | `dropping ()` | server | oui | +| | Entity | `dropping()` | server | oui | +| Après la suppression d'une entité | Entity | `afterDrop()` | server | non | :::note -The [`constructor()`](./ordaClasses.md#class-constructor-1) function is not actually an event function but is always called when a new entity is instantiated. +La fonction [`constructor()`](./ordaClasses.md#class-constructor-1) n'est pas en soi une fonction d'événement, mais elle est toujours appelée lorsqu'une nouvelle entité est instanciée. ::: -## *event* parameter +## Paramètre *event* -Event functions accept a single *event* object as parameter. When the function is called, the parameter is filled with several properties: +Les fonctions d'événement acceptent un seul objet *event* comme paramètre. Lorsque la fonction est appelée, le paramètre est rempli avec diverses propriétés : -| Nom de propriété | Disponibilité | Type | Description | | -| :------------------ | :----------------------------------------------------------------------------------------------------------------------- | :------------------- | :-------------------------------------------------------------------------------------------------------------------- | - | -| "kind" | Toujours | String | Event name: "touched", "validateSave", "saving", "afterSave", "validateDrop", "dropping", "afterDrop" | | -| *attributeName* | Only for events implemented at attribute level ("validateSave", "saving", "validateDrop", "dropping") | String | Nom de l'attribut (*ex.* "firstname") | | -| *dataClassName* | Toujours | String | Nom du verre de données (*ex.* "Company") | | -| "savedAttributes" | Only in [`afterSave()`](#function-event-aftersave) | Collection of String | Names of attributes properly saved | | -| "droppedAttributes" | Only in [`afterDrop()`](#function-event-afterdrop) | Collection of String | Names of attributes properly dropped | | -| "saveStatus" | Only in [`afterSave()`](#function-event-aftersave) | String | "success" if the save was successful, "failed" otherwise | | -| "dropStatus" | Only in [`afterDrop()`](#function-event-afterdrop) | String | "success" if the drop was successful, "failed" otherwise | | +| Nom de propriété | Disponibilité | Type | Description | | +| :------------------ | :--------------------------------------------------------------------------------------------------------------------------------------- | :-------------------- | :----------------------------------------------------------------------------------------------------------------------------- | - | +| "kind" | Toujours | String | Nom de l'événement : "touched", "validateSave", "saving", "afterSave", "validateDrop", "dropping", "afterDrop" | | +| *attributeName* | Uniquement pour les événements définis au niveau des attributs ("validateSave", "saving", "validateDrop", "dropping") | String | Nom de l'attribut (*ex.* "firstname") | | +| *dataClassName* | Toujours | String | Nom du verre de données (*ex.* "Company") | | +| "savedAttributes" | Uniquement dans [`afterSave()`](#function-event-aftersave) | Collection de chaînes | Noms des attributs correctement enregistrés | | +| "droppedAttributes" | Uniquement dans [`afterDrop()`](#function-event-afterdrop) | Collection de chaînes | Noms des attributs correctement supprimés | | +| "saveStatus" | Uniquement dans [`afterSave()`](#function-event-aftersave) | String | "success" si l'enregistrement a réussi, "failed" sinon | | +| "dropStatus" | Uniquement dans [`afterDrop()`](#function-event-afterdrop) | String | "success" si la suppression a réussi, "failed" sinon | | -## Error object +## Objet error -[Some event functions](#summary-table) can return an **error object** to raise an error and stop the running action. +[Certaines fonctions d'événement](#summary-table) peuvent renvoyer un **objet error** pour déclencher une erreur et arrêter l'action en cours. -When an error occurs in an event, the other events are stopped at the first raised error and the action (save or drop) is also stopped. This error is sent before other potential errors like [stamp has changed, entity locked](../API/EntityClass.md#save), etc. +Lorsqu'une erreur survient dans un événement, les autres événements sont stoppés à la première erreur signalée et l'action (enregistrement pu suppression) est également arrêtée. Cette erreur est envoyée avant d'autres erreurs potentielles telles que [stamp has changed, entity locked](../API/EntityClass.md#save), etc. -### Error object properties +### Propriétés de l'objet error -| Propriété | Type | Description | Set by the developer | -| ------------------ | ------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ----------------------------------------- | -| errCode | Integer | Same as for [`Last errors`](../commands/last-errors.md) command | Oui | -| message | Text | Same as for [`Last errors`](../commands/last-errors.md) command | Oui | -| extraDescription | Object | Free information to set up | Oui | -| seriousError | Boolean | Used only with validate events (see below).
  • `True`: creates a [serious (unpredictable) error](../Concepts/error-handling.md#predictable-vs-unpredictable-errors) and triggers an exception. Adds the `dk status serious validation error` status
  • creates only a [silent (predictable) error](../Concepts/error-handling.md#predictable-vs-unpredictable-errors). Adds the `dk status validation failed` status
  • | Yes (default is false) | -| componentSignature | Text | Always "DBEV" | Non | +| Propriété | Type | Description | Fixé par le développeur | +| ------------------ | ------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------- | +| errCode | Integer | Identique à la commande [`Last errors`](../commands/last-errors.md) | Oui | +| message | Text | Identique à la commande [`Last errors`](../commands/last-errors.md) | Oui | +| extraDescription | Object | Informations libres à définir | Oui | +| seriousError | Boolean | Utilisé uniquement avec les événements de validation (voir ci-dessous).
  • `True` : crée une [erreur critique (imprévisible)](../Concepts/error-handling.md#predictable-vs-unpredictable-errors) et déclenche une exception. Ajoute le statut `dk status serious validation error`
  • ne crée qu'une [erreur silencieuse (prévisible)](../Concepts/error-handling.md#predictable-vs-unpredictable-errors). Ajoute le statut `dk status validation failed`.
  • | Oui (par défaut : False) | +| componentSignature | Text | Toujours "DBEV" | Non | -- [Serious errors](../Concepts/error-handling.md#predictable-vs-unpredictable-errors) are stacked in the `errors` collection property of the **Result object** returned by the [`save()`](../API/EntityClass.md#save) or [`drop()`](../API/EntityClass.md#drop) functions. -- In case of an error triggered by a **validate** event, the `seriousError` property allows you to choose the level of the error to generate: - - If **true**: a serious error is thrown and should be handled by the [error processing code](../Concepts/error-handling.md#predictable-vs-unpredictable-errors), such as a [try catch](../Concepts/error-handling.md#trycatchend-try). In the result object of the calling function, `status` gets `dk status serious validation error` and `statusText` gets "Serious Validation Error". The error is raised at the end of the event and reach the client requesting the save/drop action (REST client for example). - - If **false** (default): a [silent (predictable) error is generated](../Concepts/error-handling.md#predictable-vs-unpredictable-errors). It does not trigger any exception and is not stacked in the errors returned by the [`Last errors`](../commands/last-errors.md) command. In the result object of the calling function, `status` gets `dk status validation failed` and `statusText` gets "Mild Validation Error". -- In case of an error triggered by a **saving/dropping** event, when an error object is returned, the error is always raised as a serious error whatever the `seriousError` property value. +- Les [erreurs critiques](../Concepts/error-handling.md#predictable-vs-unpredictable-errors) sont empilées dans la collection de la propriété `errors` de l'objet **Result** renvoyé par les fonctions [`save()`](../API/EntityClass.md#save) ou [`drop()`](../API/EntityClass.md#drop). +- Dans le cas d'une erreur déclenchée par un événement **validate**, la propriété `seriousError` permet de choisir le niveau d'erreur à générer : + - Si **true** : une erreur critique est déclenchée et doit être traitée par le [code de traitement des erreurs](../Concepts/error-handling.md#predictable-vs-unpredictable-errors), tel qu'un ["try catch"](../Concepts/error-handling.md#trycatchend-try). Dans l'objet résultat de la fonction appelante, `status` vaut `dk status serious validation error` et `statusText` vaut "Serious Validation Error". L'erreur est levée à la fin de l'événement et parvient au client qui demande l'action d'enregistrement/suppression (client REST par exemple). + - Si **false** (défaut) : une [erreur silencieuse (prévisible) est générée](../Concepts/error-handling.md#predictable-vs-unpredictable-errors). Elle ne déclenche aucune exception et n'est pas empilée dans les erreurs retournées par la commande [`Last errors`](../commands/last-errors.md). Dans l'objet résultat de la fonction appelante, `status` vaut `dk status validation failed` et `statusText` vaut "Mild Validation Error". +- Dans le cas d'une erreur déclenchée par un événement **saving/dropping**, lorsqu'un objet d'erreur est renvoyé, l'erreur est toujours définie comme critique, quelle que soit la valeur de la propriété `seriousError`. -## Event function description +## Description des fonctions ### `Function event touched` @@ -128,19 +128,19 @@ When an error occurs in an event, the other events are stopped at the first rais // code ``` -This event is triggered each time a value is modified in the entity. +Cet événement est déclenché chaque fois qu'une valeur est modifiée dans l'entité. -- If you defined the function at the entity level (first syntax), it is triggered for modifications on any attribute of the entity. -- If you defined the function at the attribute level (second syntax), it is triggered only for modifications on this attribute. +- Si vous avez défini la fonction au niveau de l'entité (première syntaxe), elle est déclenchée pour des modifications sur n'importe quel attribut de l'entité. +- Si vous avez défini la fonction au niveau de l'attribut (deuxième syntaxe), elle n'est déclenchée que pour les modifications sur cet attribut. -This event is triggered as soon as the 4D Server / 4D engine can detect a modification of attribute value which can be due to the following actions: +Cet événement est déclenché dès que le moteur de 4D Server / 4D détecte une modification de la valeur de l'attribut qui peut être due aux actions suivantes : -- in **client/server with the [`local` keyword](../ORDA/ordaClasses.md#local-functions)** or in **4D single-user**: - - the user sets a value on a 4D form, - - the 4D code makes an assignment with the `:=` operator. The event is also triggered in case of self-assignment (`$entity.attribute:=$entity.attribute`). -- in **client/server without the `local` keyword**: some 4D code that makes an assignment with the `:=` operator is [executed on the server](../commands-legacy/execute-on-server.md). -- in **client/server without the `local` keyword**, in **[Qodly application](https://developer.qodly.com/docs)** and **[remote datastore](../commands/open-datastore.md)**: the entity is received on 4D Server while calling an ORDA function (on the entity or with the entity as parameter). It means that you might have to implement a *refresh* or *preview* function on the remote application that sends an ORDA request to the server and triggers the event. -- with the REST server: the value is received on the REST server with a [REST request](../REST/$method.md#methodupdate) (`$method=update`) +- en **client/serveur avec le [mot-clé `local`](../ORDA/ordaClasses.md#local-functions)** ou en **4D mono-utilisateur** : + - l'utilisateur saisit une valeur dans un formulaire 4D, + - le code 4D effectue une assignation avec l'opérateur `:=`. L'événement est également déclenché en cas d'auto-assignation (`$entity.attribute:=$entity.attribute`). +- en **client/serveur sans le mot-clé `local`** : du code 4D effectue une assignation avec l'opérateur `:=` est [exécuté sur le serveur](../commands-legacy/execute-on-server.md). +- en **client/serveur sans le mot-clé `local`**, une **[application Qodly](https://developer.qodly.com/docs)** ou **[datastore distant](../commands/open-datastore.md)** : l'entité est reçue sur le serveur 4D lors de l'appel d'une fonction ORDA (sur l'entité ou avec l'entité en tant que paramètre). Cela signifie que vous devrez peut-être mettre en place une fonction *refresh* ou *preview* sur l'application distante qui envoie une requête ORDA au serveur et déclenche l'événement. +- avec le serveur REST : la valeur est reçue sur le serveur REST avec une [requête REST](../REST/$method.md#methodupdate) (`$method=update`) The function receives an [*event* object](#event-parameter) as parameter. diff --git a/i18n/fr/docusaurus-plugin-content-docs/version-21/assets/en/FormEditor/fluent-dark.png b/i18n/fr/docusaurus-plugin-content-docs/version-21/assets/en/FormEditor/fluent-dark.png new file mode 100644 index 00000000000000..fe35b22f4c5438 Binary files /dev/null and b/i18n/fr/docusaurus-plugin-content-docs/version-21/assets/en/FormEditor/fluent-dark.png differ diff --git a/i18n/fr/docusaurus-plugin-content-docs/version-21/assets/en/FormEditor/fluent.png b/i18n/fr/docusaurus-plugin-content-docs/version-21/assets/en/FormEditor/fluent.png new file mode 100644 index 00000000000000..f8ece4b7fb5fbb Binary files /dev/null and b/i18n/fr/docusaurus-plugin-content-docs/version-21/assets/en/FormEditor/fluent.png differ diff --git a/i18n/ja/docusaurus-plugin-content-docs/current/FormEditor/forms.md b/i18n/ja/docusaurus-plugin-content-docs/current/FormEditor/forms.md index a421e9046f83c1..7774b26c45bf74 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/current/FormEditor/forms.md +++ b/i18n/ja/docusaurus-plugin-content-docs/current/FormEditor/forms.md @@ -100,6 +100,10 @@ title: Forms On Windows, 4D supports **Fluent UI** form rendering, Microsoft's modern graphical user interface design, based upon **WinUI 3** technology. **WinUI 3** is the foundation of the Windows App SDK and represents the upcoming Windows graphical interfaces. +| Light theme | Dark theme | +| --------------------------------------- | -------------------------------------------- | +| ![](../assets/en/FormEditor/fluent.png) | ![](../assets/en/FormEditor/fluent-dark.png) | + :::caution デベロッパー・プレビュー Fluent UI support is currently in the Developer Preview phase. 本番環境で使用すべきではありません。 diff --git a/i18n/ja/docusaurus-plugin-content-docs/current/assets/en/FormEditor/fluent-dark.png b/i18n/ja/docusaurus-plugin-content-docs/current/assets/en/FormEditor/fluent-dark.png new file mode 100644 index 00000000000000..fe35b22f4c5438 Binary files /dev/null and b/i18n/ja/docusaurus-plugin-content-docs/current/assets/en/FormEditor/fluent-dark.png differ diff --git a/i18n/ja/docusaurus-plugin-content-docs/current/assets/en/FormEditor/fluent.png b/i18n/ja/docusaurus-plugin-content-docs/current/assets/en/FormEditor/fluent.png new file mode 100644 index 00000000000000..f8ece4b7fb5fbb Binary files /dev/null and b/i18n/ja/docusaurus-plugin-content-docs/current/assets/en/FormEditor/fluent.png differ diff --git a/i18n/ja/docusaurus-plugin-content-docs/version-20-R10/ORDA/orda-events.md b/i18n/ja/docusaurus-plugin-content-docs/version-20-R10/ORDA/orda-events.md index 9b6f26afd6daa1..1fc61d006e4c07 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/version-20-R10/ORDA/orda-events.md +++ b/i18n/ja/docusaurus-plugin-content-docs/version-20-R10/ORDA/orda-events.md @@ -1,6 +1,6 @@ --- id: orda-events -title: ORDA Events +title: ORDAイベント ---
    履歴 @@ -67,11 +67,11 @@ The [`constructor()`](./ordaClasses.md#class-constructor-1) function is not actu Event functions accept a single *event* object as parameter. When the function is called, the parameter is filled with several properties: -| プロパティ名 | 利用可能性 | 型 | 説明 | -| :-------------- | :------------------------------------- | :-- | :------------------------------------------------------------------------------------- | -| `kind` | Always | 文字列 | Event name ("touched") | -| *attributeName* | Only for events involving an attribute | 文字列 | Attribute name (*e.g.* "firstname") | -| *dataClassName* | Always | 文字列 | Dataclass name (*e.g.* "Company") | +| プロパティ名 | 利用可能性 | 型 | 説明 | +| :-------------- | :----------- | :-- | :------------------------------------------------------------------------------------- | +| `kind` | Always | 文字列 | イベント名("touched") | +| *attributeName* | 属性に関するイベントのみ | 文字列 | Attribute name (*e.g.* "firstname") | +| *dataClassName* | Always | 文字列 | Dataclass name (*e.g.* "Company") | ## Event function description @@ -87,8 +87,8 @@ Event functions accept a single *event* object as parameter. When the function i This event is triggered each time a value is modified in the entity. -- if you defined the function at the entity level (first syntax), it is triggered for modifications on any attribute of the entity. -- if you defined the function at the attribute level (second syntax), it is triggered only for modifications on this attribute. +- 関数をエンティティレベルで定義していた場合(第一シンタックス)、その関数はエンティティの任意の属性における変更に対してトリガーされます。 +- 関数を属性レベルで定義していた場合(第二シンタックス)、関数はその属性に対する変更に対してのみトリガーされます。 This event is triggered as soon as the 4D Server / 4D engine can detect a modification of attribute value which can be due to the following actions: @@ -101,7 +101,7 @@ This event is triggered as soon as the 4D Server / 4D engine can detect a modifi The function receives an [*event* object](#event-parameter) as parameter. -If this event [throws](../commands-legacy/throw.md) an error, it will not stop the undergoing action. +このイベントがエラーを[throw](../commands-legacy/throw.md) する場合でも、進行中のアクションは停止しません。 :::note diff --git a/i18n/ja/docusaurus-plugin-content-docs/version-20-R10/Project/components.md b/i18n/ja/docusaurus-plugin-content-docs/version-20-R10/Project/components.md index 63488266de291f..c5e22a805f5c67 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/version-20-R10/Project/components.md +++ b/i18n/ja/docusaurus-plugin-content-docs/version-20-R10/Project/components.md @@ -516,7 +516,7 @@ GitHub 依存関係は[**dependencies.json**](#dependenciesjson) ファイル内 #### GitHub 依存関係バージョン範囲の変更 -You can modify the [version setting](#defining-a-github-dependency-version-range) for a listed GitHub dependency: select the dependency to modify and select **Modify the dependency...** from the contextual menu. In the "Modify the dependency" dialog box, edit the Dependency Rule menu and click **Apply**. +一覧に表示されたGitHub 依存関係に対して[バージョン設定](#github-依存関係のバージョン範囲を定義) を編集することができます: 編集する依存関係を選択し、コンテキストメニューから**依存関係を編集...** を選択して下さい。 In the "依存関係を編集" ダイアログボックス内にて、依存関係のルールメニューを編集し、**適用** をクリックします。 バージョン範囲の変更は、自動アップデート機能を使用しているときに依存関係を特定のバージョン番号にロックしておきたいときに有用です。 diff --git a/i18n/ja/docusaurus-plugin-content-docs/version-20-R10/settings/client-server.md b/i18n/ja/docusaurus-plugin-content-docs/version-20-R10/settings/client-server.md index e96fd983130c6e..9d6699cccac929 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/version-20-R10/settings/client-server.md +++ b/i18n/ja/docusaurus-plugin-content-docs/version-20-R10/settings/client-server.md @@ -79,7 +79,7 @@ Single Sign On (SSO) が有効になっている場合 (上述参照)、認証 - QUICレイヤーオプションを選択すると: - ドロップダウンメニューの隣に、ベータ版である旨のメッセージと警告アイコンが表示されます。 - [Client-server Connections Timeout settings](#client-server-connections-timeout) are hidden - - The [Encrypt Client-Server communication checkbox](#encrypt-client-server-communications) is hidden (QUIC communications are always in TLS, whatever your secured mode is.). + - [クライアント-サーバー通信の暗号化](#クライアント-サーバー通信の暗号化) チェックボックスは非表示になります (セキュアモードに関わらず、QUIC 通信は常に TLS です)。 - **互換性**: QUICネットワークレイヤーに切り替えるには、まずクライアント/サーバーアプリケーションを 4D v20以上で運用する必要があります。 :::note diff --git a/i18n/ja/docusaurus-plugin-content-docs/version-21/API/DataClassClass.md b/i18n/ja/docusaurus-plugin-content-docs/version-21/API/DataClassClass.md index a8f389fc3a0b6a..8812a3e7f7f275 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/version-21/API/DataClassClass.md +++ b/i18n/ja/docusaurus-plugin-content-docs/version-21/API/DataClassClass.md @@ -1187,11 +1187,11 @@ $es:=ds.Movie.query("roles.actor.lastName = :1 AND roles.actor{2}.lastName = :2" この場合、*value* 引数は、以下のプロパティを格納した**比較ベクトルオブジェクト** である必要があります: -| プロパティ | 型 | 説明 | -| --------- | -------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -| vector | [4D.Vector](../API/VectorClass.md) | 必須設定です。 比較するベクトル | -| metric | Text | 任意。 クエリに使用する[ベクトル計算](../API/VectorClass.md#ことなるベクトル計算を理解する)。 You can use one of the following (Text) constants:
  • `mk cosine` (default if omitted): calculates the cosine distance between vectors.
  • `mk dot`: calculates the dot similarity of vectors.
  • `mk euclidean`: calculates the Euclidean distance between vectors. | -| threshold | Real | 任意(デフォルト: 0.5)。 選択された"metric"に従って、コサイン、ドット、またはユークリッド類似度に基づいたベクトル比較をフィルタリングするために使用されるしきい値。 最適な結果を得るためには、特定の用途に最適な類似度のしきい値をきちんと選択することが強く推奨されます。 | +| プロパティ | 型 | 説明 | +| --------- | -------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| vector | [4D.Vector](../API/VectorClass.md) | 必須設定です。 比較するベクトル | +| metric | Text | 任意。 クエリに使用する[ベクトル計算](../API/VectorClass.md#ことなるベクトル計算を理解する)。 以下の(テキスト)定数のいずれか一つを使用できます:
  • `mk cosine` (省略時のデフォルト): ベクトル間のコサイン距離を計算します。
  • `mk dot`: ベクトルのドット類似度を計算します。
  • `mk euclidean`: ベクトル間のユークリッド距離を計算します。 | +| threshold | Real | 任意(デフォルト: 0.5)。 選択された"metric"に従って、コサイン、ドット、またはユークリッド類似度に基づいたベクトル比較をフィルタリングするために使用されるしきい値。 最適な結果を得るためには、特定の用途に最適な類似度のしきい値をきちんと選択することが強く推奨されます。 | **comparator** 記号の、一部のみがサポートされます。 これらの比較記号は、結果としきい値を比較するのに使用されるという点に注意してください: diff --git a/i18n/ja/docusaurus-plugin-content-docs/version-21/FormEditor/forms.md b/i18n/ja/docusaurus-plugin-content-docs/version-21/FormEditor/forms.md index a421e9046f83c1..7774b26c45bf74 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/version-21/FormEditor/forms.md +++ b/i18n/ja/docusaurus-plugin-content-docs/version-21/FormEditor/forms.md @@ -100,6 +100,10 @@ title: Forms On Windows, 4D supports **Fluent UI** form rendering, Microsoft's modern graphical user interface design, based upon **WinUI 3** technology. **WinUI 3** is the foundation of the Windows App SDK and represents the upcoming Windows graphical interfaces. +| Light theme | Dark theme | +| --------------------------------------- | -------------------------------------------- | +| ![](../assets/en/FormEditor/fluent.png) | ![](../assets/en/FormEditor/fluent-dark.png) | + :::caution デベロッパー・プレビュー Fluent UI support is currently in the Developer Preview phase. 本番環境で使用すべきではありません。 diff --git a/i18n/ja/docusaurus-plugin-content-docs/version-21/assets/en/FormEditor/fluent-dark.png b/i18n/ja/docusaurus-plugin-content-docs/version-21/assets/en/FormEditor/fluent-dark.png new file mode 100644 index 00000000000000..fe35b22f4c5438 Binary files /dev/null and b/i18n/ja/docusaurus-plugin-content-docs/version-21/assets/en/FormEditor/fluent-dark.png differ diff --git a/i18n/ja/docusaurus-plugin-content-docs/version-21/assets/en/FormEditor/fluent.png b/i18n/ja/docusaurus-plugin-content-docs/version-21/assets/en/FormEditor/fluent.png new file mode 100644 index 00000000000000..f8ece4b7fb5fbb Binary files /dev/null and b/i18n/ja/docusaurus-plugin-content-docs/version-21/assets/en/FormEditor/fluent.png differ diff --git a/i18n/pt/docusaurus-plugin-content-docs/current/FormEditor/forms.md b/i18n/pt/docusaurus-plugin-content-docs/current/FormEditor/forms.md index 1138d8154a484c..aa0e9e47272a43 100644 --- a/i18n/pt/docusaurus-plugin-content-docs/current/FormEditor/forms.md +++ b/i18n/pt/docusaurus-plugin-content-docs/current/FormEditor/forms.md @@ -100,6 +100,10 @@ Um formulário de múltiplas páginas possui tanto uma página de fundo quanto v On Windows, 4D supports **Fluent UI** form rendering, Microsoft's modern graphical user interface design, based upon **WinUI 3** technology. **WinUI 3** is the foundation of the Windows App SDK and represents the upcoming Windows graphical interfaces. +| Light theme | Dark theme | +| --------------------------------------- | -------------------------------------------- | +| ![](../assets/en/FormEditor/fluent.png) | ![](../assets/en/FormEditor/fluent-dark.png) | + :::caution Prévia do desenvolvedor Fluent UI support is currently in the Developer Preview phase. Não deve ser usado na produção. diff --git a/i18n/pt/docusaurus-plugin-content-docs/current/assets/en/FormEditor/fluent-dark.png b/i18n/pt/docusaurus-plugin-content-docs/current/assets/en/FormEditor/fluent-dark.png new file mode 100644 index 00000000000000..fe35b22f4c5438 Binary files /dev/null and b/i18n/pt/docusaurus-plugin-content-docs/current/assets/en/FormEditor/fluent-dark.png differ diff --git a/i18n/pt/docusaurus-plugin-content-docs/current/assets/en/FormEditor/fluent.png b/i18n/pt/docusaurus-plugin-content-docs/current/assets/en/FormEditor/fluent.png new file mode 100644 index 00000000000000..f8ece4b7fb5fbb Binary files /dev/null and b/i18n/pt/docusaurus-plugin-content-docs/current/assets/en/FormEditor/fluent.png differ diff --git a/i18n/pt/docusaurus-plugin-content-docs/version-21/FormEditor/forms.md b/i18n/pt/docusaurus-plugin-content-docs/version-21/FormEditor/forms.md index 1138d8154a484c..aa0e9e47272a43 100644 --- a/i18n/pt/docusaurus-plugin-content-docs/version-21/FormEditor/forms.md +++ b/i18n/pt/docusaurus-plugin-content-docs/version-21/FormEditor/forms.md @@ -100,6 +100,10 @@ Um formulário de múltiplas páginas possui tanto uma página de fundo quanto v On Windows, 4D supports **Fluent UI** form rendering, Microsoft's modern graphical user interface design, based upon **WinUI 3** technology. **WinUI 3** is the foundation of the Windows App SDK and represents the upcoming Windows graphical interfaces. +| Light theme | Dark theme | +| --------------------------------------- | -------------------------------------------- | +| ![](../assets/en/FormEditor/fluent.png) | ![](../assets/en/FormEditor/fluent-dark.png) | + :::caution Prévia do desenvolvedor Fluent UI support is currently in the Developer Preview phase. Não deve ser usado na produção. diff --git a/i18n/pt/docusaurus-plugin-content-docs/version-21/assets/en/FormEditor/fluent-dark.png b/i18n/pt/docusaurus-plugin-content-docs/version-21/assets/en/FormEditor/fluent-dark.png new file mode 100644 index 00000000000000..fe35b22f4c5438 Binary files /dev/null and b/i18n/pt/docusaurus-plugin-content-docs/version-21/assets/en/FormEditor/fluent-dark.png differ diff --git a/i18n/pt/docusaurus-plugin-content-docs/version-21/assets/en/FormEditor/fluent.png b/i18n/pt/docusaurus-plugin-content-docs/version-21/assets/en/FormEditor/fluent.png new file mode 100644 index 00000000000000..f8ece4b7fb5fbb Binary files /dev/null and b/i18n/pt/docusaurus-plugin-content-docs/version-21/assets/en/FormEditor/fluent.png differ