diff --git a/docs/API/EntityClass.md b/docs/API/EntityClass.md index 8b098ee967f061..52256ca45d2fd8 100644 --- a/docs/API/EntityClass.md +++ b/docs/API/EntityClass.md @@ -95,9 +95,11 @@ The attribute value type depends on the attribute [kind](DataClassClass.md#attri #### Description -The `.clone()` function creates in memory a new entity referencing the same record as the original entity. This function allows you to update entities separately. +The `.clone()` function creates in memory a new entity referencing the same record as the original entity. ->Keep in mind that any modifications done to entities will be saved in the referenced record only when the [`.save( )`](#save) function is executed. +This function allows you to update entities separately. Note however that, for performance reasons, the new entity shares the same reference of object attributes as the cloned entity. + +>Keep in mind that any modifications done to entities will be saved in the referenced record only when the [`.save()`](#save) function is executed. This function can only be used with entities already saved in the database. It cannot be called on a newly created entity (for which [`.isNew()`](#isnew) returns **True**). diff --git a/docs/API/IncomingMessageClass.md b/docs/API/IncomingMessageClass.md index cc9edf95a3b1ad..646ad137aae960 100644 --- a/docs/API/IncomingMessageClass.md +++ b/docs/API/IncomingMessageClass.md @@ -6,7 +6,7 @@ title: IncomingMessage The `4D.IncomingMessage` class allows you to handle the object received by a custom [**HTTP request handler**](../WebServer/http-request-handler.md). HTTP requests and their properties are automatically received as an instance of the `4D.IncomingMessage` class. Parameters given directly in the request with GET verb are handled by the [`.urlQuery`](#urlquery) property, while parameters passed in the body of the request are available through functions such as [`.getBlob()`](#getblob) or [`getText()`](#gettext). -The HTTP request handler can return any value (or nothing). It usually returns an instance of the [`4D.OutgoingMessage`](OutGoingMessageClass.md) class. +The HTTP request handler can return any value (or nothing). It usually returns an instance of the [`4D.OutgoingMessage`](OutgoingMessageClass.md) class. All properties of this class are read-only. They are automatically filled by the request handler. diff --git a/docs/API/OutgoingMessageClass.md b/docs/API/OutgoingMessageClass.md deleted file mode 100644 index dd3efc63f624c3..00000000000000 --- a/docs/API/OutgoingMessageClass.md +++ /dev/null @@ -1,197 +0,0 @@ ---- -id: OutgoingMessageClass -title: OutgoingMessage ---- - - -The `4D.OutgoingMessage` class allows you to build messages to be returned by your application functions in response to [REST requests](../REST/REST_requests.md). If the response is of type `4D.OutgoingMessage`, the REST server does not return an object but the object instance of the `OutgoingMessage` class. - -Typically, this class can be used in custom [HTTP request handler functions](../WebServer/http-request-handler.md#function-configuration) or in functions declared with the [`onHttpGet`](../ORDA/ordaClasses.md#onhttpget-keyword) keyword and designed to handle HTTP GET requests. Such requests are used, for example, to implement features such as download file, generate and download picture as well as receiving any content-type via a browser. - -An instance of this class is built on 4D Server and can be sent to the browser by the [4D REST Server](../REST/gettingStarted.md) only. This class allows to use other technologies than HTTP (e.g. mobile). - - - - -
History - -|Release|Changes| -|---|---| -|20 R7|Class added| - -
- -### Example - -In this example, a `getFile()` function is implemented in the [Datastore class](../ORDA/ordaClasses.md#datastore-class) and [can be called](../ORDA/ordaClasses.md#onhttpget-keyword) by a REST request. The purpose is to return a **testFile.pdf** file as a response to the request: - -```4d -Class extends DataStoreImplementation - -exposed onHTTPGet Function getFile() : 4D.OutgoingMessage - - var $result:=4D.OutgoingMessage.new() - var $file:=File("/RESOURCES/testFile.pdf") - - $result.setBody($file.getContent()) // This is binary content - $result.setHeader("Content-Type"; "application/pdf") - return $result -``` - -### OutgoingMessage Object - - -4D.OutgoingMessage objects provide the following properties and functions: - -|| -|---| -|[](#body)
| -|[](#headers)
| -|[](#setbody)
| -|[](#setheader)
| -|[](#setstatus)
| -|[](#status)
| - -:::note - -A 4D.OutgoingMessage object is a [non-sharable](../Concepts/shared.md) object. - -::: - - - - - - -## .body - -**body** : any - -#### Description - -The `.body` property contains the outgoing message body. The following data types are supported in the `.body` property: - -- text -- blob -- object -- image - -The `.body` property is read-write. - -You can also set the `.body` property using the [`setBody()`](#setbody) function, in which case the `content-type` header is automatically set. - - - - - -## .headers - -**headers** : Object - -#### Description - -The `.headers` property contains the current headers of the outgoing message as key/value pairs. - -The `.headers` property is read-only. To set a header, use the [`setHeader()`](#setheader) function. - - - - - -## .setBody() - -**.setBody**( *body* : any ) - - - -|Parameter|Type||Description| -|---|--- |---|------| -|body|any |->|Body of the outgoing message| - - -#### Description - -The `.setBody()` function sets the outgoing message *body*. - - The following data types are supported in the *body*: - -- Text -- Blob -- Object -- Image - -When this function is used, the content-type header is automatically set depending on the *body* type: - -- Content-Type:text/plain if the body is a Text -- Content-Type:application/octet-stream if body is a Blob -- Content-Type:application/json if body is an Object -- Content-Type:image/jpeg, image/gif... if body is an Image - -If *body* is not of a supported value type, an error is returned. - - - - - -## .setHeader() - -**.setHeader**( *key* : Text ; *value* : Text ) - - - -|Parameter|Type||Description| -|---|--- |---|------| -|key|Text|->|Header property to set| -|value|Text|->|Value of the header property| - - -#### Description - -The `.setHeader()` function sets the outgoing message header *key* with the provided *value*. If both parameters are not Text values, an error is raised. - -When returning a 4D.OutgoingMessage object instance, 4D automatically sets some headers (e.g. `Set-Cookie` with `WASID4D=...` and `4DSID__ProjectName_=....`). - -:::note - -If you set a *value* for the "Content-Type" header *key*, make sure you call this function after the call to [`setBody()`](#setbody), because `setBody()` automatically fills this header. For a list of "Content-Type" header values, please refer to the [`WEB SEND BLOB`](../commands-legacy/web-send-blob.md) documentation. - -::: - - - - - -## .setStatus() - -**.setStatus**( *status* : Integer ) - - - -|Parameter|Type||Description| -|---|--- |---|------| -|status|Integer|->|Status to set| - - -#### Description - -The `.setStatus()` function sets the `status` property with the given *status*. - -If *status* is not an integer value, an error is raised. - -For a list of HTTP status codes, please refer the [HTTP status code list on Wikipedia](https://en.wikipedia.org/wiki/List_of_HTTP_status_codes). - - - - - - - -## .status - -**status** : Integer - -#### Description - -The `.status` property contains the current status of the outgoing message. This property can be set using the [`setStatus()`](setstatus) function. - - diff --git a/docs/Concepts/classes.md b/docs/Concepts/classes.md index ed9abba8eb482c..a57e0581f14ff2 100644 --- a/docs/Concepts/classes.md +++ b/docs/Concepts/classes.md @@ -117,7 +117,7 @@ Available classes are accessible from their class stores. Two class stores are a |Parameter|Type||Description| |---|---|---|---| -|classStore|Object|←|User class store for the project or component| +|classStore|Object|←|User class store for the project or component| The `cs` command returns the user class store for the current project or component. It returns all user classes [defined](#class-definition) in the opened project or component. By default, only project [ORDA classes](ORDA/ordaClasses.md) are available. @@ -136,7 +136,7 @@ $instance:=cs.myClass.new() |Parameter|Type||Description| |---|---|---|---| -|classStore|Object|←|4D class store| +|classStore|Object|←|4D class store| The `4D` command returns the class store for available built-in 4D classes. It provides access to specific APIs such as [CryptoKey](API/CryptoKeyClass.md). diff --git a/docs/Debugging/basics.md b/docs/Debugging/basics.md index 18b06acb05fc15..1673ed547af453 100644 --- a/docs/Debugging/basics.md +++ b/docs/Debugging/basics.md @@ -71,7 +71,11 @@ The syntax error window proposes several options: - **Continue**: Execution continues. The line with the error may be partially executed, depending on where the error is located. Continue with caution: the error may prevent the rest of your method from executing properly. We recommend clicking **Continue** only if the error is in a trivial call (such as `SET WINDOW TITLE`) that does not prevent executing and testing the rest of your code. -> Tip: To ignore an error that occurs repeatedly (for example, in loops), you can turn the **Continue** button into an **Ignore** button. Hold down **Alt** (Windows) or **Option** (macOS) key and click the **Continue** button the first time it appears. The button label changes to **Ignore** if the dialog is called again for the same error. +:::tip + +To ignore an error that occurs repeatedly (for example, in loops), you can turn the **Continue** button into an **Ignore** button. Hold down **Alt** (Windows) or **Option** (macOS) key and click the **Continue** button the first time it appears. The button label changes to **Ignore** if the dialog is called again for the same error. + +::: - **Abort**: Stops method execution and returns to the state before the method started executing: @@ -84,7 +88,7 @@ The syntax error window proposes several options: ## Debugger -A common beginner mistake in dealing with error detection is to click **Abort** in the Syntax Error Window, go back to the Code Editor, and try to figure out what's going by looking at the code. Do not do that! You will save plenty of time and energy by always using the **Debugger**. +A common beginner mistake in dealing with error detection is to click **Abort** in the Syntax Error Window, go back to the Code Editor, and try to figure out what's going by looking at the code. Do not do that! You will save plenty of time and energy by always using the [**Debugger**](debugger.md). The Debugger allows you to step through methods slowly. It displays all the information you need in order to understand why an error occurred. Once you have this information, you know how to fix the error. @@ -92,6 +96,6 @@ Another reason to use the Debugger is for developing code. Sometimes you may wri ## Breaks -In the debugging process, you may need to skip the tracing of some parts of the code until a certain line. Or, you may want to trace the code when a given expression has a certain value (e.g. "$myVar > 1000"), or every time a specific 4D command is called. +In the debugging process, you may need to skip the tracing of some parts of the code until a certain line. Or, you may want to trace the code when a given expression has a certain value (e.g. `$myVar > 1000`), or every time a specific 4D command is called. These needs are covered by **breakpoints** and **command catching** features. They can be configured from the Code Editor, the debugger, or the Runtime Explorer. \ No newline at end of file diff --git a/docs/Debugging/breakpoints.md b/docs/Debugging/breakpoints.md index add4ce47b7b581..d8d7d69e1cd18a 100644 --- a/docs/Debugging/breakpoints.md +++ b/docs/Debugging/breakpoints.md @@ -19,7 +19,7 @@ Catching a command enables you to start tracing the execution of any process as To create a break point, click in the left margin of the Source Code pane in the debugger or in the Code Editor. -In the following example, a break point (the red bullet) has been set, in the debugger, on the line `If ($in.dataClass#Null)`: +In the following example, a break point (the red bullet) has been set, in the debugger, on the line `If (Value type(request.reponse.headers...`: ![break-point](../assets/en/Debugging/break.png) diff --git a/docs/Debugging/debugger.md b/docs/Debugging/debugger.md index 3852e697db8efd..4b1d68e79195e7 100644 --- a/docs/Debugging/debugger.md +++ b/docs/Debugging/debugger.md @@ -3,16 +3,22 @@ id: debugger title: Debugger --- -The debugger is useful when you need to spot errors or monitor the execution of methods. It allows you to step through your code slowly and examine the information. This process is called "tracing". +The 4D debugger is useful when you need to spot errors or monitor the execution of methods. It allows you to step through your code slowly and examine the information. This process is called "tracing". ![debugger-window-local](../assets/en/Debugging/debugger-window-intro.png) +:::info + +If you are used to coding with **VS Code**, you can also use this editor to debug 4D code on 4D Server after installing the [4D-Debugger](https://github.com/4d/4D-Debugger-VSCode) extension. + +::: + ## Calling the Debugger There are multiple ways to get the Debugger to display: * Clicking the **Trace** button in the [Syntax Error window](basics.md#syntax-error-window) -* Using the [`TRACE`](https://doc.4d.com/4dv19/help/command/en/page157.html) command +* Using the [`TRACE`](../commands-legacy/trace.md) command * Clicking the **Debug** button in the Execute Method window or selecting **Run and debug...** button in the Code Editor * Using **Alt+Shift+Right click** (Windows) or **Ctrl+Option+Cmd+Click** (macOS) while a method is executing, then selecting the process to trace in the pop-up menu: @@ -23,8 +29,8 @@ There are multiple ways to get the Debugger to display: When called, the debugger window provides the name of the method or class function you're currently tracing, and the action causing the initial appearance of the Debugger window. For example, in the above debugger window: -* *Clients_BuildLogo* is the method being traced -* The debugger window appeared because it detected a call to the `C_PICTURE` command and this command was one of the commands to be caught +* *drop* is the method being traced +* The debugger window appeared because of a break point. Displaying a new debugger window uses the same configuration as the last window displayed in the same session. If you run several user processes, you can trace them independently and have one debugger window open for each process. @@ -46,7 +52,11 @@ The debugger's tool bar includes several buttons, associated with default shortc ![execution-control-toolbar-buttons](../assets/en/Debugging/executionToolbarButtons.png) -> Default shortcuts can be customized in the Shortcuts Page of the Preferences dialog box. +:::note + +Default shortcuts can be customized in the [Shortcuts Page](../Preferences/shortcuts.md) of the Preferences dialog box. + +::: #### No Trace @@ -103,16 +113,20 @@ If you use this button to modify a method, the modifications are only effective > **Tip:** Use this button when you know which changes are required in your code and when they don't interfere with the rest of the code to be executed or traced. -#### Save Settings +## Auto-saving + +The current state of the debugger window is automatically saved in the project. This includes: -Saves the current configuration of the debugger window and makes it the default configuration. This includes: +- the size and position of the window, +- the position of the division lines, +- the [display mode](#display-mode), +- the expressions currently displayed in the custom watch pane expressions. By default, expressions are saved with the current method or function. You can [**pin an expression**](#pin-an-expression) to keep it displayed in all contexts. -* the size and position of the window -* the position of the division lines and the contents of the area that evaluates the expressions -These parameters are stored in the project. +The **Default window configuration** button restores the default position and size of the current window (including the division lines and the window itself). + +![factory-settings-button](../assets/en/Debugging/debugger-factory.png) -This action is not available in remote debugging mode (see [Debugging from Remote Machines](./debugging-remote)). ## Watch Pane @@ -130,9 +144,9 @@ At any point, you can drag and drop themes, theme sublists (if any), and theme i ### Expression list -#### Line Objects +#### Line Expressions -This theme lets you keep track of the values of the objects or expressions: +This theme lets you keep track of the values of expressions: * used in the line of code to be executed (the one marked with the program counter—the yellow arrow in the [Source Code Pane](#source-code-pane)), * used in the previous line of code @@ -290,8 +304,9 @@ You can also use the [Call chain](https://doc.4d.com/4dv19/help/command/en/page1 The Custom Watch Pane is useful for evaluating expressions. It is similar to the [Watch Pane](#watch-pane), except here you decide which expressions are displayed. Any type of expression can be evaluated: -* field * variable +* object and object property +* field * pointer * calculation * 4D command @@ -300,39 +315,71 @@ The Custom Watch Pane is useful for evaluating expressions. It is similar to the ![custom-Watch-pane](../assets/en/Debugging/custom-watch-pane.png) -You can evaluate any expression that can be shown in text form. This does not cover picture and BLOB fields or variables. To display BLOB contents, you can use BLOB commands, such as [BLOB to text](https://doc.4d.com/4dv19/help/command/en/page555.html). +You can evaluate any expression that can be shown in text form. This does not cover picture and BLOB fields or variables. To display BLOB contents, you can use BLOB commands, such as [BLOB to text](../commands-legacy/blob-to-text.md). + +### Display mode + +You select the display mode to be used for all debugger windows using the **Display** option of the Custom Watch pane's [contextual menu](#contextual-menu). + +![custom-Watch-pane](../assets/en/Debugging/custom-watch-pane-display-menu.png) + +The following options are available: + +- **Local variables**: Displays and evaluates automatically local variables as soon as they are initialized in the running source code. +- **Line Expressions**: Displays and evaluates automatically the same contents as the [Line Expressions](#line-expressions) item of the Expression List. +- **Expressions**: Only displays custom expressions that you have entered manually. Custom expressions have a specific blue icon ![custom-expression-icon](../assets/en/Debugging/custom-expression-icon.png). + +:::note + +Whatever the display mode, you can add custom expressions at any moment. + +::: + ### Handling expressions +You can enter any expression to evaluate. A custom expression is only displayed in the current debugger window, except if you [pin it](#pin-an-expression). + There are several ways to add expressions to the list: * Drag and drop an object or expression from the Watch Pane or the Call Chain Pane * Select an expression in the [Source Code pane](#source-code-pane) and press **ctrl+D** (Windows) or **cmd+D** (macOS) * Double-click somewhere in the empty space of the Custom Watch Pane (adds an expression with a placeholder name that you can edit) - -You can enter any formula that returns a result. +* Select a [display option](#display-mode) that automatically inserts expressions. +* Select **New Expression...** in the Custom Watch pane's [contextual menu](#contextual-menu) to add an expression using the **Formula Editor**. You can enter any formula that returns a result. To edit an expression, click on it to select it, then click again or press **Enter** on your keyboard. -To delete an expression, click on it to select it, then press **Backspace** or **Delete** on your keyboard. +To delete a custom expression, click on it to select it, then press **Backspace** or **Delete** on your keyboard, or click on the **x** icon. + +:::warning + +Be careful when you evaluate a 4D expression modifying the value of one of the System Variables (for instance, the OK variable) because the execution of the rest of the method may be altered. + +::: + +### Pinning an expression ->**Warning:** Be careful when you evaluate a 4D expression modifying the value of one of the System Variables (for instance, the OK variable) because the execution of the rest of the method may be altered. +You can click on the pushpin icon to pin an expression: + +![pinning-expression](../assets/en/Debugging/pin-expression.png) + +The expression will then be displayed in all debugger windows. ### Contextual Menu -The Custom Watch Pane’s context menu gives you access the 4D formula editor and other options: +The Custom Watch Pane’s menu is available on a contextual click or using the ![menu](../assets/en/Debugging/custom-watch-pane-menu.png) icon: ![custom-watch-pane-context-menu](../assets/en/Debugging/custom-watch-pane-context-menu.png) -**New Expression**: This inserts a new expression and displays the 4D Formula Editor. - +- **Display**: Selects the [display mode](#display-mode) to be used for all debugger windows. +- **New Expression...**: Inserts a new expression and displays the 4D Formula Editor. ![custom-Watch-pane-context-menu](../assets/en/Debugging/custom-watch-pane-formula-editor.png) +For more information on the Formula Editor, see the [4D Design Reference manual](https://doc.4d.com/4Dv20/4D/20.2/Description-of-formula-editor.300-6750169.en.html). -For more information on the Formula Editor, see the [4D Design Reference manual](https://doc.4d.com/4Dv19/4D/19/4D-Design-Reference.100-5416591.en.html). - -* **Insert Command**: Shortcut for inserting a 4D command as a new expression. +* **Insert Command...**: Displays a menu allowing to insert a 4D command as a new expression. * **Delete All**: Removes all expressions from the Custom Watch Pane. -* **Standard Expressions**: Copies the Watch Pane's list of expressions. +* **Standard Expressions**: Copies the Watch Pane's list of expressions as custom expressions. > This option is not available in [remote debugging mode](debugging-remote.md). @@ -343,12 +390,20 @@ For more information on the Formula Editor, see the [4D Design Reference manual] * **Sorted Tables and Fields**: Displays the table and fields in alphabetical order. * **Show Integers in Hexadecimal**: Displays numbers using hexadecimal notation. To enter a numeric value in hexadecimal, type 0x (zero + "x"), followed by the hexadecimal digits. + ## Source Code Pane The Source Code Pane shows the source code of the method or function currently being traced. This area also allows you to add or remove [**break points**](breakpoints.md). +### Prototype + +The prototype of the currently executed method or function in the Call chain is displayed on the top of the pane: + +![prototype](../assets/en/Debugging/prototype.png) + + ### Tool tip Hover your pointer over any expression to display a tool tip that indicates: @@ -406,12 +461,9 @@ The contextual menu of the Source Code Pane provides access to several functions ![source-code-pane-context-window](../assets/en/Debugging/sourceCodePaneContext.png) -* **Goto Definition**: Goes to where the selected object is defined. This command is available for: - * *Project methods:* displays method contents in a new window of the Code Editor - * *Fields:* Displays field properties in the inspector of the Structure window - * *Tables:* Displays table properties in the inspector of the Structure window - * *Forms:* Displays form in the Form editor - * *Variables* (local, process, interprocess or $n parameter): displays the line in the current method or among the compiler methods where the variable is declared +* **Show documentation**: Opens the documentation for the target element. This command is available for: + * *Project methods*, *user classes*: Selects the method in the Explorer and switches to the documentation tab + * *4D commands, functions, class names:* Displays the online documentation. * **Search References** (also available in Code Editor): Searches all project objects (methods and forms) in which the current element of the method is referenced. The current element is the one selected or the one where the cursor is located. This can be the name of a field, variable, command, string, and so on. Search results are displayed in a new standard results window. * **Copy**: Standard copy of the selected expression to the pasteboard. * **Copy to Expression Pane**: Copy the selected expression to the Custom Watch Pane. diff --git a/docs/Debugging/debugging-remote.md b/docs/Debugging/debugging-remote.md index 75efdb533acdc5..0de6498b3fc39a 100644 --- a/docs/Debugging/debugging-remote.md +++ b/docs/Debugging/debugging-remote.md @@ -21,6 +21,9 @@ Only one debugger can debug a 4D Server application at a given time. It is calle * the local 4D Server debugger (default) - if the server is not running headless. * the debugger of a remote 4D client - if the remote session has access to Design mode. * the [Qodly debugger](../WebServer/qodly-studio.md#using-qodly-debugger-on-4d-server) on 4D Server - if the server allows access to Qodly Studio. +* the VS Code debugger, provided you installed the [4D-Debugger](https://github.com/4d/4D-Debugger-VSCode) extension. + +::: The attached debugger is called whenever a 4D Server encounters: * a break point diff --git a/docs/Desktop/building.md b/docs/Desktop/building.md index 30eedb55b1f96a..e1122597a11de1 100644 --- a/docs/Desktop/building.md +++ b/docs/Desktop/building.md @@ -20,7 +20,7 @@ The application builder allows you to: Building a project package can be carried out using: -* either the [`BUILD APPLICATION`](https://doc.4d.com/4dv20/help/command/en/page871.html) command, +* either the [`BUILD APPLICATION`](../commands-legacy/build-application.md) command, * or the [Build Application dialog](#application-builder). :::tip @@ -46,9 +46,9 @@ Building can only be carried out once the project is compiled. If you select thi Each build application parameter is stored as an XML key in the application project file named `buildApp.4DSettings` XML file, located in the [`Settings` folder of the project](../Project/architecture.md#settings-1). -Default parameters are used the first time the Build Application dialog box is used. The contents of the project file are updated, if necessary, when you click **Build** or **Save settings**. You can define several other XML settings file for the same project and employ them using the [BUILD APPLICATION](https://doc.4d.com/4dv19/help/command/en/page871.html) command. +Default parameters are used the first time the Build Application dialog box is used. The contents of the project file are updated, if necessary, when you click **Build** or **Save settings**. You can define several other XML settings file for the same project and employ them using the [`BUILD APPLICATION`](../commands-legacy/build-application.md) command. -XML keys provide additional options besides those displayed in the Build Application dialog box. The description of these keys are detailed in the [4D XML Keys BuildApplication](https://doc.4d.com/4Dv19/4D/19/4D-XML-Keys-BuildApplication.100-5447429.en.html) manual. +XML keys provide additional options besides those displayed in the Build Application dialog box. The description of these keys are detailed in the [4D XML Keys BuildApplication](https://doc.4d.com/4Dv20/4D/20/4D-XML-Keys-BuildApplication.100-6335734.en.html) manual. ### Log file @@ -60,9 +60,9 @@ When an application is built, 4D generates a log file named *BuildApp.log.xml* i * Any errors that occurred, * Any signing issues (e.g. a non-signed plug-in). -Checking this file may help you saving time during the subsequent deployment steps, for example if you intend to notarize your application. +Checking this file may help you saving time during the subsequent deployment steps, for example if you intend to [notarize](#about-notarization) your application on macOS. -> Use the `Get 4D file(Build application log file)` command to get the log file location. +> Use the `Get 4D file(Build application log file)` statement to get the log file location. ## Application name and destination folder @@ -88,7 +88,7 @@ This feature creates a *.4dz* file within a `Compiled Database/` f A .4dz file is essentially a zipped (packed) version of the project folder. .4dz files can be used by 4D Server, 4D Volume license (merged applications), and 4D. The compact and optimized size of .4dz files makes project packages easy to deploy. -> When generating .4dz files, 4D uses a **standard** zip format by default. The advantage of this format is that it is easily readable by any unzip tool. If you do not want to use this standard format, add the `UseStandardZipFormat` XML key with value `False` in your [`buildApp.4DSettings`](#build-application-settings) file (for more information, see the [4D XML Keys BuildApplication](https://doc.4d.com/4Dv19/4D/19/4D-XML-Keys-BuildApplication.100-5447429.en.html) manual). +> When generating .4dz files, 4D uses a **standard** zip format by default. The advantage of this format is that it is easily readable by any unzip tool. If you do not want to use this standard format, add the `UseStandardZipFormat` XML key with value `False` in your [`buildApp.4DSettings`](#build-application-settings) file (for more information, see the [4D XML Keys BuildApplication](https://doc.4d.com/4Dv20/4D/20/4D-XML-Keys-BuildApplication.100-6335734.en.html) manual). #### Include related folders @@ -100,16 +100,21 @@ Builds a compiled component from the structure. A [component](../Extensions/develop-components.md) is a standard 4D project in which specific functionalities have been developed. Once the component has been configured and [installed in another 4D project](../Project/components.md#basics) (the host application project), its functionalities are accessible from the host project. -If you have named your application, *MyComponent*, 4D will create a *Components* folder containing *MyComponent.4dbase* folder: +If you have named your application *MyComponent*, 4D will automatically create a *Components* folder with the following structure: -`/Components/MyComponent.4dbase/MyComponent.4DZ`. +`/Components/MyComponent.4dbase/Contents/`. -The *MyComponent.4dbase* folder contains: +The *MyComponent.4dbase* folder is the [package folder of the compiled component](../Project/components.md#package-folder). -* *MyComponent.4DZ* file +The *Contents* folder contains: + +* *MyComponent.4DZ* file - the [compiled structure](#build-compiled-structure). * A *Resources* folder - any associated Resources are automatically copied into this folder. Any other components and/or plugins folders are not copied (a component cannot use plug-ins or other components). +* An *Info.plist* file - this file is required to build [notarizeable and stapleable](#about-notarization) components for macOS (it is ignored on Windows). The following [Apple bundle keys](https://developer.apple.com/documentation/bundleresources/information-property-list) are prefilled: + - `CFBundleDisplayName` and `CFBundleName` for the application name, + - `NSHumanReadableCopyright`, can be [set using an XML key](https://doc.4d.com/4Dv20/4D/20/CommonCopyright.300-6335859.en.html). + - `CFBundleShortVersionString` and `CFBundleVersion` for the application version (x.x.x format, e.g. 1.0.5), can be [set using an XML key](https://doc.4d.com/4Dv20/4D/20/CommonVersion.300-6335858.en.html). -The *MyComponent.4dbase* folder is the [package folder of the compiled component](../Project/components.md). ## Application page @@ -175,7 +180,7 @@ If you have specified "MyProject" as the name of the application, you will find All these items must be kept in the same folder in order for the executable to operate. * *macOS* - * A software package named MyProject.app containing your application and all the items necessary for its operation, including the plug-ins, components and licenses. For more information about integrating plug-ins and components, refer to the [Plugins and components](#plugins-and-components) section. For more information about integrating licenses, refer to the [Licenses & Certificate](#licenses-and-certificate) section. **Note**: In macOS, the [Application file](https://doc.4d.com/4Dv18R4/4D/18-R4/Application-file.301-4982855.en.html) command of the 4D language returns the pathname of the ApplicationName file (located in the Contents:macOS folder of the software package) and not that of the .comp file (Contents:Resources folder of the software package). + * A software package named MyProject.app containing your application and all the items necessary for its operation, including the plug-ins, components and licenses. For more information about integrating plug-ins and components, refer to the [Plugins and components](#plugins-and-components) section. For more information about integrating licenses, refer to the [Licenses & Certificate](#licenses-and-certificate) section. **Note**: In macOS, the [Application file](../commands-legacy/application-file.md) command of the 4D language returns the pathname of the ApplicationName file (located in the Contents:macOS folder of the software package) and not that of the .comp file (Contents:Resources folder of the software package). #### Customizing 4D Volume Desktop folder @@ -223,7 +228,7 @@ Also, the client/server application is customized and its handling simplified: * To launch the client portion, the user simply double-clicks the client application, which connects directly to the server application. You do not need to choose a server in a connection dialog box. The client targets the server either using its name, when the client and server are on the same sub-network, or using its IP address, which is set using the `IPAddress` XML key in the buildapp.4DSettings file. If the connection fails, [specific alternative mechanisms can be implemented](#management-of-client-connections). You can "force" the display of the standard connection dialog box by holding down the **Option** (macOS) or **Alt** (Windows) key while launching the client application. Only the client portion can connect to the corresponding server portion. If a user tries to connect to the server portion using a standard 4D application, an error message is returned and connection is impossible. * A client/server application can be set so that the client portion [can be updated automatically over the network](#copy-of-client-applications-in-the-server-application). You only need to create and distribute an initial version of the client application, subsequent updates are handled using the automatic update mechanism. -* It is also possible to automate the update of the server part through the use of a sequence of language commands ([SET UPDATE FOLDER](https://doc.4d.com/4dv19/help/command/en/page1291.html) and [RESTART 4D](https://doc.4d.com/4dv19/help/command/en/page1292.html). +* It is also possible to automate the update of the server part through the use of a sequence of language commands ([SET UPDATE FOLDER](../commands-legacy/set-update-folder.md) and [RESTART 4D](../commands-legacy/restart-4d.md). ### Build server application @@ -299,7 +304,7 @@ Designates the location on your disk of the 4D Volume Desktop application to be The 4D Volume Desktop must correspond to the current platform (which will also be the platform of the client application). If you want to build a client application for the "concurrent" platform, you must carry out an additional build operation using a 4D application running on that platform. -If you want the client application to connect to the server using a specific address (other than the server name published on the sub-network), you must use the `IPAddress` XML key in the buildapp.4DSettings file. For more information about this file, refer to the description of the [`BUILD APPLICATION`](https://doc.4d.com/4dv19/help/command/en/page871.html) command. You can also implement specific mechanisms in the event of a connection failure. The different scenarios proposed are described in the [Management of connections by client applications](#management-of-client-connections) paragraph. +If you want the client application to connect to the server using a specific address (other than the server name published on the sub-network), you must use the `IPAddress` XML key in the buildapp.4DSettings file. For more information about this file, refer to the description of the [`BUILD APPLICATION`](../commands-legacy/build-application.md) command. You can also implement specific mechanisms in the event of a connection failure. The different scenarios proposed are described in the [Management of connections by client applications](#management-of-client-connections) paragraph. #### Copy of client applications inside the server application @@ -419,7 +424,7 @@ The basic scenario is: * the `PublishName` key is not copied in the *info.plist* of the merged client * if the single-user application does not have a "Default data" folder, the merged client will run with no data. -Automatic update 4D Server features ([Current version](#current-version) number, `SET UPDATE FOLDER` command...) work with single-user application as with standard remote application. At connection, the single-user application compares its `CurrentVers` key to the 4D Server version range. If outside the range, the updated client application is downloaded from the server and the Updater launches the local update process. +Automatic update 4D Server features ([Current version](#current-version) number, [`SET UPDATE FOLDER`](../commands-legacy/set-update-folder.md) command...) work with single-user application as with standard remote application. At connection, the single-user application compares its `CurrentVers` key to the 4D Server version range. If outside the range, the updated client application is downloaded from the server and the Updater launches the local update process. ### Customizing client and/or server cache folder names @@ -506,7 +511,7 @@ This tab displays the list of available deployment licenses that you can integra To remove or add a license, use the **[+]** and **[-]** buttons at the bottom of the window. -When you click on the \[+] button, an open file dialog box appears displaying by default the contents of the *Licenses* folder of your machine. For more information about the location of this folder, refer to the [Get 4D folder](https://doc.4d.com/4Dv17R6/4D/17-R6/Get-4D-folder.301-4311294.en.html) command. +When you click on the \[+] button, an open file dialog box appears displaying by default the contents of the *Licenses* folder of your machine. For more information about the location of this folder, refer to the [Get 4D folder](../commands-legacy/get-4d-folder.md) command. You must designate the files that contain your Developer license as well as those containing your deployment licenses. These files were generated or updated when the *4D Developer Professional* license and the *4D Desktop Volume* licenses were purchased. @@ -525,11 +530,11 @@ You can designate as many valid files as you want. When building an executable a After the application is built, a new deployment license file is automatically included in the Licenses folder next to the executable application (Windows) or in the package (macOS). -### OS X signing certificate +### macOS signing certificate The application builder can sign merged 4D applications under macOS (single-user applications, components, 4D Server and client parts under macOS). Signing an application authorizes it to be executed using the Gatekeeper functionality of macOS when the "Mac App Store and identified Developers" option is selected (see "About Gatekeeper" below). -* Check the **Sign application** option to include certification in the application builder procedure for OS X. 4D will check the availability of elements required for certification when the build occurs: +* Check the **Sign application** option to include certification in the application builder procedure for macOS. 4D will check the availability of elements required for certification when the build occurs: ![](../assets/en/Admin/buildapposxcertProj.png) @@ -551,7 +556,7 @@ To obtain a developer certificate from Apple, Inc., you can use the commands of #### About Gatekeeper -Gatekeeper is a security feature of OS X that controls the execution of applications downloaded from the Internet. If a downloaded application does not come from the Apple Store or is not signed, it is rejected and cannot be launched. +Gatekeeper is a security feature of macOS that controls the execution of applications downloaded from the Internet. If a downloaded application does not come from the Apple Store or is not signed, it is rejected and cannot be launched. > On Apple Silicon machines, 4D [components](#components) need to be actually signed. An unsigned component will generate an error at application startup ("lib4d-arm64.dylib can't be opened..."). @@ -561,17 +566,19 @@ The **Sign application** option of the 4D application builder lets you generate Application notarization is highly recommended by Apple as of macOS 10.14.5 (Mojave) and 10.15 (Catalina), since non-notarized applications deployed via the internet are blocked by default. -The 4D [built-in signing features](#os-x-signing-certificate) have been adapted to meet all of Apple's requirements to allow using the Apple notary service. The notarization itself must be conducted by the developer and is independent from 4D (note also that it requires installing Xcode). Please refer to [this 4D blog post](https://blog.4d.com/how-to-notarize-your-merged-4d-application/) that provides a step-by-step description of the notarization process. +The 4D [built-in signing features](#macos-signing-certificate) have been adapted to meet all of Apple's requirements to allow using the Apple notary service. The notarization itself must be conducted by the developer and is independent from 4D (note also that it requires installing Xcode). Please refer to [this 4D blog post](https://blog.4d.com/how-to-notarize-your-merged-4d-application/) that provides a step-by-step description of the notarization process. For more information on the notarization concept, please refer to [this page on the Apple developer website](https://developer.apple.com/documentation/xcode/notarizing_your_app_before_distribution/customizing_the_notarization_workflow). +For more information on the stapling concept, please read [this Apple forum post](https://forums.developer.apple.com/forums/thread/720093). + ## Customizing application icons 4D associates a default icon with stand-alone, server, and client applications, however you can customize the icon for each application. * **macOs** - When building a double-clickable application, 4D handles the customizing of the icon. In order to do this, you must create an icon file (icns type), prior to building the application file, and place it next to the project folder. - >Apple, Inc. provides a specific tool for building *icns* icon files (for more information, please refer to [Apple documentation](https://developer.apple.com/library/archive/documentation/GraphicsAnimation/Conceptual/HighResolutionOSX/Optimizing/Optimizing.html#//apple_ref/doc/uid/TP40012302-CH7-SW2)). + > Apple, Inc. provides a specific tool for building *icns* icon files (for more information, please refer to [Apple documentation](https://developer.apple.com/library/archive/documentation/GraphicsAnimation/Conceptual/HighResolutionOSX/Optimizing/Optimizing.html#//apple_ref/doc/uid/TP40012302-CH7-SW2)). Your icon file must have the same name as the project file and include the *.icns* extension. 4D automatically takes this file into account when building the double-clickable application (the *.icns* file is renamed *ApplicationName.icns* and copied into the Resources folder; the *CFBundleFileIcon* entry of the *info.plist* file is updated). @@ -579,7 +586,7 @@ For more information on the notarization concept, please refer to [this page on Your icon file must have the same name as the project file and include the *.ico* extension. 4D automatically takes this file into account when building the double-clickable application. -You can also set specific [XML keys](https://doc.4d.com/4Dv17R6/4D/17-R6/4D-XML-Keys-BuildApplication.100-4465602.en.html) in the buildApp.4DSettings file to designate each icon to use. The following keys are available: +You can also set specific [XML keys](https://doc.4d.com/4Dv20/4D/20/4D-XML-Keys-BuildApplication.100-6335734.en.html) in the buildApp.4DSettings file to designate each icon to use. The following keys are available: * RuntimeVLIconWinPath * RuntimeVLIconMacPath @@ -696,12 +703,12 @@ userPrefs:=Get 4D folder(Active 4D Folder) This mechanism addresses the case where the primary targeted server is temporary unavailable for some reason (maintenance mode for example). When this case occurs for the first time, the server selection dialog box is displayed (if allowed, see below) and the user can manually select an alternate server, whose path is then saved if the connection is successful. Any subsequent unavailability would be handled automatically through the "lastServer.xml" path information. -> * When client applications cannot permanently benefit from the discovery service, for example because of the network configuration, it is recommended that the developer provide a host name at build time using the [IPAddress](https://doc.4d.com/4Dv17R6/4D/17-R6/IPAddress.300-4465710.en.html) key in the "BuildApp.4DSettings" file. The mechanism addresses cases of temporary unavailability. +> * When client applications cannot permanently benefit from the discovery service, for example because of the network configuration, it is recommended that the developer provide a host name at build time using the [IPAddress](https://doc.4d.com/4Dv20/4D/20/IPAddress.300-6335763.en.html) key in the "BuildApp.4DSettings" file. The mechanism addresses cases of temporary unavailability. > * Pressing the **Alt/Option** key at startup to display the server selection dialog box is still supported in all cases. ### Availability of the server selection dialog box in case of error -You can choose whether or not to display the standard server selection dialog box on merged client applications when the server cannot be reached. The configuration depends on the value of the [ServerSelectionAllowed](https://doc.4d.com/4Dv17R6/4D/17-R6/ServerSelectionAllowed.300-4465714.en.html) XML key on the machine where the application was built: +You can choose whether or not to display the standard server selection dialog box on merged client applications when the server cannot be reached. The configuration depends on the value of the [ServerSelectionAllowed](https://doc.4d.com/4Dv20/4D/20/ServerSelectionAllowed.300-6335767.en.html) XML key on the machine where the application was built: * **Display of an error message with no access possible to the server selection dialog box**. Default operation. The application can only quit. `ServerSelectionAllowed`: **False** or key omitted @@ -716,9 +723,9 @@ You can choose whether or not to display the standard server selection dialog bo In principle, updating server applications or merged single-user applications require user intervention (or programming custom system routines): whenever a new version of the merged application is available, you have to exit the application in production and manually replace the old files with the new ones; then restart the application and select the current data file. -You can automate this procedure to a large extent using the following language commands: [`SET UPDATE FOLDER`](https://doc.4d.com/4dv19/help/command/en/page1291.html), [`RESTART 4D`](https://doc.4d.com/4dv19/help/command/en/page1292.html), and also [`Get last update log path`](https://doc.4d.com/4dv19/help/command/en/page1301.html) for monitoring operations. The idea is to implement a function in your 4D application triggering the automatic update sequence described below. It can be a menu command or a process running in the background and checking at regular intervals for the presence of an archive on a server. +You can automate this procedure to a large extent using the following language commands: [`SET UPDATE FOLDER`](../commands-legacy/set-update-folder.md), [`RESTART 4D`](../commands-legacy/restart-4d.md), and also [`Get last update log path`](../commands-legacy/get-last-update-log-path.md) for monitoring operations. The idea is to implement a function in your 4D application triggering the automatic update sequence described below. It can be a menu command or a process running in the background and checking at regular intervals for the presence of an archive on a server. -> You also have XML keys to elevate installation privileges so that you can use protected files under Windows (see the [4D XML Keys BuildApplication](https://doc.4d.com/4Dv19/4D/19/4D-XML-Keys-BuildApplication.100-5447429.en.html) manual). +> You also have XML keys to elevate installation privileges so that you can use protected files under Windows (see the [4D XML Keys BuildApplication](https://doc.4d.com/4Dv20/4D/20/4D-XML-Keys-BuildApplication.100-6335734.en.html) manual). Here is the scenario for updating a server or merged single-user application: @@ -734,4 +741,4 @@ The installation procedure produces a log file detailing the update operations o The update log is named `YYYY-MM-DD_HH-MM-SS_log_X.txt`, for example, `2021-08-25_14-23-00_log_1.txt` for a file created on August 25, 2021 at 14:23. -This file is created in the "Updater" application folder, within the system user folder. You can find out the location of this file at any time using the [`Get last update log path`](https://doc.4d.com/4dv19/help/command/en/page1301.html) command. +This file is created in the "Updater" application folder, within the system user folder. You can find out the location of this file at any time using the [`Get last update log path`](../commands-legacy/get-last-update-log-path.md) command. diff --git a/docs/FormObjects/text.md b/docs/FormObjects/text.md index 747bea46c6968f..c9c81b1d4a9f95 100644 --- a/docs/FormObjects/text.md +++ b/docs/FormObjects/text.md @@ -51,4 +51,4 @@ Once a text is rotated, you can still change its size or position, as well as al -[Bold](properties_Text.md#bold) - [Border Line Style](properties_BackgroundAndBorder.md#border-line-style) - [Bottom](properties_CoordinatesAndSizing.md#bottom) - [Class](properties_Object.md#css-class) - [Corner radius](properties_CoordinatesAndSizing.md#corner-radius) - [Fill Color(properties_BackgroundAndBorder.md#background-color--fill-color) - [Font](properties_Text.md#font) - [Font Color](properties_Text.md#font-color) - [Font Size](properties_Text.md#font-size) - [Height](properties_CoordinatesAndSizing.md#height) - [Horizontal Alignment](properties_Text.md#horizontal-alignment) - [Horizontal Sizing](properties_ResizingOptions.md#horizontal-sizing) - [Italic](properties_Text.md#italic) - [Left](properties_CoordinatesAndSizing.md#left) - [Object Name](properties_Object.md#object-name) - [Orientation](properties_Text.md#orientation) - [Right](properties_CoordinatesAndSizing.md#right) - [Title](properties_Object.md#title) - [Top](properties_CoordinatesAndSizing.md#top) - [Type](properties_Object.md#type) - [Underline](properties_Text.md#underline) - [Vertical Sizing](properties_ResizingOptions.md#vertical-sizing) - [Visibility](properties_Display.md#visibility) - [Width](properties_CoordinatesAndSizing.md#width) +[Bold](properties_Text.md#bold) - [Border Line Style](properties_BackgroundAndBorder.md#border-line-style) - [Bottom](properties_CoordinatesAndSizing.md#bottom) - [Class](properties_Object.md#css-class) - [Corner radius](properties_CoordinatesAndSizing.md#corner-radius) - [Fill Color](properties_BackgroundAndBorder.md#background-color--fill-color) - [Font](properties_Text.md#font) - [Font Color](properties_Text.md#font-color) - [Font Size](properties_Text.md#font-size) - [Height](properties_CoordinatesAndSizing.md#height) - [Horizontal Alignment](properties_Text.md#horizontal-alignment) - [Horizontal Sizing](properties_ResizingOptions.md#horizontal-sizing) - [Italic](properties_Text.md#italic) - [Left](properties_CoordinatesAndSizing.md#left) - [Object Name](properties_Object.md#object-name) - [Orientation](properties_Text.md#orientation) - [Right](properties_CoordinatesAndSizing.md#right) - [Title](properties_Object.md#title) - [Top](properties_CoordinatesAndSizing.md#top) - [Type](properties_Object.md#type) - [Underline](properties_Text.md#underline) - [Vertical Sizing](properties_ResizingOptions.md#vertical-sizing) - [Visibility](properties_Display.md#visibility) - [Width](properties_CoordinatesAndSizing.md#width) diff --git a/docs/Notes/updates.md b/docs/Notes/updates.md index 17fe7d8e6dd3d3..26931c25fae59e 100644 --- a/docs/Notes/updates.md +++ b/docs/Notes/updates.md @@ -14,10 +14,15 @@ Read [**What’s new in 4D 20 R8**](https://blog.4d.com/en-whats-new-in-4d-v20-R - Expressions used in [form object properties](../FormObjects/properties_Reference.md) now benefit from syntax checking in the [Property list](../FormEditor/formEditor.md#property-list) and in the [Compiler](../Project/compiler.md#check-syntax). - You can [associate a class to a form](../FormEditor/properties_FormProperties.md#form-class) to enable code type-ahead and automatic instantiation of form data when using the [`Form`](../commands/form.md) command. - Support of [standalone sessions](../API/SessionClass.md) to simplify local coding for client/server applications. +- [4D debugger](../Debugging/debugger.md): new design and auto-save, display mode features. +- [New built component architecture](../Desktop/building.md#build-component) for a better compliance with Apple notarization guidelines. - 4D Language: - Modified commands: [`FORM EDIT`](../commands/form-edit.md) - [**Fixed bug list**](https://bugs.4d.fr/fixedbugslist?version=20_R8): list of all bugs that have been fixed in 4D 20 R8. +#### Behavior changes + +- Because of their [new architecture](../Desktop/building.md#build-component), components built with 4D 20 R8 and higher cannot be installed in previous 4D releases. ## 4D 20 R7 @@ -214,7 +219,7 @@ See [**Release Notes for 4D 20.x LTS**](../../versioned_docs/version-20/Notes/up |Library|Current version|Updated in 4D|Comment| |---|---|---|----| |BoringSSL|0aa300b|20 R6|Used for QUIC| -|CEF|128|**20 R7**|Chromium 6613| +|CEF|121|20 R5|Chromium 6167| |Hunspell|1.7.2|20|Used for spell checking in 4D forms and 4D Write Pro| |ICU|73.2|20|This major upgrade forces an automatic rebuild of alphanumeric, text and object indexes.| |libldap|2.6.7|20 R6|| diff --git a/docs/Project/code-overview.md b/docs/Project/code-overview.md index afe85271ef0f08..4350d5eca2fd89 100644 --- a/docs/Project/code-overview.md +++ b/docs/Project/code-overview.md @@ -6,8 +6,7 @@ title: Methods and classes The 4D code used across your project is written in [methods](../Concepts/methods.md) and [classes](../Concepts/classes.md). -The 4D IDE provides you with various features to create, edit, export, or delete your code. You will usually use the 4D [code editor](../code-editor/write-class-method.md) to work with your code. - +The 4D IDE provides you with various features to create, edit, export, or delete your code. You will usually use the included 4D [code editor](../code-editor/write-class-method.md) to work with your code. You can also use other editors such as **VS Code**, for which the [4D-Analyzer extension](https://github.com/4d/4D-Analyzer-VSCode) is available. ## Creating methods diff --git a/docs/Project/components.md b/docs/Project/components.md index e7dffa102b831b..0e11d76c23d19c 100644 --- a/docs/Project/components.md +++ b/docs/Project/components.md @@ -12,12 +12,26 @@ When developing in 4D, the component files can be transparently stored in your c ## Interpreted and compiled components -Components can be interpreted or [compiled](../Desktop/building.md). The package folder of a component can contain: +Components can be interpreted or [compiled](../Desktop/building.md). -- either a Project folder (interpreted component) -- or a .4DZ file (compiled component) +- A 4D project running in interpreted mode can use either interpreted or compiled components. +- A 4D project running in compiled mode cannot use interpreted components. In this case, only compiled components can be used. + +### Package folder + +The package folder of a component (*MyComponent.4dbase* folder) can contain: + +- for **interpreted components**: a standard [Project folder](../Project/architecture.md) +- for **compiled components**: + - either a "Contents" folder containing a .4DZ file, a *Resources* folder, an *Info.plist* file (recommended architecture) + - or directly a .4DZ file with other folders such as *Resources*. + +:::note + +The "Contents" folder architecture is recommended for components if you want to [notarize](../Desktop/building.md#about-notarization) your applications on macOS. + +::: -A 4D project running in interpreted mode can use either interpreted or compiled components. A 4D project running in compiled mode cannot use interpreted components. In this case, only compiled components can be used. ## Loading components diff --git a/docs/Project/overview.md b/docs/Project/overview.md index 758ffbb0500ca1..bbe26cf681f2dc 100644 --- a/docs/Project/overview.md +++ b/docs/Project/overview.md @@ -8,7 +8,7 @@ A 4D project contains all of the source code of a 4D application, whatever its d ## Project files -4D project files are open and edited using regular 4D platform applications (4D or 4D Server). With 4D, full-featured editors are available to manage files, including a structure editor, a Code Editor, a form editor, a menu editor... +4D project files are open and edited using regular 4D platform applications (4D or 4D Server). With 4D, full-featured editors are available to manage files, including a structure editor, a [Code Editor](../code-editor/write-class-method.md), a [form editor](../FormEditor/formEditor.md), a menu editor... Since projects are in human-readable, plain text files (JSON, XML, etc.), they can be read or edited manually by developers, using any code editor. diff --git a/docs/WebServer/http-request-handler.md b/docs/WebServer/http-request-handler.md index 7e102d0db404b2..9d4bd6ca22006e 100644 --- a/docs/WebServer/http-request-handler.md +++ b/docs/WebServer/http-request-handler.md @@ -262,7 +262,7 @@ Then, the request handler can use this information to trigger appropriate busine ### Output: an instance of the 4D.OutgoingMessage class -The request handler can return an object instance of the [4D.OutGoingMessage class](../API/OutGoingMessageClass.md), i.e. some full web content ready for a browser to handle, such as a file content. +The request handler can return an object instance of the [4D.OutGoingMessage class](../API/OutgoingMessageClass.md), i.e. some full web content ready for a browser to handle, such as a file content. ### Example diff --git a/docs/WebServer/qodly-studio.md b/docs/WebServer/qodly-studio.md index 75cf036d67d716..16fa3316450149 100644 --- a/docs/WebServer/qodly-studio.md +++ b/docs/WebServer/qodly-studio.md @@ -143,7 +143,7 @@ There is no direct compatibility between apps implemented with 4D and apps imple |Qodly pages|Qodly Studio Page Editor|Qodly Studio Page Editor| |Desktop forms|4D IDE|*not supported*| |Programming language|4D Language featuring ORDA|[QodlyScript](https://developer.qodly.com/docs/category/qodlyscript) featuring ORDA| -|Coding IDE|4D IDE code editor *or* VS Code with [4D extension](https://github.com/4d/4D-Analyzer-VSCode)
*4D Server only*: Qodly Studio code editor (see (2))|Qodly Studio code editor| +|Coding IDE|4D IDE code editor *or* VS Code with [4D-Analyzer extension](https://github.com/4d/4D-Analyzer-VSCode)
*4D Server only*: Qodly Studio code editor (see (2))|Qodly Studio code editor| |Debugger|4D IDE debugger
*4D Server only*: Qodly Studio debugger (see [this paragraph](#using-qodly-debugger-on-4d-server))|Qodly Studio debugger| |REST/Web roles and privileges|roles.json direct edit/Qodly Studio roles and privileges editor|Qodly Studio role and privileges editor| diff --git a/docs/assets/en/Admin/buildapposxcertProj.png b/docs/assets/en/Admin/buildapposxcertProj.png index de58a3d1eb1733..0afc8cd3cd6be1 100644 Binary files a/docs/assets/en/Admin/buildapposxcertProj.png and b/docs/assets/en/Admin/buildapposxcertProj.png differ diff --git a/docs/assets/en/Debugging/break.png b/docs/assets/en/Debugging/break.png index 87f2c7ec6cc15d..f350cb995a59fd 100644 Binary files a/docs/assets/en/Debugging/break.png and b/docs/assets/en/Debugging/break.png differ diff --git a/docs/assets/en/Debugging/contextual-menu.png b/docs/assets/en/Debugging/contextual-menu.png index 35222f97254a0d..cba6de249cf77a 100644 Binary files a/docs/assets/en/Debugging/contextual-menu.png and b/docs/assets/en/Debugging/contextual-menu.png differ diff --git a/docs/assets/en/Debugging/custom-expression-icon.png b/docs/assets/en/Debugging/custom-expression-icon.png new file mode 100644 index 00000000000000..723465a0e2af57 Binary files /dev/null and b/docs/assets/en/Debugging/custom-expression-icon.png differ diff --git a/docs/assets/en/Debugging/custom-watch-pane-context-menu.png b/docs/assets/en/Debugging/custom-watch-pane-context-menu.png index f4372b543ee6b7..8718fded2a0b4c 100644 Binary files a/docs/assets/en/Debugging/custom-watch-pane-context-menu.png and b/docs/assets/en/Debugging/custom-watch-pane-context-menu.png differ diff --git a/docs/assets/en/Debugging/custom-watch-pane-display-menu.png b/docs/assets/en/Debugging/custom-watch-pane-display-menu.png new file mode 100644 index 00000000000000..21e28b40a2becf Binary files /dev/null and b/docs/assets/en/Debugging/custom-watch-pane-display-menu.png differ diff --git a/docs/assets/en/Debugging/custom-watch-pane-menu.png b/docs/assets/en/Debugging/custom-watch-pane-menu.png new file mode 100644 index 00000000000000..97e0485cac6531 Binary files /dev/null and b/docs/assets/en/Debugging/custom-watch-pane-menu.png differ diff --git a/docs/assets/en/Debugging/custom-watch-pane.png b/docs/assets/en/Debugging/custom-watch-pane.png index 282eef4ee9e9f9..e3c0e17dd9d02b 100644 Binary files a/docs/assets/en/Debugging/custom-watch-pane.png and b/docs/assets/en/Debugging/custom-watch-pane.png differ diff --git a/docs/assets/en/Debugging/debugger-default-configuration.png b/docs/assets/en/Debugging/debugger-default-configuration.png new file mode 100644 index 00000000000000..723465a0e2af57 Binary files /dev/null and b/docs/assets/en/Debugging/debugger-default-configuration.png differ diff --git a/docs/assets/en/Debugging/debugger-factory.png b/docs/assets/en/Debugging/debugger-factory.png new file mode 100644 index 00000000000000..34e97fb3ae5556 Binary files /dev/null and b/docs/assets/en/Debugging/debugger-factory.png differ diff --git a/docs/assets/en/Debugging/debugger-window-intro.png b/docs/assets/en/Debugging/debugger-window-intro.png index cf71bd2d50e871..ddc56eac8963bd 100644 Binary files a/docs/assets/en/Debugging/debugger-window-intro.png and b/docs/assets/en/Debugging/debugger-window-intro.png differ diff --git a/docs/assets/en/Debugging/debuggerWindowRemote.png b/docs/assets/en/Debugging/debuggerWindowRemote.png index 5790890448635f..a2bf8c9b7a7bce 100644 Binary files a/docs/assets/en/Debugging/debuggerWindowRemote.png and b/docs/assets/en/Debugging/debuggerWindowRemote.png differ diff --git a/docs/assets/en/Debugging/executionToolbarButtons.png b/docs/assets/en/Debugging/executionToolbarButtons.png index 3ebacf28c5868d..ba0f3543b2a69a 100644 Binary files a/docs/assets/en/Debugging/executionToolbarButtons.png and b/docs/assets/en/Debugging/executionToolbarButtons.png differ diff --git a/docs/assets/en/Debugging/pin-expression.png b/docs/assets/en/Debugging/pin-expression.png new file mode 100644 index 00000000000000..f2e18d4d1ae84c Binary files /dev/null and b/docs/assets/en/Debugging/pin-expression.png differ diff --git a/docs/assets/en/Debugging/prototype.png b/docs/assets/en/Debugging/prototype.png new file mode 100644 index 00000000000000..ef983192ecd1c3 Binary files /dev/null and b/docs/assets/en/Debugging/prototype.png differ diff --git a/docs/assets/en/Debugging/sourceCodePaneContext.png b/docs/assets/en/Debugging/sourceCodePaneContext.png index 704002e1efdbe2..62e449d25b5084 100644 Binary files a/docs/assets/en/Debugging/sourceCodePaneContext.png and b/docs/assets/en/Debugging/sourceCodePaneContext.png differ diff --git a/docs/assets/en/Debugging/watchPane.png b/docs/assets/en/Debugging/watchPane.png index b70d73b8d2d592..69183c18d0472b 100644 Binary files a/docs/assets/en/Debugging/watchPane.png and b/docs/assets/en/Debugging/watchPane.png differ diff --git a/docs/code-editor/write-class-method.md b/docs/code-editor/write-class-method.md index 04baaac1c02f51..2d413a4a04fa41 100644 --- a/docs/code-editor/write-class-method.md +++ b/docs/code-editor/write-class-method.md @@ -13,6 +13,12 @@ You can scroll through the contents of methods, classes and functions, which can The 4D Code Editor provides basic syntax error-checking. Additional error-checking is performed when the code executes. For more information on how to handle errors, see [Debugging](../Debugging/basics.md). +:::note + +If you are used to coding with **VS Code**, you can also use this editor with 4D code after installing the [4D-Analyzer](https://github.com/4d/4D-Analyzer-VSCode) extension. + +::: + ## Interface ### Toolbar diff --git a/docs/commands-legacy/array-text.md b/docs/commands-legacy/array-text.md index 1abb962a40d13c..b2742067ce2074 100644 --- a/docs/commands-legacy/array-text.md +++ b/docs/commands-legacy/array-text.md @@ -54,7 +54,3 @@ This example creates an interprocess array of 50 [Text](# "A character string th     ◊atValues{$vlElem}:="Element #"+String($vlElem)  End for ``` - -#### See also - -*\_o\_ARRAY STRING* \ No newline at end of file diff --git a/docs/commands-legacy/build-application.md b/docs/commands-legacy/build-application.md index b0a58b0b2b31f9..12c93317308c78 100644 --- a/docs/commands-legacy/build-application.md +++ b/docs/commands-legacy/build-application.md @@ -20,15 +20,15 @@ displayed_sidebar: docs The BUILD APPLICATION command launches the application generation process. It takes into account parameters set in the current build application settings file or the settings file set in the *buildAppSettings* parameter. -**Note:** This command can only work with 4D Developer (single-user). It cannot be called from 4D Server, 4D in remote mode, or a mergerd application. +**Note:** This command can only work with 4D Developer (single-user). It cannot be called from 4D Server, 4D in remote mode, or a merged application. -A build application settings file is an XML file that contains all the parameters used to generate an application. Most parameters can be seen in the Build Application dialog box (for more information, refer to the *Application builder* section of the 4D Design Reference manual). +A build application settings file is an XML file that contains all the parameters used to generate an application. Most parameters can be seen in the [Build Application dialog box](../Desktop/building.md). By default, 4D creates a build application settings file named “buildApp.4DSettings” for each database and places it in the Settings folder of the database. If the database has not yet been compiled or if the compiled code is outdated, the command will first launch the compiler process. In this case, the compiler window does not appear (unless an error occurs), only a progress bar is displayed. You can hide this progress bar using the [MESSAGES OFF](messages-off.md) command. -If you do not pass the optional buildAppSettings parameter, the command displays a standard open file dialog box, so that you can designate a build application settings file. When the dialog box has been validated, the system variable Document contains the full pathname of the open settings file. +If you do not pass the optional *buildAppSettings* parameter, the command displays a standard open file dialog box, so that you can designate a build application settings file. When the dialog box has been validated, the system variable Document contains the full pathname of the open settings file. If you pass the access path and name of an XML file for a valid application project (UTF-8 encoding), the command will use the parameters defined in the file. For more information on the structure and the keys that can be used in the build application settings file, refer to the *4D XML Keys BuildApplication* manual. diff --git a/docs/commands-legacy/data-file.md b/docs/commands-legacy/data-file.md index f7b10b541db9ae..16ded6da295ebc 100644 --- a/docs/commands-legacy/data-file.md +++ b/docs/commands-legacy/data-file.md @@ -30,6 +30,5 @@ If, for example, you are working with the database located in the folder Documen #### See also -*\_o\_DATA SEGMENT LIST* [Application file](application-file.md) [Structure file](structure-file.md) \ No newline at end of file diff --git a/docs/commands-legacy/drop-position.md b/docs/commands-legacy/drop-position.md index 5d3dc79486b33d..3cd081f6726b17 100644 --- a/docs/commands-legacy/drop-position.md +++ b/docs/commands-legacy/drop-position.md @@ -94,5 +94,4 @@ The left (destination) list box object method contains the following code: #### See also -*\_o\_DRAG AND DROP PROPERTIES* *Drag and Drop* \ No newline at end of file diff --git a/docs/commands-legacy/filter-keystroke.md b/docs/commands-legacy/filter-keystroke.md index 92ab14642e22f8..bfd511b577d112 100644 --- a/docs/commands-legacy/filter-keystroke.md +++ b/docs/commands-legacy/filter-keystroke.md @@ -86,39 +86,37 @@ As explained above, during the editing of the text area, the data source for thi   // Shadow keystroke project method   // Shadow keystroke ( Pointer ; Pointer ; String ) -> String   // Shadow keystroke ( -> srcArea ; -> curValue ; Filter ) -> Old keystroke - C_STRING(1;$0) - var $1;$2 : Pointer +#DECLARE ($srcArea : Pointer ; $curVal : Pointer ; $filter : Text) -> $old : Text  var $vtNewValue : Text - C_STRING(255;$3)   // Return the original keystroke - $0:=Keystroke + $old:=Keystroke   // Get the text selection range within the enterable area - GET HIGHLIGHT($1->;$vlStart;$vlEnd) + GET HIGHLIGHT($srcArea->;$vlStart;$vlEnd)   // Start working with the current value - $vtNewValue:=$2-> + $vtNewValue:=$curVal->   // Depending on the key pressed or the character entered,   // Perform the appropriate actions  Case of   // The Backspace (Delete) key has been pressed -    :(Character code($0)=Backspace) +    :(Character code($old)=Backspace)   // Delete the selected characters or the character at the left of the text cursor        $vtNewValue:=Delete text($vtNewValue;$vlStart;$vlEnd)   // An Arrow key has been pressed   // Do nothing, but accept the keystroke -    :(Character code($0)=Left arrow key) -    :(Character code($0)=Right arrow key) -    :(Character code($0)=Up arrow key) -    :(Character code($0)=Down arrow key) +    :(Character code($old)=Left arrow key) +    :(Character code($old)=Right arrow key) +    :(Character code($old)=Up arrow key) +    :(Character code($old)=Down arrow key)     // An acceptable character has been entered -    :(Position($0;$3)=0) +    :(Position($old;$filter)=0)        $vtNewValue:=Insert text($vtNewValue;$vlStart;$vlEnd;$0)     Else   // The character is not accepted        FILTER KEYSTROKE("")  End case   // Return the value for the next keystroke handling - $2->:=$vtNewValue + $curVal->:=$vtNewValue ``` This method uses the two following submethods: @@ -127,26 +125,25 @@ This method uses the two following submethods:   // Delete text project method   // Delete text ( String ; Long ; Long ) -> String   // Delete text ( -> Text ; SelStart ; SelEnd ) -> New text - var $0;$1 : Text - var $2;$3 : Integer - $0:=Substring($1;1;$2-1-Num($2=$3))+Substring($1;$3) -  +#DECLARE ($src : Text ; $start : Integer ; $end : Integer) -> $new : Text  + $new:=Substring($src;1;$start-1-Num($start=$end))+Substring($src;$end) +``` +```4d    // Insert text project method   // Insert text ( String ; Long ; Long ; String ) -> String   // Insert text ( -> srcText ; SelStart ; SelEnd ; Text to insert ) -> New text - var $0;$1;$4 : Text - var $2;$3 : Integer - $0:=$1 - If($2#$3) -    $0:=Substring($0;1;$2-1)+$4+Substring($0;$3) +#DECLARE ($src : Text ; $start : Integer ; $end : Integer ; $toInsert : Text) -> $new : Text  + $new:=$src + If($start # $end) +    $new:=Substring($new;1;$start-1)+$toInsert+Substring($new;$end)  Else     Case of -       :($2<=1) -          $0:=$4+$0 -       :($2>Length($0)) -          $0:=$0+$4 +       :($start<=1) +          $new:=$toInsert+$new +       :($start>Length($new)) +          $new:=$new+$toInsert        Else -          $0:=Substring($0;1;$2-1)+$4+Substring($0;$2) +          $new:=Substring($new;1;$start-1)+$toInsert+Substring($new;$start)     End case  End if ``` @@ -180,13 +177,13 @@ The LOOKUP DICTIONARY project method is listed below. Its purpose is to use the   // LOOKUP DICTIONARY ( Pointer ; Pointer )   // LOOKUP DICTIONARY ( -> Enterable Area ; ->ShadowVariable )   - var $1;$2 : Pointer +#DECLARE ($area : Pointer ; $shadow : Pointer)  var $vlStart;$vlEnd : Integer     // Get the text selection range within the enterable area - GET HIGHLIGHT($1->;$vlStart;$vlEnd) + GET HIGHLIGHT($area->;$vlStart;$vlEnd)   // Get the selected text or the word on the left of the text cursor - $vtHighlightedText:=Get highlighted text($2->;$vlStart;$vlEnd) + $vtHighlightedText:=Get highlighted text($shadow->;$vlStart;$vlEnd)   // Is there something to look for?  If($vtHighlightedText#"")   // If the text selection was the text cursor, @@ -194,14 +191,14 @@ The LOOKUP DICTIONARY project method is listed below. Its purpose is to use the     If($vlStart=$vlEnd)        $vlStart:=$vlStart-Length($vtHighlightedText)     End if -  // Look for the first avaliable dictionary entry +  // Look for the first available dictionary entry     QUERY([Dictionary];[Dictionary]Entry=$vtHighlightedText+"@")   // Is there one?     If(Records in selection([Dictionary])>0)   // If so, insert it in the shadow text -       $2->:=Insert text($2->;$vlStart;$vlEnd;[Dictionary]Entry) +       $shadow->:=Insert text($shadow->;$vlStart;$vlEnd;[Dictionary]Entry)   // Copy the shadow text to the enterable being edited -       $1->:=$2-> +       $area->:=$shadow->   // Set the selection just after the insert dictionary entry        $vlEnd:=$vlStart+Length([Dictionary]Entry)        HIGHLIGHT TEXT(vsComments;$vlEnd;$vlEnd) @@ -221,23 +218,22 @@ The Get highlighted text method is listed here:   // Get highlighted text project method   // Get highlighted text ( String ; Long ; Long ) -> String   // Get highlighted text ( Text ; SelStart ; SelEnd ) -> highlighted text - var $0;$1 : Text - var $2;$3 : Integer - If($2<$3) -    $0:=Substring($1;$2;$3-$2) +#DECLARE ($text : Text ; $start : Integer ; $end : Integer) -> $highlight : Text + If($start<$end) +    $highlight:=Substring($text;$start;$end-$start)  Else -    $0:="" -    $2:=$2-1 +    $highlight:="" +    $start:=$start-1     Repeat -       If($2>0) -          If(Position($1[[$2]];"  ,.!?:;()-_–—")=0) -             $0:=$1[[$2]]+$0 -             $2:=$2-1 +       If($start>0) +          If(Position($text[[$start]];"  ,.!?:;()-_–—")=0) +             $highlight:=$text[[$start]]+$highlight +             $start:=$start-1           Else -             $2:=0 +             $start:=0           End if        End if -    Until($2=0) +    Until($start=0)  End if ``` diff --git a/docs/commands-legacy/font-list.md b/docs/commands-legacy/font-list.md index ae4bfee6452ba3..0b351e173968ca 100644 --- a/docs/commands-legacy/font-list.md +++ b/docs/commands-legacy/font-list.md @@ -68,7 +68,6 @@ You want to get a list of recent fonts: #### See also -*\_o\_Font name* [FONT STYLE LIST](font-style-list.md) *Font Type List* [OBJECT SET FONT](object-set-font.md) diff --git a/docs/commands-legacy/form-set-input.md b/docs/commands-legacy/form-set-input.md index dd2784d9f89294..0c21d23750df18 100644 --- a/docs/commands-legacy/form-set-input.md +++ b/docs/commands-legacy/form-set-input.md @@ -98,7 +98,6 @@ which displays: #### See also -*\_o\_CREATE USER FORM* [ADD RECORD](add-record.md) [DISPLAY RECORD](display-record.md) [DISPLAY SELECTION](display-selection.md) diff --git a/docs/commands-legacy/form-set-output.md b/docs/commands-legacy/form-set-output.md index 1726ee61487c07..4234cbf3821d48 100644 --- a/docs/commands-legacy/form-set-output.md +++ b/docs/commands-legacy/form-set-output.md @@ -64,7 +64,6 @@ The following example uses the path to a .json form to print the records in an e #### See also -*\_o\_CREATE USER FORM* [DISPLAY SELECTION](display-selection.md) [EXPORT DIF](export-dif.md) [EXPORT SYLK](export-sylk.md) diff --git a/docs/commands-legacy/get-document-properties.md b/docs/commands-legacy/get-document-properties.md index cbc909d570bfe8..00bd3f8a63dfc3 100644 --- a/docs/commands-legacy/get-document-properties.md +++ b/docs/commands-legacy/get-document-properties.md @@ -207,6 +207,4 @@ Once this is implemented in the database, we have all we need to write the proje #### See also -*\_o\_Document creator* -*\_o\_Document type* [SET DOCUMENT PROPERTIES](set-document-properties.md) \ No newline at end of file diff --git a/docs/commands-legacy/get-highlight.md b/docs/commands-legacy/get-highlight.md index f70dc4b74b267c..7b1c52a24c2162 100644 --- a/docs/commands-legacy/get-highlight.md +++ b/docs/commands-legacy/get-highlight.md @@ -42,8 +42,10 @@ If the object designated by the *object* parameter is not found in the form, the The following example gets the highlighted selection from the field called *\[Products\]Comments*: ```4d - GET HIGHLIGHT([Products]Comments;vFirst;vLast) - If(vFirst +GET HIGHLIGHT([Products]Comments;vFirst;vLast) +If(vFirst < vlast) + ALERT("The selected text is:"+Substring([Products]Comments;vFirst;vLast-vFirst)) +End if ``` #### Example 2 diff --git a/docs/commands-legacy/get-process-variable.md b/docs/commands-legacy/get-process-variable.md index 71aa3d02c5d9ea..edca890cdc9907 100644 --- a/docs/commands-legacy/get-process-variable.md +++ b/docs/commands-legacy/get-process-variable.md @@ -114,7 +114,6 @@ See the example for the *\_o\_DRAG AND DROP PROPERTIES* command. #### See also -*\_o\_DRAG AND DROP PROPERTIES* *Drag and Drop* [POST OUTSIDE CALL](post-outside-call.md) *Processes* diff --git a/docs/commands-legacy/in-break.md b/docs/commands-legacy/in-break.md index 27d64bd4d44059..78c239ba3af84e 100644 --- a/docs/commands-legacy/in-break.md +++ b/docs/commands-legacy/in-break.md @@ -26,6 +26,5 @@ In order for the **In break** execution cycle to be generated, make sure that th #### See also -*\_o\_During* [In footer](in-footer.md) [In header](in-header.md) \ No newline at end of file diff --git a/docs/commands-legacy/in-footer.md b/docs/commands-legacy/in-footer.md index 7753b2379745bb..84a401c0b0f138 100644 --- a/docs/commands-legacy/in-footer.md +++ b/docs/commands-legacy/in-footer.md @@ -26,6 +26,5 @@ In order for the **In footer** execution cycle to be generated, make sure that #### See also -*\_o\_During* [In break](in-break.md) [In header](in-header.md) \ No newline at end of file diff --git a/docs/commands-legacy/in-header.md b/docs/commands-legacy/in-header.md index c0c44d18dbbaa9..3e97756d4cd22e 100644 --- a/docs/commands-legacy/in-header.md +++ b/docs/commands-legacy/in-header.md @@ -26,6 +26,5 @@ In order for the **In header** execution cycle to be generated, make sure that t #### See also -*\_o\_During* [In break](in-break.md) [In footer](in-footer.md) \ No newline at end of file diff --git a/docs/commands-legacy/integrate-mirror-log-file.md b/docs/commands-legacy/integrate-mirror-log-file.md index 8006f7dde256e1..da3e69b237294a 100644 --- a/docs/commands-legacy/integrate-mirror-log-file.md +++ b/docs/commands-legacy/integrate-mirror-log-file.md @@ -98,6 +98,4 @@ If the integration is carried out correctly, the system variable OK is set to 1; #### See also - -*\_o\_INTEGRATE LOG FILE* [LOG FILE TO JSON](log-file-to-json.md) \ No newline at end of file diff --git a/docs/commands-legacy/is-a-list.md b/docs/commands-legacy/is-a-list.md index 2afca2e447859d..4d7472592ef19d 100644 --- a/docs/commands-legacy/is-a-list.md +++ b/docs/commands-legacy/is-a-list.md @@ -21,14 +21,7 @@ displayed_sidebar: docs The Is a list command returns TRUE if the value you pass in *list* is a valid reference to a hierarchical list. Otherwise, it returns FALSE. -#### Example 1 +#### Example See example for the [CLEAR LIST](clear-list.md) command. -#### Example 2 - -See examples for the *\_o\_DRAG AND DROP PROPERTIES* command. - -#### See also - -*\_o\_DRAG AND DROP PROPERTIES* \ No newline at end of file diff --git a/docs/commands-legacy/new-log-file.md b/docs/commands-legacy/new-log-file.md index 582691b0b5b389..cd923d8489fea2 100644 --- a/docs/commands-legacy/new-log-file.md +++ b/docs/commands-legacy/new-log-file.md @@ -30,6 +30,3 @@ The file is renamed with the current backup numbers of the database and of the l In the event of an error, the command generates a code that can be intercepted using the [ON ERR CALL](on-err-call.md "ON ERR CALL") command. -#### See also - -*\_o\_INTEGRATE LOG FILE* \ No newline at end of file diff --git a/docs/commands-legacy/object-set-action.md b/docs/commands-legacy/object-set-action.md index 11a1227752a810..24970b4920809c 100644 --- a/docs/commands-legacy/object-set-action.md +++ b/docs/commands-legacy/object-set-action.md @@ -40,5 +40,4 @@ You want to associate the **Validate** standard action with a button: #### See also -*\_o\_OBJECT Get action* [OBJECT Get action](object-get-action.md) \ No newline at end of file diff --git a/docs/commands-legacy/object-set-rgb-colors.md b/docs/commands-legacy/object-set-rgb-colors.md index 5462f4ff8a4d91..20e126dec90c69 100644 --- a/docs/commands-legacy/object-set-rgb-colors.md +++ b/docs/commands-legacy/object-set-rgb-colors.md @@ -104,6 +104,5 @@ Changing to transparent background with a light font color: #### See also -*\_o\_OBJECT SET COLOR* [OBJECT GET RGB COLORS](object-get-rgb-colors.md) [Select RGB Color](select-rgb-color.md) \ No newline at end of file diff --git a/docs/commands-legacy/picture-to-blob.md b/docs/commands-legacy/picture-to-blob.md index f392c0846cd985..569b4d35aefd06 100644 --- a/docs/commands-legacy/picture-to-blob.md +++ b/docs/commands-legacy/picture-to-blob.md @@ -47,7 +47,6 @@ You want to convert an image from a proprietary format to GIF format and display #### See also -*\_o\_PICTURE TO GIF* [BLOB TO PICTURE](blob-to-picture.md) [PICTURE CODEC LIST](picture-codec-list.md) [WRITE PICTURE FILE](write-picture-file.md) \ No newline at end of file diff --git a/docs/commands-legacy/print-selection.md b/docs/commands-legacy/print-selection.md index 17dd3e145369ca..182fce67549561 100644 --- a/docs/commands-legacy/print-selection.md +++ b/docs/commands-legacy/print-selection.md @@ -59,7 +59,6 @@ The following example selects all the records in the \[People\] table. It then u #### See also -*\_o\_PAGE SETUP* [ACCUMULATE](accumulate.md) [BREAK LEVEL](break-level.md) [Level](level.md) diff --git a/docs/commands-legacy/resolve-pointer.md b/docs/commands-legacy/resolve-pointer.md index b2f90aa7104780..58d350c7180f93 100644 --- a/docs/commands-legacy/resolve-pointer.md +++ b/docs/commands-legacy/resolve-pointer.md @@ -103,7 +103,6 @@ Here is an example of a 2D array pointer: #### See also -*\_o\_DRAG AND DROP PROPERTIES* [Field](field.md) [Get pointer](get-pointer.md) [Is a variable](is-a-variable.md) diff --git a/docs/commands-legacy/set-document-properties.md b/docs/commands-legacy/set-document-properties.md index 2388aff022c64f..42d7ff8c471df5 100644 --- a/docs/commands-legacy/set-document-properties.md +++ b/docs/commands-legacy/set-document-properties.md @@ -34,6 +34,4 @@ The dates and times of creation and last modification are managed by the file ma #### See also -*\_o\_SET DOCUMENT CREATOR* -*\_o\_SET DOCUMENT TYPE* [GET DOCUMENT PROPERTIES](get-document-properties.md) \ No newline at end of file diff --git a/docs/commands-legacy/structure-file.md b/docs/commands-legacy/structure-file.md index b6ae1e05bd47c7..f57733e76e13f1 100644 --- a/docs/commands-legacy/structure-file.md +++ b/docs/commands-legacy/structure-file.md @@ -64,7 +64,6 @@ The following example can be used to find out whether the method is called from #### See also -*\_o\_DATA SEGMENT LIST* [Application file](application-file.md) [COMPONENT LIST](component-list.md) [Data file](data-file.md) \ No newline at end of file diff --git a/docs/commands-legacy/use-character-set.md b/docs/commands-legacy/use-character-set.md index ab34eb0cec5ea8..1f039581391fd1 100644 --- a/docs/commands-legacy/use-character-set.md +++ b/docs/commands-legacy/use-character-set.md @@ -41,8 +41,6 @@ The OK system variable is set to 1 if the map is loaded correctly. Otherwise, it #### See also -*\_o\_Mac to Win* -*\_o\_Win to Mac* [EXPORT DIF](export-dif.md) [EXPORT SYLK](export-sylk.md) [EXPORT TEXT](export-text.md) diff --git a/docs/commands/compile-project.md b/docs/commands/compile-project.md index f829fd80c62a16..d3c2326030570a 100644 --- a/docs/commands/compile-project.md +++ b/docs/commands/compile-project.md @@ -120,8 +120,8 @@ The `code` property in `methods.code` and `errors.code` is an object with the fo | **Property** | **Type** | **Description** | | ------------------- | -------- | ---- | -| type | Text | "projectMethod", "formObjectMethod", "formMethod", "databaseMethod", "triggerMethod", "executeOnServer" (when calling a project method with the *Execute on Server attribute*), "executeFormula" (when executing a formula via [PROCESS 4D TAGS](process-4d-tags.md) or evaluation of a formula in a 4D Write Pro document), "class", "classFunction", "formObjectExpression" (for errors occuring in expressions associated to form objects)| -| path | Text | Method path (same format as [METHOD OPEN PATH](method-open-path.md)) | +| type | Text | "projectMethod", "formObjectMethod", "formMethod", "databaseMethod", "triggerMethod", "executeOnServer" (when calling a project method with the *Execute on Server attribute*), "executeFormula" (when executing a formula via [PROCESS 4D TAGS](../commands-legacy/process-4d-tags.md) or evaluation of a formula in a 4D Write Pro document), "class", "classFunction", "formObjectExpression" (for errors occuring in expressions associated to form objects)| +| path | Text | Method path (same format as [METHOD OPEN PATH](../commands-legacy/method-open-path.md)) | | file | 4D.File | Method file | || | **Returned depending on the value of the `type` property:** | | methodName | Text | Project method | @@ -191,4 +191,4 @@ var $result:=Compile project($options) #### See also -[BUILD APPLICATION](build-application.md) \ No newline at end of file +[BUILD APPLICATION](../commands-legacy/build-application.md) \ No newline at end of file diff --git a/docs/commands/create-entity-selection.md b/docs/commands/create-entity-selection.md index 9de5b62d8f5a08..7f25038fd76e68 100644 --- a/docs/commands/create-entity-selection.md +++ b/docs/commands/create-entity-selection.md @@ -42,4 +42,12 @@ $employees:=Create entity selection([Employee]) #### See also -[USE ENTITY SELECTION](use-entity-selection.md)
[`dataClass.newSelection()`](../API/DataClassClass.md#newselection) \ No newline at end of file +[USE ENTITY SELECTION](use-entity-selection.md)
[`dataClass.newSelection()`](../API/DataClassClass.md#newselection) + +#### Properties + +| | | +| --- | --- | +| Command number | 1512 | +| Thread safe | ✓ | + diff --git a/docs/commands/dialog.md b/docs/commands/dialog.md index f1d4db5f104d2d..38e366fd037314 100644 --- a/docs/commands/dialog.md +++ b/docs/commands/dialog.md @@ -65,7 +65,7 @@ This form then reacts “normally” to user actions and is closed using a stand **Notes:** -* You can combine the use of the **DIALOG**(form;\*) syntax with the [CALL FORM](call-form.md) command to establish communication between the forms. +* You can combine the use of the **DIALOG**(form;\*) syntax with the [CALL FORM](../commands-legacy/call-form.md) command to establish communication between the forms. * You must create a window before calling the **DIALOG**(form;\*) statement. It is not possible to use the current dialog window in the process nor the window created by default for each process. Otherwise, error -9909 is generated. * When the *\** parameter is used, the window is closed automatically following a standard action or a call to the [CANCEL](../commands-legacy/cancel.md) or [ACCEPT](../commands-legacy/accept.md) command. You do not have to manage the closing of the window itself. @@ -168,7 +168,15 @@ After a call to **DIALOG**, if the dialog is accepted, OK is set to 1; if it is [ACCEPT](../commands-legacy/accept.md) [ADD RECORD](../commands-legacy/add-record.md) -[CALL FORM](call-form.md) +[CALL FORM](../commands-legacy/call-form.md) [CANCEL](../commands-legacy/cancel.md) [Form](form.md) -[Open window](../commands-legacy/open-window.md) \ No newline at end of file +[Open window](../commands-legacy/open-window.md) + +#### Properties + +| | | +| --- | --- | +| Command number | 40 | +| Thread safe | ✗ | +| Modifies variables | OK, error | diff --git a/docs/commands/form-event-code.md b/docs/commands/form-event-code.md index 5cef0cfa1cb920..663392fd424a2f 100644 --- a/docs/commands/form-event-code.md +++ b/docs/commands/form-event-code.md @@ -103,7 +103,7 @@ This example is a template for a form method. It shows each of the possible even #### Example 4 -This example shows the template of a form method that handles the events that can occur for a form displayed using the [DISPLAY SELECTION](display-selection.md) or [MODIFY SELECTION](modify-selection.md) commands. For didactic purposes, it displays the nature of the event in the title bar of the form window. +This example shows the template of a form method that handles the events that can occur for a form displayed using the [DISPLAY SELECTION](../commands-legacy/display-selection.md) or [MODIFY SELECTION](../commands-legacy/modify-selection.md) commands. For didactic purposes, it displays the nature of the event in the title bar of the form window. ```4d   //A form method @@ -142,7 +142,7 @@ This example shows the template of a form method that handles the events that ca #### Example 5 -For examples on how to handle [`On Before Keystroke`](../Events/onBeforeKeystroke.md) and [`On After Keystroke`](../Events/onAfterKeystroke.md) events, see examples for the [Get edited text](get-edited-text.md), [Keystroke](keystroke.md) and [FILTER KEYSTROKE](filter-keystroke.md) commands. +For examples on how to handle [`On Before Keystroke`](../Events/onBeforeKeystroke.md) and [`On After Keystroke`](../Events/onAfterKeystroke.md) events, see examples for the [Get edited text](../commands-legacy/get-edited-text.md), [Keystroke](../commands-legacy/keystroke.md) and [FILTER KEYSTROKE](../commands-legacy/filter-keystroke.md) commands. #### Example 6 @@ -344,11 +344,11 @@ As a result, the red rectangle follows the scrolling of the list box: #### See also [Form Events](../Events/overview.md) -[CALL SUBFORM CONTAINER](call-subform-container.md) -[Current form table](current-form-table.md) -[FILTER KEYSTROKE](filter-keystroke.md) +[CALL SUBFORM CONTAINER](../commands-legacy/call-subform-container.md) +[Current form table](../commands-legacy/current-form-table.md) +[FILTER KEYSTROKE](../commands-legacy/filter-keystroke.md) [FORM Event](form-event.md) -[Get edited text](get-edited-text.md) -[Keystroke](keystroke.md) -[POST OUTSIDE CALL](post-outside-call.md) -[SET TIMER](set-timer.md) \ No newline at end of file +[Get edited text](../commands-legacy/get-edited-text.md) +[Keystroke](../commands-legacy/keystroke.md) +[POST OUTSIDE CALL](../commands-legacy/post-outside-call.md) +[SET TIMER](../commands-legacy/set-timer.md) \ No newline at end of file diff --git a/i18n/es/docusaurus-plugin-content-docs/current/API/CollectionClass.md b/i18n/es/docusaurus-plugin-content-docs/current/API/CollectionClass.md index aa1769b059c160..04e1fc353b4025 100644 --- a/i18n/es/docusaurus-plugin-content-docs/current/API/CollectionClass.md +++ b/i18n/es/docusaurus-plugin-content-docs/current/API/CollectionClass.md @@ -5,13 +5,12 @@ title: Collection La clase Collection gestiona variables de tipo [Collection](Concepts/dt_collection.md). -Una colección es inicializada con los comandos [`New collection`](../commands/new-collection.md) o [`New shared collection`](../commands/new-shared-collection.md). +Ejemplo 3 ### Ejemplo ```4d - var $colVar : Collection //creación de una variable 4D de tipo colección - $colVar:=New collection //inicialización de la colección y asignación a la variable 4D +Notas ``` ### Resumen @@ -58,7 +57,7 @@ Una colección es inicializada con los comandos [`New collection`](../commands/n | [](#reduceRight)
| | [](#remove)
| | [](#resize)
| -| [](#orderby)
| +| Ejemplo 2 | | [](#shift)
| | [](#slice)
| | [](#some)
| @@ -82,33 +81,27 @@ Una colección es inicializada con los comandos [`New collection`](../commands/n -| Parámetros | Tipo | | Descripción | -| ---------- | ------- | :-------------------------: | ------------------------------ | -| index | Integer | -> | Índice del elemento a devolver | -| Result | any | <- | El elemento en ese índice | +| Parámetros | Tipo | | Descripción | +| ---------- | ------- | :-------------------------: | ----------------------------------------------------------------------------------- | +| index | Integer | -> | Índice del elemento a devolver | +| Result | any | <- | Este ejemplo devuelve las personas contratadas hace más de 90 días: | #### Descripción -La función `.at()` devuelve el elemento en la posición *index*, permitiendo enteros positivos y negativos. +Igual a > Esta función no modifica la colección original. Los números enteros negativos cuentan hacia atrás desde el último elemento de la colección. -La función devuelve Undefined si el *index* sobrepasa los límites de la colección. +Igual a #### Ejemplo ```4d -var $col : Collection -$col:=New collection(10; 20; 30; 40; 50) -$element:=$col.at(0) // 10 -$element:=$col.at(1) // 20 -$element:=$col.at(-1) // 50 -$element:=$col.at(-2) // 40 -$element:=$col.at(10) // indefinido +Lanzamiento ``` @@ -129,26 +122,26 @@ $element:=$col.at(10) // indefinido -| Parámetros | Tipo | | Descripción | -| ------------ | --------------- | :-------------------------: | ----------------------------------------------------------------------------- | -| propertyPath | Text | -> | Ruta de la propiedad del objeto que se utilizará para el cálculo | -| Result | Real, Undefined | <- | Media aritmética (promedio) de los valores de la colección | +| Parámetros | Tipo | | Descripción | +| ------------ | --------------- | :-------------------------: | ---------------------------------------------------------------- | +| propertyPath | Text | -> | Ruta de la propiedad del objeto que se utilizará para el cálculo | +| Result | Real, Undefined | <- | donde: | #### Descripción -La función `.average()` devuelve la media aritmética (promedio) de los valores definidos en la instancia de la colección. +Diferente de Para el cálculo sólo se tienen en cuenta los elementos numéricos (se ignoran otros tipos de elementos). -Si la colección contiene objetos, pasa el parámetro *propertyPath* para indicar la propiedad del objeto a tener en cuenta. +Uso del paréntesis -`.average()` devuelve `undefined` si: +Number, Text, Date, Time, Boolean, Object, Collection, Picture, Pointer - la colección está vacía, - la colección no contiene elementos numéricos, -- *propertyPath* no se encuentra en la colección. +- Lanzamiento #### Ejemplo 1 @@ -187,15 +180,15 @@ Si la colección contiene objetos, pasa el parámetro *propertyPath* para indica -| Parámetros | Tipo | | Descripción | -| ---------- | ---------- | :-------------------------: | ----------------------------------------------------- | -| Result | Collection | <- | Colección original con todos los elementos eliminados | +| Parámetros | Tipo | | Descripción | +| ---------- | ---------- | :-------------------------: | ------------------------------------------- | +| Result | Collection | <- | Colección original sin elementos eliminados | #### Descripción -La función `.clear()` elimina todos los elementos de la instancia de la colección y devuelve una colección vacía. +Debe prestar atención a los siguientes aspectos de la conversión: > Esta función modifica la colección original. @@ -230,7 +223,7 @@ $vSize:=$col.length //$vSize=0 | ---------- | ---------- | :-------------------------: | ------------------------------------------------------------------------------------------------------------------------ | | col2 | Collection | -> | Colección a combinar | | index | Integer | -> | Posición a la que se deben combinar los elementos de inserción en la colección (por defecto=length+1) | -| Result | Collection | <- | Colección original que contiene elementos combinados | +| Result | Collection | <- | Colección original sin elementos eliminados | @@ -242,11 +235,11 @@ La función `.combine()` inserta eleme Por defecto, los elementos *col2* se añaden al final de la colección original. Puede pasar en *index* la posición donde desea insertar los elementos *col2* en la colección. -> **Atención**: recuerde que los elementos de la colección están numerados desde 0. +> Diferente de -- Si *index* > la longitud de la colección, el *index* inicial real será la longitud de la colección. -- Si *index* < 0, se recalcula como *index:=index+length* (se considera el desplazamiento desde el final de la colección). -- Si el valor calculado es negativo, *index* toma el valor 0. +- Ejemplo 1 +- Ejemplo 3 +- En caso de incoherencia, se aplican las siguientes reglas: #### Ejemplo @@ -275,20 +268,20 @@ $c.combine($fruits;3) //[1,2,3,"Orange","Banana","Apple","Grape",4,5,6] -| Parámetros | Tipo | | Descripción | -| ---------- | -------------------------------------------------------------- | :-------------------------: | ---------------------------------------------------------------------------------------------------------------------------------------- | -| value | Number, Text, Object, Collection, Date, Time, Boolean, Picture | -> | Valores a concatenar. Si *value* es una colección, todos los elementos de la colección se añaden a la colección original | -| Result | Collection | <- | Nueva colección con valor(es) añadido(s) a la colección original | +| Parámetros | Tipo | | Descripción | +| ---------- | -------------------------------------------------------------- | :-------------------------: | --------------------------------------------------------------------------------------------------------------------------------------------------- | +| value | Number, Text, Object, Collection, Date, Time, Boolean, Picture | -> | Valores a concatenar. Si *value* es una colección, todos sus elementos se añaden al final de la colección original. | +| Result | Collection | <- | Colección original con valores rellenados | #### Descripción -La función.`.concat()` devuelve una nueva colección que contiene los elementos de la colección original con todos los elementos del parámetro *value* añadidos al final. +Colección compartida que se agrupa con la colección resultante > Esta función no modifica la colección original. -Si *value* es una colección, todos sus elementos se añaden al final de la colección original. Si *value* no es una colección, se añade ella misma como un nuevo elemento. +La colección devuelta contiene el elemento especificado por *startFrom* y todos los elementos subsiguientes hasta, pero sin incluir, el elemento especificado por *end*. Si sólo se especifica el parámetro *startFrom*, la colección devuelta contiene todos los elementos desde *startFrom* hasta el último elemento de la colección original. #### Ejemplo @@ -320,29 +313,29 @@ $c2:=$c.concat(6;7;8) //[1,2,3,4,5,6,7,8] -| Parámetros | Tipo | | Descripción | -| ------------ | ---------- | :-------------------------: | -------------------------------------------------------------------------------------------------------------------------------------------- | -| option | Integer | -> | `ck resolve pointers`: resolver punteros antes de copiar,
`ck shared`: devolver una colección compartida | -| groupWithCol | Collection | -> | Colección compartida que se agrupa con la colección resultante | -| groupWithObj | Object | -> | Objeto compartido que se agrupa con la colección resultante | -| Result | Collection | <- | Copia profunda de la colección original | +| Parámetros | Tipo | | Descripción | +| ------------ | ---------- | :-------------------------: | -------------------------------------------------------------- | +| option | Integer | -> | Ejemplo 3 | +| groupWithCol | Collection | -> | Colección compartida que se agrupa con la colección resultante | +| groupWithObj | Object | -> | Objeto compartido que se agrupa con la colección resultante | +| Result | Collection | <- | Colección original ordenada | #### Descripción -La función `.copy()` devuelve una copia profunda de la instancia de la colección.***Deep copy*** significa que los objetos o colecciones dentro de la colección original se duplican y no comparten ninguna referencia con la colección devuelta. +Uso de marcadores de posición > Esta función no modifica la colección original. -Si se pasa, el parámetro *option* puede contener una de las siguientes constantes (o ambas): +Lanzamiento | option | Descripción | | --------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -| `ck resolve pointers` | Si la colección original contiene valores de tipo puntero, por defecto la copia también contiene los punteros. Sin embargo, puede resolver los punteros al copiar pasando la constante `ck resolve pointers`. En este caso, cada puntero presente en la colección se evalúa al copiar y se utiliza su valor desreferenciado. | +| `ck resolve pointers` | Si la colección original contiene valores de tipo puntero, por defecto la copia también contiene los punteros. Si la colección original contiene valores de tipo puntero, por defecto la copia también contiene los punteros. En este caso, cada puntero presente en la colección se evalúa al copiar y se utiliza su valor desreferenciado. | | `ck shared` | Por defecto, `copy()` devuelve una colección Clásica (no compartida), incluso si el comando se aplica a una colección compartida. Pasa la constante `ck shared` para crear una colección compartida. En este caso, puede utilizar el parámetro *groupWith* para asociar la colección compartida con otra colección u objeto (ver más adelante). | -Los parámetros *groupWithCol* o *groupWithObj* permiten designar una colección o un objeto al que se debe asociar la colección resultante. +Ejemplo 2 :::note @@ -374,7 +367,7 @@ End use #### Ejemplo 2 -Queremos combinar *$sharedColl1* y *$sharedColl2*. Dado que pertenecen a diferentes grupos compartidos, una combinación directa daría lugar a un error. Por lo tanto, debemos hacer una copia compartida de *$sharedColl1* y designar *$sharedColl2* como grupo compartido para la copia. +Queremos combinar *$sharedColl1* y *$sharedColl2*. Dado que pertenecen a diferentes grupos compartidos, una combinación directa daría lugar a un error. Dado que pertenecen a diferentes grupos compartidos, una combinación directa daría lugar a un error. ```4d var $sharedColl1;$sharedColl2;$copyColl : Collection @@ -409,24 +402,10 @@ End use #### Ejemplo 4 -Este ejemplo ilustra el uso de la opción `ck resolve pointers`: +Primer elemento de la colección ```4d - var $col : Collection - var $p : Pointer - $p:=->$what - - $col:=New collection - $col.push(New object("alpha";"Hello";"num";1)) - $col.push(New object("beta";"You";"what";$p)) - - $col2:=$col.copy() - $col2[1].beta:="World!" - ALERT($col[0].alpha+" "+$col2[1].beta) //muestra "Hello World!" - - $what:="You!" - $col3:=$col2.copy(ck resolve pointers) - ALERT($col3[0].alpha+" "+$col3[1].what) //muestra "Hello You!" +Mayor que ``` @@ -450,13 +429,13 @@ Este ejemplo ilustra el uso de la opción `ck resolve pointers`: | Parámetros | Tipo | | Descripción | | ------------ | ---- | :-------------------------: | ---------------------------------------------------------------- | | propertyPath | Text | -> | Ruta de la propiedad del objeto que se utilizará para el cálculo | -| Result | Real | <- | Número de elementos en la colección | +| Result | Real | <- | Colección que contiene los elementos añadidos | #### Descripción -La función `.count()` devuelve el número de elementos no nulos en la colección. +Colección original sin elementos eliminados Si la colección contiene objetos, puede pasar el parámetro *propertyPath*. En este caso, sólo se tienen en cuenta los elementos que contienen el *propertyPath*. @@ -497,22 +476,22 @@ Si la colección contiene objetos, puede pasar el parámetro *propertyPath*. En | ------------ | ----------------------------------------------- | :-------------------------: | ---------------------------------------------------------------- | | value | Text, Number, Boolean, Date, Object, Collection | -> | Valor a contar | | propertyPath | Text | -> | Ruta de la propiedad del objeto que se utilizará para el cálculo | -| Result | Real | <- | Número de ocurrencias del valor | +| Result | Real | <- | Valor a contar | #### Descripción -La función `.countValues()` devuelve el número de veces que se encuentra el valor en la colección. +Mayor o igual que -Puede pasar en *value*: +Colección original ordenada - un valor escalar (texto, número, booleano, fecha), - una referencia de objeto o de colección. -Para encontrar un elemento, el tipo de *value* debe ser equivalente al tipo del elemento; el método utiliza el operador de igualdad. +Tipo -El parámetro opcional *propertyPath* permite contar valores dentro de una colección de objetos: pase en *propertyPath* la ruta de la propiedad cuyos valores quiere contar. +Resumen > Esta función no modifica la colección original. @@ -559,10 +538,10 @@ El parámetro opcional *propertyPath* permite contar valores dentro de una colec
Historia -| Lanzamiento | Modificaciones | -| ----------- | ---------------------------- | -| 20 | Soporte de `ck count values` | -| v16 R6 | Añadidos | +| Lanzamiento | Modificaciones | +| ----------- | ------------------------------------------------------------------------------------------------------------------------------------------------- | +| 20 | Si se intenta eliminar un elemento de una colección vacía, el método no hace nada (no se genera ningún error). | +| v16 R6 | Añadidos |
@@ -574,21 +553,21 @@ El parámetro opcional *propertyPath* permite contar valores dentro de una colec | ------------ | ---------- | :-------------------------: | ------------------------------------------------------- | | propertyPath | Text | -> | Ruta del atributo cuyos valores distintos desea obtener | | options | Integer | -> | `ck diacritical`, `ck count values` | -| Result | Collection | <- | Nueva colección con sólo valores distintos | +| Result | Collection | <- | Lanzamiento | #### Descripción -La función `.distinct()` devuelve una colección que contiene sólo valores distintos (diferentes) de la colección original. +Colección original con valores rellenados > Esta función no modifica la colección original. La colección devuelta se clasifica automáticamente. Los valores **Null** no son devueltos. -Si la colección contiene objetos, puede pasar el parámetro *propertyPath* para indicar la propiedad del objeto cuyos valores distintos desea obtener. +Índice para iniciar la prueba en -En el parámetro *options*, puede pasar una o una combinación de las siguientes constantes: +Ejemplos | Constante | Valor | Comentario | | ----------------- | ----- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | @@ -629,26 +608,26 @@ En el parámetro *options*, puede pasar una o una combinación de las siguientes -| Parámetros | Tipo | | Descripción | -| ----------- | ---------- | :-------------------------: | -------------------------------------------------------------------------------------------------- | -| collection2 | Collection | -> | Colección a comparar | -| option | Integer | -> | `ck diacritical`: evaluación diacrítica ("A" # "a" por ejemplo) | -| Result | Boolean | <- | True si las colecciones son idénticas, false en caso contrario | +| Parámetros | Tipo | | Descripción | +| ----------- | ---------- | :-------------------------: | -------------------- | +| collection2 | Collection | -> | Colección a comparar | +| option | Integer | -> | Añadidos | +| Result | Boolean | <- | Descripción | #### Descripción -La función `.equal()` compara recursivamente el contenido de la colección y *collection2* (comparación profunda/deep comparison) y devuelve **true** si son idénticas. +Tipo :::note Notas - La función `.equal()` solo comprueba la igualdad para los elementos de tipo cadena, booleano, número y null en las colecciones. No verifica la igualdad para objetos nativos. -- Los elementos con valores **null** no son iguales a los elementos Undefined. +- Constantes **null**: utilizando la palabra clave "null" se encontrarán las propiedades **null** y **undefined**. ::: -Por defecto, se realiza una evaluación no diacrítica. Si desea que la evaluación diferencie entre mayúsculas y minúsculas o que diferencie los caracteres acentuados, pase la constante `ck diacritical` en el parámetro option. +Por defecto, se realiza una evaluación no diacrítica. La evaluación distingue entre mayúsculas y minúsculas y diferencia los caracteres acentuados. :::tip @@ -698,59 +677,50 @@ Una comparación recursiva de colecciones puede llevar mucho tiempo si la colecc -| Parámetros | Tipo | | Descripción | -| ---------- | --------------------------- | :-------------------------: | ------------------------------------------------------------------ | -| startFrom | Integer | -> | Índice para iniciar la prueba en | -| formula | 4D.Function | -> | Objeto fórmula | -| methodName | Text | -> | Nombre de un método | -| param | any | -> | Parámetro(s) a pasar a *formula* o \*methodName | -| Result | Boolean | <- | True si todos los elementos han pasado la prueba con éxito | +| Parámetros | Tipo | | Descripción | +| ---------- | --------------------------- | :-------------------------: | -------------------------------- | +| startFrom | Integer | -> | Índice para iniciar la prueba en | +| formula | 4D.Function | -> | Objeto fórmula | +| methodName | Text | -> | Nombre de un método | +| param | any | -> | Colección original ordenada | +| Result | Boolean | <- | Lanzamiento | #### Descripción -La función `.every()` devuelve **true** si todos los elementos de la colección han superado con éxito una prueba implementada en el objeto *formula* o el método *methodName*. +Índice para iniciar la búsqueda en Se designa la retrollamada a ejecutar para evaluar los elementos de la colección utilizando: -- *formula* (sintaxis recomendada), un [objeto Fórmula](FunctionClass.md) que puede encapsular toda expresión ejecutable, incluyendo funciones y métodos proyecto; -- o *methodName*, el nombre de un método proyecto (texto). +- Comparación +- Tipo La retrollamada se llama con los parámetros pasados en *param* (opcional). La retrollamada puede efecturar toda prueba, con o sin los parámetros, y debe devolver *true* para cada elemento que cumpla la prueba. Recibe un `Object` en el primer parámetro ($1). La retrollamada recibe los siguientes parámetros: -- en *$1.value*: valor del elemento a evaluar -- en *$2*: param -- en *$N...*: paramN... +- Lanzamiento +- Colección original sin elementos eliminados +- Este ejemplo comprueba que todos los elementos de una colección son de tipo real: Puede definir los siguientes parámetros: -- (obligatorio si se ha utilizado un método) *$1.result* (booleano): **true** si la evaluación del valor del elemento tiene éxito, **false** en caso contrario. -- *$1.stop* (booleano, opcional): **true** para detener la retrollamada del método. El valor devuelto es el último calculado. +- Copia invertida de la colección +- *$1.stop* (boolean, opcional): **true** para detener la retrollamada del método. El valor devuelto es el último calculado. -En todos los casos, cuando la función `.every()` encuentra el primer elemento de la colección evaluado como **false**, deja de llamar a la retrollamada y devuelve **false**. +Menor o igual que Por defecto, `.every()` evalúa toda la colección. Opcionalmente, se puede pasar en *startFrom* el índice del elemento desde el que iniciar la prueba. -- Si *startFrom* >= la longitud de la colección, se devuelve **false**, lo que significa que no se prueba la colección. -- Si *startFrom* < 0, se considera el desplazamiento desde el final de la colección (*startFrom:=startFrom+length*). -- Si *startFrom* = 0, se busca en toda la colección (por defecto). +- Tipo +- Diferente de Si *startFrom* < 0, se considera el desplazamiento desde el final de la colección (*startFrom:=startFrom+length*). +- Descripción #### Ejemplo 1 ```4d -var $c : Collection -var $b : Boolean -var $f : 4D.Function - -$f:=Formula($1.value>0) -$c:=New collection -$c.push(5;3;1;4;6;2) -$b:=$c.every($f) //devuelve true -$c.push(-1) -$b:=$c.every($f) //devuelve false +Comentario ``` #### Ejemplo 2 @@ -794,19 +764,19 @@ $b:=$c.every($f;Is real) //$b=false | propertyPath | Text | -> | Ruta de la propiedad del objeto cuyos valores deben ser extraídos a la nueva colección | | targetpath | Text | -> | Ruta de la propiedad de destino o nombre de la propiedad | | option | Integer | -> | `ck keep null`: incluye la propiedad null en la colección devuelta (se ignora por defecto). Parámetro ignorado si se pasa *targetPath*. | -| Result | Collection | <- | Nueva colección que contiene los valores extraídos | +| Result | Collection | <- | Lanzamiento | #### Descripción -La función `.extract()` crea y devuelve una nueva colección que contiene valores *propertyPath* extraídos de la colección original de objetos. +Menor que > Esta función no modifica la colección original. -El contenido de la colección devuelta depende del parámetro *targetPath*: +Ejemplo -- Si se omite el parámetro *targetPath*, `.extract()` llena la nueva colección con los valores *propertyPath* de la colección original. +- Ejemplo Por defecto, los elementos cuya *propertyPath* es null o indefinida se ignoran en la colección resultante. Puede pasar la constante `ck keep null` en el parámetro *option* para incluir estos valores como elementos null en la colección devuelta. @@ -859,30 +829,30 @@ $c2:=$c.extract("name";"City";"zc";"Zip") //$c2=[{Zip:35060},{City:null,Zip:3504 -| Parámetros | Tipo | | Descripción | -| ---------- | ----------------------------------------------- | :-------------------------: | ---------------------------------------------- | -| value | number, Text, Collection, Object, Date, Boolean | -> | Valor a asignar | -| startFrom | Integer | -> | Índice de inicio (incluido) | -| end | Integer | -> | Índice final (no incluido) | -| Result | collection | <- | Colección original con valores rellenados | +| Parámetros | Tipo | | Descripción | +| ---------- | ----------------------------------------------- | :-------------------------: | ----------------------------------------------------------------------------------------- | +| value | number, Text, Collection, Object, Date, Boolean | -> | Valor a asignar | +| startFrom | Integer | -> | Índice de inicio (incluido) | +| end | Integer | -> | Índice final (no incluido) | +| Result | collection | <- | *methodName*, el nombre de un método proyecto (texto). | #### Descripción -La función `.fill()` llena la colección con el *valor* especificado, opcionalmente desde el índice *startFrom* hasta el índice *end*, y devuelve la colección resultante. +Diferente de Si *startFrom* < 0, se considera el desplazamiento desde el final de la colección (*startFrom:=startFrom+length*). > Esta función modifica la colección original. -- Si se omite el parámetro *startFrom*, *value* se aplica a todos los elementos de la colección (*startFrom*=0). -- Si se pasa el parámetro *startFrom* y se omite *end*, *value* se aplica a los elementos de la colección a partir de *startFrom* hasta el último elemento de la colección (*end*=length). -- Si se pasan tanto el parámetro *startFrom* como *end*, *value* se aplica a los elementos de la colección empezando en *startFrom* hasta el elemento *end*. +- Descripción +- Ejemplo 3 +- Descripción En caso de incoherencia, se aplican las siguientes reglas: - Si *startFrom* < 0, se recalcula como *startFrom:=startFrom+length* (se considera el desplazamiento desde el final de la colección). Si el valor calculado es negativo, *startFrom* toma el valor 0. -- Si *end* < 0 , se recalcula como *end:=end+length*. -- Si *end* < *startFrom* (valores pasados o calculados), el método no hace nada. +- Soporte de querySettings +- Colección que contiene los elementos añadidos #### Ejemplo @@ -914,12 +884,12 @@ En caso de incoherencia, se aplican las siguientes reglas: -| Parámetros | Tipo | | Descripción | -| ---------- | --------------------------- | :-------------------------: | --------------------------------------------------------------------------------------- | -| formula | 4D.Function | -> | Objeto fórmula | -| methodName | Text | -> | Nombre de un método | -| param | any | -> | Parámetro(s) a pasar a *formula* o \*methodName | -| Result | Collection | <- | Nueva colección que contiene elementos filtrados (copia superficial) | +| Parámetros | Tipo | | Descripción | +| ---------- | --------------------------- | :-------------------------: | --------------------------- | +| formula | 4D.Function | -> | Objeto fórmula | +| methodName | Text | -> | Nombre de un método | +| param | any | -> | Colección original ordenada | +| Result | Collection | <- | O | @@ -931,25 +901,25 @@ La función `.filter()` devuelve una nu Se designa la retrollamada a ejecutar para filtrar los elementos de la colección utilizando: -- *formula* (sintaxis recomendada), un [objeto Fórmula](FunctionClass.md) que puede encapsular toda expresión ejecutable, incluyendo funciones y métodos proyecto; -- o *methodName*, el nombre de un método proyecto (texto). +- Comparación +- Tipo Se llama a la retrollamada con los parámetros pasados en *param* (opcional) y un objeto en primer parámetro (*$1*). La retrollamada puede realizar cualquier prueba, con o sin el parámetro(s) y debe devolver **true** para cada elemento que cumpla la condición y por lo tanto, debe añadirse a la nueva colección. La retrollamada recibe los siguientes parámetros: -- en *$1.value*: valor del elemento a evaluar -- en *$2*: param -- en *$N...*: paramN... +- Lanzamiento +- Colección original sin elementos eliminados +- Este ejemplo comprueba que todos los elementos de una colección son de tipo real: Puede definir los siguientes parámetros: -- *$1.result* (booleano): **true** si el valor del elemento coincide con la condición de filtro y debe conservarse, **false** en caso contrario. -- *$1.stop* (booleano, opcional): **true** para detener la retrollamada del método. El valor devuelto es el último calculado. +- Este ejemplo comprueba que todos los elementos de una colección son de tipo real: +- *$1.stop* (boolean, opcional): **true** para detener la retrollamada del método. El valor devuelto es el último calculado. :::note -Cuando se utiliza *methodName* como callback, y si el método no devuelve ningún valor, `.filter()` buscará la propiedad *$1.result* que debe dar el valor **true** para cada elemento que cumpla la condición. +Si se intenta eliminar un elemento de una colección vacía, el método no hace nada (no se genera ningún error). ::: @@ -1000,46 +970,46 @@ Quiere filtrar los elementos según su tipo de valor: -| Parámetros | Tipo | | Descripción | -| ---------- | --------------------------- | :-------------------------: | ------------------------------------------------------------------ | -| startFrom | Integer | -> | Índice para iniciar la búsqueda en | -| formula | 4D.Function | -> | Objeto fórmula | -| methodName | Text | -> | Nombre de un método | -| param | any | -> | Parámetro(s) a pasar a *formula* o \*methodName | -| Result | any | <- | Primer valor encontrado, o Undefined si no se encuentra | +| Parámetros | Tipo | | Descripción | +| ---------- | --------------------------- | :-------------------------: | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| startFrom | Integer | -> | Índice para iniciar la búsqueda en | +| formula | 4D.Function | -> | Objeto fórmula | +| methodName | Text | -> | Nombre de un método | +| param | any | -> | Colección original ordenada | +| Result | any | <- | La función `.multiSort()` permite realizar una ordenación sincronizada multinivel sobre un conjunto de colecciones. | #### Descripción -La función `.find()` devuelve el primer valor de la colección para el que el resultado de *formula* o de *methodName*, aplicado a cada elemento, devuelve **true**. +Ejemplo > Esta función no modifica la colección original. Se designa la retrollamada a ejecutar para evaluar los elementos de la colección utilizando: -- *formula* (sintaxis recomendada), un [objeto Fórmula](FunctionClass.md) que puede encapsular toda expresión ejecutable, incluyendo funciones y métodos proyecto; -- o *methodName*, el nombre de un método proyecto (texto). +- Comparación +- Tipo -La retrollamada se llama con los parámetros pasados en *param* (opcional). La retrollamada puede realizar cualquier prueba, con o sin los parámetros y debe devolver **true** para el primer elemento que cumpla la condición. Recibe un `Object` en el primer parámetro ($1). +La retrollamada se llama con los parámetros pasados en *param* (opcional). La retrollamada se llama con los parámetros pasados en *param* (opcional). Recibe un `Object` en el primer parámetro ($1). La retrollamada recibe los siguientes parámetros: -- en *$1.value*: valor del elemento a evaluar -- en *$2*: param -- en *$N...*: paramN... +- Lanzamiento +- Colección original sin elementos eliminados +- Este ejemplo comprueba que todos los elementos de una colección son de tipo real: Puede definir los siguientes parámetros: -- (obligatorio si ha utilizado un método) *$1.result* (booleano): **true** si el valor del elemento coincide con la condición de búsqueda, **false** en caso contrario. +- Búsquedas con fechas: - *$1.stop* (booleano, opcional): **true** para detener la retrollamada del método. El valor devuelto es el último calculado. Por defecto, `.find()` busca en toda la colección. Opcionalmente, se puede pasar en *startFrom* el índice del elemento desde el que iniciar la búsqueda. -- Si *startFrom* >= la longitud de la colección, se devuelve -1, lo que significa que la colección no se busca. +- Modificaciones - Si *startFrom* < 0, se considera el desplazamiento desde el final de la colección (*startFrom:=startFrom+length*). **Nota**: incluso si *startFrom* es negativo, la colección se sigue buscando de izquierda a derecha. -- Si *startFrom* = 0, se busca en toda la colección (por defecto). +- Descripción #### Ejemplo 1 @@ -1088,46 +1058,46 @@ $c2:=$c.find(Formula($1.value.name=$2); "Clanton") //$c2={name:Clanton,zc:35046 -| Parámetros | Tipo | | Descripción | -| ---------- | --------------------------- | :-------------------------: | ------------------------------------------------------------------ | -| startFrom | Integer | -> | Índice para iniciar la búsqueda en | -| formula | 4D.Function | -> | Objeto fórmula | -| methodName | Text | -> | Nombre de un método | -| param | any | -> | Parámetro(s) a pasar a *formula* o \*methodName | -| Result | Integer | <- | Índice del primer valor encontrado, o -1 si no se encuentra | +| Parámetros | Tipo | | Descripción | +| ---------- | --------------------------- | :-------------------------: | ---------------------------------- | +| startFrom | Integer | -> | Índice para iniciar la búsqueda en | +| formula | 4D.Function | -> | Objeto fórmula | +| methodName | Text | -> | Nombre de un método | +| param | any | -> | Colección original ordenada | +| Result | Integer | <- | Conjunción | #### Descripción -La función `.findIndex()` devuelve el índice, en la colección, del primer valor para el que *formula* o *methodName*, aplicados sobre cada elemento, devuelven **true**. +Ejemplo: > Esta función no modifica la colección original. Se designa la retrollamada a ejecutar para evaluar los elementos de la colección utilizando: -- *formula* (sintaxis recomendada), un [objeto Fórmula](FunctionClass.md) que puede encapsular toda expresión ejecutable, incluyendo funciones y métodos proyecto; -- *methodName*, el nombre de un método proyecto (texto). +- Comparación +- Desea ordenar la colección resultante: -La retrollamada se llama con los parámetros pasados en *param* (opcional). La retrollamada puede realizar cualquier prueba, con o sin los parámetros y debe devolver **true** para el primer elemento que cumpla la condición. Recibe un `Object` en el primer parámetro ($1). +La retrollamada se llama con los parámetros pasados en *param* (opcional). La retrollamada se llama con los parámetros pasados en *param* (opcional). Recibe un `Object` en el primer parámetro ($1). La retrollamada recibe los siguientes parámetros: -- en *$1.value*: valor del elemento a evaluar -- en *$2*: param -- en *$N...*: paramN... +- Lanzamiento +- Colección original sin elementos eliminados +- Este ejemplo comprueba que todos los elementos de una colección son de tipo real: Puede definir los siguientes parámetros: -- (obligatorio si ha utilizado un método) *$1.result* (booleano): **true** si el valor del elemento coincide con la condición de búsqueda, **false** en caso contrario. -- *$1.stop* (booleano, opcional): **true** para detener la retrollamada del método. El valor devuelto es el último calculado. +- Búsquedas con fechas: +- *$1.stop* (boolean, opcional): **true** para detener la retrollamada del método. El valor devuelto es el último calculado. Por defecto, `.findIndex()` busca en toda la colección. Opcionalmente, se puede pasar en *startFrom* el índice del elemento desde el que iniciar la búsqueda. -- Si *startFrom* >= la longitud de la colección, se devuelve -1, lo que significa que la colección no se busca. +- Modificaciones - Si *startFrom* < 0, se considera el desplazamiento desde el final de la colección (*startFrom:=startFrom+length*). **Nota**: incluso si *startFrom* es negativo, la colección se sigue buscando de izquierda a derecha. -- Si *startFrom* = 0, se busca en toda la colección (por defecto). +- Descripción #### Ejemplo @@ -1164,15 +1134,15 @@ $val3:=$c.findIndex($val2+1;Formula($1.value.name=$2);"Clanton") //$val3=4 -| Parámetros | Tipo | | Descripción | -| ---------- | ---- | :-------------------------: | ------------------------------- | -| Result | any | <- | Primer elemento de la colección | +| Parámetros | Tipo | | Descripción | +| ---------- | ---- | :-------------------------: | ------------------------------------------- | +| Result | any | <- | Colección original sin elementos eliminados | #### Descripción -La función `.first()` devuelve el primer elemento de la colección. +Colección original sin elementos eliminados > Esta función no modifica la colección original. @@ -1212,15 +1182,15 @@ $first:=$emptyCol.first() // devuelve Undefined | Parámetros | Tipo | | Descripción | | ---------- | ---------- | :-------------------------: | --------------------------------------------------------------------------------------------------- | | depth | Integer | -> | A qué profundidad debe aplanarse una estructura de colección anidada. Por defecto=1 | -| Result | Collection | <- | Colección aplanada | +| Result | Collection | <- | Colección a combinar | #### Descripción -La función `.flat()` crea una nueva colección con todos los elementos de la subcolección concatenados recursivamente hasta la *depth* especificada. +La nueva colección compartida -Por defecto, si se omite el parámetro *depth*, sólo se aplanará el primer nivel de la estructura de la colección anidada. +expresión > Esta función no modifica la colección original. @@ -1262,12 +1232,12 @@ $col.flat(MAXLONG) -| Parámetros | Tipo | | Descripción | -| ---------- | --------------------------- | :-------------------------: | ---------------------------------------------------------------------- | -| formula | 4D.Function | -> | Objeto fórmula | -| methodName | Text | -> | Nombre de un método | -| param | any | -> | Parámetro(s) a pasar a *formula* o \*methodName | -| Result | Collection | <- | Colección de valores transformados y aplanados en una profundidad de 1 | +| Parámetros | Tipo | | Descripción | +| ---------- | --------------------------- | :-------------------------: | --------------------------- | +| formula | 4D.Function | -> | Objeto fórmula | +| methodName | Text | -> | Nombre de un método | +| param | any | -> | Colección original ordenada | +| Result | Collection | <- | Comentario | @@ -1275,27 +1245,27 @@ $col.flat(MAXLONG) La función `.flatMap()` crea una nueva colección basada en el resultado de la llamada a la función *formula* 4D o al método *methodName* sobre cada elemento de la colección original y aplanada por una profundidad de 1. Opcionalmente, puede pasar parámetros a *formula* o *methodName* utilizando los parámetros *param*. -Esta función es idéntica a una llamada a [`map()`](#map) seguida de una llamada a [`flat()`](#flat) de profundidad 1. +Colección de valores transformados > Esta función no modifica la colección original. Se designa la retrollamada a ejecutar para evaluar los elementos de la colección utilizando: -- *formula* (sintaxis recomendada), un [objeto Fórmula](FunctionClass.md) que puede encapsular toda expresión ejecutable, incluyendo funciones y métodos proyecto; -- o *methodName*, el nombre de un método proyecto (texto). +- Comparación +- Tipo La retrollamada se llama con los parámetros pasados en *param* (opcional). The callback is called with the parameter(s) passed in param (optional). Recibe un `Object` en el primer parámetro ($1). La retrollamada recibe los siguientes parámetros: -- en *$1.value*: valor del elemento a evaluar -- en *$2*: param -- en *$N...*: paramN... +- Lanzamiento +- Colección original sin elementos eliminados +- Este ejemplo comprueba que todos los elementos de una colección son de tipo real: Puede definir los siguientes parámetros: -- (obligatorio si ha utilizado un método) *$1.result* (cualquier tipo): nuevo valor transformado para añadir a la colección resultante -- *$1.stop* (booleano, opcional): **true** para detener la retrollamada del método. El valor devuelto es el último calculado. +- Descripción +- *$1.stop* (boolean, opcional): **true** para detener la retrollamada del método. El valor devuelto es el último calculado. #### Ejemplo 1 @@ -1354,17 +1324,17 @@ $c2:=$c.flatMap($f; $c.sum()) -| Parámetros | Tipo | | Descripción | -| ---------- | --------- | :-------------------------: | ----------------------------------------------- | -| toSearch | expresión | -> | Expresión a buscar en la colección | -| startFrom | Integer | -> | Índice para iniciar la búsqueda en | -| Result | Boolean | <- | True si *toSearch* se encuentra en la colección | +| Parámetros | Tipo | | Descripción | +| ---------- | --------- | :-------------------------: | ---------------------------------- | +| toSearch | expresión | -> | Expresión a buscar en la colección | +| startFrom | Integer | -> | Índice para iniciar la búsqueda en | +| Result | Boolean | <- | Ejemplo 1 | #### Descripción -La función `.includes()` devuelve True si la expresión *toSearch* se encuentra entre los elementos de la colección, en caso contrario False. +Ejemplo > Esta función no modifica la colección original. @@ -1374,13 +1344,13 @@ En *toSearch*, pase la expresión a encontrar en la colección. Puede pasar: - el valor null, - una referencia de objeto o de colección. -*toSearch* debe coincidir exactamente con el elemento a encontrar (se aplican las mismas reglas que para el operador de igualdad del tipo de datos). +Obtiene los datos coincidentes, admite el comodín (@), no distingue entre mayúsculas de minúsculas ni diacríticas. -Opcionalmente, puede pasar el índice de la colección desde el que iniciar la búsqueda en *startFrom*. +Una colección se inicializa con: -- Si *startFrom* >= la longitud de la colección, se devuelve False, lo que significa que no se busca en la colección. +- Ejemplo - Si *startFrom* < 0, se considera el desplazamiento desde el final de la colección (*startFrom:=startFrom+length*). Tenga en cuenta que incluso si *startFrom* es negativo, la colección se sigue buscando de izquierda a derecha. -- Si *startFrom* = 0, se busca en toda la colección (por defecto). +- Descripción #### Ejemplo @@ -1416,17 +1386,17 @@ Opcionalmente, puede pasar el índice de la colección desde el que iniciar la b -| Parámetros | Tipo | | Descripción | -| ---------- | --------- | :-------------------------: | ---------------------------------------------------------------------------------- | -| toSearch | expresión | -> | Expresión a buscar en la colección | -| startFrom | Integer | -> | Índice para iniciar la búsqueda en | -| Result | Integer | <- | Índice de la primera ocurrencia de toSearch en la colección, -1 si no se encuentra | +| Parámetros | Tipo | | Descripción | +| ---------- | --------- | :-------------------------: | ---------------------------------- | +| toSearch | expresión | -> | Expresión a buscar en la colección | +| startFrom | Integer | -> | Índice para iniciar la búsqueda en | +| Result | Integer | <- | Descripción | #### Descripción -La función `.indexOf()` busca la expresión *toSearch* entre los elementos de la colección y devuelve el índice de la primera ocurrencia encontrada, o -1 si no se encontró. +Tipo > Esta función no modifica la colección original. @@ -1436,14 +1406,14 @@ En *toSearch*, pase la expresión a encontrar en la colección. Puede pasar: - el valor null, - una referencia de objeto o de colección. -*toSearch* debe coincidir exactamente con el elemento a encontrar (se aplican las mismas reglas que para el operador de igualdad del tipo de datos). +Obtiene los datos coincidentes, admite el comodín (@), no distingue entre mayúsculas de minúsculas ni diacríticas. -Opcionalmente, puede pasar el índice de la colección desde el que iniciar la búsqueda en *startFrom*. +Una colección se inicializa con: -- Si *startFrom* >= la longitud de la colección, se devuelve -1, lo que significa que la colección no se busca. +- Modificaciones - Si *startFrom* < 0, se considera el desplazamiento desde el final de la colección (*startFrom:=startFrom+length*). **Nota**: incluso si *startFrom* es negativo, la colección se sigue buscando de izquierda a derecha. -- Si *startFrom* = 0, se busca en toda la colección (por defecto). +- Descripción #### Ejemplo @@ -1479,7 +1449,7 @@ Opcionalmente, puede pasar el índice de la colección desde el que iniciar la b | ----------- | ---------- | :-------------------------: | --------------------------------------------------------------------------------------------------------------------------- | | queryString | Text | -> | Criterio de búsqueda | | value | any | -> | Valor(es) a comparar cuando se utiliza(n) marcador(es) de posición | -| Result | Collection | <- | Índice(s) de elementos que coinciden con queryString en la colección | +| Result | Collection | <- | Ejemplo 3 | @@ -1489,13 +1459,13 @@ La función `.indices()` funciona exactamente igual que la función [`.query()`] > Esta función no modifica la colección original. -El parámetro *queryString* utiliza la siguiente sintaxis: +Ejemplo 1 ```4d propertyPath comparator value {logicalOperator propertyPath comparator value} ``` -Para una descripción detallada de los parámetros *queryString* y *value*, consulte la función `dataClass.query()`. +Los elementos se ordenan de forma descendente #### Ejemplo @@ -1530,26 +1500,26 @@ Para una descripción detallada de los parámetros *queryString* y *value*, cons -| Parámetros | Tipo | | Descripción | -| ---------- | ---------- | :-------------------------: | -------------------------------------------------------- | -| index | Integer | -> | Dónde insertar el elemento | -| element | any | -> | Elemento a insertar en la colección | -| Result | Collection | <- | Colección original que contiene los elementos insertados | +| Parámetros | Tipo | | Descripción | +| ---------- | ---------- | :-------------------------: | ------------------------------------------- | +| index | Integer | -> | Dónde insertar el elemento | +| element | any | -> | Elemento a insertar en la colección | +| Result | Collection | <- | Colección original sin elementos eliminados | #### Descripción -La función `.insert()` inserta *element* en la posición *index* especificada en la instancia de la colección y devuelve la colección modificada. +Búsquedas con fechas: > Esta función modifica la colección original. -En *index*, pase la posición donde quiere insertar el elemento en la colección. +Descripción -> **Atención**: recuerde que los elementos de la colección están numerados desde 0. +> Diferente de -- Si *index* la longitud de la colección, el índice inicial real se fijará en la longitud de la colección. -- Si *index* <0, se recalcula como *index:=index+length* (se considera el desplazamiento desde el final de la colección). +- Ejemplo 1 +- Ejemplo 1 - Si el valor calculado es negativo, index toma el valor 0. Se puede insertar cualquier tipo de elemento aceptado por una colección, incluso otra colección. @@ -1582,17 +1552,17 @@ Se puede insertar cualquier tipo de elemento aceptado por una colección, inclus -| Parámetros | Tipo | | Descripción | -| ---------- | ------- | :-------------------------: | --------------------------------------------------------------------------------------------- | -| delimiter | Text | -> | Separador a utilizar entre elementos | -| option | Integer | -> | `ck ignore null or empty`: ignorar las cadenas nulas y vacías en el resultado | -| Result | Text | <- | Cadena que contiene todos los elementos de la colección, separados por un delimitador | +| Parámetros | Tipo | | Descripción | +| ---------- | ------- | :-------------------------: | ------------------------------------ | +| delimiter | Text | -> | Separador a utilizar entre elementos | +| option | Integer | -> | Colección a combinar | +| Result | Text | <- | Ejemplo 3 | #### Descripción -La función `.join()` convierte todos los elementos de la colección en cadenas y las concatena utilizando la cadena delimiter especificada como separador.La función devuelve la cadena resultante. +Tipo > Esta función no modifica la colección original. @@ -1626,15 +1596,15 @@ Por defecto, los elementos nulos o vacíos de la colección se devuelven en la c -| Parámetros | Tipo | | Descripción | -| ---------- | ---- | :-------------------------: | ------------------------------- | -| Result | any | <- | Último elemento de la colección | +| Parámetros | Tipo | | Descripción | +| ---------- | ---- | :-------------------------: | --------------------------------------------- | +| Result | any | <- | Colección que contiene los elementos añadidos | #### Descripción -La función `.last()` devuelve el último elemento de la colección. +Objeto compartido que se agrupa con la colección resultante > Esta función no modifica la colección original. @@ -1643,15 +1613,7 @@ La función devuelve Undefined si la colección está vacía. #### Ejemplo ```4d -var $col; $emptyCol : Collection -var $last : Variant -$col:=New collection(10; 20; 30; "hello"; 50) -$last:=$col.last() // 50 - -$emptyCol:=New collection() //empty -// $last:=$emptyCol[$emptyCol.length-1] //devuelve un error -$last:=$emptyCol.last() // devuelve Indefinido - +Propiedad ``` @@ -1672,17 +1634,17 @@ $last:=$emptyCol.last() // devuelve Indefinido -| Parámetros | Tipo | | Descripción | -| ---------- | --------- | :-------------------------: | --------------------------------------------------------------------------------- | -| toSearch | expresión | -> | El elemento que se va a buscar dentro de la colección | -| startFrom | Integer | -> | Índice para iniciar la búsqueda en | -| Result | Integer | <- | Índice de la última ocurrencia de toSearch en la colección, -1 si no se encuentra | +| Parámetros | Tipo | | Descripción | +| ---------- | --------- | :-------------------------: | ----------------------------------------------------- | +| toSearch | expresión | -> | El elemento que se va a buscar dentro de la colección | +| startFrom | Integer | -> | Índice para iniciar la búsqueda en | +| Result | Integer | <- | Descripción | #### Descripción -La función `.lastIndexOf()` busca la expresión *toSearch* entre los elementos de la colección y devuelve el índice de la última ocurrencia, o -1 si no se encontró. +Ejemplo > Esta función no modifica la colección original. @@ -1692,26 +1654,19 @@ En *toSearch*, pase la expresión a encontrar en la colección. Puede pasar: - el valor null, - una referencia de objeto o de colección. -*toSearch* debe coincidir exactamente con el elemento a encontrar (se aplican las mismas reglas que para el operador de igualdad). +*toSearch* debe coincidir exactamente con el elemento a encontrar (se aplican las mismas reglas que para el operador de igualdad del tipo de datos). -Opcionalmente, puede pasar el índice de la colección desde el cual iniciar una búsqueda en reversa en *startFrom*. +Ejemplo 2 -- Si *startFrom* >= la longitud de la colección menos uno (coll.length-1), se busca en toda la colección (por defecto). +- Ejemplo 3 - Si *startFrom* < 0, se recalcula como *startFrom:=startFrom+length* (se considera el desplazamiento desde el final de la colección). Si el valor calculado es negativo, se devuelve -1 (no se busca en la colección). **Nota:** incluso si *startFrom* es negativo, la colección se sigue buscando de derecha a izquierda. -- Si *startFrom* = 0, se devuelve -1 lo que significa que la colección no se busca. +- Descripción #### Ejemplo ```4d - var $col : Collection - var $pos1;$pos2;$pos3;$pos4;$pos5 : Integer - $col:=Split string("a,b,c,d,e,f,g,h,i,j,e,k,e";",") //$col.length=13 - $pos1:=$col.lastIndexOf("e") //devuelve 12 - $pos2:=$col.lastIndexOf("e";6) //devuelve 4 - $pos3:=$col.lastIndexOf("e";15) //devuelve 12 - $pos4:=$col.lastIndexOf("e";-2) //devuelve 10 - $pos5:=$col.lastIndexOf("x") //devuelve -1 +Tipo ``` @@ -1732,17 +1687,14 @@ Opcionalmente, puede pasar el índice de la colección desde el cual iniciar una #### Descripción -La propiedad `.length` devuelve el número de elementos en la colección. +Ejemplo 2 La propiedad `.length` se inicializa cuando se crea la colección. Añadir o eliminar elementos actualiza la longitud, si es necesario. Esta propiedad es **sólo lectura** (no se puede utilizar para definir el tamaño de la colección). #### Ejemplo ```4d - var $col : Collection //$col.length inicializada en 0 - $col:=New collection("one";"two";"three") //$col.length actualizada a 3 - $col[4]:="five" //$col.length actualizada a 5 - $vSize:=$col.remove(0;3).length //$vSize=2 +Tipo ``` @@ -1764,12 +1716,12 @@ La propiedad `.length` se inicializa cuando se crea la colección. Añadir o eli -| Parámetros | Tipo | | Descripción | -| ---------- | --------------------------- | :-------------------------: | ------------------------------------------------------------------ | -| formula | 4D.Function | -> | Objeto fórmula | -| methodName | Text | -> | Nombre de un método | -| param | any | -> | Parámetro(s) a pasar a *formula* o \*methodName | -| Result | Collection | <- | Colección de valores transformados | +| Parámetros | Tipo | | Descripción | +| ---------- | --------------------------- | :-------------------------: | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| formula | 4D.Function | -> | Objeto fórmula | +| methodName | Text | -> | Nombre de un método | +| param | any | -> | Colección original ordenada | +| Result | Collection | <- | `.pop()`, utilizado junto con [`.push()`](#push), puede utilizarse para implementar una funcionalidad primera entrada última salida de tratamiento de datos apilados: | @@ -1781,21 +1733,21 @@ La función `.map()` crea una nueva colecc Se designa la retrollamada a ejecutar para evaluar los elementos de la colección utilizando: -- *formula* (sintaxis recomendada), un [objeto Fórmula](FunctionClass.md) que puede encapsular toda expresión ejecutable, incluyendo funciones y métodos proyecto; -- o *methodName*, el nombre de un método proyecto (texto). +- Comparación +- Tipo La retrollamada se llama con los parámetros pasados en *param* (opcional). The callback is called with the parameter(s) passed in param (optional). Recibe un `Object` en el primer parámetro ($1). La retrollamada recibe los siguientes parámetros: -- en *$1.value*: valor del elemento a evaluar -- en *$2*: param -- en *$N...*: paramN... +- Lanzamiento +- Colección original sin elementos eliminados +- Este ejemplo comprueba que todos los elementos de una colección son de tipo real: Puede definir los siguientes parámetros: -- (obligatorio si ha utilizado un método) *$1.result* (cualquier tipo): nuevo valor transformado para añadir a la colección resultante -- *$1.stop* (booleano, opcional): **true** para detener la retrollamada del método. El valor devuelto es el último calculado. +- Descripción +- *$1.stop* (boolean, opcional): **true** para detener la retrollamada del método. El valor devuelto es el último calculado. #### Ejemplo @@ -1827,21 +1779,21 @@ $c2:=$c.map(Formula(Round(($1.value/$2)*100; 2)); $c.sum()) | Parámetros | Tipo | | Descripción | | ------------ | ----------------------------------------------- | :-------------------------: | ------------------------------------------------------------------- | | propertyPath | Text | -> | Ruta de la propiedad del objeto que se utilizará para la evaluación | -| Result | Boolean, Text, Number, Collection, Object, Date | <- | Valor máximo en la colección | +| Result | Boolean, Text, Number, Collection, Object, Date | <- | Comentario | #### Descripción -La función `.max()` devuelve el elemento con el valor más alto de la colección (el último elemento de la colección tal y como se ordenaría en orden ascendente utilizando la función [`.sort()`](#sort)). +La función `.lastIndexOf()` busca la expresión *toSearch* entre los elementos de la colección y devuelve el índice de la última ocurrencia, o -1 si no se encontró. > Esta función no modifica la colección original. -Si la colección contiene diferentes tipos de valores, la función `.max()` devolverá el valor máximo dentro del último tipo de elemento en el orden de la lista de tipos (ver la descripción de [`.sort()`](#sort)). +Lanzamiento -Si la colección contiene objetos, pase el parámetro *propertyPath* para indicar la propiedad del objeto cuyo valor máximo desea obtener. +Lanzamiento -Si la colección está vacía, `.max()` devuelve *Undefined*. +Lanzamiento #### Ejemplo @@ -1877,21 +1829,21 @@ Si la colección está vacía, `.max()` devuelve *Undefined*. | Parámetros | Tipo | | Descripción | | ------------ | ----------------------------------------------- | :-------------------------: | ------------------------------------------------------------------- | | propertyPath | Text | -> | Ruta de la propiedad del objeto que se utilizará para la evaluación | -| Result | Boolean, Text, Number, Collection, Object, Date | <- | Valor mínimo en la colección | +| Result | Boolean, Text, Number, Collection, Object, Date | <- | Valor a contar | #### Descripción -La función `.min()` devuelve el elemento con el valor más pequeño de la colección (el primer elemento de la colección tal y como se ordenaría en orden ascendente utilizando la función [`.sort()`](#sort)). +Ordenar una colección de números de forma ascendente y descendente: > Esta función no modifica la colección original. -Si la colección contiene diferentes tipos de valores, la función `.min()` devolverá el valor mínimo dentro del primer tipo de elemento en el orden de la lista de tipos (ver la descripción de [`.sort()`](#sort)). +True si todos los elementos han pasado la prueba con éxito -Si la colección contiene objetos, pase el parámetro *propertyPath* para indicar la propiedad del objeto cuyo valor mínimo desea obtener. +Modificaciones -Si la colección está vacía, `.min()` devuelve *Undefined*. +Lanzamiento #### Ejemplo @@ -1924,19 +1876,19 @@ Si la colección está vacía, `.min()` devuelve *Undefined*. -| Parámetros | Tipo | | Descripción | -| ---------- | --------------------------- | :-------------------------: | -------------------------------------------------------------------------------------------------------------------------------------------------------- | -| formula | 4D.Function | -> | Objeto fórmula | -| colsToSort | Collection | -> | Colección de colecciones y/u objetos con propiedades {`collection`:*colToSort*;`order`:`ck ascending` o `ck descending`} | -| Result | Collection | <- | Colección original ordenada | +| Parámetros | Tipo | | Descripción | +| ---------- | --------------------------- | :-------------------------: | ------------------------------------------------------------------------------------------- | +| formula | 4D.Function | -> | Objeto fórmula | +| colsToSort | Collection | -> | Ejemplo 2 | +| Result | Collection | <- | o *methodName*, el nombre de un método proyecto (texto). | #### Descripción -La función `.multiSort()` permite realizar una ordenación sincronizada multinivel sobre un conjunto de colecciones. +Ejemplo 2 -> Esta función modifica la colección original, así como todas las colecciones utilizadas en el parámetro *colsToSort*. +> Ejemplo 2 Si se llama a `.multiSort()` sin parámetros, la función tiene el mismo efecto que la función [`.sort()`](#sort): la colección se ordena (sólo valores escalares) en orden ascendente por defecto, según su tipo. Si la colección contiene valores de diferentes tipos, se agrupan primero por tipo y se ordenan después. Si attributePath lleva a una propiedad de objeto que contiene valores de diferentes tipos, primero se agrupan por tipo y se ordenan después. @@ -1948,40 +1900,40 @@ Si se llama a `.multiSort()` sin parámetros, la función tiene el mismo efecto 6. collections 7. dates -**Ordenación sincronizada de un nivel** +Ruta de la propiedad del objeto que se utilizará para el cálculo Para ordenar varias colecciones de forma sincrónica, basta con pasar en *colsToSort* una colección de colecciones para ordenar. Puede pasar un número ilimitado de colecciones. La colección original se ordenará en orden ascendente y todas las colecciones *colsToSort* se ordenarán de forma sincronizada. :::note -Todas las colecciones *colsToSort* deben tener el mismo número de elementos, de lo contrario se devuelve un error. +Descripción ::: Si desea ordenar las colecciones en algún otro orden que no sea ascendente, debe suministrar una *formula* ([objeto Formula](FunctionClass.md#formula)) que defina el orden de clasificación. El valor de retorno debe ser un booleano que indica el orden relativo de los dos elementos: **True** si *$1.value* es menor que *$1.value2*, **False** si *$1.value* es mayor que *$1.value2*. Puede ofrecer parámetros adicionales a la fórmula si es necesario. -La fórmula recibe los siguientes parámetros: +Opcionalmente, puede pasar el índice de la colección desde el cual iniciar una búsqueda en reversa en *startFrom*. - $1 (objeto), donde: - - *$1.value* (todo tipo): valor del primer elemento a comparar - - *$1.value2* (todo tipo): valor del segundo elemento a comparar + - Lanzamiento + - Lanzamiento - $2...$N (cualquier tipo): parámetros adicionales -**Ordenación sincronizada multinivel** +Quiere obtener el primer elemento de texto con una longitud menor que 5: -La definición de una ordenación sincronizada multinivel requiere que se pase un objeto que contenga las propiedades {`collection`:*colToSort*;`order`:`ck ascending` o `ck descending`} en lugar de una colección *colToSort* para cada colección que se utilizará como subnivel. +Desea ordenar la colección resultante: -Los niveles de ordenación vienen determinados por el orden en que se pasan las colecciones en el parámetro *colsToSort*: la posición de un objeto `collection`/`order` en la sintaxis determina su nivel de ordenación. +Ejemplo 2 :::note -La función `.multiSort()` utiliza un algoritmo de ordenación [estable](https://en.wikipedia.org/wiki/Sorting_algorithm#Stability). +Ordenar una colección de números de forma ascendente y descendente: ::: #### Ejemplo 1 -Una simple ordenación sincronizada de colecciones con diferentes tipos de valores: +Descripción ```4d var $col;$col2;$col3 : Collection @@ -2020,7 +1972,7 @@ $continent.multiSort([$country; {collection: $city; order: ck ascending}]) #### Ejemplo 3 -También puede sincronizar colecciones de objetos. +(obligatorio si se ha utilizado un método) *$1.result* (booleano): **true** si la evaluación del valor del elemento tiene éxito, **false** en caso contrario. ```4d var $name : Collection @@ -2064,14 +2016,14 @@ $name.multiSort(Formula($1.value.firstname<$1.value2.firstname); [$address]) | ----------- | ---------- | :-------------------------: | --------------------------------------------------------------------------------------------------- | | pathStrings | Text | -> | Ruta(s) de propiedad(es) a utilizar para ordenar la colección | | pathObjects | Collection | -> | Colección de objetos criterio | -| ascOrDesc | Integer | -> | `ck ascending` o `ck descending` (valores escalares) | -| Result | Collection | <- | Copia ordenada de la colección (copia superficial) | +| ascOrDesc | Integer | -> | Ejemplo 1 | +| Result | Collection | <- | Colección original ordenada | #### Descripción -La función `.orderBy()` devuelve una nueva colección que contiene todos los elementos de la colección en el orden especificado. +La nueva colección Esta función devuelve una *copia superficial*, lo que significa que los objetos o colecciones de ambas colecciones comparten la misma referencia. Si la colección original es una colección compartida, la colección devuelta es también una colección compartida. @@ -2201,18 +2153,18 @@ Ordenar con una ruta de propiedad: -| Parámetros | Tipo | | Descripción | -| ---------- | --------------------------- | :-------------------------: | --------------------------------------------------------------------- | -| formula | 4D.Function | -> | Objeto fórmula | -| methodName | Text | -> | Nombre de un método | -| extraParam | any | -> | Parámetro(s) a pasar | -| Result | Collection | <- | Copia ordenada de la colección (copia superficial) | +| Parámetros | Tipo | | Descripción | +| ---------- | --------------------------- | :-------------------------: | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| formula | 4D.Function | -> | Objeto fórmula | +| methodName | Text | -> | Nombre de un método | +| extraParam | any | -> | Parámetro(s) a pasar | +| Result | Collection | <- | (obligatorio si se ha utilizado un método) *$1.result* (booleano): **true** si la evaluación del valor del elemento tiene éxito, **false** en caso contrario. | #### Descripción -La función `.orderByMethod()` devuelve una nueva colección que contiene todos los elementos de la colección en el orden definido mediante la función *formula* 4D o el método *methodName*. +La nueva colección Esta función devuelve una *copia superficial*, lo que significa que los objetos o colecciones de ambas colecciones comparten la misma referencia. Si la colección original es una colección compartida, la colección devuelta es también una colección compartida. @@ -2220,9 +2172,9 @@ Esta función devuelve una *copia superficial*, lo que significa que los objetos Se designa la retrollamada a ejecutar para evaluar los elementos de la colección utilizando: -- *formula* (sintaxis recomendada), un [objeto Fórmula](FunctionClass.md) que puede encapsular toda expresión ejecutable, incluyendo funciones y métodos proyecto; +- Comparación -- o *methodName*, el nombre de un método proyecto (texto). +- Tipo En la retrolamada, pase un código que compare dos valores y devuelva **true** si el primer valor es menor que el segundo. Puede ofrecer los parámetros *extraParam* a la retrollamada si es necesario. @@ -2230,12 +2182,12 @@ La retrollamada recibe los siguientes parámetros: - $1 (objeto), donde: - *$1.value* (todo tipo): valor del primer elemento a comparar - - *$1.value2* (todo tipo): valor del segundo elemento a comparar + - Lanzamiento - $2...$N (cualquier tipo): parámetros adicionales Si utilizó un método, debe definir el siguiente parámetro: -- *$1.result* (boolean): **true** si *$1.value < $1.value2*, **false** de lo contrario +- Considera la @ como un caracter estándar #### Ejemplo 1 @@ -2277,13 +2229,10 @@ $strings2:=$strings1.orderByMethod(Function(sortCollection);sk strict) // resultado : ["alpha","Alpha","bravo","Bravo","charlie","Charlie"] ``` -El método ***sortCollection***: +Con el siguiente método ***Flatten***: ```4d -var $1 : Object -var $2: Integer // opción de ordenación - -$1.result:=(Compare strings($1.value;$1.value2;$2)<0) +Lanzamiento ``` @@ -2304,32 +2253,26 @@ $1.result:=(Compare strings($1.value;$1.value2;$2)<0) -| Parámetros | Tipo | | Descripción | -| ---------- | ---- | :-------------------------: | ------------------------------- | -| Result | any | <- | Último elemento de la colección | +| Parámetros | Tipo | | Descripción | +| ---------- | ---- | :-------------------------: | --------------------------------------------- | +| Result | any | <- | Colección que contiene los elementos añadidos | #### Descripción -La función `.pop()` elimina el último elemento de la colección y lo devuelve como resultado de la función. +Condición No aplicada a una sentencia > Esta función modifica la colección original. -Cuando se aplica a una colección vacía, `.pop()` devuelve ***undefined***. +Modificaciones #### Ejemplo -`.pop()`, utilizado junto con [`.push()`](#push), puede utilizarse para implementar una funcionalidad primera entrada última salida de tratamiento de datos apilados: +Valor a contar ```4d - var $stack : Collection - $stack:=New collection //$stack=[] - $stack.push(1;2) //$stack=[1,2] - $stack.pop() //$stack=[1] Devuelve 2 - $stack.push(New collection(4;5)) //$stack=[[1,[4,5]] - $stack.pop() //$stack=[1] Devuelve [4,5] - $stack.pop() //$stack=[] Devuelve 1 +Lanzamiento ``` @@ -2353,13 +2296,13 @@ Cuando se aplica a una colección vacía, `.pop()` devuelve ***undefined***. | Parámetros | Tipo | | Descripción | | ---------- | ---------- | :-------------------------: | ------------------------------------------------------ | | element | any | -> | Elemento(s) a añadir a la colección | -| Result | Collection | <- | Colección original que contiene los elementos añadidos | +| Result | Collection | <- | Colección que contiene los elementos añadidos | #### Descripción -La función `.push()` añade uno o más *elemento*(s) al final de la instancia de la colección y devuelve la colección editada. +Este ejemplo permite reducir varios elementos de la colección a uno solo: > Esta función modifica la colección original. @@ -2393,11 +2336,11 @@ Desea ordenar la colección resultante:
Historia -| Lanzamiento | Modificaciones | -| ----------- | --------------------------------------------------------------------- | -| 20 R6 | Soporte de consultas utilizando las referencias de objeto o colección | -| 17 R5 | Soporte de querySettings | -| v16 R6 | Añadidos | +| Lanzamiento | Modificaciones | +| ----------- | ------------------------ | +| 20 R6 | Ejemplo 1 | +| 17 R5 | Soporte de querySettings | +| v16 R6 | Añadidos |
@@ -2410,7 +2353,7 @@ Desea ordenar la colección resultante: | queryString | Text | -> | Criterio de búsqueda | | value | any | -> | Valor(es) a comparar cuando se utiliza(n) marcador(es) de posición | | querySettings | Object | -> | Opciones de búsqueda: parámetros, atributos | -| Result | Collection | <- | Elemento(s) que coincide(n) con queryString en la colección | +| Result | Collection | <- | Descripción | @@ -2418,13 +2361,13 @@ Desea ordenar la colección resultante: La función `.query()` devuelve todos los elementos de una colección de objetos que coinciden con las condiciones de búsqueda definidas por *queryString* y (opcionalmente) *value* o *querySettings*. Si la colección original es una colección compartida, la colección devuelta es también una colección compartida. -Se devuelve una colección vacía si la colección en la que se ejecuta la consulta no contiene el *valor* buscado. +Descripción > Esta función no modifica la colección original. #### parámetro queryString -El parámetro *queryString* utiliza la siguiente sintaxis: +Ejemplo 1 ```4d propertyPath comparator value {logicalOperator propertyPath comparator value} @@ -2450,7 +2393,7 @@ donde: | Incluído en | IN | Devuelve los datos iguales a al menos uno de los valores de una colección o de un conjunto de valores, admite el comodín (@) | - **valor**: valor a comparar con el valor actual de la propiedad de cada elemento de la colección. Puede ser cualquier valor de expresión constante que coincida con la propiedad del tipo de datos del elemento o un [**marcador de posición**](#using-placeholders). - Al utilizar un valor constante, deben respetarse las siguientes reglas: + For example, if the string "v20" is entered as value to compare with an integer attribute, it will be converted to 20. - La constante de tipo **texto** puede pasarse con o sin comillas simples (ver **Uso de comillas** más abajo). Para consultar una cadena dentro de otra cadena (una consulta de tipo "contiene"), utilice el símbolo de comodín (@) en el valor para aislar la cadena a buscar como se muestra en este ejemplo: "@Smith@". Las siguientes palabras claves están prohibidas para las constantes de texto: true, false. - Valores constantes de tipo **booleano**: **true** o **false** (Sensible a las mayúsculas y minúsculas). - Valores constantes de **tipo numérico**: los decimales se separan con un '.' (punto). @@ -2487,9 +2430,9 @@ Puede utilizar paréntesis en la búsqueda para dar prioridad al cálculo. Por e 4D le permite utilizar marcadores de posición para los argumentos *propertyPath* y *value* dentro del parámetro *queryString*. Un marcador es un parámetro que se inserta en las cadenas de búsqueda y que se sustituye por otro valor cuando se evalúa la cadena de búsqueda. El valor de los marcadores se evalúa una vez al principio de la búsqueda; no se evalúa para cada elemento. -Se pueden utilizar dos tipos de marcadores de posición: **marcadores de posición indexados** y **marcadores de posición con nombre**. +Lanzamiento -- **Marcadores de posición indexados**: los parámetros se insertan como `:paramIndex` (por ejemplo ":1", ":2"...) en *queryString* y sus valores correspondientes son proporcionados por la secuencia de parámetros *value*. Puede usar hasta 128 parámetros *value*. +- **Marcadores de posición indexados**: los parámetros se insertan como `:paramIndex` (por ejemplo ":1", ":2"...) en *queryString* y sus valores correspondientes son proporcionados por la secuencia de parámetros *value*. en *queryString* y sus valores correspondientes son proporcionados por la secuencia de parámetros *value*. Ejemplo: @@ -2497,7 +2440,7 @@ Ejemplo: $c:=$myCol.query(":1=:2";"city";"Chicago") ``` -- **Marcadores de posición con nombre**: los parámetros se insertan como `:paramName` (por ejemplo ":myparam") y sus valores se proporcionan en los objetos "attributes" y/o "parameters" del parámetro *querySettings*. +- Copia ordenada de la colección (copia superficial) Ejemplo: @@ -2507,7 +2450,7 @@ $o.parameters:={name:"Chicago") $c:=$myCol.query(":att=:name";$o) ``` -Puede mezclar todos los tipos de argumentos en *queryString*. Un *queryString* puede contener, para los parámetros *propertyPath* y *value*: +Puede mezclar todos los tipos de argumentos en *queryString*. Puede mezclar todos los tipos de argumentos en *queryString*. - valores directos (sin marcadores), - marcadores indexados y/o con nombre. @@ -2531,7 +2474,7 @@ Cuando se utilizan marcadores de posición, no es posible anular las condiciones En este caso, si el usuario introduce *smith OR status='private'* en el área *myname*, no se interpretará en la cadena de búsqueda, sino que sólo se pasará como valor. La búsqueda de una persona llamada "smith OR status='private'" simplemente fallará. -2. Evita tener que preocuparse por cuestiones de formato o caracteres, especialmente cuando se manejan los parámetros *propertyPath* o *value* que pueden contener caracteres no alfanuméricos como ".", "['... +2. Descripción 3. Permite el uso de variables o expresiones en los argumentos de búsqueda. Ejemplos: @@ -2547,20 +2490,20 @@ $result2:=$col.query("company.name = :1";"John's Pizzas") Cuando se buscan valores null, no se puede utilizar la sintaxis de marcador de posición porque el motor de búsqueda considera null como un valor de comparación invalido. Por ejemplo, si ejecuta la siguiente búsqueda: ```4d -$vSingles:=$colPersons.query("spouse = :1";Null) // NO funcionará +Lanzamiento ``` No obtendrá el resultado esperado porque el valor null será evaluado por 4D como un error resultante de la evaluación del parámetro (por ejemplo, un atributo procedente de otra búsqueda). Para este tipo de búsquedas, debe utilizar la sintaxis de búsqueda directa: ```4d -$vSingles:=$colPersons.query("spouse = null") //sintaxis correcta +Lanzamiento ``` -#### Referencia de objeto o de colección como valor +#### Lanzamiento Puede consultar en una colección utilizando una referencia de objeto o una referencia de colección como parámetro *value* a comparar. La consulta coincidirá con los objetos de la colección que se refieran a (apunten a) la misma **instancia** de objeto o de colección. -Se soportan los siguientes comparadores: +Para una descripción detallada de los parámetros *queryString* y *value*, consulte la función `dataClass.query()`. | Comparación | Símbolo(s) | | ------------ | ----------------------------- | @@ -2570,34 +2513,13 @@ Se soportan los siguientes comparadores: Para construir una consulta con un objeto o una referencia de colección, debe utilizar la sintaxis del parámetro *querySettings*. Ejemplo con una referencia de objeto: ```4d -var $o1:={a: 1} -var $o2:={a: 1} /mismo objeto pero otra referencia -var $o3:=$o1 /mismo objeto y referencia - -var $col; $colResult : Collection - -$col:=[{o: $o1}; {o: $o2}; {o: $o3}] -$colResult:=$col.query("o = :v"; {parameters: {v: $o3}}) - //$colResult.length=2 - //$colResult[0].o=$o1 es true - //$colResult[1].o=$o1 es true - +Lanzamiento ``` -Ejemplo con una referencia de colección: +Para el cálculo sólo se tienen en cuenta los elementos numéricos (se ignoran otros tipos de elementos). ```4d - -$c1:=[1; 2; 3] -$c2:=[1; 2; 3] //misma colección pero otra referencia -$c3:=$c1 //misma colección y referencia - -$col:=[{c: $c1}; {c: $c2}; {c: $c3}] -$col2:=$col.query("c = :v"; {parameters: {v: $c3}}) - //$col2.length=2 - //$col2[0].c=$c1 es true - //$col2[1].c=$c1 es true - +Tipo ``` #### Parámetro querySettings @@ -2609,7 +2531,7 @@ En el parámetro *querySettings*, puede pasar un objeto que contenga marcadores | parameters | Object | **Marcadores de posición con nombre para los valores** utilizados en *queryString*. Los valores se expresan como pares propiedad / valor, donde propiedad es el nombre del marcador de posición insertado para un valor en *queryString* o formula (":placeholder") y valor es el valor a comparar. Puede combinar marcadores de posición indexados (valores pasados directamente en parámetros de valor) y valores de marcadores de posición con nombre en la misma búsqueda. | | attributes | Object | **Marcadores de posición con nombre para rutas de atributos** utilizados en la *queryString*. Los atributos se expresan como pares propiedad / valor, donde propiedad es el nombre del marcador de posición insertado para una ruta de atributo en *queryString* (":placeholder"), y valor puede ser una cadena o una colección de cadenas. Cada valor es una ruta que puede designar una propiedad en un objeto de la colección
Tipo de objetoDescripción
CadenaRuta de acceso del atributo expresado utilizando la notación de punto, por ejemplo, "name" o "user.address.zipCode"
Colección de cadenasCada cadena de la colección representa un nivel de attributePath, por ejemplo, \["name"] o \["user","address","zipCode"]. El uso de una colección permite realizar consultas sobre atributos con nombres que no se ajustan a la notación de puntos, por ejemplo, \["4Dv17.1", "en/fr"]
Puede mezclar marcadores de posición indexados (valores pasados directamente en parámetros *value*) y valores de marcador de posición con nombre en la misma consulta. | -> El uso de este parámetro es obligatorio si desea consultar en una colección [utilizando una **referencia de colección** o una **referencia de un objeto**](#referencia-de-objeto-o-de-colección-como-valor). +> Ejemplo #### Ejemplo 1 @@ -2656,15 +2578,13 @@ Este ejemplo devuelve las personas cuyo nombre no empieza por una cadena de una Este ejemplo devuelve las personas cuya edad no se conoce (propiedad definida como null o indefinida): ```4d - $col:=$c.query("age=null") //no están permitidos los marcadores de posición con "null" - //$col=[{name:Wesson...},{name:Sterling...},{name:Mark...}] +Ejemplo ``` Este ejemplo devuelve las personas contratadas hace más de 90 días: ```4d - $col:=$c.query("dateHired < :1";(Current date-90)) - //$col=[{name:Smith...},{name:Sterling...},{name:Mark...}] si hoy es 01/10/2018 +La nueva colección compartida ``` #### Ejemplo 3 @@ -2679,7 +2599,7 @@ $entitySelection:=ds.Employee.query("birthDate <= :1";Current date-10950) :::info -Se pueden encontrar más ejemplos de búsquedas en la página `dataClass.query()`. +Descripción ::: @@ -2702,13 +2622,13 @@ Se pueden encontrar más ejemplos de búsquedas en la página `dataClass.query() -| Parámetros | Tipo | | Descripción | -| ---------- | ----------------------------------------------- | :-------------------------: | ---------------------------------------------------------------------------------------- | -| formula | 4D.Function | -> | Objeto fórmula | -| methodName | Text | -> | Nombre de un método | -| initValue | Text, Number, Object, Collection, Date, Boolean | -> | Valor a utilizar como primer argumento de la primera llamada de *formula* o *methodName* | -| param | expresión | -> | Parámetro(s) a pasar | -| Result | Text, Number, Object, Collection, Date, Boolean | <- | Resultado del valor del acumulador | +| Parámetros | Tipo | | Descripción | +| ---------- | ----------------------------------------------- | :-------------------------: | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| formula | 4D.Function | -> | Objeto fórmula | +| methodName | Text | -> | Nombre de un método | +| initValue | Text, Number, Object, Collection, Date, Boolean | -> | Valor a utilizar como primer argumento de la primera llamada de *formula* o *methodName* | +| param | expresión | -> | Parámetro(s) a pasar | +| Result | Text, Number, Object, Collection, Date, Boolean | <- | *formula* (sintaxis recomendada), un [objeto Fórmula](FunctionClass.md) que puede encapsular toda expresión ejecutable, incluyendo funciones y métodos proyecto; | @@ -2720,22 +2640,22 @@ La función `.reduce()` aplica la *form Se designa la retrollamada a ejecutar para evaluar los elementos de la colección utilizando: -- *formula* (sintaxis recomendada), un [objeto Fórmula](FunctionClass.md) que puede encapsular toda expresión ejecutable, incluyendo funciones y métodos proyecto; -- o *methodName*, el nombre de un método proyecto (texto). +- Comparación +- Tipo -La retrollamada toma cada elemento de la colección y realiza toda operación deseada para acumular el resultado en *$1.accumulator*, que se devuelve en *$1.value*. +Tipo Puede pasar el valor para inicializar el acumulador en *initValue*. Si se omite, *$1.accumulator* empieza por *Undefined*. La retrollamada recibe los siguientes parámetros: -- en *$1.value*: valor del elemento a procesar -- en *$2: param* -- en *$N...*: *paramN...* +- La nueva colección +- Colección compartida que se agrupa con la colección resultante +- Objeto compartido que se agrupa con la colección resultante La retrollamada define los siguientes parámetros: -- *$1.accumulator*: valor que va a ser modificado por la función y que es inicializado por *initValue*. +- Descripción - *$1.stop* (boolean, opcional): **true** para detener la retrollamada del método. El valor devuelto es el último calculado. #### Ejemplo 1 @@ -2787,13 +2707,13 @@ Con el siguiente método ***Flatten***: -| Parámetros | Tipo | | Descripción | -| ---------- | ----------------------------------------------- | :-------------------------: | ---------------------------------------------------------------------------------------- | -| formula | 4D.Function | -> | Objeto fórmula | -| methodName | Text | -> | Nombre de un método | -| initValue | Text, Number, Object, Collection, Date, Boolean | -> | Valor a utilizar como primer argumento de la primera llamada de *formula* o *methodName* | -| param | expresión | -> | Parámetro(s) a pasar | -| Result | Text, Number, Object, Collection, Date, Boolean | <- | Resultado del valor del acumulador | +| Parámetros | Tipo | | Descripción | +| ---------- | ----------------------------------------------- | :-------------------------: | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| formula | 4D.Function | -> | Objeto fórmula | +| methodName | Text | -> | Nombre de un método | +| initValue | Text, Number, Object, Collection, Date, Boolean | -> | Valor a utilizar como primer argumento de la primera llamada de *formula* o *methodName* | +| param | expresión | -> | Parámetro(s) a pasar | +| Result | Text, Number, Object, Collection, Date, Boolean | <- | *formula* (sintaxis recomendada), un [objeto Fórmula](FunctionClass.md) que puede encapsular toda expresión ejecutable, incluyendo funciones y métodos proyecto; | @@ -2805,31 +2725,28 @@ La función `.reduceRight()` aplic Se designa la retrollamada a ejecutar para evaluar los elementos de la colección utilizando: -- *formula* (sintaxis recomendada), un [objeto Fórmula](FunctionClass.md) que puede encapsular toda expresión ejecutable, incluyendo funciones y métodos proyecto; -- o *methodName*, el nombre de un método proyecto (texto). +- Comparación +- Tipo -La retrollamada toma cada elemento de la colección y realiza toda operación deseada para acumular el resultado en *$1.accumulator*, que se devuelve en *$1.value*. +Tipo Puede pasar el valor para inicializar el acumulador en *initValue*. Si se omite, *$1.accumulator* empieza por *Undefined*. La retrollamada recibe los siguientes parámetros: -- en *$1.value*: valor del elemento a procesar -- en *$2: param* -- en *$N...*: *paramN...* +- La nueva colección +- Colección compartida que se agrupa con la colección resultante +- Objeto compartido que se agrupa con la colección resultante La retrollamada define los siguientes parámetros: -- *$1.accumulator*: valor que va a ser modificado por la función y que es inicializado por *initValue*. +- Descripción - *$1.stop* (boolean, opcional): **true** para detener la retrollamada del método. El valor devuelto es el último calculado. #### Ejemplo 1 ```4d -var $c : Collection -$c:=New collection(5;3;5;1;3;4;4;6;2;2) -$r:=$c.reduceRight(Formula($1.accumulator*=$1.value); 1) //devuelve 86400 - +Tipo ``` #### Ejemplo 2 @@ -2849,11 +2766,7 @@ Este ejemplo permite reducir varios elementos de la colección a uno solo: Con el siguiente método ***Flatten***: ```4d - //Método proyecto Flatten - If($1.accumulator=Null) - $1.accumulator:=New collection - End if - $1.accumulator.combine($1.value) +Ejemplo 4 ``` @@ -2874,11 +2787,11 @@ Con el siguiente método ***Flatten***: -| Parámetros | Tipo | | Descripción | -| ---------- | ---------- | :-------------------------: | --------------------------------------------------------------------------------------- | -| index | Integer | -> | Elemento en el que se inicia la eliminación | -| howMany | Integer | -> | Número de elementos a eliminar, o 1 elemento si se omite | -| Result | Collection | <- | Colección modificada sin elemento(s) eliminado(s) | +| Parámetros | Tipo | | Descripción | +| ---------- | ---------- | :-------------------------: | -------------------------------------------------------- | +| index | Integer | -> | Elemento en el que se inicia la eliminación | +| howMany | Integer | -> | Número de elementos a eliminar, o 1 elemento si se omite | +| Result | Collection | <- | Colección original sin elementos eliminados | @@ -2888,13 +2801,13 @@ La función `.remove()` elimina uno o m > Esta función modifica la colección original. -En *index*, pase la posición donde quiere eliminar el elemento de la colección. +Lanzamiento -> **Atención**: recuerde que los elementos de la colección están numerados desde 0. Si *index* es mayor que la longitud de la colección, el índice inicial real se definirá en la longitud de la colección. +> Diferente de Si *startFrom* < 0, se considera el desplazamiento desde el final de la colección (*startFrom:=startFrom+length*). -- Si *index* < 0, se recalcula como *index:=index+length* (se considera el desplazamiento desde el final de la colección). -- Si el valor calculado < 0, *index* toma el valor 0. -- Si el valor calculado > la longitud de la colección, *index* toma el valor de la longitud. +- Ejemplo 3 +- Si el valor calculado < 0, *startFrom* toma el valor 0. +- Ejemplo 1 En *howMany*, pase el número de elementos a eliminar de *index*. Si no se especifica *howMany*, se elimina un elemento. @@ -2933,18 +2846,18 @@ Si se intenta eliminar un elemento de una colección vacía, el método no hace | ------------ | ----------------------------------------------- | :-------------------------: | ---------------------------------------------- | | size | Integer | -> | Nuevo tamaño de la colección | | defaultValue | Number, Text, Object, Collection, Date, Boolean | -> | Valor por defecto para llenar nuevos elementos | -| Result | Collection | <- | Colección original redimensionada | +| Result | Collection | <- | Colección original ordenada | #### Descripción -La función `.resize()` ajusta la longitud de la colección al nuevo tamaño especificado y devuelve la colección redimensionada. +Ejemplo > Esta función modifica la colección original. -- Si *size* la longitud de la colección, los elementos que exceden se eliminan de la colección. -- Si *size* > longitud de la colección, *size* es la nueva longitud de la colección. +- Ejemplo 1 +- Ejemplo 1 Por defecto, los nuevos elementos se llenan con valores **null**. Puede especificar el valor a llenar en los elementos añadidos utilizando el parámetro *defaultValue*. @@ -2984,9 +2897,9 @@ Por defecto, los nuevos elementos se llenan con valores **null**. Puede especifi -| Parámetros | Tipo | | Descripción | -| ---------- | ---------- | :-------------------------: | ------------------------------- | -| Result | Collection | <- | Copia invertida de la colección | +| Parámetros | Tipo | | Descripción | +| ---------- | ---------- | :-------------------------: | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| Result | Collection | <- | *formula* (sintaxis recomendada), un [objeto Fórmula](FunctionClass.md) que puede encapsular toda expresión ejecutable, incluyendo funciones y métodos proyecto; | @@ -3022,9 +2935,9 @@ La función `.reverse()` devuelve una -| Parámetros | Tipo | | Descripción | -| ---------- | ---- | :-------------------------: | ------------------------------- | -| Result | any | <- | Primer elemento de la colección | +| Parámetros | Tipo | | Descripción | +| ---------- | ---- | :-------------------------: | ------------------------------------------- | +| Result | any | <- | Colección original sin elementos eliminados | @@ -3065,11 +2978,11 @@ Si la colección está vacía, este método no hace nada. -| Parámetros | Tipo | | Descripción | -| ---------- | ---------- | :-------------------------: | -------------------------------------------------------------------------------------- | -| startFrom | Integer | -> | Índice de inicio (incluido) | -| end | Integer | -> | Índice final (no incluido) | -| Result | Collection | <- | Nueva colección que contiene elementos cortados (copia superficial) | +| Parámetros | Tipo | | Descripción | +| ---------- | ---------- | :-------------------------: | ---------------------------------------------- | +| startFrom | Integer | -> | Índice de inicio (incluido) | +| end | Integer | -> | Índice final (no incluido) | +| Result | Collection | <- | La nueva colección compartida | @@ -3082,9 +2995,9 @@ La función `.slice()` devuelve una porc La colección devuelta contiene el elemento especificado por *startFrom* y todos los elementos subsiguientes hasta, pero sin incluir, el elemento especificado por *end*. Si sólo se especifica el parámetro *startFrom*, la colección devuelta contiene todos los elementos desde *startFrom* hasta el último elemento de la colección original. - Si *startFrom* < 0, se recalcula como *startFrom:=startFrom+length* (se considera el desplazamiento desde el final de la colección). -- Si el valor calculado < 0, *startFrom* toma el valor 0. -- Si *end* < 0 , se recalcula como *end:=end+length*. -- Si *end < startFrom* (valores pasados o calculados), el método no hace nada. +- Descripción +- Soporte de querySettings +- Este ejemplo permite reducir varios elementos de la colección a uno solo: #### Ejemplo @@ -3133,35 +3046,35 @@ La función `.some()` devuelve true si a Se designa el código 4D de retrollamada (callback) a ejecutar para evaluar los elementos de la colección utilizando: -- *formula* (sintaxis recomendada), un [objeto Fórmula](FunctionClass.md) que puede encapsular toda expresión ejecutable, incluyendo funciones y métodos proyecto; -- o *methodName*, el nombre de un método proyecto (texto). +- Comparación +- Tipo La retrollamada se llama con los parámetros pasados en *param* (opcional). La retrollamada puede efecturar toda prueba, con o sin los parámetros, y debe devolver *true* para cada elemento que cumpla la prueba. Recibe un `Object` en el primer parámetro ($1). La retrollamada recibe los siguientes parámetros: -- en *$1.value*: valor del elemento a procesar -- en *$2: param* -- en *$N...*: *paramN...* +- La nueva colección +- Colección compartida que se agrupa con la colección resultante +- Objeto compartido que se agrupa con la colección resultante Puede definir los siguientes parámetros: -- (obligatorio si se ha utilizado un método) *$1.result* (booleano): **true** si la evaluación del valor del elemento tiene éxito, **false** en caso contrario. +- Expresión a buscar en la colección - *$1.stop* (boolean, opcional): **true** para detener la retrollamada del método. El valor devuelto es el último calculado. -En todo caso, en el momento en que la función `.some()` encuentra el primer elemento de la colección que devuelve true, deja de llamar a la llamada de retorno y devuelve **true**. +Descripción Por defecto, `.some()` comprueba toda la colección. Opcionalmente, puede pasar el índice de un elemento desde el cual iniciar la prueba en *startFrom*. -- Si *startFrom* >= la longitud de la colección, se devuelve **False**, lo que significa que no se prueba la colección. +- Tipo -- Si *startFrom* < 0, se considera como el desplazamiento desde el final de la colección. +- Diferente de Si *startFrom* < 0, se considera el desplazamiento desde el final de la colección (*startFrom:=startFrom+length*). -- Si *startFrom* = 0, se busca en toda la colección (por defecto). +- Descripción #### Ejemplo -Quiere saber si al menos un valor de la colección es >0. +Incluído en ```4d var $c : Collection @@ -3197,18 +3110,18 @@ Quiere saber si al menos un valor de la colección es >0. -| Parámetros | Tipo | | Descripción | -| ---------- | --------------------------- | :-------------------------: | --------------------------- | -| formula | 4D.Function | -> | Objeto fórmula | -| methodName | Text | -> | Nombre de un método | -| extraParam | any | -> | Parámetros del método | -| Result | Collection | <- | Colección original ordenada | +| Parámetros | Tipo | | Descripción | +| ---------- | --------------------------- | :-------------------------: | ------------------------------------------------------------------------------------------- | +| formula | 4D.Function | -> | Objeto fórmula | +| methodName | Text | -> | Nombre de un método | +| extraParam | any | -> | Parámetros del método | +| Result | Collection | <- | o *methodName*, el nombre de un método proyecto (texto). | #### Descripción -La función `.sort()` ordena los elementos de la colección original y además devuelve la colección ordenada. +Colección original ordenada > Esta función modifica la colección original. @@ -3227,13 +3140,13 @@ Si quiere ordenar los elementos de la colección en algún otro orden o ordenar La retrollamada recibe los siguientes parámetros: - $1 (objeto), donde: - - *$1.value* (todo tipo): valor del primer elemento a comparar - - *$1.value2* (todo tipo): valor del segundo elemento a comparar + - Lanzamiento + - Lanzamiento - $2...$N (cualquier tipo): parámetros adicionales -Si utilizó un método, debe definir el siguiente parámetro: +Ejemplo -- *$1.result* (boolean): **true** si *$1.value < $1.value2*, **false** de lo contrario. +- Obtiene los datos coincidentes, admite el comodín (@), no distingue entre mayúsculas de minúsculas ni diacríticas. #### Ejemplo 1 @@ -3255,10 +3168,7 @@ Si utilizó un método, debe definir el siguiente parámetro: #### Ejemplo 3 ```4d -var $col; $col2; $col3 : Collection -$col:=New collection(33;4;66;1111;222) -$col2:=$col.sort() //numerical sort: [4,33,66,222,1111] -$col3:=$col.sort(Formula(String($1.value) @@ -3282,23 +3192,23 @@ $col3:=$col.sort(Formula(String($1.value) | Ruta de la propiedad del objeto que se utilizará para el cálculo | -| Result | Real | <- | Suma de los valores de la colección | +| Result | Real | <- | Colección original con valores rellenados | #### Descripción -La función `.sum()` devuelve la suma de todos los valores de la instancia de la colección. +Añadidos Para el cálculo sólo se tienen en cuenta los elementos numéricos (se ignoran otros tipos de elementos). -Si la colección contiene objetos, pasa el parámetro *propertyPath* para indicar la propiedad del objeto a tener en cuenta. +Uso del paréntesis -`.sum()` devuelve 0 si: +Para más información sobre las colecciones compartidas, por favor consulte la página [Objetos y colecciones compartidas](Concepts/shared.md). - la colección está vacía, - la colección no contiene elementos numéricos, -- *propertyPath* no se encuentra en la colección. +- Lanzamiento #### Ejemplo 1 diff --git a/i18n/es/docusaurus-plugin-content-docs/current/API/CryptoKeyClass.md b/i18n/es/docusaurus-plugin-content-docs/current/API/CryptoKeyClass.md index b97fcabe54080c..f491240408d5b9 100644 --- a/i18n/es/docusaurus-plugin-content-docs/current/API/CryptoKeyClass.md +++ b/i18n/es/docusaurus-plugin-content-docs/current/API/CryptoKeyClass.md @@ -138,7 +138,7 @@ ASSERT($status.success) **.curve** : Text -Definido sólo para las llaves ECDSA: el nombre de la curva normalizada de la llave. Generalmente "prime256v1" para ES256 (por defecto), "secp384r1" para ES384, "secp521r1" para ES512. +Definido sólo para llaves RSA: el tamaño de la llave en bits. . @@ -373,7 +373,7 @@ La representación utf8 de la cadena *message*. **.size** : Integer -Definido sólo para llaves RSA: el tamaño de la llave en bits. Normalmente 2048 (por defecto). +Definido sólo para las llaves ECDSA: el nombre de la curva normalizada de la llave. Normalmente 2048 (por defecto). @@ -432,7 +432,7 @@ La `CryptoKey` debe contener una llave **pública** válida. | --------- | ------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | | hash | text | Algoritmo Digest a utilizar. Por ejemplo: "SHA256", "SHA384" o "SHA512". Cuando se utiliza para producir un JWT, el tamaño del hash debe coincidir con el tamaño del algoritmo PS@, ES@, RS@ o PS@ | | pss | boolean | Utilice el Probabilistic Signature Scheme (PSS). Se ignora si la llave no es una llave RSA. Pase `true` al verificar un JWT para el algoritmo PS@ | -| encoding | text | Encoding used to convert the binary encrypted message into the result string. Can be "Base64", or "Base64URL". Por defecto es "Base64". | +| encoding | text | Codificación utilizada para convertir el mensaje binario encriptado en la cadena de resultados. Puede ser "Base64", o "Base64URL". Por defecto es "Base64". | #### *Resultado* diff --git a/i18n/es/docusaurus-plugin-content-docs/current/API/DataClassClass.md b/i18n/es/docusaurus-plugin-content-docs/current/API/DataClassClass.md index 01cafdd9fa8970..f0186ffddbca7c 100644 --- a/i18n/es/docusaurus-plugin-content-docs/current/API/DataClassClass.md +++ b/i18n/es/docusaurus-plugin-content-docs/current/API/DataClassClass.md @@ -459,7 +459,7 @@ En este ejemplo, la primera entidad se creará y guardará pero la segunda falla La función `.get()` consulta la clase de datos para recuperar la entidad que coincide con el parámetro *primaryKey*. -En *primaryKey*, pase el valor de la llave primaria de la entidad a recuperar. El tipo de valor debe coincidir con el tipo de la llave primaria definida en el almacén de datos (Entero o Texto). También puedes asegurarse de que el valor de la llave primaria siempre se devuelva como Texto utilizando la función [`.getKey()`](EntityClass.md#getkey) con el parámetro `dk key as string`. +En *primaryKey*, pase el valor de la llave primaria de la entidad a recuperar. El tipo de valor debe coincidir con el tipo de la llave primaria definida en el almacén de datos (Entero o Texto). El tipo de valor debe coincidir con el tipo de la llave primaria definida en el almacén de datos (Entero o Texto). Si no se encuentra ninguna entidad con *primaryKey*, se devuelve una entidad **Null**. @@ -850,7 +850,7 @@ La función `.newSelection()` crea en la memoria una nueva entidad que hace referencia al mismo registro que la entidad original. Esta función permite actualizar las entidades por separado. +The `.clone()` function creates in memory a new entity referencing the same record as the original entity. -> Tenga en cuenta que toda modificación realizada a las entidades se guardará en el registro referenciado sólo cuando se ejecute la función [`.save( )`](#save). +This function allows you to update entities separately. Note however that, for performance reasons, the new entity shares the same reference of object attributes as the cloned entity. + +> Keep in mind that any modifications done to entities will be saved in the referenced record only when the [`.save()`](#save) function is executed. Esta función sólo puede utilizarse con entidades ya guardadas en la base de datos. No se puede llamar a una entidad recién creada (para la que [`isNew()`](#isnew) devuelve **True**). @@ -966,34 +968,34 @@ De lo contrario, puede pasar la opción `dk reload if stamp changed` en el pará El objeto devuelto por `.lock()` contiene las siguientes propiedades: -| Propiedad | | Tipo | Descripción | -| --------------------------------- | ----------------------------------- | --------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -| success | | boolean | true si la acción de bloqueo tiene éxito (o si la entidad ya está bloqueada en el proceso actual), false en caso contrario. | -| | | | ***Disponible sólo si se utiliza la opción `dk reload if stamp changed`:*** | -| **wasReloaded** | | boolean | true si la entidad fue recargada con éxito, false en caso contrario. | -| | | | ***Disponible sólo en caso de error:*** | -| status(\*) | | number | Código de error, ver abajo | -| statusText(\*) | | text | Descripción del error, ver abajo | -| | | | ***Disponible sólo en caso de error de bloqueo pesimista:*** | -| lockKindText | | text | "Locked by record" si está bloqueado por un proceso 4D, "Locked by session" si está bloqueado por una sesión REST | -| lockInfo | | object | Información sobre el origen del bloqueo. Las propiedades devueltas dependen del origen del bloqueo (proceso 4D o sesión REST). | -| | | | ***Disponible sólo para un bloqueo por proceso 4D:*** | -| | task_id | number | ID del Proceso | -| | user_name | text | Nombre de usuario de la sesión en la máquina | -| | user4d_alias | text | Nombre o alias del usuario 4D | -| | user4d_id | number | ID del usuario en el directorio de la base de datos 4D | -| | host_name | text | Nombre de la máquina | -| | task_name | text | Nombre del proceso | -| | client_version | text | Versión del cliente | -| | | | ***Disponible sólo para un bloqueo por sesión REST:*** | -| | host | text | URL que bloqueó la entidad (por ejemplo, "www.myserver.com") | -| | IPAddr | text | Dirección IP del bloqueo (por ejemplo: "127.0.0.1") | -| | userAgent | text | userAgent del origin del bloqueo (ej: "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_3) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/96.0.4664.110 Safari/537.36") | -| | | | ***Disponible sólo en caso de error crítico*** (llave primaria duplicada, disco lleno...): | -| errors | | collection of objects | | -| | message | text | Mensaje de error | -| | component signature | text | firma del componente interno (por ejemplo, "dmbg" significa el componente de la base) | -| | errCode | number | Código de error | +| Propiedad | | Tipo | Descripción | +| --------------------------------- | ----------------------------------- | --------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| success | | boolean | true si la acción de bloqueo tiene éxito (o si la entidad ya está bloqueada en el proceso actual), false en caso contrario. | +| | | | ***Disponible sólo si se utiliza la opción `dk reload if stamp changed`:*** | +| **wasReloaded** | | boolean | true si la entidad fue recargada con éxito, false en caso contrario. | +| | | | ***Disponible sólo en caso de error:*** | +| status(\*) | | number | Código de error, ver abajo | +| statusText(\*) | | text | Descripción del error, ver abajo | +| | | | ***Disponible sólo en caso de error de bloqueo pesimista:*** | +| lockKindText | | text | "Locked by record" si está bloqueado por un proceso 4D, "Locked by session" si está bloqueado por una sesión REST | +| lockInfo | | object | Información sobre el origen del bloqueo. Las propiedades devueltas dependen del origen del bloqueo (proceso 4D o sesión REST). | +| | | | ***Disponible sólo para un bloqueo por proceso 4D:*** | +| | task_id | number | ID del Proceso | +| | user_name | text | Nombre de usuario de la sesión en la máquina | +| | user4d_alias | text | Nombre o alias del usuario 4D | +| | user4d_id | number | ID del usuario en el directorio de la base de datos 4D | +| | host_name | text | Nombre de la máquina | +| | task_name | text | Nombre del proceso | +| | client_version | text | Versión del cliente | +| | | | ***Disponible sólo para un bloqueo por sesión REST:*** | +| | host | text | \| URL que bloqueó la entidad (por ejemplo, "www.myserver.com") \| | +| | IPAddr | text | Dirección IP del bloqueo (por ejemplo: "127.0.0.1") | +| | userAgent | text | userAgent del origin del bloqueo (ej: "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_3) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/96.0.4664.110 Safari/537.36") | +| | | | ***Disponible sólo en caso de error crítico*** (llave primaria duplicada, disco lleno...): | +| errors | | collection of objects | | +| | message | text | Mensaje de error | +| | component signature | text | firma del componente interno (por ejemplo, "dmbg" significa el componente de la base) | +| | errCode | number | Código de error | (\*) Los siguientes valores pueden ser devueltos en las propiedades *status* y *statusText* del objeto *Result* en caso de error: diff --git a/i18n/es/docusaurus-plugin-content-docs/current/API/EntitySelectionClass.md b/i18n/es/docusaurus-plugin-content-docs/current/API/EntitySelectionClass.md index 7dd3591ba80374..49e168e133c682 100644 --- a/i18n/es/docusaurus-plugin-content-docs/current/API/EntitySelectionClass.md +++ b/i18n/es/docusaurus-plugin-content-docs/current/API/EntitySelectionClass.md @@ -5,7 +5,7 @@ title: EntitySelection Una entity selection es un objeto que contiene una o más referencias a [entidades](ORDA/dsMapping.md#entity) pertenecientes a la misma [Dataclass](ORDA/dsMapping.md#dataclass). Una entity selection puede contener 0, 1 o X entidades de la dataclass -- donde X puede representar el número total de entidades contenidas en la dataclass. -Las entity selections pueden crearse a partir de selecciones existentes utilizando varias funciones de la clase [`DataClass`](DataClassClass.md) como [`.all()`](DataClassClass.md#all) o [`.query()`](DataClassClass.md#query), o funciones de la propia clase `EntityClass`, como [`.and()`](#and) u [`orderBy()`](#orderby). You can also create blank entity selections using the [`dataClass.newSelection()`](DataClassClass.md#newselection) function or the [`Create entity selection`](../commands/create-entity-selection.md) command. +Las entity selections pueden crearse a partir de selecciones existentes utilizando varias funciones de la clase [`DataClass`](DataClassClass.md) como [`.all()`](DataClassClass.md#all) o [`.query()`](DataClassClass.md#query), o funciones de la propia clase `EntityClass`, como [`.and()`](#and) u [`orderBy()`](#orderby). También puede crear entity selections vacías utilizando la función [`dataClass.newSelection()`](DataClassClass.md#newselection) o el comando [`Create entity selection`](../commands/create-entity-selection.md). ### Resumen @@ -213,7 +213,7 @@ La función `.add()` añade la * :::info atención -La entity selection debe ser *modificable*, es decir, ha sido creada, por ejemplo, por [`.newSelection()`](DataClassClass.md#newselection) o `Create entity selection`, de lo contrario `.add()` devolverá un error. Las entity selections compartibles no aceptan la adición de entidades. Para más información, consulte la sección [Selecciones de entidades compartibles o modificables](ORDA/entities.md#shareable-or-alterable-entity-selections). +La entity selection debe ser *modificable*, es decir, ha sido creada, por ejemplo, por [`.newSelection()`](DataClassClass.md#newselection) o `Create entity selection`, de lo contrario `.add()` devolverá un error. Las entity selections compartibles no aceptan la adición de entidades. Las entity selections compartibles no aceptan la adición de entidades. ::: @@ -687,7 +687,7 @@ En el parámetro *attributePath*, pase el atributo de entidad cuyos valores dist Puede utilizar la notación `[]` para designar una colección cuando *attributePath* es una ruta en un objeto (ver los ejemplos). -En el parámetro *options*, puede pasar una o una combinación de las siguientes constantes: +Ejemplos | Constante | Valor | Comentario | | ----------------- | ----- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | diff --git a/i18n/es/docusaurus-plugin-content-docs/current/API/FileHandleClass.md b/i18n/es/docusaurus-plugin-content-docs/current/API/FileHandleClass.md index 99353e3d3978ba..5ea7265e2ba396 100644 --- a/i18n/es/docusaurus-plugin-content-docs/current/API/FileHandleClass.md +++ b/i18n/es/docusaurus-plugin-content-docs/current/API/FileHandleClass.md @@ -275,7 +275,7 @@ Esta propiedad es **lectura-escritura**. :::caution -Cuando se crea un file handle, el valor `.offset` es un número de bytes. Sin embargo, la unidad de medida del offset difiere según la función de lectura: con [`readBlob()`](#readblob), `.offset` es un número de bytes, mientras que con [`readText()`](#readtext)/[`readLine()`](#readline) es un número de caracteres. Según el conjunto de caracteres del archivo, un caracter corresponde a uno o varios bytes. Según el conjunto de caracteres del archivo, un caracter corresponde a uno o varios bytes. Por lo tanto, si comienza a leer con `readBlob()` y luego llama a `readText()`, la lectura de texto comenzará en una posición inconsistente. Por ejemplo: +Cuando se crea un file handle, el valor `.offset` es un número de bytes. Sin embargo, la unidad de medida del offset difiere según la función de lectura: con [`readBlob()`](#readblob), `.offset` es un número de bytes, mientras que con [`readText()`](#readtext)/[`readLine()`](#readline) es un número de caracteres. Según el conjunto de caracteres del archivo, un caracter corresponde a uno o varios bytes. Según el conjunto de caracteres del archivo, un caracter corresponde a uno o varios bytes. Según el conjunto de caracteres del archivo, un caracter corresponde a uno o varios bytes. Por ejemplo: ```4d // Abrir un fichero de texto europeo con codificación utf-16 (dos bytes por caracter) diff --git a/i18n/es/docusaurus-plugin-content-docs/current/API/FolderClass.md b/i18n/es/docusaurus-plugin-content-docs/current/API/FolderClass.md index 7e18727a9a1cf7..6c779f042edc9b 100644 --- a/i18n/es/docusaurus-plugin-content-docs/current/API/FolderClass.md +++ b/i18n/es/docusaurus-plugin-content-docs/current/API/FolderClass.md @@ -3,7 +3,7 @@ id: FolderClass title: Folder --- -`Folder` objects are created with the [`Folder`](../commands/folder.md) command. Contienen referencias a carpetas que pueden o no existir realmente en el disco. Por ejemplo, cuando ejecuta el comando `Folder` para crear una nueva carpeta, se crea un objeto `Folder` válido, pero en realidad no se almacena nada en el disco hasta que llame a la función [`folder.create()`](#create). +Los objetos `Folder` son creados con el comando [`Folder`](../commands/folder.md). Contienen referencias a carpetas que pueden o no existir realmente en el disco. Por ejemplo, cuando ejecuta el comando `Folder` para crear una nueva carpeta, se crea un objeto `Folder` válido, pero en realidad no se almacena nada en el disco hasta que llame a la función [`folder.create()`](#create). ### Ejemplo @@ -67,9 +67,9 @@ Los objetos `Folder` admiten varios nombres de ruta, incluida la sintaxis `files #### Descripción -La función `4D.Folder.new()` crea y devuelve un nuevo objeto del tipo `4D.Folder`. It is identical to the [`Folder`](../commands/folder.md) command (shortcut). +La función `4D.Folder.new()` crea y devuelve un nuevo objeto del tipo `4D.Folder`. Es idéntico al comando [`Folder`](../commands/folder.md) (atajo). -> It is recommended to use the [`Folder`](../commands/folder.md) shortcut command instead of `4D.Folder.new()`. +> Se recomienda utilizar el comando de acceso directo [`Folder`](../commands/folder.md) en lugar de `4D.Folder.new()`. @@ -297,7 +297,7 @@ La función `.moveTo( )` mueve o renom La *destinationFolder* debe existir en el disco, de lo contrario se genera un error. -Por defecto, la carpeta conserva su nombre cuando se mueve. Si desea cambiar renombrar la carpeta desplazada, pase el nombre completo en el parámetro *newName*. El nuevo nombre debe cumplir con las reglas de nomenclatura (por ejemplo, no debe contener caracteres como ":", "/", etc.), de lo contrario se devuelve un error. +Por defecto, la carpeta conserva su nombre cuando se mueve. Por defecto, la carpeta conserva su nombre cuando se mueve. El nuevo nombre debe cumplir con las reglas de nomenclatura (por ejemplo, no debe contener caracteres como ":", "/", etc.), de lo contrario se devuelve un error. **Objeto devuelto** diff --git a/i18n/es/docusaurus-plugin-content-docs/current/API/HTTPRequestClass.md b/i18n/es/docusaurus-plugin-content-docs/current/API/HTTPRequestClass.md index e9133a7346da22..92d6509233f9e4 100644 --- a/i18n/es/docusaurus-plugin-content-docs/current/API/HTTPRequestClass.md +++ b/i18n/es/docusaurus-plugin-content-docs/current/API/HTTPRequestClass.md @@ -478,7 +478,7 @@ La propiedad `.url` contiene la URL de ## .wait() -**.wait**( { *time* : Real } ) : HTTPRequestClass +**.wait**( { *time* : Real } ) : 4D.HTTPRequest @@ -499,6 +499,6 @@ Si se pasa un parámetro *time*, la función esperará como máximo el número d Si la respuesta del servidor ya ha llegado, la función regresa inmediatamente. -During a `.wait()` execution, callback functions are executed, whether from other `HTTPRequest` or [`SystemWorker`](SystemWorkerClass.md) instances, or other [`CALL WORKER`](../commands-legacy/call-worker.md) calls. Puede salir de un `.wait()` llamando a [`terminate()`](#terminate) desde un callback. +Durante una ejecución `.wait()`, las funciones de retrollamada se ejecutan, ya sea desde otras instancias `HTTPRequest` o [`SystemWorker`](SystemWorkerClass.md) u otras llamadas [`CALL WORKER`](../commands-legacy/call-worker.md). Puede salir de un `.wait()` llamando a [`terminate()`](#terminate) desde un callback. diff --git a/i18n/es/docusaurus-plugin-content-docs/current/API/IMAPTransporterClass.md b/i18n/es/docusaurus-plugin-content-docs/current/API/IMAPTransporterClass.md index 0c2a1a4dc9c1d8..a4b8cab0b9fefe 100644 --- a/i18n/es/docusaurus-plugin-content-docs/current/API/IMAPTransporterClass.md +++ b/i18n/es/docusaurus-plugin-content-docs/current/API/IMAPTransporterClass.md @@ -7,7 +7,7 @@ La clase `IMAPTransporter` le permite recuperar mensajes de un servidor de corre ### Objeto IMAP Transporter -IMAP Transporter objects are instantiated with the [IMAP New transporter](../commands/imap-new-transporter.md) command. Ofrecen las siguientes propiedades y funciones: +Los objetos IMAP Transporter se instancian con el comando [IMAP New transporter](../commands/imap-new-transporter.md). Ofrecen las siguientes propiedades y funciones: | | | ------------------------------------------------------------------------------------------------------------------------------------------------------------------- | @@ -57,7 +57,7 @@ IMAP Transporter objects are instantiated with the [IMAP New transporter](../com #### Descripción -La función `4D.IMAPTransporter.new()` crea y devuelve un nuevo objeto de tipo `4D.IMAPTransporter`. It is identical to the [`IMAP New transporter`](../commands/imap-new-transporter.md) command (shortcut). +La función `4D.IMAPTransporter.new()` crea y devuelve un nuevo objeto de tipo `4D.IMAPTransporter`. Es idéntico al comando [`IMAP New transporter`](../commands/imap-new-transporter.md) (acceso directo). @@ -794,7 +794,7 @@ Cada objeto de la colección devuelta contiene las siguientes propiedades: | Propiedad | Tipo | Descripción | | ------------------------------------------------------------------------------------ | ------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | | \[].name | Text | Nombre del buzón. Devuelto si withBoxProperties=true o withBoxInfo=true | -| \[].selectable | Boolean | Indicates whether or not the access rights allow the mailbox to be selected:
  • true - the mailbox can be selected
  • false - the mailbox can not be selected
Returned if withBoxProperties=true | +| \[].selectable | Boolean | Indica si los derechos de acceso permiten o no seleccionar el buzón de correo:
  • true - el buzón puede ser seleccionado
  • false - el buzón de correo no puede ser seleccionado
Devuelto si withBoxProperties=true | | \[].inferior | Boolean | Indica si los derechos de acceso permiten o no crear una jerarquía inferior en el buzón:
  • true - se puede crear un nivel inferior
  • false - no se puede crear un nivel inferior
Se devuelve si withBoxProperties=true | | \[].interesting | Boolean | Indica si el buzón ha sido marcado como "interesante" por el servidor:
  • true - El buzón ha sido marcado como "interesante" por el servidor. Por ejemplo, puede contener nuevos mensajes.
  • false - El buzón no ha sido marcado como "interesante" por el servidor.
Devuelto si withBoxProperties=true | | [].mailCount | Number | Número de mensajes en el buzón. Devuelto si withBoxInfo=true | diff --git a/i18n/es/docusaurus-plugin-content-docs/current/API/IncomingMessageClass.md b/i18n/es/docusaurus-plugin-content-docs/current/API/IncomingMessageClass.md new file mode 100644 index 00000000000000..690ebec2a9718e --- /dev/null +++ b/i18n/es/docusaurus-plugin-content-docs/current/API/IncomingMessageClass.md @@ -0,0 +1,349 @@ +--- +id: IncomingMessageClass +title: IncomingMessage +--- + +The `4D.IncomingMessage` class allows you to handle the object received by a custom [**HTTP request handler**](../WebServer/http-request-handler.md). HTTP requests and their properties are automatically received as an instance of the `4D.IncomingMessage` class. Parameters given directly in the request with GET verb are handled by the [`.urlQuery`](#urlquery) property, while parameters passed in the body of the request are available through functions such as [`.getBlob()`](#getblob) or [`getText()`](#gettext). + +The HTTP request handler can return any value (or nothing). It usually returns an instance of the [`4D.OutgoingMessage`](OutgoingMessageClass.md) class. + +All properties of this class are read-only. They are automatically filled by the request handler. + +
Historia + +| Lanzamiento | Modificaciones | +| ----------- | -------------- | +| 20 R8 | Clase añadida | + +
+ +### Ejemplo + +The following [**HTTPHandlers.json** file](../WebServer/http-request-handler.md) has been defined: + +```json +[ + { + "class": "GeneralHandling", + "method": "gettingStarted", + "pattern": "start", + "verbs": "get, post" + } +] +``` + +The `http://127.0.0.1/start/example?param=demo&name=4D` request is run with a `GET` verb in a browser. It is handled by the *gettingStarted* function of the following *GeneralHandling* singleton class: + +```4d +shared singleton Class constructor() + +Function gettingStarted($request : 4D.IncomingMessage) : 4D.OutgoingMessage + + var $result:=4D.OutgoingMessage.new() + var $body : Text + + $body:="Called URL: "+$request.url+"\n" + + $body+="The parameters are received as an object: \n"+JSON Stringify($request.urlQuery; *)+"\n" + + $body+="The verb is: "+$request.verb+"\n" + + $body+="There are "+String($request.urlPath.length)+" url parts - Url parts are: "\ + +$request.urlPath.join(" - ")+"\n\n" + + + $result.setBody($body) + $result.setHeader("Content-Type"; "text/plain") + + return $result + +``` + +The request is received on the server as *$request*, an object instance of the [4D.IncomingMessage class](../API/IncomingMessageClass.md). + +Here is the response: + +```json +Called URL: /start/example? param=demo&name=4D +The parameters are received as an object: +{ + "param": "demo", + "name": "4D" +} +The verb is: GET +There are 2 url parts - Url parts are: start - example +``` + +### IncomingMessage Object + +4D.IncomingMessage objects provide the following properties and functions: + +| | +| ----------------------------------------------------------------------------------------------------------------------------------------- | +| [](#getblob)
| +| [](#getheader)
| +| [](#getjson)
| +| [](#getpicture)
| +| [](#gettext)
| +| [](#headers)
| +| [](#url)
| +| [](#urlPath)
| +| [](#urlQuery)
| +| [](#verb)
| + +:::note + +A 4D.IncomingMessage object is a [non-sharable](../Concepts/shared.md) object. + +::: + + + +## .getBlob() + +**.getBlob**() : Blob + + + +| Parámetros | Tipo | | Descripción | +| ---------- | ---- | --------------------------- | ----------------------------- | +| Result | Blob | <- | Body of the request as a Blob | + + + +#### Descripción + +The `.getBlob()` function returns the body of the request as a Blob. + +If the body has not been given as a binary content, the function tries to convert the value but it can give unexpected results. + + + + + +## .getHeader() + +**.getHeader**( *key* : Text ) : Text + + + +| Parámetros | Tipo | | Descripción | +| ---------- | ---- | --------------------------- | ------------------------------------ | +| key | Text | -> | Header property to get | +| Result | Text | <- | Valor de la propiedad del encabezado | + + + +#### Descripción + +The `.getHeader()` function returns the value of the *key* header. + +:::note + +The *key* parameter is not case sensitive. + +::: + +#### Ejemplo + +```4d +var $value : Text +var $request : 4D.IncomingMessage +$value := $request.getHeader("content-type") +``` + + + + + +## .getJSON() + +**.getJSON**() : Variant + + + +| Parámetros | Tipo | | Descripción | +| ---------- | ------- | --------------------------- | ------------------------------------------ | +| Result | Variant | <- | JSON resolution of the body of the request | + + + +#### Descripción + +The `.getJSON()` function returns the body of the request as a JSON resolution. + +If the body has not been given as JSON valid content, an error is raised. + + + + + +## .getPicture() + +**.getPicture**() : Picture + + + +| Parámetros | Tipo | | Descripción | +| ---------- | ------- | --------------------------- | ------------------------------ | +| Result | Picture | <- | Body of the request as picture | + + + +#### Descripción + +The `.getPicture()` function returns the body of the request as a picture (in case of a body sent as a picture). + +The content-type must be given in the headers to indicate that the body is a picture. + +:::note + +If the request is built using the [`HTTPRequest` class](HTTPRequestClass.md), the picture must be sent in the body as a Blob with the appropriate content-type. + +::: + +If the body is not received as a valid picture, the function returns null. + + + + + +## .getText() + +**.getText**() : Text + + + +| Parámetros | Tipo | | Descripción | +| ---------- | ---- | --------------------------- | --------------------------- | +| Result | Text | <- | Body of the request as text | + + + +#### Descripción + +The `.getText()` function returns the body of the request as a text value. + +If the body has not been given as a string value, the function tries to convert the value but it can give unexpected results. + + + + + +## .headers + +**headers** : Object + +#### Descripción + +The `.headers` property contains the current headers of the incoming message as key/value pairs (strings). + +La propiedad `.headers` es de sólo lectura. + +Header names (keys) are lowercased. Note header names are case sensitive. + + + + + +## .url + +**url** : Text + +#### Descripción + +The `.url` property contains the URL of the request without the *IP:port* part and as a string. + +For example, if the request is addressed to: "http://127.0.0.1:80/docs/invoices/today", the `.url` property is "/docs/invoices/today". + +The `.url` property is read-only. + +:::note + +The "host" part of the request (*IP:port*) is provided by the [`host` header](#headers). + +::: + + + + + +## .urlPath + +**urlPath** : Collection + +#### Descripción + +The `.urlPath` property contains the URL of the request without the *IP:port* part and as a collection of strings. + +For example, if the request is addressed to: "http://127.0.0.1:80/docs/invoices/today", the `.urlPath` property is ["docs", "invoices" ,"today"]. + +The `.urlPath` property is read-only. + + + + + +## .urlQuery + +**urlQuery** : Object + +#### Descripción + +The `.urlQuery` property contains the parameters of the request when they have been given in the URL as key/value pairs. + +The `.urlQuery` property is read-only. + +Parameters can be passed in the URL of requests **directly** or **as JSON contents**. + +#### Direct parameters + +Example: `http://127.0.0.1:8044/myCall?firstname=Marie&id=2&isWoman=true` + +In this case, parameters are received as stringified values in the `urlQuery` property: `urlQuery = {"firstname":"Marie" ,"id":"2" ,"isWoman":"true"}` + +#### JSON contents parameters + +Example: `http://127.0.0.1:8044/myCall/?myparams='[{"firstname": "Marie","isWoman": true,"id": 3}]'`. + +Parameters are passed in JSON format and enclosed within a collection. + +In this case, parameters are received as JSON text in the `urlQuery` property and can be parsed using [`JSON Parse`](../commands-legacy/json-parse.md). + +```4d +//urlQuery.myparams: "[{"firstname": "Marie","isWoman": true,"id": 3}]" +$test:=Value type(JSON Parse($r.urlQuery.myparams))=Is collection) //true +``` + +Special characters such as simple quotes or carriage returns must be escaped. + +Example: `http://127.0.0.1:8044/syntax/?mdcode=%60%60%604d` + +````4d +//urlQuery.mdcode = ```4d +$test:=Length($r.urlQuery.mdcode) //5 +```` + +:::note + +Parameters given in the body of the request using POST or PUT verbs are handled through dedicated functions: [`getText()`](#gettext), [`getPicture()`](#getpicture), [`getBlob()`](#getblob), [`getJSON()`](#getjson). + +::: + + + + + +## .verb + +**verb** : Text + +#### Descripción + +The `.verb` property contains the verb used by the request. + +HTTP and HTTPS request verbs include for example "get", "post", "put", etc. + +The `.verb` property is read-only. + + diff --git a/i18n/es/docusaurus-plugin-content-docs/current/API/OutGoingMessageClass.md b/i18n/es/docusaurus-plugin-content-docs/current/API/OutGoingMessageClass.md index 4ff1cc8e2e3d29..aa48e9e13058c3 100644 --- a/i18n/es/docusaurus-plugin-content-docs/current/API/OutGoingMessageClass.md +++ b/i18n/es/docusaurus-plugin-content-docs/current/API/OutGoingMessageClass.md @@ -5,7 +5,7 @@ title: OutgoingMessage The `4D.OutgoingMessage` class allows you to build messages to be returned by your application functions in response to [REST requests](../REST/REST_requests.md). If the response is of type `4D.OutgoingMessage`, the REST server does not return an object but the object instance of the `OutgoingMessage` class. -Typically, this class can be used in functions declared with the [`onHttpGet`](../ORDA/ordaClasses.md#onhttpget-keyword) keyword and designed to handle HTTP GET requests. Such requests are used, for example, to implement features such as download file, generate and download picture as well as receiving any content-type via a browser. +Typically, this class can be used in custom [HTTP request handler functions](../WebServer/http-request-handler.md#function-configuration) or in functions declared with the [`onHttpGet`](../ORDA/ordaClasses.md#onhttpget-keyword) keyword and designed to handle HTTP GET requests. Such requests are used, for example, to implement features such as download file, generate and download picture as well as receiving any content-type via a browser. An instance of this class is built on 4D Server and can be sent to the browser by the [4D REST Server](../REST/gettingStarted.md) only. This class allows to use other technologies than HTTP (e.g. mobile). diff --git a/i18n/es/docusaurus-plugin-content-docs/current/API/OutgoingMessageClass.md b/i18n/es/docusaurus-plugin-content-docs/current/API/OutgoingMessageClass.md index 4ff1cc8e2e3d29..aa48e9e13058c3 100644 --- a/i18n/es/docusaurus-plugin-content-docs/current/API/OutgoingMessageClass.md +++ b/i18n/es/docusaurus-plugin-content-docs/current/API/OutgoingMessageClass.md @@ -5,7 +5,7 @@ title: OutgoingMessage The `4D.OutgoingMessage` class allows you to build messages to be returned by your application functions in response to [REST requests](../REST/REST_requests.md). If the response is of type `4D.OutgoingMessage`, the REST server does not return an object but the object instance of the `OutgoingMessage` class. -Typically, this class can be used in functions declared with the [`onHttpGet`](../ORDA/ordaClasses.md#onhttpget-keyword) keyword and designed to handle HTTP GET requests. Such requests are used, for example, to implement features such as download file, generate and download picture as well as receiving any content-type via a browser. +Typically, this class can be used in custom [HTTP request handler functions](../WebServer/http-request-handler.md#function-configuration) or in functions declared with the [`onHttpGet`](../ORDA/ordaClasses.md#onhttpget-keyword) keyword and designed to handle HTTP GET requests. Such requests are used, for example, to implement features such as download file, generate and download picture as well as receiving any content-type via a browser. An instance of this class is built on 4D Server and can be sent to the browser by the [4D REST Server](../REST/gettingStarted.md) only. This class allows to use other technologies than HTTP (e.g. mobile). diff --git a/i18n/es/docusaurus-plugin-content-docs/current/API/POP3TransporterClass.md b/i18n/es/docusaurus-plugin-content-docs/current/API/POP3TransporterClass.md index 0f33a163b661f5..b2f2de5cc45467 100644 --- a/i18n/es/docusaurus-plugin-content-docs/current/API/POP3TransporterClass.md +++ b/i18n/es/docusaurus-plugin-content-docs/current/API/POP3TransporterClass.md @@ -7,7 +7,7 @@ La clase `POP3Transporter` permite recuperar mensajes de un servidor de correo P ### Objeto POP3 Transporter -POP3 Transporter objects are instantiated with the [`POP3 New transporter`](../commands/pop3-new-transporter.md) command. Ofrecen las siguientes propiedades y funciones: +Los objetos POP3 Transporter son instanciados con el comando [`POP3 New transporter`](../commands/pop3-new-transporter.md). Ofrecen las siguientes propiedades y funciones: | | | ------------------------------------------------------------------------------------------------------------------------------------------------------------- | @@ -42,7 +42,7 @@ POP3 Transporter objects are instantiated with the [`POP3 New transporter`](../c #### Descripción -La función `4D.POP3Transporter.new()` crea y devuelve un nuevo objeto de tipo `4D.POP3Transporter`. It is identical to the [`POP3 New transporter`](../commands/pop3-new-transporter.md) command (shortcut). +La función `4D.POP3Transporter.new()` crea y devuelve un nuevo objeto de tipo `4D.POP3Transporter`. Es idéntico al comando [`POP3 New transporter`](../commands/pop3-new-transporter.md) (atajo). diff --git a/i18n/es/docusaurus-plugin-content-docs/current/API/SMTPTransporterClass.md b/i18n/es/docusaurus-plugin-content-docs/current/API/SMTPTransporterClass.md index 6225b2c4292b30..4d04332a838df1 100644 --- a/i18n/es/docusaurus-plugin-content-docs/current/API/SMTPTransporterClass.md +++ b/i18n/es/docusaurus-plugin-content-docs/current/API/SMTPTransporterClass.md @@ -7,7 +7,7 @@ La clase `SMTPTransporter` permite configurar conexiones SMTP y enviar correos e ### Objeto SMTP Transporter -SMTP Transporter objects are instantiated with the [`SMTP New transporter`](../commands/smtp-new-transporter.md) command. Ofrecen las siguientes propiedades y funciones: +Los objetos SMTP Transporter son instanciados con el comando [`SMTP New transporter`](../commands/smtp-new-transporter.md). Ofrecen las siguientes propiedades y funciones: | | | ------------------------------------------------------------------------------------------------------------------------------------------------------------- | @@ -40,7 +40,7 @@ SMTP Transporter objects are instantiated with the [`SMTP New transporter`](../c #### Descripción -La función `4D.SMTPTransporter.new()` crea y devuelve un nuevo objeto del tipo `4D.SMTPTransporter`. It is identical to the [`SMTP New transporter`](../commands/smtp-new-transporter.md) command (shortcut). +La función `4D.SMTPTransporter.new()` crea y devuelve un nuevo objeto del tipo `4D.SMTPTransporter`. Es idéntico al comando [`SMTP New transporter`](../commands/smtp-new-transporter.md) (acceso directo). diff --git a/i18n/es/docusaurus-plugin-content-docs/current/API/SessionClass.md b/i18n/es/docusaurus-plugin-content-docs/current/API/SessionClass.md index 3a5b1f072f34d3..4f183829617b29 100644 --- a/i18n/es/docusaurus-plugin-content-docs/current/API/SessionClass.md +++ b/i18n/es/docusaurus-plugin-content-docs/current/API/SessionClass.md @@ -3,7 +3,7 @@ id: SessionClass title: Session --- -Session objects are returned by the [`Session`](../commands/session.md) command. Estos objetos ofrecen al desarrollador una interfaz que permite gestionar la sesión de usuario actual y ejecutar acciones como almacenar datos contextuales, compartir información entre procesos de sesión, lanzar procesos preferentes relacionados con la sesión o (sólo web) gestionar [privilegios](../ORDA/privileges.md). +Los objetos de sesión son devueltos por el comando [`Session`](../commands/session.md). Estos objetos ofrecen al desarrollador una interfaz que permite gestionar la sesión de usuario actual y ejecutar acciones como almacenar datos contextuales, compartir información entre procesos de sesión, lanzar procesos preferentes relacionados con la sesión o (sólo web) gestionar [privilegios](../ORDA/privileges.md). ### Tipos de sesiones @@ -12,7 +12,7 @@ The following types of sessions are supported by this class: - [**Sesiones usuario web**](WebServer/sessions.md): las sesiones usuario web están disponibles cuando [las sesiones escalables están activas en su proyecto](WebServer/sessions.md#enabling-sessions). Se utilizan para conexiones Web y REST, y se les pueden asignar privilegios. - [Sesiones usuario cliente remoto\*\*](../Desktop/clientServer.md#remote-user-sessions): en las aplicaciones cliente/servidor, los usuarios remotos tienen sus propias sesiones gestionadas en el servidor. - [**Sesión de procedimientos almacenados**](https://doc.4d.com/4Dv20R5/4D/20-R5/4D-Server-and-the-4D-Language.300-6932726.en.html): todos los procedimientos almacenados ejecutados en el servidor comparten la misma sesión usuario virtual. -- [**Standalone session**](../Project/overview.md#development): Local session object returned in single-user application (useful in development and test phases of client/server applications). +- [**Sesión independiente**](../Project/overview.md#development): objeto de sesión local devuelto en una aplicación de un solo usuario (útil en las fases de desarrollo y prueba de aplicaciones cliente/servidor). :::note @@ -271,11 +271,11 @@ End if #### Descripción -The `.id` property contains the unique identifier (UUID) of the user session. With 4D Server, this unique string is automatically assigned by the server for each session and allows you to identify its processes. +La propiedad `.id` contiene el identificador único (UUID) de la sesión de usuario. With 4D Server, this unique string is automatically assigned by the server for each session and allows you to identify its processes. :::tip -You can use this property to get the [`.storage`](#storage) object of a session thanks to the [`Session storage`](../commands/session-storage.md) command. +Puede utilizar esta propiedad para obtener el objeto [`.storage`](#storage) de una sesión gracias al comando [`Session storage`](../commands/session-storage.md). ::: @@ -351,12 +351,12 @@ This property is only available with remote client, stored procedure, and standa ::: -The `.info` property describes the remote client or stored procedure session on the server, or the standalone session. +La propiedad `.info` describe la sesión del cliente remoto o del procedimiento almacenado en el servidor, o la sesión autónoma. :::note - El objeto `.info` es el mismo objeto que el devuelto en la propiedad "session" por el comando [`Process activity`](../commands/process-activity.md) para sesiones de cliente remoto y procedimientos almacenados. -- The `.info` object is the same object as the one returned by the [`Session info`](../commands/session-info.md) command for a standalone session. +- El objeto `.info` es el mismo que devuelve el comando [`Session info`](../commands/session-info.md) para una sesión autónoma. ::: diff --git a/i18n/es/docusaurus-plugin-content-docs/current/API/SignalClass.md b/i18n/es/docusaurus-plugin-content-docs/current/API/SignalClass.md index 0e579eed98cfa9..ab6418eaee23f2 100644 --- a/i18n/es/docusaurus-plugin-content-docs/current/API/SignalClass.md +++ b/i18n/es/docusaurus-plugin-content-docs/current/API/SignalClass.md @@ -126,7 +126,7 @@ Esta propiedad está en **lectura-escritura**. #### Descripción -Lanzamiento Cuando se crea la señal, `.signaled` es **False**. La propiedad `.signaled` se convierte en true cuando cualquier worker/proceso llama al método `.trigger()`. +Lanzamiento Lanzamiento Lanzamiento Lanzamiento Lanzamiento Cuando se crea la señal, `.signaled` es **False**. La propiedad `.signaled` se convierte en true cuando cualquier worker/proceso llama al método `.trigger()`. Esta propiedad es de **solo lectura**. @@ -158,7 +158,7 @@ Esta propiedad es de **solo lectura**. La función `.trigger( )` define la propiedad `signaled` del objeto signal como **true** y despierta a todos los workers o procesos que esperan esta signal. -Si la señal ya está en el estado de señalización (es decir, la propiedad signaled\\` ya es **true**), la función no hace nada. +Si la señal ya está en el estado de señalización (es decir, la propiedad signaled\\\\\\` ya es **true**), la función no hace nada. diff --git a/i18n/es/docusaurus-plugin-content-docs/current/Backup/backup.md b/i18n/es/docusaurus-plugin-content-docs/current/Backup/backup.md index 78bd323cd76421..19b3f421e45d7b 100644 --- a/i18n/es/docusaurus-plugin-content-docs/current/Backup/backup.md +++ b/i18n/es/docusaurus-plugin-content-docs/current/Backup/backup.md @@ -16,7 +16,7 @@ Una copia de seguridad puede iniciarse de tres maneras: 1. Seleccione el elemento **Copia de seguridad...** en el menú **Archivo** de 4D. La ventana de copia de seguridad aparece: - ![](../assets/en/Backup/backup01. ng) + ![](../assets/en/Backup/backup01.png) Puede ver la ubicación de la carpeta de copia de seguridad usando el menú emergente junto al área de "destino de copia de seguridad". Esta ubicación se define en la página **Copia de seguridad/configuración** de las Propiedades de la base. - También puede abrir el [Centro de mantenimiento y seguridad](MSC/overview.md) de 4D y mostrar la [página de copias de seguridad](MSC/backup.md). diff --git a/i18n/es/docusaurus-plugin-content-docs/current/Concepts/classes.md b/i18n/es/docusaurus-plugin-content-docs/current/Concepts/classes.md index c3aa79e3a3f4a4..449f42d909d7a0 100644 --- a/i18n/es/docusaurus-plugin-content-docs/current/Concepts/classes.md +++ b/i18n/es/docusaurus-plugin-content-docs/current/Concepts/classes.md @@ -107,9 +107,9 @@ Las clases disponibles son accesibles desde sus class stores. Hay dos class stor -| Parámetros | Tipo | | Descripción | | -| ---------- | ------ | -------------------------------------- | ------------------------------------------------- | ---------------- | -| classStore | Object | &amp;amp;larr; | Class store usuario para el proyecto o componente | | +| Parámetros | Tipo | | Descripción | | +| ---------- | ------ | - | ------------------------------------------------- | ---------------- | +| classStore | Object | ← | Class store usuario para el proyecto o componente | | El comando `cs` devuelve el almacén de clases de usuario para el proyecto o componente actual. Devuelve todas las clases de usuario [definidas](#class-definition) en el proyecto o componente abierto. Por defecto, sólo las [clases ORDA](ORDA/ordaClasses.md) están disponibles. @@ -127,9 +127,9 @@ $instance:=cs.myClass.new() -| Parámetros | Tipo | | Descripción | | -| ---------- | ------ | -------------------------------------- | -------------- | ---------------- | -| classStore | Object | &amp;amp;larr; | Class store 4D | | +| Parámetros | Tipo | | Descripción | | +| ---------- | ------ | - | -------------- | ---------------- | +| classStore | Object | ← | Class store 4D | | El comando `4D` devuelve el almacén de clases para las clases 4D integradas. Ofrece acceso a las APIs específicas como [CryptoKey](API/CryptoKeyClass.md). @@ -158,7 +158,7 @@ Cuando una clase es [definida](#class-definition) en el proyecto, se carga en el - función [`new()`](API/ClassClass.md#new), que permite instanciar objetos de clase - propiedad [`isShared`](API/ClassClass.md#isshared), true si la clase es [compartida](#clases-compartidas) - propiedad [`isSingleton`](API/ClassClass.md#issingleton), verdadero si la clase define una [clase singleton](#singleton-classes). -- [`isSectionSingleton`](API/ClassClass.md#issectionsingleton) property, true if the class defines a [session singleton](#singleton-classes). +- propiedad [`isSectionSingleton`](API/ClassClass.md#issectionsingleton), true si la clase define un [singleton de sesión](#singleton-classes). - Propiedad [`me`](API/ClassClass.md#me), que permite instanciar y acceder a [singletons](#singleton-classes). Además, un objeto clase puede hacer referencia a un objeto [`constructor`](#class-constructor) (opcional). @@ -341,7 +341,7 @@ Una función constructora de clase acepta [parámetros](#parameters) opcionales Cuando llama a la función [`new()`](API/ClassClass.md#new), el constructor de clase es llamado con los parámetros opcionalmente pasados a la función `new()`. -Sólo puede haber una función constructora en una clase (de lo contrario se devuelve un error). The [`Super`](../commands/super.md) command allows calls to the [`superclass`](../API/ClassClass#superclass), i.e. the parent class of the function. +Sólo puede haber una función constructora en una clase (de lo contrario se devuelve un error). El comando [`Super`](../commands/super.md) permite realizar llamadas a [`superclass`](../API/ClassClass#superclass), es decir, a la clase padre de la función. Puede crear y escribir propiedades de instancia dentro del constructor (ver ejemplo). Alternativamente, si los valores de las propiedades de instancia no dependen de los parámetros pasados al constructor, puede definirlos utilizando la palabra clave [`property`](#property). @@ -612,18 +612,18 @@ The following commands have specific features when they are used within class fu ### `Super` -The [`Super`](../commands/super.md) command allows calls to the [`superclass`](../API/ClassClass#superclass), i.e. the parent class of the function. Sólo puede haber una función constructora en una clase (de lo contrario se devuelve un error). +El comando [`Super`](../commands/super.md) permite realizar llamadas a [`superclass`](../API/ClassClass#superclass), es decir, a la clase padre de la función. Sólo puede haber una función constructora en una clase (de lo contrario se devuelve un error). -For more details, see the [`Super`](../commands/super.md) command description. +Para más detalles, vea la descripción del comando [`Super`](../commands/super.md). ### `This` -The [`This`](../commands/this.md) command returns a reference to the currently processed object. In most cases, the value of `This` is determined by how a class function is called. Usually, `This` refers to the object the function was called on, as if the function were on the object. +El comando [`This`](../commands/this.md) devuelve una referencia al objeto procesado actualmente. In most cases, the value of `This` is determined by how a class function is called. Usually, `This` refers to the object the function was called on, as if the function were on the object. Ejemplo: ```4d -//Class: ob +//Clase: ob Function f() : Integer return This.a+This.b @@ -638,7 +638,7 @@ $o.b:=3 $val:=$o.f() //8 ``` -For more details, see the [`This`](../commands/this.md) command description. +Para más detalles, vea la descripción del comando [`This`](../commands/this.md). ## Comandos de clases @@ -713,7 +713,7 @@ Si se utiliza la palabra clave `shared` en una clase usuario no compartida, se i ## Clases Singleton -Una **clase singleton** es una clase usuario que sólo produce una única instancia. For more information on the concept of singletons, please see the [Wikipedia page about singletons](https://en.wikipedia.org/wiki/Singleton_pattern). +Una **clase singleton** es una clase usuario que sólo produce una única instancia. Para más información sobre el concepto de singletons, por favor consulte la [página Wikipedia sobre los singletons](https://en.wikipedia.org/wiki/Singleton_pattern). ### Tipos de Singletons @@ -721,7 +721,7 @@ Una **clase singleton** es una clase usuario que sólo produce una única instan - a **process singleton** has a unique instance for the process in which it is instantiated, - a **shared singleton** has a unique instance for all processes on the machine. -- a **session singleton** is a shared singleton but with a unique instance for all processes in the [session](../API/SessionClass.md). Session singletons are shared within an entire session but vary between sessions. In the context of a client-server or a web application, session singletons make it possible to create and use a different instance for each session, and therefore for each user. +- un **singleton de sesión** es un singleton compartido pero con una instancia única para todos los procesos en la [sesión](../API/SessionClass.md). Session singletons are shared within an entire session but vary between sessions. In the context of a client-server or a web application, session singletons make it possible to create and use a different instance for each session, and therefore for each user. Singletons are useful to define values that need to be available from anywhere in an application, a session, or a process. @@ -745,14 +745,14 @@ Una vez instanciado, existe una clase singleton (y su singleton) siempre que exi Se declaran clases singleton añadiendo la(s) palabra(s) clave(s) apropiada(s) antes del [`Class constructor`](#class-constructor): -- To declare a (process) singleton class, write `singleton Class Constructor()`. -- To declare a shared singleton class, write `shared singleton Class constructor()`. -- To declare a session singleton class, write `session singleton Class constructor()`. +- Para declarar una clase singleton (proceso), escriba `singleton Class Constructor()`. +- Para declarar una clase singleton compartida, escribe `shared singleton Class constructor()`. +- Para declarar una clase singleton de sesión, escriba `session singleton Class constructor()`. :::note -- Session singletons are automatically shared singletons (there's no need to use the `shared` keyword in the class constructor). -- Singleton shared functions support [`onHttpGet` keyword](../ORDA/ordaClasses.md#onhttpget-keyword). +- Los singletons de sesión son automáticamente singletons compartidos (no hay necesidad de usar la palabra clave `shared` en el constructor de clases). +- Las funciones compartidas Singleton soportan [palabra clave `onHttpGet`](../ORDA/ordaClasses.md#onhttpget-keyword). ::: @@ -762,7 +762,7 @@ Si necesita instanciar un singleton con parámetros, también puede llamar la fu La propiedad [`isSingleton`](../API/ClassClass.md#issingleton) de los objetos Clase permite saber si la clase es un singleton. -The [`.isSessionSingleton`](../API/ClassClass.md#issessionsingleton) property of Class objects allows to know if the class is a session singleton. +La propiedad [`.isSessionSingleton`](../API/ClassClass.md#issessionsingleton) de los objetos Class permite saber si la clase es un singleton de sesión. ### Ejemplos @@ -856,4 +856,4 @@ $myList := cs.ItemInventory.me.itemList #### Ver también -[Singletons in 4D](https://blog.4d.com/singletons-in-4d) (blog post)
[Session Singletons](https://blog.4d.com/introducing-session-singletons) (blog post). +[Singletons en 4D](https://blog.4d.com/singletons-in-4d) (post del blog)
[Singletons de sesión](https://blog.4d.com/introducing-session-singletons) (post del blog). diff --git a/i18n/es/docusaurus-plugin-content-docs/current/Concepts/dt_collection.md b/i18n/es/docusaurus-plugin-content-docs/current/Concepts/dt_collection.md index c057af90892ba8..e867d76d8e4ca4 100644 --- a/i18n/es/docusaurus-plugin-content-docs/current/Concepts/dt_collection.md +++ b/i18n/es/docusaurus-plugin-content-docs/current/Concepts/dt_collection.md @@ -46,18 +46,18 @@ Las colecciones deben haber sido instanciadas, de lo contrario intentar leer o m La instanciación de la colección puede realizarse de una de las siguientes maneras: -- using the [`New collection`](../commands/new-collection.md) command, +- usando el comando [`New collection`](../commands/new-collection.md) - utilizando el operador `[]`. :::info -Several 4D commands and functions return collections, for example [`Monitored activity`](../commands-legacy/monitored-activity.md) or [`collection.copy`](../API/CollectionClass.md#copy). En este caso, no es necesario instanciar explícitamente la colección, el lenguaje 4D lo hace por usted. +Varios comandos y funciones 4D devuelven colecciones, por ejemplo [`Monitored activity`](../commands-legacy/monitored-activity.md) o [`collection.copy`](../API/CollectionClass.md#copy). En este caso, no es necesario instanciar explícitamente la colección, el lenguaje 4D lo hace por usted. ::: ### Comando `New collection` -The [`New collection`](../commands/new-collection.md) command creates a new empty or prefilled collection and returns its reference. +El comando [`New collection`](../commands/new-collection.md) crea una nueva colección vacía o prellenada y devuelve su referencia. Ejemplos: @@ -105,8 +105,8 @@ Si crea un literal de colección que contenga un único elemento, asegúrese de Puede crear dos tipos de colecciones: -- regular (non-shared) collections, using the [`New collection`](commands/new-collection.md) command or collection literal syntax (`[]`). Estas colecciones pueden ser editadas sin ningún control de acceso específico, pero no pueden ser compartidas entre procesos. -- shared collections, using the [`New shared collection`](commands/new-shared-collection.md) command. Estas colecciones pueden ser compartidas entre procesos, incluidos los hilos apropiativos. El acceso a estas colecciones se controla mediante estructuras [`Use...End use`](Concepts/shared.md#useend-use). +- las colecciones estándar (no compartidas), utilizando el comando [`New collection`](commands/new-collection.md) o la sintaxis literal de la colección (`[]`). Estas colecciones pueden ser editadas sin ningún control de acceso específico, pero no pueden ser compartidas entre procesos. +- las colecciones compartidas, utilizando el comando [`New shared collection`](commands/new-shared-collection.md). Estas colecciones pueden ser compartidas entre procesos, incluidos los hilos apropiativos. El acceso a estas colecciones se controla mediante estructuras [`Use...End use`](Concepts/shared.md#useend-use). Para más información, consulte la sección [Objetos y colecciones compartidos](shared.md). diff --git a/i18n/es/docusaurus-plugin-content-docs/current/Concepts/dt_object.md b/i18n/es/docusaurus-plugin-content-docs/current/Concepts/dt_object.md index 16a56206980dc4..9e7a31ad9fd220 100644 --- a/i18n/es/docusaurus-plugin-content-docs/current/Concepts/dt_object.md +++ b/i18n/es/docusaurus-plugin-content-docs/current/Concepts/dt_object.md @@ -47,7 +47,7 @@ La instanciación de objetos puede realizarse de una de las siguientes maneras: :::info -Several 4D commands and functions return objects, for example [`Database measures`](https://doc.4d.com/4Dv19R7/4D/19-R7/database-measures.301-5945423.en.html) or [`File`](../commands/file.md). En este caso, no es necesario instanciar explícitamente el objeto, el lenguaje 4D lo hace por usted. +Varias funciones y comandos 4D devuelven objetos, por ejemplo [`Database measures`](https://doc.4d.com/4Dv19R7/4D/19-R7/database-tilizes.301-5945423.en.html) o [`File`](../commands/file.md). En este caso, no es necesario instanciar explícitamente el objeto, el lenguaje 4D lo hace por usted. ::: diff --git a/i18n/es/docusaurus-plugin-content-docs/current/Concepts/parameters.md b/i18n/es/docusaurus-plugin-content-docs/current/Concepts/parameters.md index 3c2a6b91e83bee..48fed64ca4769b 100644 --- a/i18n/es/docusaurus-plugin-content-docs/current/Concepts/parameters.md +++ b/i18n/es/docusaurus-plugin-content-docs/current/Concepts/parameters.md @@ -451,11 +451,11 @@ Cuando los parámetros opcionales son necesarios en sus métodos, también puede Cuando pasa un parámetro, 4D siempre evalúa la expresión del parámetro en el contexto del método que llama y define el **valor resultante** en las variables locales en la función de clase o la subrutina. Las variables/parámetros locales no son los campos, variables o expresiones reales pasados por el método que llama; sólo contienen los valores que se han pasado. Las variables/parámetros locales no son los campos, variables o expresiones reales pasados por el método que llama; sólo contienen los valores que se han pasado. Por ejemplo: ```4d - //Here is some code from the method MY_METHOD -DO_SOMETHING([People]Name) //Let's say [People]Name value is "williams" + //Aquí hay un código del método MY_METHOD +DO_SOMETHING([People]Name) ///Digamos [People]El valor del nombre es "williams" ALERT([People]Name) - //Here is the code of the method DO_SOMETHING + //Aquí está el código del método DO_SOMETHING #DECLARE($param : Text) $param:=Uppercase($param) ALERT($param) @@ -468,11 +468,11 @@ Hay dos formas de hacer que el método `DO_SOMETHING` cambie el valor del campo: 1. En lugar de pasar el campo al método, se pasa un puntero al mismo, por lo que se escribiría: ```4d - //Here is some code from the method MY_METHOD -DO_SOMETHING(->[People]Name) //Let's say [People]Name value is "williams" + //Aquí hay un código del método MY_METHOD +DO_SOMETHING(->[People]Name) ///Digamos [People]El valor del nombre es "williams" ALERT([People]Last Name) - //Here the code of the method DO_SOMETHING + //Aquí el código del método DO_SOMETHING #DECLARE($param : Text) $param->:=Uppercase($param->) ALERT($param->) @@ -483,11 +483,11 @@ Aquí el parámetro no es el campo, sino un puntero al mismo. Therefore, within 2. En lugar de que el método `DO_SOMETHING` "haga algo", puede reescribir el método para que devuelva un valor. Por lo tanto, escribiría: ```4d - //Here is some code from the method MY METHOD - [People]Name:=DO_SOMETHING([People]Name) //Let's say [People]Name value is "williams" + //Aquí hay un código del método MY METHOD + [People]Name:=DO_SOMETHING([People]Name) ///Digamos [People]El valor del nombre es "williams" ALERT([People]Name) - //Here the code of the method DO SOMETHING + //Aquí el código del método DO SOMETHING #DECLARE ($param : Text) -> ($result : Text) $result:=Uppercase($param) ALERT($result) @@ -499,7 +499,7 @@ This second technique of returning a value by a subroutine is called "using a fu Debe prestar atención al hecho de que los tipos de datos Objeto y Colección sólo pueden manejarse a través de una referencia (es decir, un _puntero_ interno). -Consequently, when using such data types as parameters, `$param, $return...` do not contain _values_ but _references_. Modifying the value of the `$param, $return...` parameters within the subroutine will be propagated wherever the source object or collection is used. This is the same principle as for [pointers](dt_pointer.md#pointers-as-parameters-to-methods), except that `$param, $return...` parameters do not need to be dereferenced in the subroutine. +Consequently, when using such data types as parameters, `$param, $return...` do not contain _values_ but _references_. Modifying the value of the `$param, $return...` parameters within the subroutine will be propagated wherever the source object or collection is used. Este es el mismo principio que para [los punteros](dt_pointer.md#pointers-as-parameters-to-methods), excepto que los parámetros `$param, $return...` no necesitan ser desreferenciados en la subrutina. Por ejemplo, considere el método `CreatePerson` que crea un objeto y lo envía como parámetro: diff --git a/i18n/es/docusaurus-plugin-content-docs/current/Concepts/paths.md b/i18n/es/docusaurus-plugin-content-docs/current/Concepts/paths.md index fe9ec5a6e30ef0..1e648fd247850a 100644 --- a/i18n/es/docusaurus-plugin-content-docs/current/Concepts/paths.md +++ b/i18n/es/docusaurus-plugin-content-docs/current/Concepts/paths.md @@ -41,7 +41,7 @@ Con esta sintaxis: - los nombres de ruta absolutos empiezan por "/" - para subir una carpeta en una ruta relativa, utilice "../" delante del nombre de la ruta (por seguridad, no puede subir en el sistema de archivos). -In POSIX syntax, you will generally use `filesystem` pathnames with [`File`](../commands/file.md) and [`Folder`](../commands/folder.md) commands, for example: +En la sintaxis POSIX, generalmente usará los nombres de ruta `filesystem` con comandos [`File`](../commands/file.md) y [`Folder`](../commands/folder.md), por ejemplo: ```4d var $pathFile : 4D.File @@ -62,7 +62,7 @@ Se soportan los siguientes modelos: - el texto contiene ":" y "\" como segundo y tercer caracter, - el texto comienza con "\\". -Examples with [`Folder`](../commands/folder.md): +Ejemplos con [`Folder`](../commands/folder.md): ```4d $ok:=Folder("C:\\Monday";fk platform path).create() @@ -82,7 +82,7 @@ Se soportan los siguientes modelos (sintaxis HFS+): - los separadores de carpetas son ":" - la ruta no debe comenzar con un ":" -Examples with [`Folder`](../commands/folder.md): +Ejemplos con [`Folder`](../commands/folder.md): ```4d $ok:=Folder("macintosh hd:";fk platform path).create() @@ -93,7 +93,7 @@ $ok:=Folder("Monday:Tuesday";fk platform path).create() //un volume debe llamars ### Constructores `File` y `Folder` -[`File`](../commands/file.md) and [`Folder`](../commands/folder.md) commands only accept **absolute pathnames**. Las rutas relativas no están soportadas y devolverán errores. Por ejemplo, el siguiente código no es permitido: +Los comandos [`File`](../commands/file.md) y [`Folder`](../commands/folder.md) sólo aceptan **rutas absolutas**. Las rutas relativas no están soportadas y devolverán errores. Por ejemplo, el siguiente código no es permitido: ```4d //ERROR diff --git a/i18n/es/docusaurus-plugin-content-docs/current/Concepts/shared.md b/i18n/es/docusaurus-plugin-content-docs/current/Concepts/shared.md index a3a8f001b481ab..10af725a52701f 100644 --- a/i18n/es/docusaurus-plugin-content-docs/current/Concepts/shared.md +++ b/i18n/es/docusaurus-plugin-content-docs/current/Concepts/shared.md @@ -8,7 +8,7 @@ title: Objetos y colecciones compartidos Los objetos compartidos y las colecciones compartidas se almacenan en variables estándar [`Object`](dt_object.md) y [`Collection`](dt_collection.md), pero deben instanciarse utilizando comandos específicos: - para crear un objeto compartido, utilice el comando [`New shared object`](https://doc.4d.com/4dv20/help/command/en/page1471.html) o llama a la función [`new()`](../API/ClassClass.md#new) de una [clase compartida](classes.md#clases-compartidas), -- to create a shared collection, use the [`New shared collection`](../commands/new-shared-collection.md) command. +- para crear una colección compartida, utilice el comando [`New shared collection`](../commands/new-shared-collection.md). Los objetos y colecciones compartidas solo pueden contener valores escalares u otros objetos y colecciones compartidas. Sin embargo, los objetos y colecciones compartidos pueden establecerse como propiedades de objetos o colecciones estándar (no compartidos). diff --git a/i18n/es/docusaurus-plugin-content-docs/current/Concepts/variables.md b/i18n/es/docusaurus-plugin-content-docs/current/Concepts/variables.md index a91816761242b9..1f2e95f5ce8d1e 100644 --- a/i18n/es/docusaurus-plugin-content-docs/current/Concepts/variables.md +++ b/i18n/es/docusaurus-plugin-content-docs/current/Concepts/variables.md @@ -49,7 +49,7 @@ var $myVar //una variable variant ``` `varName` es el nombre de la variable, debe cumplir con las [reglas 4D](Concepts/identifiers.md) sobre identificadores. -This syntax only supports [local and process variables](#local-process-and-interprocess-variables) declarations, thus excluding [interprocess variables](#interprocess-variables) (deprecated) and [arrays](Concepts/arrays.md). +Esta sintaxis solo soporta declaraciones de [variables locales y de proceso](#local-process-and-interprocess-variables), por lo que excluye [variables interproceso](#interprocess-variables) (obsoleto) y [arrays](Concepts/arrays.md). `varType` puede ser: @@ -163,7 +163,7 @@ var $a; $b : Integer:=15 //error ## Asignar los valores -Los datos pueden introducirse y copiarse en variables y arrays. Poner datos en una variable se llama **asignar los datos a la variable** y se hace con el operador de asignación (:=). El operador de asignación también se utiliza para asignar datos a campos. +Los datos pueden introducirse y copiarse en variables y arrays. Los datos pueden introducirse y copiarse en variables y arrays. El operador de asignación también se utiliza para asignar datos a campos. El operador de asignación es un primer medio para crear una variable e introducir datos en ella. Se escribe el nombre de la variable que se quiere crear a la izquierda del operador de asignación. Por ejemplo: @@ -201,7 +201,7 @@ El nombre de una variable local siempre comienza por el signo dólar ($) y puede Cuando se trabaja en un proyecto de aplicación con muchos métodos y variables, a menudo se encuentra que se necesita utilizar una variable sólo dentro del método en el que se está trabajando. Puede crear y utilizar una variable local en el método sin preocuparse de si ha utilizado el mismo nombre de variable en otro lugar. -Con frecuencia, en una aplicación, se necesitan pequeñas piezas de información del usuario. El comando `Request` puede obtener esta información. Muestra una caja de diálogo con un mensaje que solicita al usuario una respuesta. Cuando el usuario introduce la respuesta, el comando devuelve la información que el usuario introdujo. Generalmente no es necesario mantener esta información en sus métodos durante mucho tiempo. Esta es una forma típica de utilizar una variable local. Aquí un ejemplo: +Con frecuencia, en una aplicación, se necesitan pequeñas piezas de información del usuario. Con frecuencia, en una aplicación, se necesitan pequeñas piezas de información del usuario. Muestra una caja de diálogo con un mensaje que solicita al usuario una respuesta. Cuando el usuario introduce la respuesta, el comando devuelve la información que el usuario introdujo. Generalmente no es necesario mantener esta información en sus métodos durante mucho tiempo. Esta es una forma típica de utilizar una variable local. Aquí un ejemplo: ```4d $vsID:=Request("Please enter your ID:") diff --git a/i18n/es/docusaurus-plugin-content-docs/current/Debugging/debugger.md b/i18n/es/docusaurus-plugin-content-docs/current/Debugging/debugger.md index 63fe48ace8d253..6ea80858e46b29 100644 --- a/i18n/es/docusaurus-plugin-content-docs/current/Debugging/debugger.md +++ b/i18n/es/docusaurus-plugin-content-docs/current/Debugging/debugger.md @@ -3,10 +3,16 @@ id: debugger title: Debugger --- -El depurador es útil cuando se necesita detectar errores o controlar la ejecución de métodos. Le permite recorrer su código lentamente y examinar la información. Este proceso se llama "rastreo". +The 4D debugger is useful when you need to spot errors or monitor the execution of methods. Le permite recorrer su código lentamente y examinar la información. Este proceso se llama "rastreo". ![debugger-window-local](../assets/en/Debugging/debugger-window-intro.png) +:::info + +If you are used to coding with **VS Code**, you can also use this editor to debug 4D code on 4D Server after installing the [4D-Debugger](https://github.com/4d/4D-Debugger-VSCode) extension. + +::: + ## Llamada al depurador Hay varias formas de conseguir que el depurador se muestre: @@ -36,7 +42,7 @@ La ventana del depurador suele aparecer en la máquina donde se ejecuta el códi :::note Notas - Si el servidor se ejecuta en modo sin interfaz, no se puede mostrar ninguna ventana de depuración en el servidor, es necesario utilizar el depurador remoto. Ver [Depuración desde máquinas remotas](./debugging-remote.md). -- You can also [attach the Qodly Studio debugger to a 4D Server application](../WebServer/qodly-studio.md#using-qodly-debugger-on-4d-server) if you need to debug Qodly pages in a deployed environment. +- También puede [adjuntar el depurador de Qodly Studio a una aplicación 4D Server](../WebServer/qodly-studio.md#using-qodly-debugger-on-4d-server) si necesita depurar páginas Qodly en un entorno desplegado. ::: @@ -282,7 +288,7 @@ Para mostrar el tipo de parámetro, marque la opción **Mostrar tipos** en el me Después de desplegar la lista de parámetros, puede arrastrar y soltar los parámetros y los resultados de las funciones en el [Custom Watch Pane](#custom-watch-pane). -You can also use the [Call chain](https://doc.4d.com/4dv19/help/command/en/page1662.html) command to retrieve the call chain programmatically. +También puede utilizar el comando [Call chain](https://doc.4d.com/4dv19/help/command/en/page1662.html) para recuperar la cadena de llamadas por programación. ## Panel de vigilancia personalizado diff --git a/i18n/es/docusaurus-plugin-content-docs/current/Debugging/debugging-remote.md b/i18n/es/docusaurus-plugin-content-docs/current/Debugging/debugging-remote.md index 3a2985f25d366b..0e2292591693e8 100644 --- a/i18n/es/docusaurus-plugin-content-docs/current/Debugging/debugging-remote.md +++ b/i18n/es/docusaurus-plugin-content-docs/current/Debugging/debugging-remote.md @@ -19,7 +19,10 @@ Sólo un depurador puede depurar una aplicación 4D Server en un momento dado. S - el depurador local de 4D Server (por defecto) - si el servidor no está ejecutando sin interfaz. - el depurador de un cliente 4D remoto - si la sesión remota tiene acceso al modo Diseño. -- the [Qodly debugger](../WebServer/qodly-studio.md#using-qodly-debugger-on-4d-server) on 4D Server - if the server allows access to Qodly Studio. +- el [depurador Qodly](../WebServer/qodly-studio.md#using-qodly-debugger-on-4d-server) en el servidor 4D - si el servidor permite el acceso a Qodly Studio. +- the VS Code debugger, provided you installed the [4D-Debugger](https://github.com/4d/4D-Debugger-VSCode) extension. + +::: El depurador asociado es llamado cada vez que se encuentra un 4D Server: @@ -73,7 +76,7 @@ Para volver a conectar el depurador al servidor: > **Advertencia**: si se selecciona esta opción para un servidor que posteriormente se lanza en modo sin interfaz, el depurador no estará disponible para este servidor. -- En un cliente 4D remoto, esta opción se llama **Attach Remote Debugger At Startup**. Cuando se selecciona, el cliente 4D remoto intentará automáticamente adjuntar el depurador remoto en cada conexión posterior a la misma base de datos 4D Server. Si el adjunto es aceptado (ver [Rejected attachment requests](#rejected-attachment-requests)), el depurador remoto se adjunta automáticamente al cliente 4D remoto y se muestra la opción **Detach Remote Debugger**. +- Asociar al depurador Cuando se selecciona, el cliente 4D remoto intentará automáticamente adjuntar el depurador remoto en cada conexión posterior a la misma base de datos 4D Server. Depuradores adjuntos > Esta configuración se aplica por proyecto y se almacena localmente en el archivo [`.4DPreferences`](Project/architecture.md#userpreferencesusername). diff --git a/i18n/es/docusaurus-plugin-content-docs/current/Desktop/building.md b/i18n/es/docusaurus-plugin-content-docs/current/Desktop/building.md index 42b150b3896244..c577528a07bc40 100644 --- a/i18n/es/docusaurus-plugin-content-docs/current/Desktop/building.md +++ b/i18n/es/docusaurus-plugin-content-docs/current/Desktop/building.md @@ -20,7 +20,7 @@ El generador de aplicaciones le permite: Generar un paquete de proyecto puede realizarse utilizando: -- ya sea con el comando [`BUILD APPLICATION`](https://doc.4d.com/4dv20/help/command/en/page871.html), +- either the [`BUILD APPLICATION`](../commands-legacy/build-application.md) command, - o con el [diálogo Generar aplicación](#dialogo-generar-aplicacion). :::tip @@ -45,9 +45,9 @@ La generación sólo puede efectuarse una vez compilado el proyecto. Si seleccio Cada parámetro de generación de la aplicación se almacena como una llave XML en el archivo de proyecto de la aplicación llamado `buildApp.4DSettings`, ubicado en la carpeta [`Settings` del proyecto](../Project/architecture.md#settings-1). -Los parámetros por defecto se utilizan la primera vez que se utiliza la caja de diálogo del Generador de aplicaciones. El contenido del archivo proyecto se actualiza, si es necesario, al hacer clic en **Construir** o **Guardar los parámetros**. Puede definir varios archivos de parámetros XML para el mismo proyecto y utilizarlos con el comando [BUILD APPLICATION](https://doc.4d.com/4dv19/help/command/en/page871.html). +Los parámetros por defecto se utilizan la primera vez que se utiliza la caja de diálogo del Generador de aplicaciones. El contenido del archivo proyecto se actualiza, si es necesario, al hacer clic en **Construir** o **Guardar los parámetros**. You can define several other XML settings file for the same project and employ them using the [`BUILD APPLICATION`](../commands-legacy/build-application.md) command. -Las llaves XML ofrecen opciones adicionales a las que se muestran en la caja de diálogo del Generador de aplicaciones. La descripción de estas llaves se detalla en el manual [4D XML Keys BuildApplication](https://doc.4d.com/4Dv19/4D/19/4D-XML-Keys-BuildApplication.100-5447429.en.html). +Las llaves XML ofrecen opciones adicionales a las que se muestran en la caja de diálogo del Generador de aplicaciones. The description of these keys are detailed in the [4D XML Keys BuildApplication](https://doc.4d.com/4Dv20/4D/20/4D-XML-Keys-BuildApplication.100-6335734.en.html) manual. ### Archivo de historial @@ -59,9 +59,9 @@ Cuando se crea una aplicación, 4D genera un archivo de registro llamado _BuildA - Todos los errores que se han producido, - Todo problema de firma (por ejemplo, un plug-in no firmado). -La verificación de este archivo puede ayudarle a ahorrar tiempo durante los siguientes pasos de despliegue, por ejemplo, si tiene la intención de notarizar su aplicación. +Checking this file may help you saving time during the subsequent deployment steps, for example if you intend to [notarize](#about-notarization) your application on macOS. -> Utilice el comando `Get 4D file(Build application log file)` para obtener la ubicación del archivo de registro. +> Use the `Get 4D file(Build application log file)` statement to get the log file location. ## Nombre de la aplicación y carpeta de destino @@ -87,7 +87,7 @@ Esta funcionalidad crea un archivo _.4dz_ en una carpeta `Compiled Database/ Al generar archivos .4dz, 4D utiliza por defecto un formato zip **estándar**. La ventaja de este formato es que es fácilmente legible por cualquier herramienta unzip. Si no quiere utilizar este formato estándar, añada la llave XML `UseStandardZipFormat` con valor `False` en su archivo [`buildApp. DSettings`](#build-application-settings) (para más información, vea el manual [4D XML Keys BuildApplication](https://doc.4d.com/4Dv19/4D/19/4D-XML-Keys-BuildApplication.100-5447429.en.html)). +> Al generar archivos .4dz, 4D utiliza por defecto un formato zip **estándar**. La ventaja de este formato es que es fácilmente legible por cualquier herramienta unzip. If you do not want to use this standard format, add the `UseStandardZipFormat` XML key with value `False` in your [`buildApp.4DSettings`](#build-application-settings) file (for more information, see the [4D XML Keys BuildApplication](https://doc.4d.com/4Dv20/4D/20/4D-XML-Keys-BuildApplication.100-6335734.en.html) manual). #### Incluir las carpetas asociadas @@ -99,16 +99,20 @@ Genera un componente compilado a partir de la estructura. Un [componente](../Extensions/develop-components.md) es un proyecto estándar 4D en el que se han desarrollado funcionalidades específicas. Una vez configurado e [instalado en otro proyecto 4D](../Project/components.md#basics) (el proyecto de la aplicación local), sus funcionalidades son accesibles desde el proyecto local. -Si ha llamado a su aplicación, _MiComponente_, 4D creará una carpeta _Components_ que contiene la carpeta _MiComponente.4dbase_: +If you have named your application _MyComponent_, 4D will automatically create a _Components_ folder with the following structure: -`/Components/MyComponent.4dbase/MyComponent.4DZ`. +`/Components/MyComponent.4dbase/Contents/`. -La carpeta _MyComponent.4dbase_ contiene: +The _MyComponent.4dbase_ folder is the [package folder of the compiled component](../Project/components.md#package-folder). -- archivo _MyComponent.4DZ_ -- Una carpeta _Resources_: todos los resources asociados se copian automáticamente en esta carpeta. Los otros componentes y/o carpetas de plugins no se copian (un componente no puede utilizar plugins u otros componentes). +The _Contents_ folder contains: -La carpeta _MyComponent.4dbase_ es la [carpeta del paquete del componente compilado](../Project/components.md). +- _MyComponent.4DZ_ file - the [compiled structure](#build-compiled-structure). +- Una carpeta _Resources_: todos los resources asociados se copian automáticamente en esta carpeta. Los otros componentes y/o carpetas de plugins no se copian (un componente no puede utilizar plugins u otros componentes). +- An _Info.plist_ file - this file is required to build [notarizeable and stapleable](#about-notarization) components for macOS (it is ignored on Windows). The following [Apple bundle keys](https://developer.apple.com/documentation/bundleresources/information-property-list) are prefilled: + - `CFBundleDisplayName` and `CFBundleName` for the application name, + - `NSHumanReadableCopyright`, can be [set using an XML key](https://doc.4d.com/4Dv20/4D/20/CommonCopyright.300-6335859.en.html). + - `CFBundleShortVersionString` and `CFBundleVersion` for the application version (x.x.x format, e.g. 1.0.5), can be [set using an XML key](https://doc.4d.com/4Dv20/4D/20/CommonVersion.300-6335858.en.html). ## Página Application @@ -174,7 +178,7 @@ Si ha especificado "MyProject" como nombre de la aplicación, encontrará los si Todos estos elementos deben estar en la misma carpeta para que el ejecutable funcione. - _macOS_ - - Un paquete de software llamado MyProject.app que contiene su aplicación y todos los elementos necesarios para su funcionamiento, incluyendo los plug-ins, componentes y licencias. Para más información sobre la integración de plug-ins y componentes, consulte la sección [Plugins y componentes](#plugins-and-components). Para obtener más información sobre la integración de licencias, consulte la sección [Licencias y certificados](#licenses-and-certificate). **Nota**: en macOS, el comando [Application file](https://doc.4d.com/4Dv18R4/4D/18-R4/Application-file.301-4982855.en.html) del lenguaje 4D devuelve la ruta del archivo ApplicationName (ubicado en la carpeta Contents:macOS del paquete de software) y no la del archivo .comp (carpeta Contents:Resources del paquete de software). + - Un paquete de software llamado MyProject.app que contiene su aplicación y todos los elementos necesarios para su funcionamiento, incluyendo los plug-ins, componentes y licencias. Para más información sobre la integración de plug-ins y componentes, consulte la sección [Plugins y componentes](#plugins-and-components). Para obtener más información sobre la integración de licencias, consulte la sección [Licencias y certificados](#licenses-and-certificate). **Note**: In macOS, the [Application file](../commands-legacy/application-file.md) command of the 4D language returns the pathname of the ApplicationName file (located in the Contents:macOS folder of the software package) and not that of the .comp file (Contents:Resources folder of the software package). #### Personalizar la carpeta 4D Volume Desktop @@ -222,7 +226,7 @@ Además, se personaliza la aplicación cliente/servidor y se simplifica su manej - Para lanzar la parte cliente, el usuario simplemente hace doble clic en la aplicación cliente, que se conecta directamente a la aplicación servidor. No es necesario elegir un servidor en una caja de diálogo de conexión. Si desea que la aplicación cliente se conecte al servidor utilizando una dirección específica (distinta del nombre del servidor publicado en la subred), debe utilizar la llave XML `IPAddress` en el archivo buildapp.4DSettings. Si la conexión falla, [se pueden implementar mecanismos alternativos específicos](#management-of-client-connections). Puede "forzar" la visualización de la caja de diálogo de conexión estándar presionando la tecla **Opción** (macOS) o **Alt** (Windows) mientras inicia la aplicación cliente. Sólo la parte cliente puede conectarse a la parte del servidor correspondiente. Si un usuario intenta conectarse a la parte servidor utilizando una aplicación estándar 4D, se devuelve un mensaje de error y la conexión es imposible. - Una aplicación cliente/servidor puede configurarse para que la parte cliente [se actualice automáticamente a través de la red](#copy-of-client-applications-in-the-server-application). Sólo es necesario crear y distribuir una versión inicial de la aplicación cliente, las actualizaciones posteriores se gestionan mediante el mecanismo de actualización automática. -- También es posible automatizar la actualización de la parte del servidor a través del uso de una secuencia de comandos de lenguaje ([SET UPDATE FOLDER](https://doc.4d.com/4dv19/help/command/en/page1291.html) y [RESTART 4D](https://doc.4d.com/4dv19/help/command/en/page1292.html). +- It is also possible to automate the update of the server part through the use of a sequence of language commands ([SET UPDATE FOLDER](../commands-legacy/set-update-folder.md) and [RESTART 4D](../commands-legacy/restart-4d.md). ### Construir aplicación servidor @@ -298,7 +302,7 @@ Designa la ubicación en su disco de la aplicación 4D Volume Desktop que se uti El 4D Volume Desktop debe corresponder a la plataforma actual (que será también la plataforma de la aplicación cliente). Si desea generar una aplicación cliente para la plataforma "concurrente", debe realizar una operación adicional utilizando una aplicación 4D que se ejecute en dicha plataforma. -Si desea que la aplicación cliente se conecte al servidor utilizando una dirección específica (distinta del nombre del servidor publicado en la subred), debe utilizar la llave XML `IPAddress` en el archivo buildapp.4DSettings. Para obtener más información sobre este archivo, consulte la descripción del comando [`BUILD APPLICATION`](https://doc.4d.com/4dv19/help/command/en/page871.html). También puede implementar mecanismos específicos en caso de fallo de la conexión. También puede implementar mecanismos específicos en caso de fallo de la conexión. +Si desea que la aplicación cliente se conecte al servidor utilizando una dirección específica (distinta del nombre del servidor publicado en la subred), debe utilizar la llave XML `IPAddress` en el archivo buildapp.4DSettings. For more information about this file, refer to the description of the [`BUILD APPLICATION`](../commands-legacy/build-application.md) command. También puede implementar mecanismos específicos en caso de fallo de la conexión. También puede implementar mecanismos específicos en caso de fallo de la conexión. #### Copia de las aplicaciones clientes en la aplicación servidor @@ -418,7 +422,7 @@ El escenario básico es: - la llave `PublishName` no se copia en el _info.plist_ del cliente fusionado - si la aplicación monopuesto no tiene una carpeta "Data" por defecto, el cliente fusionado se ejecutará sin datos. -Actualización automática de las funciones del 4D Server (Número de [versión actual](#current-version), comando `SET UPDATE FOLDER`...) trabaja con una aplicación de un solo usuario como con una aplicación remota estándar. Al conectarse, la aplicación monopuesto compara su llave `CurrentVers` con el rango de versión 4D Server. Si está fuera del rango, la aplicación cliente actualizada se descarga del servidor y el Updater lanza el proceso de actualización local. +Automatic update 4D Server features ([Current version](#current-version) number, [`SET UPDATE FOLDER`](../commands-legacy/set-update-folder.md) command...) trabaja con una aplicación de un solo usuario como con una aplicación remota estándar. Al conectarse, la aplicación monopuesto compara su llave `CurrentVers` con el rango de versión 4D Server. Si está fuera del rango, la aplicación cliente actualizada se descarga del servidor y el Updater lanza el proceso de actualización local. ### Personalizar nombres de carpeta de caché cliente y/o servidor @@ -505,7 +509,7 @@ Esta pestaña muestra la lista de licencias de despliegue disponibles que puede Para eliminar o añadir una licencia, utilice los botones **[+]** y **[-]** de la parte inferior de la ventana. -Al hacer clic en el botón \N-[+], aparece una caja de diálogo para abrir archivos que muestra por defecto el contenido de la carpeta _Licencias_ de su máquina. Para obtener más información sobre la ubicación de esta carpeta, consulte el comando [Get 4D folder](https://doc.4d.com/4Dv17R6/4D/17-R6/Get-4D-folder.301-4311294.en.html). +Al hacer clic en el botón \N-[+], aparece una caja de diálogo para abrir archivos que muestra por defecto el contenido de la carpeta _Licencias_ de su máquina. For more information about the location of this folder, refer to the [Get 4D folder](../commands-legacy/get-4d-folder.md) command. Debe designar los archivos que contienen su licencia Developer, así como los que contienen sus licencias de despliegue. Estos archivos se generaron o actualizaron al adquirir la licencia _4D Developer Professional_ y las licencias _4D Desktop Volume_. @@ -524,11 +528,11 @@ Puede designar tantos archivos válidos como desee. Al generar una aplicación e Una vez generada la aplicación, se incluye automáticamente un nuevo archivo de licencia de despliegue en la carpeta Licencias junto a la aplicación ejecutable (Windows) o en el paquete (macOS). -### Certificación de las aplicaciones en OS X +### macOS signing certificate El generador de aplicaciones puede firmar aplicaciones 4D fusionadas bajo macOS (aplicaciones monopuesto, componentes, 4D Server y partes cliente bajo macOS). La firma de una aplicación autoriza su ejecución por la funcionalidad Gatekeeper de macOS cuando se selecciona la opción "Mac App Store y desarrolladores identificados" (ver "Acerca de Gatekeeper" más adelante). -- Marque la opción **Firmar la aplicación** para incluir la certificación en los procesos de generación de aplicaciones para OS X. 4D comprobará la disponibilidad de los elementos necesarios para la certificación cuando se produzca la generación: +- Check the **Sign application** option to include certification in the application builder procedure for macOS. 4D will check the availability of elements required for certification when the build occurs: ![](../assets/en/Admin/buildapposxcertProj.png) @@ -550,7 +554,7 @@ Para obtener un certificado de desarrollador de Apple, Inc., puede utilizar los #### Sobre Gatekeeper -Gatekeeper es una función de seguridad de OS X que controla la ejecución de las aplicaciones descargadas de Internet. Si una aplicación descargada no procede del Apple Store o no está firmada, se rechaza y no se puede ser lanzada. +Gatekeeper is a security feature of macOS that controls the execution of applications downloaded from the Internet. Si una aplicación descargada no procede del Apple Store o no está firmada, se rechaza y no se puede ser lanzada. > En las máquinas Apple Silicon, los [componentes](#components)4D deben ser firmados. Un componente sin firmar generará un error al iniciar la aplicación ("lib4d-arm64.dylib no se puede abrir..."). @@ -560,10 +564,12 @@ La opción **Firmar la aplicación** del Generador de aplicaciones de 4D le perm La notarización de las aplicaciones es muy recomendada por Apple a partir de macOS 10.14.5 (Mojave) y 10.15 (Catalina), ya que las aplicaciones no notarizadas que se despliegan a través de internet se bloquean por defecto. -Las [funciones de firma integradas](#os-x-signing-certificate) de 4D se han adaptado para cumplir con todos los requisitos de Apple para permitir el uso del servicio de notario de Apple. La notarización en sí debe ser realizada por el desarrollador y es independiente de 4D (tenga en cuenta también que requiere la instalación de Xcode). La notarización en sí debe ser realizada por el desarrollador y es independiente de 4D (tenga en cuenta también que requiere la instalación de Xcode). +The 4D [built-in signing features](#macos-signing-certificate) have been adapted to meet all of Apple's requirements to allow using the Apple notary service. La notarización en sí debe ser realizada por el desarrollador y es independiente de 4D (tenga en cuenta también que requiere la instalación de Xcode). La notarización en sí debe ser realizada por el desarrollador y es independiente de 4D (tenga en cuenta también que requiere la instalación de Xcode). Para más información sobre el concepto de notarización, consulte [esta página en el sitio web para desarrolladores de Apple](https://developer.apple.com/documentation/xcode/notarizing_your_app_before_distribution/customizing_the_notarization_workflow). +For more information on the stapling concept, please read [this Apple forum post](https://forums.developer.apple.com/forums/thread/720093). + ## Personalizar los iconos de una aplicación 4D asocia un icono por defecto a las aplicaciones ejecutables (monopuestos y cliente-servidor). Sin embargo puede personalizar el icono para cada aplicación. @@ -578,7 +584,7 @@ Su archivo de iconos debe tener el mismo nombre que el archivo del proyecto e in Su archivo de iconos debe tener el mismo nombre que el archivo del proyecto e incluir la extensión _.ico_. 4D tiene en cuenta automáticamente este archivo cuando genera la aplicación de doble clic. -También puede definir las [llaves XML](https://doc.4d.com/4Dv17R6/4D/17-R6/4D-XML-Keys-BuildApplication.100-4465602.en.html) específicas en el archivo buildApp.4DSettings para designar cada icono a utilizar. Están disponibles las siguientes llaves: +You can also set specific [XML keys](https://doc.4d.com/4Dv20/4D/20/4D-XML-Keys-BuildApplication.100-6335734.en.html) in the buildApp.4DSettings file to designate each icon to use. Están disponibles las siguientes llaves: - RuntimeVLIconWinPath - RuntimeVLIconMacPath @@ -696,12 +702,12 @@ userPrefs:=Get 4D folder(Carpeta 4D activa) Este mecanismo aborda el caso en el que el servidor objetivo primario esté disponible temporalmente por alguna razón (modo mantenimiento, por ejemplo). Cuando se produce este caso por primera vez, se muestra la caja de diálogo de selección de servidor (si está permitido, ver más adelante) y el usuario puede seleccionar manualmente un servidor alternativo, cuya ruta se guarda si la conexión tiene éxito. Toda indisponibilidad posterior se gestionaría automáticamente a través de la información de la ruta "lastServer.xml". -> - Cuando las aplicaciones cliente no pueden beneficiarse permanentemente del servicio de descubrimiento, por ejemplo debido a la configuración de la red, se recomienda que el desarrollador indique un nombre de host en el momento de la generación utilizando la llave [IPAddress](https://doc.4d.com/4Dv17R6/4D/17-R6/IPAddress.300-4465710.en.html) en el archivo "BuildApp.4DSettings". El mecanismo aborda los casos de indisponibilidad temporal. +> - When client applications cannot permanently benefit from the discovery service, for example because of the network configuration, it is recommended that the developer provide a host name at build time using the [IPAddress](https://doc.4d.com/4Dv20/4D/20/IPAddress.300-6335763.en.html) key in the "BuildApp.4DSettings" file. El mecanismo aborda los casos de indisponibilidad temporal. > - Presionar la tecla **Alt/Opción** al inicio para mostrar la caja de diálogo de selección del servidor sigue siendo soportado en todos los casos. ### Disponibilidad de la caja de diálogo de selección del servidor en caso de error -Puede elegir si mostrar o no la caja de diálogo estándar de selección de servidor en las aplicaciones cliente fusionadas cuando no se puede acceder al servidor. La configuración depende del valor de la [ServerSelectionAllowed](https://doc.4d.com/4Dv17R6/4D/17-R6/ServerSelectionAllowed.300-4465714.en.html) La llave XML en la máquina donde se generó la aplicación: +Puede elegir si mostrar o no la caja de diálogo estándar de selección de servidor en las aplicaciones cliente fusionadas cuando no se puede acceder al servidor. The configuration depends on the value of the [ServerSelectionAllowed](https://doc.4d.com/4Dv20/4D/20/ServerSelectionAllowed.300-6335767.en.html) XML key on the machine where the application was built: - **Visualización de un mensaje de error sin poder acceder a la caja de diálogo de selección del servidor**. Funcionamiento por defecto. La aplicación solo puede cerrarse.\ `ServerSelectionAllowed`: **False** o llave omitida @@ -716,9 +722,9 @@ Puede elegir si mostrar o no la caja de diálogo estándar de selección de serv En principio, la actualización de las aplicaciones servidor o de las aplicaciones monopuesto fusionadas requiere la intervención del usuario (o la programación de rutinas de sistema personalizadas): cada vez que esté disponible una nueva versión de la aplicación fusionada, hay que salir de la aplicación en producción y sustituir manualmente los archivos antiguos por los nuevos; a continuación, reiniciar la aplicación y seleccionar el archivo de datos actual. -Puede automatizar este procedimiento en gran medida utilizando los siguientes comandos del lenguaje: [`SET UPDATE FOLDER`](https://doc.4d.com/4dv19/help/command/en/page1291.html), [`RESTART 4D`](https://doc.4d.com/4dv19/help/command/en/page1292.html), y también [`Get last update log path`](https://doc.4d.com/4dv19/help/command/en/page1301.html) para operaciones de monitoreo. La idea es implementar una función en su aplicación 4D que active la secuencia de actualización automática descrita a continuación. Puede ser un comando de menú o un proceso que se ejecuta en segundo plano y comprueba a intervalos regulares la presencia de un archivo en un servidor. +You can automate this procedure to a large extent using the following language commands: [`SET UPDATE FOLDER`](../commands-legacy/set-update-folder.md), [`RESTART 4D`](../commands-legacy/restart-4d.md), and also [`Get last update log path`](../commands-legacy/get-last-update-log-path.md) for monitoring operations. La idea es implementar una función en su aplicación 4D que active la secuencia de actualización automática descrita a continuación. Puede ser un comando de menú o un proceso que se ejecuta en segundo plano y comprueba a intervalos regulares la presencia de un archivo en un servidor. -> También dispone de llaves XML para elevar los privilegios de instalación y poder utilizar archivos protegidos en Windows (consulte el manual [4D XML Keys BuildApplication](https://doc.4d.com/4Dv19/4D/19/4D-XML-Keys-BuildApplication.100-5447429.en.html)). +> You also have XML keys to elevate installation privileges so that you can use protected files under Windows (see the [4D XML Keys BuildApplication](https://doc.4d.com/4Dv20/4D/20/4D-XML-Keys-BuildApplication.100-6335734.en.html) manual). Este es el escenario para actualizar un servidor o una aplicación unipersonal fusionada: @@ -734,4 +740,4 @@ El procedimiento de instalación genera un archivo de registro en el que se deta El historial de actualización se denomina `YYYY-MM-DD_HH-MM-SS_log_X.txt`, por ejemplo, `2021-08-25_14-23-00_log_1.txt` para un archivo creado el 25 de agosto de 2021 a las 14:23. -Este archivo se crea en la carpeta de la aplicación "Updater", dentro de la carpeta de usuario del sistema. Puede encontrar la ubicación de este archivo en cualquier momento utilizando el comando [`Get last update log path`](https://doc.4d.com/4dv19/help/command/en/page1301.html). +Este archivo se crea en la carpeta de la aplicación "Updater", dentro de la carpeta de usuario del sistema. You can find out the location of this file at any time using the [`Get last update log path`](../commands-legacy/get-last-update-log-path.md) command. diff --git a/i18n/es/docusaurus-plugin-content-docs/current/Desktop/clientServer.md b/i18n/es/docusaurus-plugin-content-docs/current/Desktop/clientServer.md index fc9f31ef1c5422..a91743e3184cbe 100644 --- a/i18n/es/docusaurus-plugin-content-docs/current/Desktop/clientServer.md +++ b/i18n/es/docusaurus-plugin-content-docs/current/Desktop/clientServer.md @@ -87,7 +87,7 @@ Sin embargo, debe prestar atención a las siguientes diferencias de comportamien ## Sesiones de usuarios remotos -On the server, the [`Session`](../commands/session.md) command returns a `session` object describing the current user session. Este objeto se maneja a través de las funciones y propiedades de la [clase `Session`](../API/SessionClass.md). +En el servidor, el comando [`Session`](../commands/session.md) devuelve un objeto `session` que describe la sesión de usuario actual. Este objeto se maneja a través de las funciones y propiedades de la [clase `Session`](../API/SessionClass.md). ### Utilización diff --git a/i18n/es/docusaurus-plugin-content-docs/current/Events/onDragOver.md b/i18n/es/docusaurus-plugin-content-docs/current/Events/onDragOver.md index 186b06228e6483..d8e70bab387a6e 100644 --- a/i18n/es/docusaurus-plugin-content-docs/current/Events/onDragOver.md +++ b/i18n/es/docusaurus-plugin-content-docs/current/Events/onDragOver.md @@ -29,10 +29,10 @@ El código que maneja un evento `On Drag Over` debe ser corto y ejecutarse rápi ### Ejemplo ```4d -//Destination object method +/Método del objeto destino #DECLARE : Integer If(Form event code=On Drag Over) - //returns 0 by default + //devuelve 0 por defecto ... If($DataType=Is picture) return -1 diff --git a/i18n/es/docusaurus-plugin-content-docs/current/FormEditor/properties_FormProperties.md b/i18n/es/docusaurus-plugin-content-docs/current/FormEditor/properties_FormProperties.md index 6377f8b8157879..5b452dd2880fa2 100644 --- a/i18n/es/docusaurus-plugin-content-docs/current/FormEditor/properties_FormProperties.md +++ b/i18n/es/docusaurus-plugin-content-docs/current/FormEditor/properties_FormProperties.md @@ -41,17 +41,17 @@ Un archivo CSS definido a nivel de formulario anulará la(s) hoja(s) de estilo p ## Form Class -Name of an existing [user class](../Concepts/classes.md#class-definition) to associate to the form . The user class can belong to the host project or to a [component](../Extensions/develop-components.md#sharing-of-classes), in which case the formal syntax is "[_componentNameSpace_](../settings/general.md#component-namespace-in-the-class-store).className". +Nombre de una [clase usuario] existente(../Concepts/classes.md#class-definition) para asociar al formulario. The user class can belong to the host project or to a [component](../Extensions/develop-components.md#sharing-of-classes), in which case the formal syntax is "[_componentNameSpace_](../settings/general.md#component-namespace-in-the-class-store).className". Associating a class to the form provides the following benefits: -- When you work in the [Form editor](../FormEditor/formEditor.md), the associated class is used for accurate syntax checking of expressions such as `Form.myProperty` in all areas of the [Property list](../FormEditor/formEditor.md#property-list) that support [expressions](../Concepts/quick-tour.md#expressions) (e.g. **Variable or Expression**, **Font color expression**...). Errors are displayed in red and warnings are displayed in yellow in the left column of the Property list and you can hover it to get explanations: +- Cuando trabajas en el [Editor de formularios](../FormEditor/formEditor.md), la clase asociada se utiliza para comprobar con precisión la sintaxis de expresiones como `Form.myProperty` en todas las áreas de la [Lista de propiedades](../FormEditor/formEditor.md#property-list) que soporta [expresiones](../Concepts/quick-tour.md#expressions) (por ejemplo, **Variable o Expresión**, **Expresión de color de fuente**...). Errors are displayed in red and warnings are displayed in yellow in the left column of the Property list and you can hover it to get explanations: ![](../assets/en/FormObjects/warning-proplist.png) - The detection of errors in the code of form object expressions by the [compiler](../Project/compiler.md) is improved. -- You can also to benefit from [autocompletion features](../code-editor/write-class-method.md#autocomplete-functions) in the code editor. +- También puede beneficiarse de las funciones de autocompletado (../code-editor/write-class-method.md#autocomplete-functions) en el editor de código. - When the form is executed, 4D automatically instantiates a user class object for the form, which is returned by the [`Form`](../commands/form.md) object. Your code can directly access class functions defined in the user class through the `Form` command (e.g. `Form.message()`) without having to pass a _formData_ object as parameter to the [`DIALOG`](../commands/dialog.md), [`Print form`](../commands/print-form.md), or [`FORM LOAD`](../commands/form-load.md) commands. diff --git a/i18n/es/docusaurus-plugin-content-docs/current/FormObjects/buttonGrid_overview.md b/i18n/es/docusaurus-plugin-content-docs/current/FormObjects/buttonGrid_overview.md index 1fa894fa42ca83..42f6225816a18c 100644 --- a/i18n/es/docusaurus-plugin-content-docs/current/FormObjects/buttonGrid_overview.md +++ b/i18n/es/docusaurus-plugin-content-docs/current/FormObjects/buttonGrid_overview.md @@ -28,4 +28,4 @@ Puede asignar la [acción estándar](https://doc.4d.com/4Dv17R5/4D/17-R5/Standar ## Propiedades soportadas -[Estilo de línea de borde](properties_BackgroundAndBorder.md#border-line-style) - [Fondo](properties_CoordinatesAndSizing.md#bottom) - [Clase](properties_Object.md#css-class) - [Columnas](properties_Crop.md#columns) - [Altura](properties_CoordinatesAndSizing.md#height) - [Mensaje de ayuda](properties_Help.md#help-tip) - [Dimensionamiento horizontal](properties_ResizingOptions.md#horizontal-sizing) - [Izquierda](properties_CoordinatesAndSizing.md#left) - [Nombre del objeto](properties_Object.md#object-name) - [Derecha](properties_CoordinatesAndSizing.md#right) - [Filas](properties_Crop.md#rows) - [Acción estándar](properties_Action.md#standard-action) - [Superior](properties_CoordinatesAndSizing.md#top) - [Tipo](properties_Object.md#type) - [Variable o expresión](properties_Object.md#variable-o-expresión) - [Tamaño vertical](properties_ResizingOptions.md#vertical-sizing) - [Ancho](properties_CoordinatesAndSizing.md#width) - [Visibilidad](properties_Display.md#visibilidad) +[Estilo de línea de borde](properties_BackgroundAndBorder.md#border-line-style) - [Fondo](properties_CoordinatesAndSizing.md#bottom) - [Clase](properties_Object.md#css-class) - [Columnas](properties_Crop.md#columns) - [Altura](properties_CoordinatesAndSizing.md#height) - [Mensaje de ayuda](properties_Help.md#help-tip) - [Dimensionamiento horizontal](properties_ResizingOptions.md#horizontal-sizing) - [Izquierda](properties_CoordinatesAndSizing.md#left) - [Nombre del objeto](properties_Object.md#object-name) - [Derecha](properties_CoordinatesAndSizing.md#right) - [Filas](properties_Crop.md#rows) - [Acción estándar](properties_Action.md#standard-action) - [Superior](properties_CoordinatesAndSizing.md#top) - [Tipo](properties_Object.md#type) - [Variable o expresión](properties_Object.md#variable-or-expression) - [Tamaño vertical](properties_ResizingOptions.md#vertical-sizing) - [Ancho](properties_CoordinatesAndSizing.md#width) - [Visibilidad](properties_Display.md#visibilidad) diff --git a/i18n/es/docusaurus-plugin-content-docs/current/FormObjects/listbox_overview.md b/i18n/es/docusaurus-plugin-content-docs/current/FormObjects/listbox_overview.md index 82038734f97b30..b6427dbc8acaf5 100644 --- a/i18n/es/docusaurus-plugin-content-docs/current/FormObjects/listbox_overview.md +++ b/i18n/es/docusaurus-plugin-content-docs/current/FormObjects/listbox_overview.md @@ -199,30 +199,30 @@ Las propiedades soportadas dependen del tipo de list box. | Evento formulario | Propiedades adicionales devueltas (ver [Evento formulario](https://doc.4d.com/4Dv18/4D/18/FORM-Event.301-4522191.en.html) para las propiedades principales) | Comentarios | | -------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -| On After Edit |
  • [column](#additional-properties)
  • [columnName](#additional-properties)
  • [row](#additional-properties)
  • | | -| On After Keystroke |
  • [column](#additional-properties)
  • [columnName](#additional-properties)
  • [row](#additional-properties)
  • | | +| On After Edit |
  • [columna](#additional-properties)
  • [nombreColumna](#additional-properties)
  • [línea](#additional-properties)
  • | | +| On After Keystroke |
  • [columna](#additional-properties)
  • [nombreColumna](#additional-properties)
  • [línea](#additional-properties)
  • | | | On After Sort |
  • [column](#propiedades-adicionales)
  • [columnName](#propiedades-adicionales)
  • [headerName](#propiedades-adicionales)
  • | _Las fórmulas compuestas no se pueden ordenar.
    (por ejemplo, This.firstName + This.lastName)_ | -| On Alternative Click |
  • [column](#additional-properties)
  • [columnName](#additional-properties)
  • [row](#additional-properties)
  • | _List box array únicamente_ | -| On Before Data Entry |
  • [column](#additional-properties)
  • [columnName](#additional-properties)
  • [row](#additional-properties)
  • | | -| On Before Keystroke |
  • [column](#additional-properties)
  • [columnName](#additional-properties)
  • [row](#additional-properties)
  • | | -| On Begin Drag Over |
  • [column](#additional-properties)
  • [columnName](#additional-properties)
  • [row](#additional-properties)
  • | | -| On Clicked |
  • [column](#additional-properties)
  • [columnName](#additional-properties)
  • [row](#additional-properties)
  • | | +| On Alternative Click |
  • [columna](#additional-properties)
  • [nombreColumna](#additional-properties)
  • [línea](#additional-properties)
  • | _List box array únicamente_ | +| On Before Data Entry |
  • [columna](#additional-properties)
  • [nombreColumna](#additional-properties)
  • [línea](#additional-properties)
  • | | +| On Before Keystroke |
  • [columna](#additional-properties)
  • [nombreColumna](#additional-properties)
  • [línea](#additional-properties)
  • | | +| On Begin Drag Over |
  • [columna](#additional-properties)
  • [nombreColumna](#additional-properties)
  • [línea](#additional-properties)
  • | | +| On Clicked |
  • [columna](#additional-properties)
  • [nombreColumna](#additional-properties)
  • [línea](#additional-properties)
  • | | | On Close Detail |
  • [row](#propiedades adicionales)
  • | _List box Selección actual y Selección temporal únicamente_ | -| On Collapse |
  • [column](#additional-properties)
  • [columnName](#additional-properties)
  • [row](#additional-properties)
  • | _List box jerárquicos únicamente_ | +| On Collapse |
  • [columna](#additional-properties)
  • [nombreColumna](#additional-properties)
  • [línea](#additional-properties)
  • | _List box jerárquicos únicamente_ | | On Column Moved |
  • [columnName](#propiedades-adicionales)
  • [newPosition](#propiedades-adicionales)
  • [oldPosition](#propiedades-adicionales)
  • | | | On Column Resize |
  • [column](#propiedades-adicionales)
  • [columnName](#propiedades-adicionales)
  • [newSize](#propiedades-adicionales)
  • [oldSize](#propiedades-adicionales)
  • | | -| On Data Change |
  • [column](#additional-properties)
  • [columnName](#additional-properties)
  • [row](#additional-properties)
  • | | +| On Data Change |
  • [columna](#additional-properties)
  • [nombreColumna](#additional-properties)
  • [línea](#additional-properties)
  • | | | On Delete Action |
  • [row](#propiedades adicionales)
  • | | | On Display Detail |
  • [isRowSelected](#additional-properties)
  • [row](#additional-properties)
  • | | -| On Double Clicked |
  • [column](#additional-properties)
  • [columnName](#additional-properties)
  • [row](#additional-properties)
  • | | +| On Double Clicked |
  • [columna](#additional-properties)
  • [nombreColumna](#additional-properties)
  • [línea](#additional-properties)
  • | | | On Drag Over |
  • [area](#additional-properties)
  • [areaName](#additional-properties)
  • [column](#additional-properties)
  • [columnName](#additional-properties)
  • [row](#additional-properties)
  • | | | On Drop |
  • [column](#additional-properties)
  • [columnName](#additional-properties)
  • [row](#additional-properties)
  • | | | On Expand |
  • [column](#additional-properties)
  • [columnName](#additional-properties)
  • [row](#additional-properties)
  • | _List box jerárquicos únicamente_ | | On Footer Click |
  • [column](#additional-properties)
  • [columnName](#additional-properties)
  • [footerName](#additional-properties)
  • | _List box arrays, selección actual y selección temporal únicamente_ | -| On Getting Focus |
  • [column](#additional-properties)
  • [columnName](#additional-properties)
  • [row](#additional-properties)
  • | _Propiedades adicionales devueltas sólo al editar una celda_ | +| On Getting Focus |
  • [columna](#additional-properties)
  • [nombreColumna](#additional-properties)
  • [línea](#additional-properties)
  • | _Propiedades adicionales devueltas sólo al editar una celda_ | | On Header Click |
  • [column](#additional-properties)
  • [columnName](#additional-properties)
  • [headerName](#additional-properties)
  • | | | On Load | | | -| On Losing Focus |
  • [column](#additional-properties)
  • [columnName](#additional-properties)
  • [row](#additional-properties)
  • | _Propiedades adicionales devueltas sólo cuando la modificación de una celda se completa_ | +| On Losing Focus |
  • [columna](#additional-properties)
  • [nombreColumna](#additional-properties)
  • [línea](#additional-properties)
  • | _Propiedades adicionales devueltas sólo cuando la modificación de una celda se completa_ | | On Mouse Enter |
  • [area](#additional-properties)
  • [areaName](#additional-properties)
  • [column](#additional-properties)
  • [columnName](#additional-properties)
  • [row](#additional-properties)
  • | | | On Mouse Leave | | | | On Mouse Move |
  • [area](#additional-properties)
  • [areaName](#additional-properties)
  • [column](#additional-properties)
  • [columnName](#additional-properties)
  • [row](#additional-properties)
  • | | @@ -267,31 +267,31 @@ Puede definir propiedades estándar (texto, color de fondo, etc.) para cada colu ### Propiedades específicas de la columna -[Alpha Format](properties_Display.md#alpha-format) - [Alternate Background Color](properties_BackgroundAndBorder.md#alternate-background-color) - [Automatic Row Height](properties_CoordinatesAndSizing.md#automatic-row-height) - [Background Color](properties_BackgroundAndBorder.md#background-color--fill-color) - [Background Color Expression](properties_BackgroundAndBorder.md#background-color-expression) - [Bold](properties_Text.md#bold) - [Choice List](properties_DataSource.md#choice-list) - [Class](properties_Object.md#css-class) - [Data Type (selection and collection list box column)](properties_DataSource.md#data-type) - [Date Format](properties_Display.md#date-format) - [Default Values](properties_DataSource.md#default-list-of-values) - [Display Type](properties_Display.md#display-type) - [Enterable](properties_Entry.md#enterable) - [Entry Filter](properties_Entry.md#entry-filter) - [Excluded List](properties_RangeOfValues.md#excluded-list) - [Expression](properties_DataSource.md#expression) - [Expression Type (array list box column)](properties_Object.md#expression-type) - [Font](properties_Text.md#font) - [Font Color](properties_Text.md#font-color) - [Horizontal Alignment](properties_Text.md#horizontal-alignment) - [Horizontal Padding](properties_CoordinatesAndSizing.md#horizontal-padding) - [Italic](properties_Text.md#italic) - [Invisible](properties_Display.md#visibility) - [Maximum Width](properties_CoordinatesAndSizing.md#maximum-width) - [Method](properties_Action.md#method) - [Minimum Width](properties_CoordinatesAndSizing.md#minimum-width) - [Multi-style](properties_Text.md#multi-style) - [Number Format](properties_Display.md#number-format) - [Object Name](properties_Object.md#object-name) - [Picture Format](properties_Display.md#picture-format) - [Resizable](properties_ResizingOptions.md#resizable) - [Required List](properties_RangeOfValues.md#required-list) - [Row Background Color Array](properties_BackgroundAndBorder.md#row-background-color-array) - [Row Font Color Array](properties_Text.md#row-font-color-array) - [Row Style Array](properties_Text.md#row-style-array) - [Save as](properties_DataSource.md#save-as) - [Style Expression](properties_Text.md#style-expression) - [Text when False/Text when True](properties_Display.md#text-when-falsetext-when-true) - [Time Format](properties_Display.md#time-format) - [Truncate with ellipsis](properties_Display.md#truncate-with-ellipsis) - [Underline](properties_Text.md#underline) - [Variable or Expression](properties_Object.md#variable-or-expression) - [Vertical Alignment](properties_Text.md#vertical-alignment) - [Vertical Padding](properties_CoordinatesAndSizing.md#vertical-padding) - [Width](properties_CoordinatesAndSizing.md#width) - [Wordwrap](properties_Display.md#wordwrap) +[Formato Alfa](properties_Display.md#alpha-format) - [Color de fondo alternativo](properties_BackgroundAndBorder.md#alternate-background-color) - [Alto de fila automático](properties_CoordinatesAndSizing.md#automatic-row-height) - [Color de fondo](properties_BackgroundAndBorder.md#background-color--fill-color) - [Expresión de color de fondo](properties_BackgroundAndBorder.md#background-color-expression) - [Negrita](properties_Text.md#bold) - [Lista de opciones](properties_DataSource.md#choice-list) - [Clase](properties_Object.md#css-class) - [Tipo de datos (columna del list box de selección y colección)](properties_DataSource.md#data-type) - [Formato de fecha](properties_Display.md#date-format) - [Valores por defecto](properties_DataSource.md#default-list-of-values) - [Tipo de visualización](properties_Display.md#display-type) - [Entrable](properties_Entry.md#enterable) - [Filtro de entrada](properties_Entry.md#entry-filter) - [Lista de excluidos](properties_RangeOfValues.md#excluded-list) - [Expresión](properties_DataSource.md#expression) - [Expression Type (array columna list box)](properties_Object.md#expression-type) - [Fuente](properties_Text.md#font) - [Color de fuente](properties_Text.md#font-color) - [Alineación horizontal](properties_Text.md#horizontal-alignment) - [Horizontal Padding](properties_CoordinatesAndSizing.md#horizontal-padding) - [Cursiva](properties_Text.md#italic) - [Invisible](properties_Display.md#visibility) - [Ancho máximo](properties_CoordinatesAndSizing.md#maximum-width) - [Método](properties_Action.md#method) - [Ancho mínimo](properties_CoordinatesAndSizing.md#minimum-width) - [Varios estilos](properties_Text.md#multi-style) - [Formato numérico](properties_Display.md#number-format) - [Nombre del objeto](properties_Object.md#nombre-objeto) - [Formato Imagen](properties_Display.md#formato-imagen) - [Redimensionable](properties_ResizingOptions.md#redimensionable) - [Lista Requerida](properties_RangeOfValues.md#required-list) - [Color de Fondo de Fila](properties_BackgroundAndBorder.md#row-background-color-array) - [Color de fuente de fila](properties_Text.md#row-font-color-array) - [Estilo de fila](properties_Text.md#row-style-array) - [Guardar como](properties_DataSource.md#save-as) - [Expresión de estilo](properties_Text.md#style-expression) - [Texto cuando False/Texto cuando True](properties_Display.md#text-when-falsetext-when-true) - [Formato Hora](properties_Display.md#time-format) - [Truncar con elipsis](properties_Display.md#truncate-with-ellipsis) - [Subrayado](properties_Text.md#underline) - [Variable o expresión](properties_Object.md#variable-o-expresión) - [Alineación vertical](properties_Text.md#alineación-vertical) - [Relleno vertical](properties_CoordinatesAndSizing.md#Relleno-vertical) - [Ancho](properties_CoordinatesAndSizing.md#anchura) - [Ajuste de palabras](properties_Display.md#wordwrap) ### Eventos formulario soportados | Evento formulario | Propiedades adicionales devueltas (ver [Evento formulario](https://doc.4d.com/4Dv18/4D/18/FORM-Event.301-4522191.en.html) para las propiedades principales) | Comentarios | | -------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -| On After Edit |
  • [column](#additional-properties)
  • [columnName](#additional-properties)
  • [row](#additional-properties)
  • | | -| On After Keystroke |
  • [column](#additional-properties)
  • [columnName](#additional-properties)
  • [row](#additional-properties)
  • | | +| On After Edit |
  • [columna](#additional-properties)
  • [nombreColumna](#additional-properties)
  • [línea](#additional-properties)
  • | | +| On After Keystroke |
  • [columna](#additional-properties)
  • [nombreColumna](#additional-properties)
  • [línea](#additional-properties)
  • | | | On After Sort |
  • [column](#propiedades-adicionales)
  • [columnName](#propiedades-adicionales)
  • [headerName](#propiedades-adicionales)
  • | _Las fórmulas compuestas no se pueden ordenar.
    (por ejemplo, This.firstName + This.lastName)_ | -| On Alternative Click |
  • [column](#additional-properties)
  • [columnName](#additional-properties)
  • [row](#additional-properties)
  • | _List box array únicamente_ | -| On Before Data Entry |
  • [column](#additional-properties)
  • [columnName](#additional-properties)
  • [row](#additional-properties)
  • | | -| On Before Keystroke |
  • [column](#additional-properties)
  • [columnName](#additional-properties)
  • [row](#additional-properties)
  • | | -| On Begin Drag Over |
  • [column](#additional-properties)
  • [columnName](#additional-properties)
  • [row](#additional-properties)
  • | | -| On Clicked |
  • [column](#additional-properties)
  • [columnName](#additional-properties)
  • [row](#additional-properties)
  • | | +| On Alternative Click |
  • [columna](#additional-properties)
  • [nombreColumna](#additional-properties)
  • [línea](#additional-properties)
  • | _List box array únicamente_ | +| On Before Data Entry |
  • [columna](#additional-properties)
  • [nombreColumna](#additional-properties)
  • [línea](#additional-properties)
  • | | +| On Before Keystroke |
  • [columna](#additional-properties)
  • [nombreColumna](#additional-properties)
  • [línea](#additional-properties)
  • | | +| On Begin Drag Over |
  • [columna](#additional-properties)
  • [nombreColumna](#additional-properties)
  • [línea](#additional-properties)
  • | | +| On Clicked |
  • [columna](#additional-properties)
  • [nombreColumna](#additional-properties)
  • [línea](#additional-properties)
  • | | | On Column Moved |
  • [columnName](#propiedades-adicionales)
  • [newPosition](#propiedades-adicionales)
  • [oldPosition](#propiedades-adicionales)
  • | | | On Column Resize |
  • [column](#additional-properties)
  • [columnName](#additional-properties)
  • [newSize](#additional-properties)
  • [oldSize](#additional-properties)
  • | | | On Data Change |
  • [column](#additional-properties)
  • [columnName](#additional-properties)
  • [row](#additional-properties)
  • | | | On Double Clicked |
  • [column](#additional-properties)
  • [columnName](#additional-properties)
  • [row](#additional-properties)
  • | | | On Drag Over |
  • [area](#additional-properties)
  • [areaName](#additional-properties)
  • [column](#additional-properties)
  • [columnName](#additional-properties)
  • [row](#additional-properties)
  • | | -| On Drop |
  • [column](#additional-properties)
  • [columnName](#additional-properties)
  • [row](#additional-properties)
  • | | +| On Drop |
  • [columna](#additional-properties)
  • [nombreColumna](#additional-properties)
  • [línea](#additional-properties)
  • | | | On Footer Click |
  • [column](#additional-properties)
  • [columnName](#additional-properties)
  • [footerName](#additional-properties)
  • | _List box arrays, selección actual y selección temporal únicamente_ | -| On Getting Focus |
  • [column](#additional-properties)
  • [columnName](#additional-properties)
  • [row](#additional-properties)
  • | _Propiedades adicionales devueltas sólo al editar una celda_ | +| On Getting Focus |
  • [columna](#additional-properties)
  • [nombreColumna](#additional-properties)
  • [línea](#additional-properties)
  • | _Propiedades adicionales devueltas sólo al editar una celda_ | | On Header Click |
  • [column](#propiedades-adicionales)
  • [columnName](#propiedades-adicionales)
  • [headerName](#propiedades-adicionales)
  • | | | On Load | | | -| On Losing Focus |
  • [column](#additional-properties)
  • [columnName](#additional-properties)
  • [row](#additional-properties)
  • | _Propiedades adicionales devueltas sólo cuando la modificación de una celda se completa_ | +| On Losing Focus |
  • [columna](#additional-properties)
  • [nombreColumna](#additional-properties)
  • [línea](#additional-properties)
  • | _Propiedades adicionales devueltas sólo cuando la modificación de una celda se completa_ | | On Row Moved |
  • [newPosition](#additional-properties)
  • [oldPosition](#additional-properties)
  • | _List box array únicamente_ | | On Scroll |
  • [horizontalScroll](#additional-properties)
  • [verticalScroll](#additional-properties)
  • | | | On Unload | | | diff --git a/i18n/es/docusaurus-plugin-content-docs/current/FormObjects/pictureButton_overview.md b/i18n/es/docusaurus-plugin-content-docs/current/FormObjects/pictureButton_overview.md index ef4e1ac8dc9123..3138e68a9a1f2e 100644 --- a/i18n/es/docusaurus-plugin-content-docs/current/FormObjects/pictureButton_overview.md +++ b/i18n/es/docusaurus-plugin-content-docs/current/FormObjects/pictureButton_overview.md @@ -19,6 +19,8 @@ Los botones imagen pueden utilizarse de dos maneras: | Use Last Frame as Disabled | useLastFrameAsDisabled | true | - Como botón de imagen que permite al usuario elegir entre varias opciones. En este caso, se puede utilizar un botón de imagen en lugar de un menú de imagen emergente. Con los [menús emergentes de imágenes](picturePopupMenu_overview.md), todas las opciones se muestran simultáneamente (como los elementos del menú emergente), mientras que el botón de imagen muestra las opciones consecutivamente (a medida que el usuario hace clic en el botón).\ + Aquí un ejemplo de un botón imagen.\ + Aquí un ejemplo de un botón imagen.\ Aquí un ejemplo de un botón imagen. Supongamos que quiere dar a los usuarios de una aplicación personalizada la posibilidad de elegir el idioma de la interfaz de la aplicación. La opción se implementa como un botón imagen en una caja de diálogo personalizada de propiedades: ![](../assets/en/FormObjects/button_pictureButton.png) @@ -52,11 +54,11 @@ Hay otros modos disponibles: - [Retroceder al primer cuadro](properties_Animation.md#loop-back-to-first-frame) - [Retroceder al soltar](properties_Animation.md#switch-back-when-released) - [Alternar al pasar el ratón por encima](properties_Animation.md#switch-when-roll-over) -- [Switch continuously on clicks](properties_Animation.md#switch-continuously-on-clicks) +- [Alternar continuamente al hacer clic](properties_Animation.md#switch-continuously-on-clicks) - [Usar el último fotograma como desactivado](properties_Animation.md#use-last-frame-as-disabled) - [Usar último fotograma como desactivado](properties_Animation.md#use-last-frame-as-disabled) -> [Use Last frame as disabled](properties_Animation.md#use-last-frame-as-disabled)> The [associated variable](properties_Object.md#variable-or-expression) of the picture button returns the index number, in the thumbnail table, of the current picture displa La numeración de las imágenes en la tabla empieza por 0. +> [Use Last frame as disabled](properties_Animation.md#use-last-frame-as-disabled)> The [associated variable](properties_Object.md#variable-or-expression) of the picture button returns the index number, in the thumbnail table, of the current picture displa La numeración de las imágenes en la tabla empieza por 0. La numeración de las imágenes en la tabla empieza por 0. ## Propiedades soportadas diff --git a/i18n/es/docusaurus-plugin-content-docs/current/FormObjects/properties_Action.md b/i18n/es/docusaurus-plugin-content-docs/current/FormObjects/properties_Action.md index c29838edb2e27d..e49d933fc02610 100644 --- a/i18n/es/docusaurus-plugin-content-docs/current/FormObjects/properties_Action.md +++ b/i18n/es/docusaurus-plugin-content-docs/current/FormObjects/properties_Action.md @@ -14,7 +14,7 @@ Hay dos modos de arrastrar disponibles: - **Personalizado**: en este modo, toda operación de arrastrar realizada en el objeto dispara el evento formulario `On Begin Drag` en el contexto del objeto. A continuación, gestiona la acción arrastrar utilizando un método.\ En el modo personalizado, básicamente toda la operación de arrastrar y soltar es realizada por el programador. Este modo le permite implementar cualquier interfaz basada en la función de arrastrar y soltar, incluidas las interfaces que no necesariamente transportan datos, sino que pueden realizar cualquier acción como abrir archivos o activar un cálculo. Este modo se basa en una combinación de propiedades, eventos y comandos específicos del tema `Portapapeles`. - **Automático**: en este modo, 4D **copia** el texto o las imágenes directamente desde el objeto formulario. Puede utilizarse en la misma área 4D, entre dos áreas 4D o entre 4D y otra aplicación. Por ejemplo, arrastrar (y soltar) automáticamente le permite copiar un valor entre dos campos sin usar programación:\ - ![](../assets/en/FormObjects/property_automaticDragDrop. ng)\ + ![](../assets/en/FormObjects/property_automaticDragDrop.png)\ ![](../assets/en/FormObjects/property_automaticDragDrop2.png) En este modo, NO se genera el evento del formulario `On Begin Drag`. Si quiere "forzar" el uso del arrastre personalizado mientras está activado el arrastre automático, mantenga presionada la tecla **Alt** (Windows) o **Opción** (macOS) durante la acción. Esta opción no está disponible para las imágenes. diff --git a/i18n/es/docusaurus-plugin-content-docs/current/FormObjects/properties_BackgroundAndBorder.md b/i18n/es/docusaurus-plugin-content-docs/current/FormObjects/properties_BackgroundAndBorder.md index 200d68e03dc649..bf362772edb6fc 100644 --- a/i18n/es/docusaurus-plugin-content-docs/current/FormObjects/properties_BackgroundAndBorder.md +++ b/i18n/es/docusaurus-plugin-content-docs/current/FormObjects/properties_BackgroundAndBorder.md @@ -5,7 +5,7 @@ title: Fondo y borde ## Color de fondo alternado -Permite definir un color de fondo diferente para las líneas o columnas impares de un list box. Por defecto, _Automático_ está seleccionado: la columna utiliza el color de fondo alternativo definido en el nivel del list box. +Permite definir un color de fondo diferente para las líneas o columnas impares de un list box. Permite definir un color de fondo diferente para las líneas o columnas impares de un list box. También puede definir esta propiedad utilizando el comando [`OBJECT SET RGB COLORS`](https://doc.4d.com/4dv20/help/command/en/page628.html). @@ -179,7 +179,7 @@ Por ejemplo, dado un list box en el que las líneas tienen un color gris/gris cl ![](../assets/en/FormObjects/listbox_styles1.png) -A continuación, quiere colorear las celdas con valores negativos en naranja oscuro. Para ello, se define un array de colores de fondo para cada columna, por ejemplo `<>_BgndColor_1`, `<>_BgndColor_2` y `<>_BgndColor_3`. Los valores de estos arrays tienen prioridad sobre los definidos en las propiedades del list box, así como los del array de color de fondo general: +A continuación, quiere colorear las celdas con valores negativos en naranja oscuro. A continuación, quiere colorear las celdas con valores negativos en naranja oscuro. Los valores de estos arrays tienen prioridad sobre los definidos en las propiedades del list box, así como los del array de color de fondo general: ```4d <>_BgndColorsCol_3{2}:=0x00FF8000 // naranja oscuro @@ -206,7 +206,7 @@ Puede obtener el mismo resultado utilizando los comandos [`LISTBOX SET ROW FONT ## Transparente -Define el fondo del list box como "Transparent". When set, any [alternate background color](#alternate-background-color) or [background color](#background-color--fill-color) defined for the column is ignored. +Define el fondo del list box como "Transparent". Cuando se define, se ignora cualquier [color de fondo alternativo](#alternate-background-color) o [color de fondo](#background-color--fill-color) definido para la columna. #### Gramática JSON diff --git a/i18n/es/docusaurus-plugin-content-docs/current/FormObjects/webArea_overview.md b/i18n/es/docusaurus-plugin-content-docs/current/FormObjects/webArea_overview.md index bb4a085e937f40..1250cdfe61a098 100644 --- a/i18n/es/docusaurus-plugin-content-docs/current/FormObjects/webArea_overview.md +++ b/i18n/es/docusaurus-plugin-content-docs/current/FormObjects/webArea_overview.md @@ -209,7 +209,7 @@ When you have done the settings as described above, you then have new options su ## Propiedades soportadas -[Border Line Style](properties_BackgroundAndBorder.md#border-line-style) - [Bottom](properties_CoordinatesAndSizing.md#bottom) - [Class](properties_Object.md#css-class) - [Context Menu](properties_Entry.md#context-menu) - [Height](properties_CoordinatesAndSizing.md#height) - [Horizontal Sizing](properties_ResizingOptions.md#horizontal-sizing) - [Left](properties_CoordinatesAndSizing.md#left) - [Method](properties_Action.md#method) - [Object Name](properties_Object.md#object-name) - [Progression](properties_WebArea.md#progression) - [Right](properties_CoordinatesAndSizing.md#right) - [Top](properties_CoordinatesAndSizing.md#top) - [Type](properties_Object.md#type) - [URL](properties_WebArea.md#url) - [Use embedded Web rendering engine](properties_WebArea.md#use-embedded-web-rendering-engine) - [Variable or Expression](properties_Object.md#variable-or-expression) - [Vertical Sizing](properties_ResizingOptions.md#vertical-sizing) - [Visibilty](properties_Display.md#visibility) - [Width](properties_CoordinatesAndSizing.md#width) +[Estilo de línea de borde](properties_BackgroundAndBorder.md#border-line-style) - [Fondo](properties_CoordinatesAndSizing.md#bottom) - [Clase](properties_Object.md#css-class) - [Menú contextual](properties_Entry.md#context-menu) - [Altura](properties_CoordinatesAndSizing.md#height) - [Tamaño horizontal](properties_ResizingOptions.md#horizontal-sizing) - [Izquierda](properties_CoordinatesAndSizing.md#left) - [Método](properties_Action.md#method) - [Nombre del objeto](properties_Object.md#nombre-del-objeto) - [Progresión](properties_WebArea.md#progression) - [Derecha](properties_CoordinatesAndSizing.md#right) - [Arriba](properties_CoordinatesAndSizing.md#top) - [Tipo](properties_Object.md#type) - [URL](properties_WebArea.md#url) - [Usar motor de renderizado web incrustado](properties_WebArea.md#use-embedded-web-rendering-engine) - [Variable o expresión](properties_Object.md#variable-or-expression) - [Tamaño vertical](properties_ResizingOptions.md#vertical-sizing) - [Visibilidad](properties_Display.md#visibility) - [Ancho](properties_CoordinatesAndSizing.md#width) ## 4DCEFParameters.json diff --git a/i18n/es/docusaurus-plugin-content-docs/current/Notes/updates.md b/i18n/es/docusaurus-plugin-content-docs/current/Notes/updates.md index d97db9d816d756..007c041238226b 100644 --- a/i18n/es/docusaurus-plugin-content-docs/current/Notes/updates.md +++ b/i18n/es/docusaurus-plugin-content-docs/current/Notes/updates.md @@ -9,13 +9,19 @@ Lea [**Novedades en 4D 20 R8**](https://blog.4d.com/en-whats-new-in-4d-v20-R8/), #### Lo más destacado +- Implement your own [**HTTP request handlers**](../WebServer/http-request-handler.md) using the new [`4D.IncomingMessage`](../API/IncomingMessageClass.md) class. - Las expresiones utilizadas en [propiedades de objetos de formulario](../FormObjects/properties_Reference.md) ahora se benefician de la comprobación de sintaxis en la [Lista de propiedades](../FormEditor/formEditor.md#property-list) y en el [Compilador](../Project/compiler.md#check-syntax). - Puede [asociar una clase a un formulario](../FormEditor/properties_FormProperties.md#form-class) para habilitar la anticipación del tipo de código y la instanciación automática de los datos del formulario cuando utilice el comando [`Form`](../commands/form.md). - Soporte de [sesiones autónomas](../API/SessionClass.md) para simplificar la codificación local de aplicaciones cliente/servidor. +- [New built component architecture](../Desktop/building.md#build-component) for a better compliance with Apple notarization guidelines. - Lenguaje 4D: - Comandos modificados: [`FORM EDIT`](../commands/form-edit.md) - [**Lista de bugs corregidos**](https://bugs.4d.fr/fixedbugslist?version=20_R8): lista de todos los bugs que se han corregido en 4D 20 R8. +#### Cambios de comportamiento + +- Because of their [new architecture](../Desktop/building.md#build-component), components built with 4D 20 R8 and higher cannot be installed in previous 4D releases. + ## 4D 20 R7 Lea [**Novedades en 4D 20 R7**](https://blog.4d.com/en-whats-new-in-4d-v20-R7/), la entrada del blog que muestra todas las nuevas funcionalidades y mejoras en 4D 20 R7. @@ -59,7 +65,7 @@ Lea [**Novedades en 4D 20 R6**](https://blog.4d.com/en-whats-new-in-4d-20-R6/), - Nuevo archivo [4DCEFParameters.json](../FormObjects/webArea_overview.md#4dcefparametersjson) para personalizar las áreas web anidadas de 4D. - Nueva clase [HTTPAgent](../API/HTTPAgentClass.md) y nueva propiedad [`agent`](../API/HTTPRequestClass.md#options-parameter) para la clase HTTPRequest. - Nuevas funciones [`enableState()`](../API/WebFormClass.md) y [`disableState()`](../API/WebFormClass.md) para controlar los estados de las páginas Qodly desde el servidor. -- Nueva [\\\\\` API$singleton](../REST/$singleton.md) para llamar las funciones singleton expuestas desde REST y nuevos [privilegios asociados](../ORDA/privileges.md). +- Nueva [\\\\\\\\\` API$singleton](../REST/$singleton.md) para llamar las funciones singleton expuestas desde REST y nuevos [privilegios asociados](../ORDA/privileges.md). - Un [nuevo botón de parámetros](../settings/web.md#activate-rest-authentication-through-dsauthentify-function) le ayuda a actualizar su proyecto para utilizar el modo REST "conexión forzada" (el método base `On REST Authentication` es ahora obsoleto). - Una [nueva pestaña de parámetros](../Project/compiler.md#warnings) permite definir la generación de advertencias de forma global. - Varios comandos, principalmente del tema "Entorno 4D", ahora son hilo seguro ([ver la lista completa](https://doc.4d.com/4Dv20R6/4D/Preemptive_6957385.999-2878208.en.html)), así como algunos selectores de los comandos [`SET DATABASE PARAMETER`](https://doc.4d.com/4dv20R/help/command/en/page642.html)/[`Get database parameter`](https://doc.4d.com/4dv20R/help/command/en/page643.html). @@ -103,7 +109,7 @@ Lea [**Novedades en 4D 20 R4**](https://blog.4d.com/en-whats-new-in-4d-v20-R4/), #### Lo más destacado -- Soporte de [formato de cifrado ECDSA\\\\\`](../Admin/tls.md#encryption) para certificados TLS. +- Soporte de [formato de cifrado ECDSA\\\\\\\\\`](../Admin/tls.md#encryption) para certificados TLS. - Las conexiones TLS cliente/servidor y servidor SQL ahora se [configuran dinámicamente](../Admin/tls.md#enabling-tls-with-the-other-servers) (no se requieren archivos de certificado). - Formato HTML directo para [exportaciones de definición de estructura](https://doc.4d.com/4Dv20R4/4D/20-R4/Exporting-and-importing-structure-definitions.300-6654851.en.html). - Nuevo [Code Live Checker](../code-editor/write-class-method.md#warnings-and-errors) que mejora el control del código durante los pasos de declaración, comprobación de sintaxis y compilación para evitar errores de ejecución. @@ -181,7 +187,7 @@ Ver [**Notas de lanzamiento para LTS 4D 20.x**](../../versioned_docs/version-20/ | Librería | Versión actual | Actualizado en 4D | Comentario | | --------- | -------------------------------------- | ----------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------- | | BoringSSL | 0aa300b | 20 R6 | Utilizado para QUIC | -| CEF | 128 | **20 R7** | Chromium 6613 | +| CEF | 121 | 20 R5 | Chromium 6167 | | Hunspell | 1.7.2 | 20 | Utilizado para la corrección ortográfica en formularios 4D y 4D Write Pro | | ICU | 73.2 | 20 | Esta importante actualización obliga a reconstruir automáticamente los índices alfanuméricos, texto y objeto. | | libldap | 2.6.7 | 20 R6 | | diff --git a/i18n/es/docusaurus-plugin-content-docs/current/ORDA/entities.md b/i18n/es/docusaurus-plugin-content-docs/current/ORDA/entities.md index 206d8ad97296b9..94f55063a3f7a2 100644 --- a/i18n/es/docusaurus-plugin-content-docs/current/ORDA/entities.md +++ b/i18n/es/docusaurus-plugin-content-docs/current/ORDA/entities.md @@ -239,7 +239,7 @@ Puede crear un objeto de tipo [entity selection](dsMapping.md#entity-selection) - Lance una búsqueda en las entidades [en una dataclass](API/DataClassClass.md#query) o en una [selección de entidades existente](API/EntitySelectionClass.md#query); - Uso de la función dataclass [`.all()`](API/DataClassClass.md#all) para seleccionar todas las entidades de una dataclass; -- Using the [`Create entity selection`](../commands/create-entity-selection.md) command or the [`.newSelection()`](API/DataClassClass.md#newselection) dataclass function to create a blank entity selection; +- Usando el comando [`Create entity selection`](../commands/create-entity-selection.md) o la función [`.newSelection()`](API/DataClassClass.md#newselection) de la dataclass para crear una selección de entidades en blanco; - Utilizando la función [`.copy()`](API/EntitySelectionClass.md#copy) para duplicar una entity selection existente; - Utilizando una de las diversas funciones de la [clase Entity selection](API/EntitySelectionClass.md) que devuelve una nueva selección de entidades, como [`.or()`](API/EntitySelectionClass.md#or); - Utilizando un atributo de relación de tipo "related entities" (ver abajo). diff --git a/i18n/es/docusaurus-plugin-content-docs/current/ORDA/ordaClasses.md b/i18n/es/docusaurus-plugin-content-docs/current/ORDA/ordaClasses.md index 1a96e30fbb11d7..44c468c06a0d91 100644 --- a/i18n/es/docusaurus-plugin-content-docs/current/ORDA/ordaClasses.md +++ b/i18n/es/docusaurus-plugin-content-docs/current/ORDA/ordaClasses.md @@ -138,7 +138,7 @@ El catálogo _City_ siguiente está expuesto en un datastore remoto (vista parci La clase `City` ofrece una API: ```4d -// cs.City class +// clase cs.City Class extends DataClass @@ -832,7 +832,7 @@ Use the `onHttpGet` keyword to declare functions that can be called through HTTP The `onHttpGet` keyword is available with: - ORDA Data model class functions -- [Singletons class functions](../Concepts/classes.md#singleton-classes) +- [Funciones de la clase Singletons](../Concepts/classes.md#singleton-classes) La sintaxis formal es: @@ -863,7 +863,7 @@ In the HTTP GET request, parameters must be passed directly in the URL and decla IP:port/rest//functionName?$params='[]' ``` -See the [Parameters](../REST/classFunctions#parameters) section in the REST server documentation. +Consulte la sección [Parámetros](../REST/classFunctions#parameters) en la documentación del servidor REST. ### resultado diff --git a/i18n/es/docusaurus-plugin-content-docs/current/Project/architecture.md b/i18n/es/docusaurus-plugin-content-docs/current/Project/architecture.md index 72566450a9602c..0d75191417fdd6 100644 --- a/i18n/es/docusaurus-plugin-content-docs/current/Project/architecture.md +++ b/i18n/es/docusaurus-plugin-content-docs/current/Project/architecture.md @@ -63,6 +63,7 @@ Este archivo de texto también puede contener llaves de configuración, en parti | lists.json | Listas definidas | JSON | | filters.json | Filtros definidos | JSON | | dependencies.json | Nombres de [componentes a cargar](components.md) en el proyecto | JSON | +| HTTPHandlers.json | Custom [HTTP request handlers](../WebServer/http-request-handler.md) defined for the web server | JSON | | styleSheets.css | Hojas de estilo CSS | CSS | | styleSheets_mac.css | Hojas de estilo css de Mac (a partir de una base binaria convertida) | CSS | | styleSheets_windows.css | Hojas de estilo css en Windows (a partir de una base binaria convertida) | CSS | @@ -109,8 +110,8 @@ Este archivo de texto también puede contener llaves de configuración, en parti #### `Triggers` -| Contenido | Descripción | Formato | -| -------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------- | ------- | +| Contenido | Descripción | Formato | +| -------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------- | ------- | | table__n_.4dm | Métodos trigger definidos en el proyecto. Un archivo de activación por tabla (n es el número de tabla) | text | **Note:** The .4dm file extension is a text-based file format, containing the code of a 4D method. Es compatible con las herramientas de control de versión. @@ -237,4 +238,4 @@ Define la carpeta raíz por defecto del servidor web 4D para las páginas, las i ## Archivo `.gitignore` (opcional) -Archivo que especifica los archivos que serán ignorados por git. Puede incluir un archivo gitignore en sus proyectos utilizando la opción **Crear un archivo .gitignore** en la página **General** de las preferencias. Para configurar el contenido de ese archivo, consulte [Crear archivo `.gitignore`](Preferences/general.md#create-gitignore-file). +Archivo que especifica los archivos que serán ignorados por git. Archivo que especifica los archivos que serán ignorados por git. Puede incluir un archivo gitignore en sus proyectos utilizando la opción **Crear un archivo .gitignore** en la página **General** de las preferencias. diff --git a/i18n/es/docusaurus-plugin-content-docs/current/Project/code-overview.md b/i18n/es/docusaurus-plugin-content-docs/current/Project/code-overview.md index 9c172881ee687b..80fb74ca59a37f 100644 --- a/i18n/es/docusaurus-plugin-content-docs/current/Project/code-overview.md +++ b/i18n/es/docusaurus-plugin-content-docs/current/Project/code-overview.md @@ -5,7 +5,7 @@ title: Métodos y clases El código 4D utilizado en todo el proyecto está escrito en [métodos](../Concepts/methods.md) y [clases](../Concepts/classes.md). -El IDE de 4D le ofrece varias funcionalidades para crear, editar, exportar o eliminar su código. Por lo general, utilizará el [editor de código](../code-editor/write-class-method.md) de 4D para trabajar con su código. +El IDE de 4D le ofrece varias funcionalidades para crear, editar, exportar o eliminar su código. You will usually use the included 4D [code editor](../code-editor/write-class-method.md) to work with your code. You can also use other editors such as **VS Code**, for which the [4D-Analyzer extension](https://github.com/4d/4D-Analyzer-VSCode) is available. ## Creación de métodos diff --git a/i18n/es/docusaurus-plugin-content-docs/current/Project/compiler.md b/i18n/es/docusaurus-plugin-content-docs/current/Project/compiler.md index 4332a450c745bf..2a135974c66c5f 100644 --- a/i18n/es/docusaurus-plugin-content-docs/current/Project/compiler.md +++ b/i18n/es/docusaurus-plugin-content-docs/current/Project/compiler.md @@ -61,7 +61,7 @@ El control sintáctico también puede lanzarse directamente con el comando **Ver :::info Compatibilidad -This button is only displayed in converted projects if the **All variables are typed (Direct typing)** [compilation path option](#enabling-direct-typing) is not selected. For information about this button, please refer to the [documentation of previous 4D releases](https://developer.4d.com/docs/20/Project/compiler#generate-typing). +This button is only displayed in converted projects if the **All variables are typed (Direct typing)** [compilation path option](#enabling-direct-typing) is not selected. Para más información sobre este botón, consulte la [documentación de versiones anteriores de 4D](https://developer.4d.com/docs/20/Project/compiler#generate-typing). ::: @@ -131,12 +131,12 @@ In projects converted from 4D versions prior to 20 R7, additional compilation op - **Declaración de tipos por defecto** - **Métodos Compilador para...** -Estas opciones solo se mantienen por compatibilidad con código antiguo. For more information, please refer to the [documentation of previous 4D releases](https://developer.4d.com/docs/20/Project/compiler#compiler-settings). +Estas opciones solo se mantienen por compatibilidad con código antiguo. Para más información, consulte la [documentación de versiones anteriores de 4D](https://developer.4d.com/docs/20/Project/compiler#compiler-settings). -In converted projects, it is recommended to [enable the direct typing mode](#enabling-direct-typing) and to write compliant declaration code, i.e.: +En proyectos convertidos, se recomienda [habilitar el modo de escritura directa](#enabling-direct-typing) y escribir código de declaración conforme, por ejemplo: -- declare explicitely all variables [using `var` keywords](../Concepts/variables.md#declaring-variables) -- declare explicitely all parameters in function prototypes (i.e. using the `Function` or `Class Constructor` keywords) or with `#DECLARE` keywords in methods (see [Declaring parameters](../Concepts/parameters.md#declaring-parameters). +- declarar explícitamente todas las variables [usando palabras clave `var`](../Concepts/variables.md#declaring-variables) +- declarar explícitamente todos los parámetros en prototipos de funciones (es decir, usando las palabras clave `Function` o `Class Constructor`) o con `#DECLARE` en métodos (ver [Declarando parámetros](../Concepts/parameters.md#declaring-parameters)). #### Enabling direct typing @@ -148,7 +148,7 @@ El modo de escritura directa es opcional sólo en proyectos convertidos. Se util Select **All variables are typed (Direct typing)** option in the **Compilation Path** menu to enable the direct typing mode. When this option is selected, other compatibility options become useless and are no longer displayed. -Using this option is recommended since it provides flexibility and efficiency. The direct typing concept assumes that all elements are directly declared where they are defined in your code. You just have to make sure that all your variables are declared using the regular [`var` syntax](../Concepts/variables.md#declaring-variables) and that your method and function parameters are declared [in their prototypes](../Concepts/parameters.md) (the [Check Syntax](#check-syntax) feature can help you detecting missing or invalid declarations). +Using this option is recommended since it provides flexibility and efficiency. The direct typing concept assumes that all elements are directly declared where they are defined in your code. Solo tiene que asegurarse de que todas sus variables son declaradas utilizando la [sintaxis 'var'](../Concepts/variables.md#declaring-variables) y que sus parámetros de método y función son declarados [en sus prototipos](../Concepts/parameters.md) (la función [Verificar sintaxis](#check-syntax) puede ayudarle a detectar declaraciones faltantes o no válidas). ## Advertencias diff --git a/i18n/es/docusaurus-plugin-content-docs/current/Project/components.md b/i18n/es/docusaurus-plugin-content-docs/current/Project/components.md index 6cafbcbaf8175e..408c0f13d1b578 100644 --- a/i18n/es/docusaurus-plugin-content-docs/current/Project/components.md +++ b/i18n/es/docusaurus-plugin-content-docs/current/Project/components.md @@ -5,18 +5,31 @@ title: Componentes Un componente 4D es un conjunto de código y/o de formularios 4D que representan una o varias funcionalidades que pueden añadirse y utilizarse en sus proyectos. Por ejemplo, el componente [4D SVG](https://github.com/4d/4D-SVG) añade comandos avanzados y un motor de renderizado integrado que puede utilizarse para visualizar archivos SVG. -Puede [desarrollar](../Extensions/develop-components.md) y [crear](../Desktop/building.md) sus propios componentes 4D, o descargar componentes públicos compartidos por la comunidad 4D que [se pueden encontrar en GitHub](https://github.com/search?q=4d-component\&type=Repositories). +Puede [desarrollar](../Extensions/develop-components.md) y [crear](../Desktop/building.md) sus propios componentes 4D, o descargar componentes públicos compartidos por la comunidad 4D que [se pueden encontrar en GitHub](https://github.com/search?q=4d-component\\&type=Repositories). Al desarrollar en 4D, los archivos de los componentes pueden almacenarse de forma transparente en su ordenador o en un repositorio Github. ## Componentes interpretados y compilados -Los componentes pueden ser interpretados o [compilados](../Desktop/building.md). La carpeta del paquete de un componente puede contener: +Los componentes pueden ser interpretados o [compilados](../Desktop/building.md). + +- Un proyecto 4D que se ejecuta en modo interpretado puede utilizar componentes interpretados o compilados. +- Un proyecto 4D que se ejecuta en modo compilado no puede utilizar componentes interpretados. En este caso, sólo se pueden utilizar componentes compilados. + +### Package folder + +La carpeta del paquete de un componente puede contener: - ya sea una carpeta Proyecto (componente interpretado) -- o un archivo .4DZ (componente compilado) +- for **compiled components**: + - either a "Contents" folder containing a .4DZ file, a _Resources_ folder, an _Info.plist_ file (recommended architecture) + - or directly a .4DZ file with other folders such as _Resources_. + +:::note + +The "Contents" folder architecture is recommended for components if you want to [notarize](../Desktop/building.md#about-notarization) your applications on macOS. -Un proyecto 4D que se ejecuta en modo interpretado puede utilizar componentes interpretados o compilados. Un proyecto 4D que se ejecuta en modo compilado no puede utilizar componentes interpretados. En este caso, sólo se pueden utilizar componentes compilados. +::: ## Cargando componentes @@ -34,7 +47,7 @@ Esta página describe cómo trabajar con componentes en los entornos **4D** y ** Para cargar un componente en su proyecto 4D, usted puede: - copiar los archivos del componente en la [carpeta **Components** de su proyecto](architecture.md#components), -- or, declare the component in the **dependencies.json** file of your project; this is done automatically for local files when you [**add a dependency using the Dependency manager interface**](#adding-a-dependency). +- o bien, declare el componente en el archivo **dependencies.json** de su proyecto; esto se hace automáticamente para los archivos locales cuando [**añade una dependencia utilizando la interfaz del gestor de dependencias**](#adding-a-dependency). Los componentes declarados en el archivo **dependencies.json** pueden almacenarse en diferentes ubicaciones: @@ -109,7 +122,7 @@ Declara un componente local en el archivo [**dependencies.json**](#dependencyjso ... donde "myComponent1" y "myComponent2" son el nombre de los componentes a cargar. -By default, if "myComponent1" and "myComponent2" are not declared in an [**environment4d.json**](#environment4djson) file, 4D will look for the component's package folder (_i.e._ the project root folder of the component) at the same level as your 4D project's package folder, e.g.: +De forma predeterminada, si "myComponent1" y "myComponent2" no están declarados en un archivo [**environment4d.json**](#environment4djson), 4D buscará la carpeta del paquete del componente (_es decir_, la carpeta raíz del proyecto del componente) al mismo nivel que la carpeta del paquete de su proyecto de 4D, por ejemplo: ``` /MyProjectRoot/ @@ -126,7 +139,7 @@ Si no desea utilizar la arquitectura **dependencies.json**, puede instalar compo #### Personalizar rutas de componentes -Si desea personalizar la ubicación de los componentes locales, declare las rutas de las dependencias que no se almacenan en el mismo nivel que la carpeta del proyecto en el archivo [**environment4d.json**](#environment4djson). +Si la ruta de un componente declarado en el archivo **environment4d.json** no se encuentra cuando se inicia el proyecto, el componente no se carga y obtiene el estado _No encontrado_ [status](dependency-status), incluso si existe una versión del componente junto a la carpeta de paquetes del proyecto. Puede utilizar rutas **relativas** o **absolutas** (ver abajo). @@ -144,7 +157,7 @@ Ejemplos: :::note -Si la ruta de un componente declarado en el archivo **environment4d.json** no se encuentra cuando se inicia el proyecto, el componente no se carga y obtiene el estado _No encontrado_ [status](dependency-status), incluso si existe una versión del componente junto a la carpeta de paquetes del proyecto. +Si desea personalizar la ubicación de los componentes locales, declare las rutas de las dependencias que no se almacenan en el mismo nivel que la carpeta del proyecto en el archivo [**environment4d.json**](#environment4djson). ::: @@ -158,9 +171,9 @@ Utilizar rutas relativas es **recomendable** en la mayoría de los casos, ya que Las rutas absolutas sólo deben utilizarse para componentes específicos de una máquina y un usuario. -### Componentes almacenados en GitHub +### Configuración del repositorio GitHub -Los componentes 4D disponibles en GitHub pueden ser referenciados y cargados automáticamente en sus proyectos 4D. +Para poder referenciar y utilizar directamente un componente 4D almacenado en GitHub, es necesario configurar el repositorio del componente GitHub: :::note @@ -168,9 +181,9 @@ En cuanto a los componentes almacenados en GitHub, tanto los archivos [**depende ::: -#### Configuración del repositorio GitHub +#### Componentes almacenados en GitHub -Para poder referenciar y utilizar directamente un componente 4D almacenado en GitHub, es necesario configurar el repositorio del componente GitHub: +Los componentes 4D disponibles en GitHub pueden ser referenciados y cargados automáticamente en sus proyectos 4D. - Comprima los archivos componentes en formato ZIP. - Nombre este archivo con el mismo nombre que el repositorio GitHub. @@ -357,26 +370,26 @@ Una vez establecida la conexión, se muestra el icono de GitHub![dependency-gitl :::note -If the component is stored on a [private GitHub repository](#private-repositories) and your personal token is missing, an error message is displayed and a **Add a personal access token...** button is displayed (see [Providing your GitHub access token](#providing-your-github-access-token)). +Si el componente se almacena en un [repositorio privado de GitHub](#private-repositories) y falta su token personal, se muestra un mensaje de error y se muestra un botón **Añadir un token de acceso personal...** (ver [Suministrar su token de acceso GitHub](#providing-your-github-access-token)). ::: -You can then define the [tag or version](#tags-and-versions) option for the dependency: +Luego puede definir la opción [etiqueta o versión](#tags-and-versions) para la dependencia: ![dependency-git-tag](../assets/en/Project/dependency-git-tag.png) - **Latest**: Selected by default and allows to download the release that is tagged as the latest (stable) version. -- **Up to Next Major Version**: Define a [semantic version range](#tags-and-versions) to restrict updates to the next major version. +- **Hasta la próxima versión mayor**: define un [rango de versiones semánticas](#tags-and-versions) para restringir las actualizaciones a la próxima versión principal. - **Up to Next Minor Version**: Similarly, restrict updates to the next minor version. -- **Exact Version (Tag)**: Select or manually enter a [specific tag](#tags-and-versions) from the available list. +- **Versión exacta (Etiqueta)**: selecciona o introduce manualmente una [etiqueta específica](#tags-and-versions) de la lista disponible. Haga clic en el botón **Añadir** para añadir la dependencia al proyecto. -The GitHub dependency declared in the [**dependencies.json**](#dependenciesjson) file and added to the [inactive dependency list](#dependency-status) with the **Available at restart** status. Se cargará cuando se reinicie la aplicación. +La dependencia de GitHub declarada en el archivo [**dependencies.json**](#dependenciesjson) y añadida a la [lista de dependencias inactivas](#dependency-status) con el estado **Disponible al reiniciar**. Se cargará cuando se reinicie la aplicación. #### Providing your GitHub access token -If the component is stored on a [private GitHub repository](#private-repositories), you need to provide your personal access token to the Dependency manager. Para hacer esto, puede: +Si el componente está almacenado en un [repositorio privado GitHub](#private-repositories), deberá suministrar su token de acceso personal al gestor de dependencias. Para hacer esto, puede: - click on **Add a personal access token...** button that is displayed in the "Add a dependency" dialog box after you entered a private GitHub repository path. - or, select **Add a GitHub personal access token...** in the Dependency manager menu at any moment. @@ -403,7 +416,7 @@ Aparece una caja de diálogo de confirmación. Si la dependencia se declaró en ![dependency-remove](../assets/en/Project/remove-comp.png) -If you confirm the dialog box, the removed dependency [status](#dependency-status) is automatically flagged "Unload after restart". Se descargará cuando se reinicie la aplicación. +Si confirma la caja de diálogo, la dependencia eliminada [estado](#estado-dependencia) se marca automáticamente como "Descargar tras reinicio". Se descargará cuando se reinicie la aplicación. ### Origen de dependencia @@ -460,8 +473,8 @@ Las siguientes etiquetas de estado están disponibles: - **Not found**: la dependencia se declara en el archivo dependencies.json pero no se encuentra. - **Inactive**: la dependencia no se carga porque no es compatible con el proyecto (por ejemplo, el componente no está compilado para la plataforma actual). - **Duplicated**: la dependencia no se carga porque existe otra dependencia con el mismo nombre en la misma ubicación (y está cargada). -- **Available after restart**: The dependency reference has just been added [using the interface](#monitoring-project-dependencies), it will be loaded once the application restarts. -- **Unloaded after restart**: The dependency reference has just been removed [using the interface](#removing-a-dependency), it will be unloaded once the application restarts. +- **Disponible después del reinicio**: la referencia a dependencias acaba de ser añadida [usando la interfaz](#monitoring-project-dependencies), se cargará una vez que la aplicación se reinicie. +- **Descargado después de reiniciar**: la referencia de dependencias acaba de ser removida [utilizando la interfaz](#removing-a-dependency), se descargará una vez que la aplicación se reinicie. Al pasar el ratón por encima de la línea de dependencia, se muestra un mensaje que ofrece información adicional sobre el estado: diff --git a/i18n/es/docusaurus-plugin-content-docs/current/Project/documentation.md b/i18n/es/docusaurus-plugin-content-docs/current/Project/documentation.md index 56bf06eb732926..82f4cfad16caac 100644 --- a/i18n/es/docusaurus-plugin-content-docs/current/Project/documentation.md +++ b/i18n/es/docusaurus-plugin-content-docs/current/Project/documentation.md @@ -196,30 +196,30 @@ The [documentation](https://doc.4d.com) of the command .... En el archivo `WP SwitchToolbar.md`, puede escribir: ````md - + GetLogo (size) -> logo -| Parameter | Type | in/out | Description | -| --------- | ------ | ------ | ----------- | -| size | Integer | in | Logo style selector (1 to 5) | -| logo | Picture | out | Selected logo | +| Parámetro | Tipo | Entrada/Salida | Descripción | +| --------- | ------ | -------------- | ----------- | +| size | Integer | Entrada | Selector de estilo de logo (1 a 5) | +| logo | Picture | Salida | Logo seleccionado | -## Description +## Descripción -This method returns a logo of a specific size, depending on the value of the *size* parameter. -1 = smallest size, 5 = largest size. +Este método devuelve un logo de un tamaño específico, dependiendo del valor del parámetro *size*. +1 = tamaño más pequeño, 5 = tamaño más grande. -## Example +## Ejemplo ```4d C_PICTURE($logo) C_LONGINT($size) -//Get the largest logo +//Obtener el logo más grande $logo:=GetLogo(5) ``` ```` diff --git a/i18n/es/docusaurus-plugin-content-docs/current/Project/overview.md b/i18n/es/docusaurus-plugin-content-docs/current/Project/overview.md index 900ed94d1cee0e..926dfc34e2c139 100644 --- a/i18n/es/docusaurus-plugin-content-docs/current/Project/overview.md +++ b/i18n/es/docusaurus-plugin-content-docs/current/Project/overview.md @@ -7,7 +7,7 @@ Un proyecto 4D contiene todo el código fuente de una aplicación 4D, sin import ## Archivos del proyecto -Los archivos de proyecto 4D se abren y editan con las aplicaciones estándar de la plataforma 4D (4D o 4D Server). Con 4D, los editores completos están disponibles para gestionar los archivos, como un editor de estructuras, un editor de código, un editor de formularios, un editor de menú... +Los archivos de proyecto 4D se abren y editan con las aplicaciones estándar de la plataforma 4D (4D o 4D Server). With 4D, full-featured editors are available to manage files, including a structure editor, a [Code Editor](../code-editor/write-class-method.md), a [form editor](../FormEditor/formEditor.md), a menu editor... Como los proyectos se encuentran en archivos legibles, en texto plano (JSON, XML, etc.), pueden ser leídos o editados manualmente por los desarrolladores, utilizando cualquier editor de código. diff --git a/i18n/es/docusaurus-plugin-content-docs/current/REST/$catalog.md b/i18n/es/docusaurus-plugin-content-docs/current/REST/$catalog.md index 9c06c21649306e..78d8f428381d2c 100644 --- a/i18n/es/docusaurus-plugin-content-docs/current/REST/$catalog.md +++ b/i18n/es/docusaurus-plugin-content-docs/current/REST/$catalog.md @@ -16,7 +16,7 @@ El catálogo describe todas las clases de datos, atributos y [singletoneos inter ## $catalog -Returns [shared singletons](#singletons) (if any) and a list of the dataclasses in your project along with two URIs: one to access the information about its structure and one to retrieve the data in the dataclass +Devuelve [shared singletons](#singletons) (si existe) y una lista de las clases de datos de su proyecto junto con dos URIs: una para acceder a la información sobre su estructura y otra para recuperar los datos de la clase de datos ### Descripción diff --git a/i18n/es/docusaurus-plugin-content-docs/current/REST/$singleton.md b/i18n/es/docusaurus-plugin-content-docs/current/REST/$singleton.md index 3ea121380c2121..905a2eb229f4dd 100644 --- a/i18n/es/docusaurus-plugin-content-docs/current/REST/$singleton.md +++ b/i18n/es/docusaurus-plugin-content-docs/current/REST/$singleton.md @@ -43,7 +43,7 @@ with data in the body of the POST request: `["myparam"]` :::note -The `SingletonClassFunction()` function must have been declared with the `onHttpGet` keyword to be callable with `GET` (see [Function configuration](ClassFunctions#function-configuration)). +La función `SingletonClassFunction()` debe haber sido declarada con la palabra clave `onHttpGet` para ser invocable con `GET` (ver [Configuración de funciones](ClassFunctions#function-configuration)). ::: diff --git a/i18n/es/docusaurus-plugin-content-docs/current/REST/ClassFunctions.md b/i18n/es/docusaurus-plugin-content-docs/current/REST/ClassFunctions.md index d6c56cb3d05207..4925e51b56bdae 100644 --- a/i18n/es/docusaurus-plugin-content-docs/current/REST/ClassFunctions.md +++ b/i18n/es/docusaurus-plugin-content-docs/current/REST/ClassFunctions.md @@ -3,14 +3,14 @@ id: classFunctions title: Llamando a funciones de clase --- -You can call [data model class functions](ORDA/ordaClasses.md) defined for the ORDA Data Model and [singleton class functions]($singleton.md) through REST requests, so that you can benefit from the exposed API of the targeted 4D application. +Puede llamar a [funciones clase modelo de datos](ORDA/ordaClasses.md) definidas para el modelo de datos ORDA y [funciones clase singleton]($singleton.md) a través de peticiones REST, para que pueda beneficiarse de la API expuesta de la aplicación 4D seleccionada. Functions can be called in two ways: - using **POST requests**, with data parameters passed in the body of the request. - using **GET requests**, with parameters directly passed in the URL. -POST requests provide a better security level because they avoid running sensitive code through an action as simple as clicking on a link. However, GET requests can be more compliant with user experience, allowing to call functions by entering an URL in a browser (note: the developer must ensure no sensitive action is done in such functions). +POST requests provide a better security level because they avoid running sensitive code through an action as simple as clicking on a link. Sin embargo, las peticiones GET pueden ser más compatibles con la experiencia del usuario, permitiendo llamar a las funciones introduciendo una URL en un navegador (nota: el desarrollador debe asegurarse de que no se hace ninguna acción sensible en dichas funciones). ## Llamadas de las funciones @@ -29,11 +29,11 @@ The following ORDA and singleton functions can be called in REST: :::note -`/rest/{dataClass}/Function` can be used to call either a dataclass or an entity selection function (`/rest/{dataClass}` returns all entities of the DataClass as an entity selection). La función se busca primero en la clase de selección de entidades. Si no se encuentra, se busca en la dataclass. En otras palabras, si una función con el mismo nombre se define tanto en la clase DataClass como en la clase EntitySelection, la función de clase de DataClass nunca se ejecutará. +`/rest/{dataClass}/Function` puede utilizarse para llamar a una clase de datos o a una función de selección de entidades (`/rest/{dataClass}` devuelve todas las entidades de la DataClass como una selección de entidades). La función se busca primero en la clase de selección de entidades. Si no se encuentra, se busca en la dataclass. En otras palabras, si una función con el mismo nombre se define tanto en la clase DataClass como en la clase EntitySelection, la función de clase de DataClass nunca se ejecutará. ::: -Functions are simply called on the appropriate ORDA interface or singleton class, without (). [Parameters](#parameters) are passed either in the body of the POST request (`POST` calls) or in the `params` collection in the URL (`GET` calls). +Las funciones se llaman simplemente en la interfaz ORDA o clase singleton apropiada, sin (). [Parámetros](#parameters) se pasan en el cuerpo de la petición POST (llamadas `POST`) o en la colección `params` de la URL (llamadas `GET`). Por ejemplo, si ha definido una función `getCity()` en la dataclass City, podría llamarla utilizando la siguiente petición: @@ -49,7 +49,7 @@ con los datos en el cuerpo de la petición POST: `["Aguada"]` :::note -The `getCity()` function must have been declared with the `onHttpGet` keyword (see [Function configuration](#function-configuration) below). +La función `getCity()` debe haber sido declarada con la palabra clave `onHttpGet` (ver [Configuración de la función](#function-configuration)). ::: @@ -63,7 +63,7 @@ $city:=ds.City.getCity("Aguada") ### `exposed` -All functions allowed to be called directly from HTTP REST requests (`POST` or `GET`) must be declared with the `exposed` keyword. Por ejemplo: +Todas las funciones permitidas para ser llamadas directamente desde peticiones HTTP REST (`POST` o `GET`) deben ser declaradas con la palabra clave `exposed`. Por ejemplo: ```4d exposed Function getSomeInfo() : 4D.OutgoingMessage diff --git a/i18n/es/docusaurus-plugin-content-docs/current/REST/authUsers.md b/i18n/es/docusaurus-plugin-content-docs/current/REST/authUsers.md index d042a365ee7017..48d7d412c13493 100644 --- a/i18n/es/docusaurus-plugin-content-docs/current/REST/authUsers.md +++ b/i18n/es/docusaurus-plugin-content-docs/current/REST/authUsers.md @@ -39,7 +39,7 @@ La secuencia de inicio de sesión del usuario es la siguiente: En la fase de inicio de sesión del usuario, el uso de la licencia está desconectado de las sesiones de usuario web. Sólo se requiere una licencia cuando se ejecuta el comando [`Session.setPrivileges()`](../API/SessionClass.md#setprivileges), lo que permite controlar el número de licencias utilizadas. -Todas las demás peticiones REST (manejando datos o ejecutando una función) sólo serán procesadas si son ejecutadas dentro de una sesión web con privilegios apropiados, de lo contrario devuelven un error. Sintaxis Sintaxis Sintaxis Sintaxis Ejecutar esta función activa el consumo de la licencia 4D. +Todas las demás peticiones REST (manejando datos o ejecutando una función) sólo serán procesadas si son ejecutadas dentro de una sesión web con privilegios apropiados, de lo contrario devuelven un error. Sintaxis Sintaxis Sintaxis Sintaxis Sintaxis Sintaxis Sintaxis Sintaxis Ejecutar esta función activa el consumo de la licencia 4D. ### Peticiones REST descriptivas diff --git a/i18n/es/docusaurus-plugin-content-docs/current/ViewPro/commands/vp-resize-table.md b/i18n/es/docusaurus-plugin-content-docs/current/ViewPro/commands/vp-resize-table.md index 6ffb5b49b597d9..e9f8717eea9589 100644 --- a/i18n/es/docusaurus-plugin-content-docs/current/ViewPro/commands/vp-resize-table.md +++ b/i18n/es/docusaurus-plugin-content-docs/current/ViewPro/commands/vp-resize-table.md @@ -29,7 +29,7 @@ El comando `VP RESIZE TABLE` cambi Se aplican las siguientes reglas: - Los encabezados deben permanecer en la misma línea y el rango de la tabla resultante debe superponerse al rango de la tabla original. -- If the row count of the resized table is inferior to the initial row count, values inside cropped rows or columns are kept if they were not bound to a [data context](vp-set-data-context.md), otherwise they are deleted. +- Si el conteo de líneas de la tabla redimensionada es inferior al conteo de líneas inicial, los valores dentro de las líneas o columnas recortadas se mantienen si no estaban vinculados a un [contexto de datos](vp-set-data-context.md), de lo contrario se eliminan. - Si la tabla se expande en las celdas que contienen datos: - si se añaden líneas, se eliminan datos, - si se añaden columnas, los datos se mantienen y se muestran en nuevas columnas. diff --git a/i18n/es/docusaurus-plugin-content-docs/current/ViewPro/configuring.md b/i18n/es/docusaurus-plugin-content-docs/current/ViewPro/configuring.md index 726ccc0758854f..40da64f65eb572 100644 --- a/i18n/es/docusaurus-plugin-content-docs/current/ViewPro/configuring.md +++ b/i18n/es/docusaurus-plugin-content-docs/current/ViewPro/configuring.md @@ -126,7 +126,7 @@ La definición de un modelo de formato garantiza que el contenido de sus documen 4D View Pro tiene formatos integrados para números, fechas, horas y texto, pero también puede crear sus propios modelos para dar formato al contenido de las celdas utilizando caracteres y códigos especiales. -For example, when using the [VP SET VALUE](commands/vp-set-value.md) or [VP SET NUM VALUE](commands/vp-set-num-value.md) commands to enter amounts in an invoice, you may want the currency symbols ($, €, ¥, etc.) alinearse independientemente del espacio requerido por el número (es decir, si el importe es de 5,00 $ o de 5.000,00 $). Podría utilizar caracteres de formato y espectificar el patrón _($\* #,##0.00_) que mostraría los importes como se muestra: +Por ejemplo, al usar los comandos [VP SET VALUE](commands/vp-set-value.md) o [VP SET NUM VALUE](commands/vp-set-num-value.md) para introducir cantidades en una factura, puede que desee utilizar los símbolos de moneda ($, €, ¥, etc.) alinearse independientemente del espacio requerido por el número (es decir, si el importe es de 5,00 $ o de 5.000,00 $). Podría utilizar caracteres de formato y espectificar el patrón _($\* #,##0.00_) que mostraría los importes como se muestra: ![](../assets/en/ViewPro/apx_vpCellFormat1.PNG) diff --git a/i18n/es/docusaurus-plugin-content-docs/current/WebServer/authentication.md b/i18n/es/docusaurus-plugin-content-docs/current/WebServer/authentication.md index 853de52248ea07..e4f2c2ff84fb38 100644 --- a/i18n/es/docusaurus-plugin-content-docs/current/WebServer/authentication.md +++ b/i18n/es/docusaurus-plugin-content-docs/current/WebServer/authentication.md @@ -28,7 +28,7 @@ Básicamente, en este modo, depende del desarrollador definir cómo autenticar a Este modo de autenticación es el más flexible porque permite: - o bien, delegar la autenticación del usuario a una aplicación de terceros (por ejemplo, una red social, SSO); -- o bien, ofrecer una interfaz al usuario (por ejemplo, un formulario web) para que pueda crear su cuenta en su base de datos clientes; luego, puede autenticar a los usuarios con cualquier algoritmo personalizado (ver [este ejemplo](sessions.md#example) del Lo importante es que nunca guarde la contraseña en claro, utilizando ese código: Lo importante es que nunca guarde la contraseña en claro, utilizando ese código: Lo importante es que nunca guarde la contraseña en claro, utilizando ese código: Lo importante es que nunca guarde la contraseña en claro, utilizando ese código: Lo importante es que nunca guarde la contraseña en claro, utilizando ese código: +- o bien, ofrecer una interfaz al usuario (por ejemplo, un formulario web) para que pueda crear su cuenta en su base de datos clientes; luego, puede autenticar a los usuarios con cualquier algoritmo personalizado (ver [este ejemplo](sessions.md#example) del Lo importante es que nunca guarde la contraseña en claro, utilizando ese código: Lo importante es que nunca guarde la contraseña en claro, utilizando ese código: Lo importante es que nunca guarde la contraseña en claro, utilizando ese código: Lo importante es que nunca guarde la contraseña en claro, utilizando ese código: Lo importante es que nunca guarde la contraseña en claro, utilizando ese código: Lo importante es que nunca guarde la contraseña en claro, utilizando ese código: ```4d //... creación de cuenta de usuario @@ -77,13 +77,14 @@ Por tanto, se llama al método base `On Web Authentication`: - cuando el servidor web recibe una URL que solicita un recurso que no existe - cuando el servidor web recibe una URL que empieza por `4DACTION/`, `4DCGI/`... -- cuando el servidor web recibe una URL de acceso a la raíz y no se ha definido ninguna página de inicio en la Configuración o mediante el comando `WEB SET HOME PAGE` +- cuando el servidor web recibe una URL de acceso raíz y no se ha definido ninguna página de inicio en los Parámetros o mediante el comando [`WEB SET HOME PAGE`](../commands-legacy/web-set-home-page.md) - cuando el servidor web procesa una etiqueta que ejecuta código (por ejemplo, `4DSCRIPT`) en una página semidinámica. Por tanto, NO se llama al método base `On Web Authentication`: - cuando el servidor web recibe una URL que solicita una página estática válida. - cuando el servidor web recibe una URL que comienza con `rest/` y se ejecuta el servidor REST (en este caso, la autenticación es manejada a través de [`ds. función uthentify`](../REST/authUsers#force-login-mode) o el [método base `On REST Authentication`](REST/configuration.md#using-the-on-rest-authentication-database-method) (obsoleto) o los [parámetros de estructura](REST/configuration.md#using-the-structure-settings)). +- cuando el servidor web recibe una URL con un patrón que desencadena un [gestor de peticiones HTTP personalizadas](http-request-handler.md). ### Sintaxis @@ -102,13 +103,13 @@ Por tanto, NO se llama al método base `On Web Authentication`: Debe declarar estos parámetros de la siguiente manera: ```4d -// On Web Authentication database method +// Método base On Web Authentication #DECLARE ($url : Text; $content : Text; \ $IPClient : Text; $IPServer : Text; \ $user : Text; $password : Text) \ -> $accept : Boolean -//Code for the method +//Código del método ``` @@ -120,7 +121,7 @@ Todos los parámetros del método base `On Web Authentication` no están necesar #### $url - URL -The first parameter (`$url`) is the URL received by the server, from which the host address has been removed. +El primer parámetro (`$url`) es la URL recibida por el servidor, de la que se ha eliminado la dirección del host. Tomemos el ejemplo de una conexión a la Intranet. Supongamos que la dirección IP de su máquina 4D Web Server es 123.45.67.89. The following table shows the values of $urll depending on the URL entered in the Web browser: @@ -134,7 +135,7 @@ Tomemos el ejemplo de una conexión a la Intranet. Supongamos que la dirección #### $content - Header and Body of the HTTP request -The second parameter (`$content`) is the header and the body of the HTTP request sent by the web browser. Tenga en cuenta que esta información se pasa a su método base `On Web Authentication` tal cual. Su contenido variará en función de la naturaleza del navegador web que intenta la conexión. +El segundo parámetro (`$content`) es el encabezado y el cuerpo de la petición HTTP enviada por el navegador web. Tenga en cuenta que esta información se pasa a su método base `On Web Authentication` tal cual. Su contenido variará en función de la naturaleza del navegador web que intenta la conexión. Si su aplicación utiliza esta información, deberá analizar el encabezado y el cuerpo. Puede utilizar los comandos `WEB GET HTTP HEADER` y `WEB GET HTTP BODY`. @@ -152,9 +153,9 @@ The `$IPServer` parameter receives the IP address used to call the web server. 4 #### $user and $password - User Name and Password -Generalidades Generalidades Generalidades Generalidades Esta caja de diálogo aparece para cada conexión, si se selecciona la autenticación [basic](#basic-protocol) o [digest](#digest-protocol). +Generalidades Generalidades Generalidades Generalidades Generalidades Generalidades Generalidades Generalidades Esta caja de diálogo aparece para cada conexión, si se selecciona la autenticación [basic](#basic-protocol) o [digest](#digest-protocol). -> If the user name sent by the browser exists in 4D, the $password parameter (the user’s password) is not returned for security reasons. +> Si el nombre de usuario enviado por el navegador existe en 4D, el parámetro $password (la contraseña del usuario) no se devuelve por razones de seguridad. #### $accept - Retorno de función diff --git a/i18n/es/docusaurus-plugin-content-docs/current/WebServer/http-request-handler.md b/i18n/es/docusaurus-plugin-content-docs/current/WebServer/http-request-handler.md index 2b2aa08ae1cbaf..e8d679fa3ffd3d 100644 --- a/i18n/es/docusaurus-plugin-content-docs/current/WebServer/http-request-handler.md +++ b/i18n/es/docusaurus-plugin-content-docs/current/WebServer/http-request-handler.md @@ -66,10 +66,12 @@ The handler identifier is the couple [pattern + a verb among the verbs list]. URL patterns can be given as **prefixes** or using **regular expressions**. -- To declare a prefix pattern, use the "pattern" property name in the HTTPHandlers.json file. Prefixes are considered as regular expressions already containing starting and ending `/`.\ - Ex: `"pattern" : "docs"` or `"pattern" : "docs/invoices"` +- To declare a regular expression pattern, use the "regexPattern" property name in the HTTPHandlers.json file. Regular expressions patterns are handled directly.\ + Regular expressions patterns are handled directly.\ + Ex: `"regexPattern" : "/docs/**/index.html"` -- To declare a regular expression pattern, use the "regexPattern" property name in the HTTPHandlers.json file. Regular expressions patterns are handled directly. +- To declare a prefix pattern, use the "pattern" property name in the HTTPHandlers.json file. Regular expressions patterns are handled directly. + Regular expressions patterns are handled directly.\ Ex: `"regexPattern" : "/docs/**/index.html"` "Pattern" and "regexPattern" properties cannot be used in the same handler definition (in this case, only the "regexPattern" property is taken into account). @@ -251,7 +253,7 @@ Then, the request handler can use this information to trigger appropriate busine ### Output: an instance of the 4D.OutgoingMessage class -The request handler can return an object instance of the [4D.OutGoingMessage class](../API/OutGoingMessageClass.md), i.e. some full web content ready for a browser to handle, such as a file content. +The request handler can return an object instance of the [4D.OutGoingMessage class](../API/OutgoingMessageClass.md), i.e. some full web content ready for a browser to handle, such as a file content. ### Ejemplo diff --git a/i18n/es/docusaurus-plugin-content-docs/current/WebServer/httpRequests.md b/i18n/es/docusaurus-plugin-content-docs/current/WebServer/httpRequests.md index 5a017d316bc5f4..7bc98582e7f842 100644 --- a/i18n/es/docusaurus-plugin-content-docs/current/WebServer/httpRequests.md +++ b/i18n/es/docusaurus-plugin-content-docs/current/WebServer/httpRequests.md @@ -13,7 +13,7 @@ The 4D web server provides several built-in features to handle HTTP requests: :::info -You can also implement your own HTTP request handlers for a customized control over incoming requests and outgoing responses. When a custom HTTP request handler is triggered, no database method is called. See [**HTTP Request Handler**](http-request-handler.md) section. +You can also implement your own HTTP request handlers for a customized control over incoming requests and outgoing responses. When a custom HTTP request handler is triggered, no database method is called. Vea la sección [**HTTP Request Handler**](http-request-handler.md). ::: @@ -23,7 +23,7 @@ El método base `On Web Connection` puede utilizarse como punto de entrada al se ### Llamadas a métodos base -The `On Web Connection` database method is automatically called when the server receives any URL that is not a valid path to an existing page on the server (and is not a URL with a pattern triggering a [custom HTTP Request Handler](http-request-handler.md)). +El método base `On Web Connection` se llama automáticamente cuando el servidor recibe cualquier URL que no sea una ruta válida a una página existente en el servidor (y no es una URL con un patrón que desencadena un [gestor de petición HTTP personalizado](http-request-handler.md)). Se llama al método de la base de datos con la URL. @@ -58,7 +58,7 @@ You must declare these parameters: ### $url - URL extra data -The first parameter ($url) is the URL entered by users in the address area of their web browser, without the host address. +El primer parámetro ($url) es la URL introducida por los usuarios en el área de direcciones de su navegador web, sin la dirección local. Utilicemos como ejemplo una conexión de intranet. Supongamos que la dirección IP de su máquina 4D Web Server es 123.4.567.89. The following table shows the values of $url depending on the URL entered in the web browser: @@ -74,7 +74,7 @@ Tenga en cuenta que es libre de utilizar este parámetro a su conveniencia. 4D s ### $header - Header and Body of the HTTP request -The second parameter ($header) is the header and the body of the HTTP request sent by the web browser. Tenga en cuenta que esta información se pasa a su método base `On Web Connection` "tal cual". Su contenido variará en función de la naturaleza del navegador web que intenta la conexión. +El segundo parámetro ($header) es el encabezado y el cuerpo de la petición HTTP enviada por el navegador web. Tenga en cuenta que esta información se pasa a su método base `On Web Connection` "tal cual". Su contenido variará en función de la naturaleza del navegador web que intenta la conexión. Si su aplicación utiliza esta información, deberá analizar el encabezado y el cuerpo. Puede utilizar los comandos `WEB GET HTTP HEADER` y `WEB GET HTTP BODY`. @@ -92,9 +92,9 @@ The $ServerIP parameter receives the IP address requested by the 4D Web Server. ### $user and $password - User Name and Password -The $user and $password parameters receive the user name and password entered by the user in the standard identification dialog box displayed by the browser, if applicable (see the [authentication page](authentication.md)). +Los parámetros $user y $password reciben el nombre de usuario y la contraseña introducidos por el usuario en el cuadro de diálogo de identificación estándar que muestra el navegador, si procede (ver la página [autenticación](authentication.md)). -> If the user name sent by the browser exists in 4D, the $password parameter (the user’s password) is not returned for security reasons. +> Si el nombre de usuario enviado por el navegador existe en 4D, el parámetro $password (la contraseña del usuario) no se devuelve por razones de seguridad. ## /4DACTION @@ -134,17 +134,16 @@ Este ejemplo describe la asociación de la URL `/4DACTION` con un objeto imagen El método `getPhoto` es el siguiente: ```4d -#DECLARE ($url : Text) // This parameter must always be declared +#DECLARE ($url : Text) // Este parámetro debe declararse siempre var $path : Text var $PictVar : Picture var $BlobVar : Blob - //find the picture in the Images folder within the Resources folder + //busca la imagen en la carpeta Imágenes dentro de la carpeta Resources $path:=Get 4D folder(Current resources folder)+"Images"+Folder separator+$url+".psd" -READ PICTURE FILE($path;$PictVar) //put the picture in the picture variable -PICTURE TO BLOB($PictVar;$BLOB;".png") //convert the picture to ".png" format -WEB SEND BLOB($BLOB;"image/png") +READ PICTURE FILE($path;$PictVar) //pone la imagen en la variable imagen +PICTURE TO BLOB($PictVar;$BLOB;".png") //convierte la imagen en formato ".png". WEB SEND BLOB($BLOB;"image/png") ``` ### 4DACCIÓN para publicar formularios @@ -191,15 +190,15 @@ OK="Search" 4D llama al método base `` (si existe), luego se llama al método proyecto `processForm`, que es el siguiente: ```4d - #DECLARE ($url : Text) //mandatory for compiled mode + #DECLARE ($url : Text) //obligatorio para el modo compilado var $vName : Integer var vName;vLIST : Text ARRAY TEXT($arrNames;0) ARRAY TEXT($arrVals;0) - WEB GET VARIABLES($arrNames;$arrVals) //we retrieve all the variables of the form + WEB GET VARIABLES($arrNames;$arrVals) //recuperamos todas las variables del formulario $vName:=Find in array($arrNames;"vName") vName:=$arrVals{$vName} - If(Find in array($arrNames;"vExact")=-1) //If the option has not been checked + If(Find in array($arrNames;"vExact")=-1) //Si la opción no ha sido marcada vName:=vName+"@" End if QUERY([Jockeys];[Jockeys]Name=vName) @@ -208,9 +207,9 @@ OK="Search" vLIST:=vLIST+[Jockeys]Name+" "+[Jockeys]Tel+"
    " NEXT RECORD([Jockeys]) End while - WEB SEND FILE("results.htm") //Send the list to the results.htm form - //which contains a reference to the variable vLIST, - //for example + WEB SEND FILE("results.htm") //Enviar la lista al formulario results.htm + //que contiene una referencia a la variable vLIST, + //por ejemplo //... End if ``` @@ -219,9 +218,9 @@ End if El servidor web de 4D le permite recuperar datos enviados a través de peticiones POST o GET, utilizando formularios web o URLs. -Cuando el servidor web recibe una petición con datos en el encabezado o en la URL, 4D puede recuperar los valores de cualquier objeto HTML que contenga. This principle can be implemented in the case of a Web form, sent for example using [`WEB SEND FILE`](../commands-legacy/web-send-file.md) or [`WEB SEND BLOB`](../commands-legacy/web-send-blob.md), where the user enters or modifies values, then clicks on the validation button. +Cuando el servidor web recibe una petición con datos en el encabezado o en la URL, 4D puede recuperar los valores de cualquier objeto HTML que contenga. Este principio puede ser implementado en el caso de un formulario Web, enviado por ejemplo usando [`WEB SEND FILE`](../commands-legacy/web-send-file.md) o [`WEB SEND BLOB`](../commands-legacy/web-send-blob.md), donde el usuario introduce o modifica valores, luego hace clic en el botón de validación. -In this case, 4D can retrieve the values of the HTML objects found in the request using the [`WEB GET VARIABLES`](../commands-legacy/web-get-variables.md) command. El comando `WEB GET VARIABLES` recupera los valores como texto. +En este caso, 4D puede recuperar los valores de los objetos HTML encontrados en la solicitud usando el comando [`WEB GET VARIABLES`](../commands-legacy/web-get-variables.md). El comando `WEB GET VARIABLES` recupera los valores como texto. Considere el siguiente código fuente de la página HTML: @@ -282,7 +281,7 @@ Las principales características de esta página son: Examinemos el método 4D `WWW_STD_FORM_POST` que se llama cuando el usuario hace clic en uno de los botones del formulario HTML. ```4d - // Retrieval of value of variables + // Recuperación del valor de las variables ARRAY TEXT($arrNames;0) ARRAY TEXT($arrValues;0) WEB GET VARIABLES($arrNames;$arrValues) @@ -290,25 +289,25 @@ Examinemos el método 4D `WWW_STD_FORM_POST` que se llama cuando el usuario hace Case of - // The Log On button was clicked + // Se ha presionado el botón Log On :(Find in array($arrNames;"vsbLogOn")#-1) $user :=Find in array($arrNames;"vtUserName") QUERY([WWW Users];[WWW Users]UserName=$arrValues{$user}) $0:=(Records in selection([WWW Users])>0) If($0) WWW POST EVENT("Log On";WWW Log information) - // The WWW POST EVENT method saves the information in a database table + // El método WWW POST EVENT guarda la información en una tabla de la base Else $0:=WWW Register - // The WWW Register method lets a new Web user register + // El método WWW Register permite que un nuevo usuario de la Web se registre End if - // The Register button was clicked + // Se ha presionado el botón Register :(Find in array($arrNames;"vsbRegister")#-1) $0:=WWW Register - // The Information button was clicked + // Se ha presionado el botón de información :(Find in array($arrNames;"vsbInformation")#-1) WEB SEND FILE("userinfos.html") End case @@ -325,9 +324,9 @@ Tenga en cuenta que con HTML, todos los objetos son objetos de texto. Si se util El servidor web de 4D ofrece varios comandos web de bajo nivel que le permiten desarrollar un procesamiento personalizado de las solicitudes: -- the [`WEB GET HTTP BODY`](../commands-legacy/web-get-http-body.md) command returns the body as raw text, allowing any parsing you may need -- the [`WEB GET HTTP HEADER`](../commands-legacy/web-get-http-header.md) command return the headers of the request. Es útil para manejar cookies personalizadas, por ejemplo (junto con el comando `WEB SET HTTP HEADER`). -- the [`WEB GET BODY PART`](../commands-legacy/web-get-body-part.md) and [`WEB Get body part count`](../commands-legacy/web-get-body-part-count.md) commands to parse the body part of a multi-part request and retrieve text values, but also files posted, using BLOBs. +- el comando [`WEB GET HTTP BODY`](../commands-legacy/web-get-http-body.md) devuelve el cuerpo como texto crudo, permitiendo cualquier análisis que pueda necesitar +- el comando [`WEB GET HTTP HEADER`](../commands-legacy/web-get-http-header.md) devuelve los encabezados de la solicitud. Es útil para manejar cookies personalizadas, por ejemplo (junto con el comando `WEB SET HTTP HEADER`). +- los comandos [`WEB GET BODY PART`](../commands-legacy/web-get-body-part.md) y [`WEB Get body part count`](../commands-legacy/web-get-body-part-count.md) para analizar la parte del cuerpo de una petición de varias partes y recuperar los valores de texto, pero también los archivos publicados, usando BLOBs. Estos comandos se resumen en el siguiente gráfico: @@ -337,6 +336,6 @@ El servidor web de 4D ahora soporta archivos cargados con codificación chunked ## Método proyecto COMPILER_WEB -El método COMPILER\WEB, si existe, es llamado sistemáticamente cuando el servidor HTTP recibe una petición dinámica y llama al motor 4D. Este es el caso, por ejemplo, cuando el servidor web de 4D recibe un formulario publicado o una URL para procesar en [`On Web Connection`](#on-web-connection). Este método está destinado a contener directivas de digitación y/o inicialización de variables utilizadas durante los intercambios web. Es utilizado por el compilador cuando se compila la aplicación. El método COMPILER\WEB es común a todos los formularios web. Por defecto, el método COMPILER_WEB no existe. Debe crearlo explícitamente. +El método COMPILER\WEB, si existe, es llamado sistemáticamente cuando el servidor HTTP recibe una petición dinámica y llama al motor 4D. El método COMPILER\WEB, si existe, es llamado sistemáticamente cuando el servidor HTTP recibe una petición dinámica y llama al motor 4D. Este método está destinado a contener directivas de digitación y/o inicialización de variables utilizadas durante los intercambios web. Es utilizado por el compilador cuando se compila la aplicación. El método COMPILER\WEB es común a todos los formularios web. Por defecto, el método COMPILER_WEB no existe. Debe crearlo explícitamente. > También se llama al método proyecto COMPILER_WEB, si existe, para cada solicitud SOAP aceptada. diff --git a/i18n/es/docusaurus-plugin-content-docs/current/WebServer/qodly-studio.md b/i18n/es/docusaurus-plugin-content-docs/current/WebServer/qodly-studio.md index 1d77cc1b26c71a..26abce6533ac94 100644 --- a/i18n/es/docusaurus-plugin-content-docs/current/WebServer/qodly-studio.md +++ b/i18n/es/docusaurus-plugin-content-docs/current/WebServer/qodly-studio.md @@ -84,7 +84,7 @@ De acuerdo con la gestión de proyectos 4D, sólo se admiten los siguientes usos :::warning -You can open Qodly Studio, [debug](#using-qodly-debugger-on-4d-server) and edit Qodly pages directly on a 4D Server machine when a project is running in interpreted mode. This feature is only provided for testing and debugging purposes, for example to evaluate the application flow with actual data, or in multi-user environment. It must NOT be considered as a regular way to develop applications since it does not provide any control over concurrent accesses. +Puede abrir Qodly Studio, [debug](#using-qodly-debugger-on-4d-server) y editar páginas Qodly directamente en una máquina 4D Server cuando un proyecto se está ejecutando en modo interpretado. This feature is only provided for testing and debugging purposes, for example to evaluate the application flow with actual data, or in multi-user environment. It must NOT be considered as a regular way to develop applications since it does not provide any control over concurrent accesses. ::: @@ -128,15 +128,15 @@ No existe compatibilidad directa entre las aplicaciones implementadas con 4D y l ### Comparación de funcionalidades -| | Qodly Studio en 4D | Qodly Studio in Qodly Cloud platform | -| -------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ----------------------------------------------------------------------------- | -| Ver y editar tablas (clases de datos), atributos y relaciones | Editor de estructura 4D(1) | Qodly Studio Model Editor | -| Páginas Qodly | Editor de páginas Qodly Studio | Editor de páginas Qodly Studio | -| Formularios de escritorio | 4D IDE | _not supported_ | -| Lenguaje de programación | Lenguaje 4D con ORDA | [QodlyScript](https://developer.qodly.com/docs/category/qodlyscript) con ORDA | -| IDE de código | 4D IDE code editor _or_ VS Code with [4D extension](https://github.com/4d/4D-Analyzer-VSCode)
    _4D Server only_: Qodly Studio code editor (see (2)) | Editor de código Qodly Studio | -| Debugger | 4D IDE debugger
    _4D Server only_: Qodly Studio debugger (see [this paragraph](#using-qodly-debugger-on-4d-server)) | Qodly Studio debugger | -| Roles y privilegios REST/Web | Edición directa de roles.json/Editor de roles y permisos Qodly Studio | Editor de roles y privilegios de Qodly Studio | +| | Qodly Studio en 4D | Qodly Studio in Qodly Cloud platform | +| -------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------- | +| Ver y editar tablas (clases de datos), atributos y relaciones | Editor de estructura 4D(1) | Qodly Studio Model Editor | +| Páginas Qodly | Editor de páginas Qodly Studio | Editor de páginas Qodly Studio | +| Formularios de escritorio | 4D IDE | _not supported_ | +| Lenguaje de programación | Lenguaje 4D con ORDA | [QodlyScript](https://developer.qodly.com/docs/category/qodlyscript) con ORDA | +| IDE de código | 4D IDE code editor _or_ VS Code with [4D-Analyzer extension](https://github.com/4d/4D-Analyzer-VSCode)
    _4D Server only_: Qodly Studio code editor (see (2)) | Editor de código Qodly Studio | +| Debugger | 4D IDE debugger
    _4D Server only_: Qodly Studio debugger (see [this paragraph](#using-qodly-debugger-on-4d-server)) | Qodly Studio debugger | +| Roles y privilegios REST/Web | Edición directa de roles.json/Editor de roles y permisos Qodly Studio | Editor de roles y privilegios de Qodly Studio | Note that in 4D single-user, if you open some 4D code with the Qodly Studio code editor, syntax coloring is not available and a "Lsp not loaded" warning is displayed. (1) The **Model** item is disabled in Qodly Studio.
    (2) In 4D Server, opening 4D code with the Qodly Studio code editor is supported **for testing and debugging purposes** (see [this paragraph](#development-and-deployment)). @@ -217,13 +217,13 @@ https://www.myWebSite.com/$lib/renderer/?w=welcome You can preview your Qodly application at any moment by selecting the **Preview Qodly Application...** command in the **Windows** menu (4D Server) or in the **Design** menu (4D single-user). -This command launches the Qodly renderer on a local address in your default browser and displays the **start page** [defined in the Application settings](https://developer.qodly.com/docs/studio/settings#start-page) of Qodly Studio. +Este comando lanza el renderizador de Qodly en una dirección local en su navegador por defecto y muestra la **página de inicio** [definida en la Configuración de la aplicación](https://developer.qodly.com/docs/studio/settings#start-page) de Qodly Studio. ### Using Qodly debugger on 4D Server When using Qodly pages in a deployed 4D Server application (interpreted mode), you might encounter some cases where you need to debug your pages on the server, for example when a specific user configuration is required. In this case, you can attach the [Qodly Studio debugger](https://developer.qodly.com/docs/studio/debugging) to the 4D Server and then, benefit from its features when executing your Qodly pages. -Note that in this case, the Qodly Studio debugger will display all the code executed on the server, in accordance with the [attached debugger rule on 4D Server](../Debugging/debugging-remote.md#attached-debugger). +Tenga en cuenta que en este caso, el depurador Qodly Studio mostrará todo el código ejecutado en el servidor, de acuerdo con la [regla del depurador adjunta en el servidor 4D](. /Debugging/debugging-remote.md#attached-debugger). Para adjuntar el depurador Qodly Studio a su aplicación 4D Server en ejecución: diff --git a/i18n/es/docusaurus-plugin-content-docs/current/WebServer/sessions.md b/i18n/es/docusaurus-plugin-content-docs/current/WebServer/sessions.md index 46285e1087b2aa..5f551e5c6b37b5 100644 --- a/i18n/es/docusaurus-plugin-content-docs/current/WebServer/sessions.md +++ b/i18n/es/docusaurus-plugin-content-docs/current/WebServer/sessions.md @@ -84,7 +84,7 @@ Una sesión web escalable se cierra cuando: La vida útil de una cookie inactiva es de 60 minutos por defecto, lo que significa que el servidor web cerrará automáticamente las sesiones inactivas después de 60 minutos. -This timeout can be set using the [`.idleTimeout`](API/SessionClass.md#idletimeout) property of the `Session` object (the timeout cannot be less than 60 minutes) or the _connectionInfo_ parameter of the [`Open datastore`](../commands/open-datastore.md) command. +Este tiempo de espera puede establecerse utilizando la propiedad [`.idleTimeout`](API/SessionClass.md#idletimeout) del objeto `Session` (el tiempo de espera no puede ser inferior a 60 minutos) o el parámetro _connectionInfo_ del comando [`Open datastore`](../commands/open-datastore.md). When a web session is closed, if the [`Session`](commands/session.md) command is called afterwards: @@ -100,7 +100,7 @@ Puede cerrar una sesión desde un formulario Qodly utilizando la función [**log ## Privilegios -Los privilegios pueden asociarse a sesiones de usuario web. En el servidor web, puede proporcionar un acceso o unas funcionalidades específicas en función de los privilegios de la sesión. +Fecha de caducidad de la sesión En el servidor web, puede proporcionar un acceso o unas funcionalidades específicas en función de los privilegios de la sesión. Puedes asignar privilegios utilizando la función [`.setPrivileges()`](API/SessionClass.md#setprivileges). En su código, puede comprobar los privilegios de la sesión para permitir o denegar el acceso utilizando la función [`.hasPrivilege()`](API/SessionClass.md#hasprivilege). Por defecto, las sesiones nuevas no tienen ningún privilegio: son sesiones **Invitadas** (la función [`.isGuest()`](API/SessionClass.md#isguest) devuelve true). diff --git a/i18n/es/docusaurus-plugin-content-docs/current/WritePro/commands/command-index.md b/i18n/es/docusaurus-plugin-content-docs/current/WritePro/commands/command-index.md index 427f8ba4e1eb49..cbedc6bf156515 100644 --- a/i18n/es/docusaurus-plugin-content-docs/current/WritePro/commands/command-index.md +++ b/i18n/es/docusaurus-plugin-content-docs/current/WritePro/commands/command-index.md @@ -23,9 +23,9 @@ title: Comandos 4D Write Pro [`WP DELETE FOOTER`](../commands-legacy/wp-delete-footer.md)
    [`WP DELETE HEADER`](../commands-legacy/wp-delete-header.md)
    [`WP DELETE PICTURE`](../commands-legacy/wp-delete-picture.md)
    -[`WP DELETE SECTION`](wp-delete-section.md) ***New 4D 20 R7***
    +[`WP DELETE SECTION`](wp-delete-section.md) ***Nuevo 4D 20 R7***
    [`WP DELETE STYLE SHEET`](../commands-legacy/wp-delete-style-sheet.md)
    -[`WP DELETE SUBSECTION`](wp-delete-subsection.md) ***Modified 4D 20 R7***
    +[`WP DELETE SUBSECTION`](wp-delete-subsection.md) ***Modificado 4D 20 R7***
    [`WP DELETE TEXT BOX`](../commands-legacy/wp-delete-text-box.md) E @@ -93,7 +93,7 @@ title: Comandos 4D Write Pro R -[`WP RESET ATTRIBUTES`](wp-reset-attributes.md) ***Modified 4D 20 R7*** +[`WP RESET ATTRIBUTES`](wp-reset-attributes.md) ***Modificado 4D 20 R7*** S diff --git a/i18n/es/docusaurus-plugin-content-docs/current/WritePro/commands/wp-delete-subsection.md b/i18n/es/docusaurus-plugin-content-docs/current/WritePro/commands/wp-delete-subsection.md index 48c2e8c2b8f8a0..300673257f3ed8 100644 --- a/i18n/es/docusaurus-plugin-content-docs/current/WritePro/commands/wp-delete-subsection.md +++ b/i18n/es/docusaurus-plugin-content-docs/current/WritePro/commands/wp-delete-subsection.md @@ -51,9 +51,9 @@ You want to delete the first page subsection of the first section: ```4d var $section;$subsection : Object - // get first section + // obtener la primera sección $section:=WP Get section(wpDoc;1) - // Delete the subsection + // Eliminar la subsección WP DELETE SUBSECTION($section;wk first page) ``` diff --git a/i18n/es/docusaurus-plugin-content-docs/current/WritePro/commands/wp-reset-attributes.md b/i18n/es/docusaurus-plugin-content-docs/current/WritePro/commands/wp-reset-attributes.md index 978de19c1f2ed7..e95acc59fe69e5 100644 --- a/i18n/es/docusaurus-plugin-content-docs/current/WritePro/commands/wp-reset-attributes.md +++ b/i18n/es/docusaurus-plugin-content-docs/current/WritePro/commands/wp-reset-attributes.md @@ -9,11 +9,11 @@ displayed_sidebar: docs -| Parámetros | Tipo | | Descripción | -| ------------------- | ------ | - | ------------------------------------------------- | -| targetObj | Object | → | Range or element or 4D Write Pro document | -| sectionOrSubsection | Object | → | Section or subsection of a 4D Write Pro document | -| attribName | Text | → | Name of attribute(s) to remove | +| Parámetros | Tipo | | Descripción | +| ------------------- | ------ | - | --------------------------------------------------- | +| targetObj | Object | → | Range or element or 4D Write Pro document | +| sectionOrSubsection | Object | → | Section or subsection of a 4D Write Pro document | +| attribName | Text | → | Nombre de atributo(s) a eliminar | @@ -24,7 +24,7 @@ The **WP RESET ATTRIBUTES** command El comando Is a list devuelve TRUE si el valor pasado en *lista* es una referencia válida a una lista jerárquica. De lo contrario, devuelve FALSE. -#### Ejemplo 1 +#### Ejemplo Ver el ejemplo del comando [CLEAR LIST](clear-list.md "CLEAR LIST"). -#### Ejemplo 2 - -Ver los ejemplos del comando DRAG AND DROP PROPERTIES. - -#### Ver también - -*\_o\_DRAG AND DROP PROPERTIES* \ No newline at end of file diff --git a/i18n/es/docusaurus-plugin-content-docs/current/commands-legacy/new-log-file.md b/i18n/es/docusaurus-plugin-content-docs/current/commands-legacy/new-log-file.md index c1317da7c16c24..3a43b2e74f60d0 100644 --- a/i18n/es/docusaurus-plugin-content-docs/current/commands-legacy/new-log-file.md +++ b/i18n/es/docusaurus-plugin-content-docs/current/commands-legacy/new-log-file.md @@ -30,6 +30,3 @@ El archivo se renombra con los números de backup´actuales de la base y el arch En caso de que se presente un error, el comando genera un código que puede interceptarse utilizando el comando [ON ERR CALL](on-err-call.md "ON ERR CALL"). -#### Ver también - -*\_o\_INTEGRATE LOG FILE* \ No newline at end of file diff --git a/i18n/es/docusaurus-plugin-content-docs/current/commands-legacy/object-set-action.md b/i18n/es/docusaurus-plugin-content-docs/current/commands-legacy/object-set-action.md index bd57a992c41860..b3901475ad0f36 100644 --- a/i18n/es/docusaurus-plugin-content-docs/current/commands-legacy/object-set-action.md +++ b/i18n/es/docusaurus-plugin-content-docs/current/commands-legacy/object-set-action.md @@ -27,9 +27,8 @@ displayed_sidebar: docs Si pasa el parámetro opcional *\** indica que el parámetro *objeto* es un nombre de objeto (cadena). Si no pasa este parámetro, indica que el parámetro *objeto* es un campo o una variable. En este caso, se pasa una referencia de campo o variable en lugar de una cadena (campo o variable objeto únicamente). -En el parámetro *acción*, pase un cadena con el nombre de la acción estándar a asociar al objeto. Opcionalmente, la acción puede tener parámetros. Para mayor información sobre nombres de acciones, consulte la sección \[#title id="964"/\] en el manual de *Diseño 4D*. También puede pasar una de las siguientes constantes, que se encuentran en el tema "*Acción estándar*": +En el parámetro *acción*, pase un cadena con el nombre de la acción estándar a asociar al objeto. Opcionalmente, la acción puede tener parámetros. Para mayor información sobre nombres de acciones, consulte la sección Acción estándar en el manual de *Diseño 4D*. También puede pasar una de las siguientes constantes, que se encuentran en el tema "*Acción estándar*". -\[#table\_kst id="3229250,3229256,3229259,3229262,3229265,3233324,3229268,3229271,3229274,3229277,3229280,3232805,3229283,3229286,3229289,3249369,3247262,3233343,3233352,3233331,3249654,3233337,3233359,3233366,3233794,3229292,3229295,3229298,3229301,3229304,3229307,3229253,3229310,3229313,3229316,3229319,3229322,3229325,3229328,3229331,3229334,3229337,3229340,3233802,3229343,3229346" typeCol="false"/\] **Nota de compatibilidad**: las constantes heredadas (prefijadas por \_o\_ en el tema) están obsoletas a partir de 4D v16 R3\. Sin embargo, todavía son soportadas por compatibilidad. @@ -43,5 +42,4 @@ Usted desea asociar la acción estándar **Validate** con un botón: #### Ver también -*\_o\_OBJECT Get action* [OBJECT Get action](object-get-action.md) \ No newline at end of file diff --git a/i18n/es/docusaurus-plugin-content-docs/current/commands-legacy/object-set-rgb-colors.md b/i18n/es/docusaurus-plugin-content-docs/current/commands-legacy/object-set-rgb-colors.md index 2d4455ba2cf457..cdd0c8375eb3dd 100644 --- a/i18n/es/docusaurus-plugin-content-docs/current/commands-legacy/object-set-rgb-colors.md +++ b/i18n/es/docusaurus-plugin-content-docs/current/commands-legacy/object-set-rgb-colors.md @@ -104,6 +104,5 @@ Cambia a fondo transparente con un color de fuente claro: #### Ver también -*\_o\_OBJECT SET COLOR* [OBJECT GET RGB COLORS](object-get-rgb-colors.md) [Select RGB Color](select-rgb-color.md) \ No newline at end of file diff --git a/i18n/es/docusaurus-plugin-content-docs/current/commands-legacy/picture-to-blob.md b/i18n/es/docusaurus-plugin-content-docs/current/commands-legacy/picture-to-blob.md index 078e47b55e4a5d..4708d06856d212 100644 --- a/i18n/es/docusaurus-plugin-content-docs/current/commands-legacy/picture-to-blob.md +++ b/i18n/es/docusaurus-plugin-content-docs/current/commands-legacy/picture-to-blob.md @@ -48,7 +48,6 @@ Desea convertir una imagen de un formato propietario a formato GIF y mostrarlo e #### Ver también -*\_o\_PICTURE TO GIF* [BLOB TO PICTURE](blob-to-picture.md) [PICTURE CODEC LIST](picture-codec-list.md) [WRITE PICTURE FILE](write-picture-file.md) \ No newline at end of file diff --git a/i18n/es/docusaurus-plugin-content-docs/current/commands-legacy/print-selection.md b/i18n/es/docusaurus-plugin-content-docs/current/commands-legacy/print-selection.md index 4572e8d3a2bd51..9dbb5b4154eba3 100644 --- a/i18n/es/docusaurus-plugin-content-docs/current/commands-legacy/print-selection.md +++ b/i18n/es/docusaurus-plugin-content-docs/current/commands-legacy/print-selection.md @@ -60,7 +60,6 @@ El siguiente ejemplo selecciona todos los registros en la tabla \[Personas\]. El #### Ver también -*\_o\_PAGE SETUP* [ACCUMULATE](accumulate.md) [BREAK LEVEL](break-level.md) [Level](level.md) diff --git a/i18n/es/docusaurus-plugin-content-docs/current/commands-legacy/resolve-pointer.md b/i18n/es/docusaurus-plugin-content-docs/current/commands-legacy/resolve-pointer.md index 0584d59d153e5c..564036a5ff895a 100644 --- a/i18n/es/docusaurus-plugin-content-docs/current/commands-legacy/resolve-pointer.md +++ b/i18n/es/docusaurus-plugin-content-docs/current/commands-legacy/resolve-pointer.md @@ -104,7 +104,6 @@ Este es un ejemplo de puntero a un array 2D: #### Ver también -*\_o\_DRAG AND DROP PROPERTIES* [Field](field.md) [Get pointer](get-pointer.md) [Is a variable](is-a-variable.md) diff --git a/i18n/es/docusaurus-plugin-content-docs/current/commands-legacy/set-document-properties.md b/i18n/es/docusaurus-plugin-content-docs/current/commands-legacy/set-document-properties.md index 2dc35d930f3fd9..d31b455c92d0ce 100644 --- a/i18n/es/docusaurus-plugin-content-docs/current/commands-legacy/set-document-properties.md +++ b/i18n/es/docusaurus-plugin-content-docs/current/commands-legacy/set-document-properties.md @@ -34,6 +34,4 @@ Las fechas y horas de creación y última modificación son administradas por el #### Ver también -*\_o\_SET DOCUMENT CREATOR* -*\_o\_SET DOCUMENT TYPE* [GET DOCUMENT PROPERTIES](get-document-properties.md) \ No newline at end of file diff --git a/i18n/es/docusaurus-plugin-content-docs/current/commands-legacy/structure-file.md b/i18n/es/docusaurus-plugin-content-docs/current/commands-legacy/structure-file.md index 711f4de5a99da9..dbb50d7e29a295 100644 --- a/i18n/es/docusaurus-plugin-content-docs/current/commands-legacy/structure-file.md +++ b/i18n/es/docusaurus-plugin-content-docs/current/commands-legacy/structure-file.md @@ -64,7 +64,6 @@ El siguiente ejemplo puede utilizarse para saber si el método se llama desde un #### Ver también -*\_o\_DATA SEGMENT LIST* [Application file](application-file.md) [COMPONENT LIST](component-list.md) [Data file](data-file.md) \ No newline at end of file diff --git a/i18n/es/docusaurus-plugin-content-docs/current/commands-legacy/use-character-set.md b/i18n/es/docusaurus-plugin-content-docs/current/commands-legacy/use-character-set.md index 7080318764becc..61aa87f26a9788 100644 --- a/i18n/es/docusaurus-plugin-content-docs/current/commands-legacy/use-character-set.md +++ b/i18n/es/docusaurus-plugin-content-docs/current/commands-legacy/use-character-set.md @@ -42,8 +42,6 @@ La variable sistema OK toma el valor 1 si el mapa se carga correctamente, de lo #### Ver también -*\_o\_Mac to Win* -*\_o\_Win to Mac* [EXPORT DIF](export-dif.md) [EXPORT SYLK](export-sylk.md) [EXPORT TEXT](export-text.md) diff --git a/i18n/es/docusaurus-plugin-content-docs/current/commands/4d.md b/i18n/es/docusaurus-plugin-content-docs/current/commands/4d.md index 136c88ca224fc1..03a9c98f37f26d 100644 --- a/i18n/es/docusaurus-plugin-content-docs/current/commands/4d.md +++ b/i18n/es/docusaurus-plugin-content-docs/current/commands/4d.md @@ -10,4 +10,4 @@ displayed_sidebar: docs | ---------- | ------ | - | ---------------------------------------------- | | classStore | Object | ← | Class Store containing all built-in 4D classes | -The **4D** keyword is described in the [**Concept page for Classes**](../Concepts/classes.md#4d). +La palabra clave **4D** se describe en la [**página Concepto para Clases**](../Concepts/classes.md#4d). diff --git a/i18n/es/docusaurus-plugin-content-docs/current/commands/compile-project.md b/i18n/es/docusaurus-plugin-content-docs/current/commands/compile-project.md index c30de2e84fd991..efc80429fd449b 100644 --- a/i18n/es/docusaurus-plugin-content-docs/current/commands/compile-project.md +++ b/i18n/es/docusaurus-plugin-content-docs/current/commands/compile-project.md @@ -54,7 +54,7 @@ Compilation errors, if any, are returned as objects in the *errors* collection. The *options* parameter is an object. Here are the available compilation options: -| **Property** | **Type** | **Description** | +| **Propiedad** | **Tipo** | **Description** | | ---------------------------------------------------------------------------------- | -------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | | components | Collection | Collection of 4D.File objects to dependent components (must be already compiled) | | defaultTypeForButtons | Integer | Possible value: Is real or Is longint | @@ -62,7 +62,7 @@ The *options* parameter is an object. Here are the available compilation options | generateSymbols | Boolean | True to generate symbol information in the .symbols returned object | | generateSyntaxFile | Boolean | True to generate a [syntax file for code completion](../settings/general.md).md#generate-syntax-file-for-code-completion-when-compiled) in the \\Resources\\en.lproj folder of the project | | generateTypingMethods | Text | "reset" or "append" to generate typing methods. If value is "append", existing variable declarations won't be modified (compiler window behavior). If value is "reset" existing variable declarations are removed beforehand. | -| plugins | 4D.Folder object | Plug-ins folder to be used instead of the [Plugins folder of the current project](../Project/architecture.md#plugins). This property is only available with the *projectFile* syntax. | +| plugins | Objeto 4D.Folder | Plug-ins folder to be used instead of the [Plugins folder of the current project](../Project/architecture.md#plugins). This property is only available with the *projectFile* syntax. | | targets | Colección de cadenas | Possible values: "x86_64_generic", "arm64_macOS_lib". Pass an empty collection to execute syntax check only | | typeInference | Text | "all": The compiler deduces the types of all variables not explicitly declared, "locals": The compiler deduces the types of local variables not explicitly declared, "none": All variables must be explicitly declared in the code (legacy mode), "direct": All variables must be explicitly declared in the code ([direct typing](../Project/compiler.md#enabling-direct-typing)). | | warnings | Colección de objetos | Defines the warnings state | @@ -76,7 +76,7 @@ The *options* parameter is an object. Here are the available compilation options The object returned by **Compile project** has up to three properties: -| **Property** | **Type** | **Description** | +| **Propiedad** | **Tipo** | **Description** | | ---------------------------------------------------------------------------------------------------------------------- | -------------------- | ---------------------------------------------------------------------------------------------------------------------------------------- | | success | Boolean | True si la acción guardar tiene éxito, false en caso contrario. | | errors | Colección de objetos | **Available only in case of error or warning**. Collection of objects describing compilation errors or warnings | @@ -95,7 +95,7 @@ The object returned by **Compile project** has up to three properties: | symbols.localVariables | Colección de objetos | List of local variables per method | | symbols.localVariables[].code | Object | [objeto código](#code-object) | | symbols.localVariables[].variables | Collection | Colección de [objetos variables](#variable-objects) | -| symbols.methods | Colección de objetos | List of methods | +| symbols.methods | Colección de objetos | Lista de métodos | | symbols.methods\[\].code | Object | [objeto código](#code-object) | | symbols.methods\[\].callCount | Number | Number of times this method has been called | | symbols.methods\[\].params | Collection | Collection of parameter types (Value type numerical codes) | @@ -107,7 +107,7 @@ For more information, see [Compilation tools](../Project/compiler.md#compilation `interprocessVariables.variables` and `processVariables.variables` contain objects with the following structure: -| **Property** | **Type** | **Description** | +| **Propiedad** | **Tipo** | **Descripción** | | -------------- | -------- | --------------------------------------------------------------------------------------------------------- | | name | Text | Name of the variable | | type | number | Type of the variable (like Value type command) | @@ -118,20 +118,20 @@ For more information, see [Compilation tools](../Project/compiler.md#compilation The `code` property in `methods.code` and `errors.code` is an object with the following properties: -| **Property** | **Type** | **Description** | -| -------------- | ----------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | -| type | Text | "projectMethod", "formObjectMethod", "formMethod", "databaseMethod", "triggerMethod", "executeOnServer" (when calling a project method with the *Execute on Server attribute*), "executeFormula" (when executing a formula via [PROCESS 4D TAGS](process-4d-tags.md) or evaluation of a formula in a 4D Write Pro document), "class", "classFunction", "formObjectExpression" (for errors occuring in expressions associated to form objects) | -| path | Text | Method path (same format as [METHOD OPEN PATH](method-open-path.md)) | -| file | 4D.File | Method file | -| | | **Returned depending on the value of the `type` property:** | -| methodName | Text | Métodos proyecto | -| tabla | Number | Number of the table (returned for a trigger, a table form method or a table form object method) | -| formName | Text | Form name (returned for a form method) | -| objectName | Text | Form object name (returned for an object method) | -| propertyName | Text | Form object property name (returned for a form object expression) | -| className | Text | Class name | -| functionName | Text | Nombre de la función de clase | -| databaseMethod | Number | Database method index | +| **Propiedad** | **Tipo** | **Description** | +| -------------- | ----------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| type | Text | "projectMethod", "formObjectMethod", "formMethod", "databaseMethod", "triggerMethod", "executeOnServer" (when calling a project method with the *Execute on Server attribute*), "executeFormula" (when executing a formula via [PROCESS 4D TAGS](../commands-legacy/process-4d-tags.md) or evaluation of a formula in a 4D Write Pro document), "class", "classFunction", "formObjectExpression" (for errors occuring in expressions associated to form objects) | +| path | Text | Method path (same format as [METHOD OPEN PATH](../commands-legacy/method-open-path.md)) | +| file | 4D.File | Method file | +| | | **Returned depending on the value of the `type` property:** | +| methodName | Text | Métodos proyecto | +| tabla | Number | Number of the table (returned for a trigger, a table form method or a table form object method) | +| formName | Text | Form name (returned for a form method) | +| objectName | Text | Form object name (returned for an object method) | +| propertyName | Text | Form object property name (returned for a form object expression) | +| className | Text | Class name | +| functionName | Text | Nombre de la función de clase | +| databaseMethod | Number | Database method index | #### Ejemplos @@ -191,4 +191,4 @@ var $result:=Compile project($options) #### Ver también -[BUILD APPLICATION](build-application.md) +[BUILD APPLICATION](../commands-legacy/build-application.md) diff --git a/i18n/es/docusaurus-plugin-content-docs/current/commands/create-entity-selection.md b/i18n/es/docusaurus-plugin-content-docs/current/commands/create-entity-selection.md index 5e6e047ba447a2..0c5131c3f3cb82 100644 --- a/i18n/es/docusaurus-plugin-content-docs/current/commands/create-entity-selection.md +++ b/i18n/es/docusaurus-plugin-content-docs/current/commands/create-entity-selection.md @@ -20,9 +20,9 @@ displayed_sidebar: docs The `Create entity selection` command builds and returns a new, [alterable](../ORDA/entities.md#shareable-or-alterable-entity-selections) entity selection related to the dataclass matching the given *dsTable*, according to the current selection of this table. -If the current selection is sorted, an [ordered](../ORDA/dsMapping.md#ordered-or-unordered-entity-selection) entity selection is created (the order of the current selection is kept). Si la selección actual no está ordenada, se crea una selección de entidades no ordenada. +Si la selección actual está ordenada, se crea una entity selection [ordenada](../ORDA/dsMapping.md#ordered-or-unordered-entity-selection) (se mantiene el orden de la selección actual). Si la selección actual no está ordenada, se crea una selección de entidades no ordenada. -If the *dsTable* is not exposed in [`ds`](ds.md), an error is returned. Este comando no puede utilizarse con un datastore remoto. +Si *dsTable* no está expuesto en [`ds`](ds.md), se devuelve un error. Este comando no puede utilizarse con un datastore remoto. En el parámetro opcional *settings*, puede pasar un objeto que contenga la siguiente propiedad: diff --git a/i18n/es/docusaurus-plugin-content-docs/current/commands/cs.md b/i18n/es/docusaurus-plugin-content-docs/current/commands/cs.md index b9c46513ee3bfa..c044fa9741f644 100644 --- a/i18n/es/docusaurus-plugin-content-docs/current/commands/cs.md +++ b/i18n/es/docusaurus-plugin-content-docs/current/commands/cs.md @@ -8,4 +8,4 @@ displayed_sidebar: docs | ---------- | ------ | - | ------------------------------------------------- | | classStore | Object | ← | Class store usuario para el proyecto o componente | -The **cs** keyword is described in the [**Concept page for Classes**](../Concepts/classes.md#cs). +La palabra clave **cs** se describe en la [**página Concepto para Clases**](../Concepts/classes.md#cs). diff --git a/i18n/es/docusaurus-plugin-content-docs/current/commands/dialog.md b/i18n/es/docusaurus-plugin-content-docs/current/commands/dialog.md index a6e1282b01a124..447407ab7cfcf8 100644 --- a/i18n/es/docusaurus-plugin-content-docs/current/commands/dialog.md +++ b/i18n/es/docusaurus-plugin-content-docs/current/commands/dialog.md @@ -61,12 +61,13 @@ The dialog is closed by the user either with an "accept" action (triggered by th Keep in mind that validation does not equal saving: if the dialog includes fields, you must explicitly call the [SAVE RECORD](../commands-legacy/save-record.md) command to save any data that has been modified. +If you pass the optional *\** parameter, the form is loaded and displayed in the last open window of the current process and the command finishes its execution while leaving the active form on the screen.\ If you pass the optional *\** parameter, the form is loaded and displayed in the last open window of the current process and the command finishes its execution while leaving the active form on the screen.\ This form then reacts “normally” to user actions and is closed using a standard action or when 4D code related to the form (object method or form method) calls the [CANCEL](../commands-legacy/cancel.md) or [ACCEPT](../commands-legacy/accept.md) command. If the current process terminates, the forms created in this way are automatically closed in the same way as if a [CANCEL](../commands-legacy/cancel.md) command had been called. This opening mode is particularly useful for displaying a floating palette with a document, without necessarily requiring another process. **Notas:** -- You can combine the use of the **DIALOG**(form;\*) syntax with the [CALL FORM](call-form.md) command to establish communication between the forms. +- You can combine the use of the **DIALOG**(form;\*) syntax with the [CALL FORM](../commands-legacy/call-form.md) command to establish communication between the forms. - You must create a window before calling the **DIALOG**(form;\*) statement. It is not possible to use the current dialog window in the process nor the window created by default for each process. Otherwise, error -9909 is generated. - When the *\** parameter is used, the window is closed automatically following a standard action or a call to the [CANCEL](../commands-legacy/cancel.md) or [ACCEPT](../commands-legacy/accept.md) command. You do not have to manage the closing of the window itself. @@ -169,7 +170,7 @@ After a call to **DIALOG**, if the dialog is accepted, OK is set to 1; if it is [ACCEPT](../commands-legacy/accept.md)\ [ADD RECORD](../commands-legacy/add-record.md)\ -[CALL FORM](call-form.md)\ +[CALL FORM](../commands-legacy/call-form.md)\ [CANCEL](../commands-legacy/cancel.md)\ [Form](form.md)\ [Open window](../commands-legacy/open-window.md) diff --git a/i18n/es/docusaurus-plugin-content-docs/current/commands/folder.md b/i18n/es/docusaurus-plugin-content-docs/current/commands/folder.md index 2fd64113249ed3..c9767b90052884 100644 --- a/i18n/es/docusaurus-plugin-content-docs/current/commands/folder.md +++ b/i18n/es/docusaurus-plugin-content-docs/current/commands/folder.md @@ -29,7 +29,7 @@ displayed_sidebar: docs #### Descripción -El comando `Folder` crea y devuelve un nuevo objeto del tipo `4D.Folder`. El comando acepta dos sintaxis: +Comentario El comando acepta dos sintaxis: **Folder ( path { ; pathType } { ; \* } )** diff --git a/i18n/es/docusaurus-plugin-content-docs/current/commands/form-event-code.md b/i18n/es/docusaurus-plugin-content-docs/current/commands/form-event-code.md index 9a5260850bf18c..14bbfc74d68d19 100644 --- a/i18n/es/docusaurus-plugin-content-docs/current/commands/form-event-code.md +++ b/i18n/es/docusaurus-plugin-content-docs/current/commands/form-event-code.md @@ -102,10 +102,10 @@ This example is a template for a form method. It shows each of the possible even #### Ejemplo 4 -This example shows the template of a form method that handles the events that can occur for a form displayed using the [DISPLAY SELECTION](display-selection.md) or [MODIFY SELECTION](modify-selection.md) commands. For didactic purposes, it displays the nature of the event in the title bar of the form window. +This example shows the template of a form method that handles the events that can occur for a form displayed using the [DISPLAY SELECTION](../commands-legacy/display-selection.md) or [MODIFY SELECTION](../commands-legacy/modify-selection.md) commands. For didactic purposes, it displays the nature of the event in the title bar of the form window. ```4d -  //A form method +  ////Método formulario  Case of     :(Form event code=On Load)        $vsTheEvent:="The form is about to be displayed" @@ -141,7 +141,7 @@ This example shows the template of a form method that handles the events that ca #### Ejemplo 5 -For examples on how to handle [`On Before Keystroke`](../Events/onBeforeKeystroke.md) and [`On After Keystroke`](../Events/onAfterKeystroke.md) events, see examples for the [Get edited text](get-edited-text.md), [Keystroke](keystroke.md) and [FILTER KEYSTROKE](filter-keystroke.md) commands. +For examples on how to handle [`On Before Keystroke`](../Events/onBeforeKeystroke.md) and [`On After Keystroke`](../Events/onAfterKeystroke.md) events, see examples for the [Get edited text](../commands-legacy/get-edited-text.md), [Keystroke](../commands-legacy/keystroke.md) and [FILTER KEYSTROKE](../commands-legacy/filter-keystroke.md) commands. #### Ejemplo 6 @@ -342,11 +342,11 @@ As a result, the red rectangle follows the scrolling of the list box: #### Ver también [Form Events](../Events/overview.md) -[CALL SUBFORM CONTAINER](call-subform-container.md)\ -[Current form table](current-form-table.md)\ -[FILTER KEYSTROKE](filter-keystroke.md)\ +[CALL SUBFORM CONTAINER](../commands-legacy/call-subform-container.md)\ +[Current form table](../commands-legacy/current-form-table.md)\ +[FILTER KEYSTROKE](../commands-legacy/filter-keystroke.md)\ [FORM Event](form-event.md)\ -[Get edited text](get-edited-text.md)\ -[Keystroke](keystroke.md)\ -[POST OUTSIDE CALL](post-outside-call.md)\ -[SET TIMER](set-timer.md) +[Get edited text](../commands-legacy/get-edited-text.md)\ +[Keystroke](../commands-legacy/keystroke.md)\ +[POST OUTSIDE CALL](../commands-legacy/post-outside-call.md)\ +[SET TIMER](../commands-legacy/set-timer.md) diff --git a/i18n/es/docusaurus-plugin-content-docs/current/commands/pop3-new-transporter.md b/i18n/es/docusaurus-plugin-content-docs/current/commands/pop3-new-transporter.md index 1ad320b5d093b3..335da459df3f01 100644 --- a/i18n/es/docusaurus-plugin-content-docs/current/commands/pop3-new-transporter.md +++ b/i18n/es/docusaurus-plugin-content-docs/current/commands/pop3-new-transporter.md @@ -29,21 +29,21 @@ The `POP3 New transporter` command ](../API/POP3TransporterClass.md#acceptunsecureconnection)
    | False | -| .**accessTokenOAuth2**: Text
    .**accessTokenOAuth2**: Object
    Cadena u objeto token que representa las credenciales de autorización OAuth2. Utilizado sólo con OAUTH2 `authationMode`. Si se utiliza `accessTokenOAuth2` pero se omite `authenticationMode`, se utiliza el protocolo OAuth 2 (si el servidor lo permite). Not returned in *[SMTP transporter](../API/POP3TransporterClass.md#smtptransporterobject)* object. | ninguno | -| [](../API/POP3TransporterClass.md#authenticationmode)
    | se utiliza el modo de autenticación más seguro soportado por el servidor | -| [](../API/POP3TransporterClass.md#connectiontimeout)
    | 30 | -| [](../API/POP3TransporterClass.md#host)
    | *obligatorio* | -| [](../API/POP3TransporterClass.md#logfile)
    | ninguno | -| **.password** : Text
    contraseña de usuario para la autenticación en el servidor. Not returned in *[SMTP transporter](../API/POP3TransporterClass.md#smtptransporterobject)* object. | ninguno | -| [](../API/POP3TransporterClass.md#port)
    | 995 | -| [](../API/POP3TransporterClass.md#user)
    | ninguno | +| *server* | Valor por defecto (si se omite) | +| ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------ | +| [](../API/POP3TransporterClass.md#acceptunsecureconnection)
    | False | +| .**accessTokenOAuth2**: Text
    .**accessTokenOAuth2**: Object
    Cadena u objeto token que representa las credenciales de autorización OAuth2. Utilizado sólo con OAUTH2 `authationMode`. Si se utiliza `accessTokenOAuth2` pero se omite `authenticationMode`, se utiliza el protocolo OAuth 2 (si el servidor lo permite). No se devuelve en el objeto *[SMTP transporter](../API/POP3TransporterClass.md#smtptransporterobject)*. | ninguno | +| [](../API/POP3TransporterClass.md#authenticationmode)
    | se utiliza el modo de autenticación más seguro soportado por el servidor | +| [](../API/POP3TransporterClass.md#connectiontimeout)
    | 30 | +| [](../API/POP3TransporterClass.md#host)
    | *obligatorio* | +| [](../API/POP3TransporterClass.md#logfile)
    | ninguno | +| **.password** : Text
    contraseña de usuario para la autenticación en el servidor. No se devuelve en el objeto *[SMTP transporter](../API/POP3TransporterClass.md#smtptransporterobject)*. | ninguno | +| [](../API/POP3TransporterClass.md#port)
    | 995 | +| [](../API/POP3TransporterClass.md#user)
    | ninguno | #### Result -The function returns a [**POP3 transporter object**](../API/POP3TransporterClass.md#pop3-transporter-object). Todas las propiedades devueltas son de sólo lectura\*\*. +La función devuelve un [**objeto POP3 transporter**](../API/POP3TransporterClass.md#pop3-transporter-object). Todas las propiedades devueltas son de sólo lectura\*\*. > La conexión POP3 se cierra automáticamente cuando se destruye el objeto transportador. diff --git a/i18n/es/docusaurus-plugin-content-docs/current/commands/smtp-new-transporter.md b/i18n/es/docusaurus-plugin-content-docs/current/commands/smtp-new-transporter.md index 257e18ca09fea8..11213d2f5fe731 100644 --- a/i18n/es/docusaurus-plugin-content-docs/current/commands/smtp-new-transporter.md +++ b/i18n/es/docusaurus-plugin-content-docs/current/commands/smtp-new-transporter.md @@ -11,7 +11,7 @@ displayed_sidebar: docs | Parámetros | Tipo | | Descripción | | ---------- | ---------------------------------- | - | --------------------------------------------------------------------------------- | | server | Object | → | Información del servidor de correo | -| Resultado | 4D.SMTPTransporter | ← | [SMTP transporter object](../API/SMTPTransporterClass.md#smtp-transporter-object) | +| Resultado | 4D.SMTPTransporter | ← | [Objeto SMTP transporter](../API/SMTPTransporterClass.md#smtp-transporter-object) | @@ -29,7 +29,7 @@ displayed_sidebar: docs The `SMTP New transporter` command configures a new SMTP connection according to the *server* parameter and returns a new [SMTP transporter object](../API/SMTPTransporterClass.md#smtp-transporter-object) object. El objeto transportador devuelto se utilizará normalmente para el envío de correos electrónicos. -> Este comando no abre ninguna conexión con el servidor SMTP. The SMTP connection is actually opened when the [`.send()`](../API/SMTPTransporterClass.md#send) function is executed. +> Este comando no abre ninguna conexión con el servidor SMTP. Este comando no abre ninguna conexión con el servidor SMTP. > > La conexión SMTP se cierra automáticamente: > diff --git a/i18n/es/docusaurus-plugin-content-docs/current/commands/this.md b/i18n/es/docusaurus-plugin-content-docs/current/commands/this.md index 87ea96fb715087..2795504a240e69 100644 --- a/i18n/es/docusaurus-plugin-content-docs/current/commands/this.md +++ b/i18n/es/docusaurus-plugin-content-docs/current/commands/this.md @@ -50,7 +50,7 @@ $val:=$o.a //42 En todos los casos, `This` se refiere al objeto sobre el que se ha llamado el método, como si el método fuera una función del objeto. ```4d -//Class: ob +//Clase: ob Function f() : Integer return This.a+This.b @@ -70,7 +70,7 @@ En este ejemplo, el objeto asignado a la variable $o no tiene su propia propieda #### Objeto fórmula -In the context of the execution of a formula object created by the [Formula](formula.md) or [Formula from string](formula-from-string.md) commands, `This` returns a reference to the object currently processed by the formula. +En el contexto de la ejecución de un objeto fórmula creado por los comandos [Formula](formula.md) o [Formula from string](formula-from-string.md), `This` devuelve una referencia al objeto actualmente procesado por la fórmula. For example, you want to use a project method as a formula encapsulated in an object: @@ -79,8 +79,8 @@ For example, you want to use a project method as a formula encapsulated in an ob $person.firstName:="John" $person.lastName:="Smith" $person.greeting:=Formula(Greeting) - $g:=$person.greeting("hello") // returns "hello John Smith" - $g:=$person.greeting("hi") // returns "hi John Smith" + $g:=$person.greeting("hello") // devuelve "hola John Smith" + $g:=$person.greeting("hi") // devuelve "hi John Smith" ``` With the *Greeting* project method: @@ -92,7 +92,7 @@ With the *Greeting* project method: #### List box -In the context of a list box associated to a collection or an entity selection, during the [`On Display Detail`](../Events/onDisplayDetail.md) or the [`On Data Change`](../Events/onDataChange.md) events, `This` returns a reference to the collection element or entity accessed by the list box to display the current row. +En el contexto de un list box asociado a una colección o una selección de entidades, durante los eventos [`On Display Detail`](../Events/onDisplayDetail.md) o [`On Data Change`](../Events/onDataChange.md), `This` devuelve una referencia al elemento de colección o entidad a la que accede el list box para mostrar la línea actual. :::note @@ -127,7 +127,7 @@ A collection of objects, each with this structure: ``` -In the list box, each column refers to one of the properties of the object, either directly (This.name), indirectly (This.employees.length), or through an expression (*getPicture*) in which can be used directly. The list box looks like: +En el list box, cada columna se refiere a una de las propiedades del objeto, ya sea directamente (This.name), indirectamente (This.employees.length), o a través de una expresión (*getPicture*) en la que se puede usar directamente. The list box looks like: ![](../assets/en/commands/pict3776706.en.png) @@ -160,13 +160,13 @@ You build a list box of the "Collection or entity selection" type with the follo Note que: - *This.ID*, *This.Title* and *This.Date* directly refers to the corresponding attributes in the ds.Event dataclass. -- *This.meetings* is a related attribute (based upon the One To Many relation name) that returns an entity selection of the ds.Meeting dataclass. +- *This.meetings* es un atributo relacionado (basado en el nombre de una relación de Uno a Muchos) que devuelve una selección de entidad de la base de datos ds.Meeting. - **Form.eventList** is the entity selection that is attached to the list box. The initialization code can be put in the on load form event: ```4d Case of :(Form event code=On Load) - Form.eventList:=ds.Event.all() //returns an entity selection with all entities + Form.eventList:=ds.Event.all() //devuelve una selección de entidad con todas las entidades End case ``` diff --git a/i18n/es/docusaurus-plugin-content-docs/version-18/Concepts/dt_collection.md b/i18n/es/docusaurus-plugin-content-docs/version-18/Concepts/dt_collection.md index beaafacd4cbce6..5740d2651184da 100644 --- a/i18n/es/docusaurus-plugin-content-docs/version-18/Concepts/dt_collection.md +++ b/i18n/es/docusaurus-plugin-content-docs/version-18/Concepts/dt_collection.md @@ -55,7 +55,7 @@ Ejemplo: Puede crear dos tipos de colecciones: - colecciones estándar (no compartidas), utilizando el comando `New collection`. Estas colecciones pueden ser editadas sin ningún control de acceso específico, pero no pueden ser compartidas entre procesos. -- colecciones compartidas, utilizando el comando `New shared collection`. Estas colecciones pueden ser compartidas entre procesos, incluidos los hilos apropiativos. These collections can be shared between processes, including preemptive threads. Para más información, consulte la sección [Objetos y colecciones compartidos](Concepts/shared.md). +- colecciones compartidas, utilizando el comando `New shared collection`. Estas colecciones pueden ser compartidas entre procesos, incluidos los hilos apropiativos. El acceso a estas colecciones es controlado por estructuras `Use...End use`. Para más información, consulte la sección [Objetos y colecciones compartidos](Concepts/shared.md). ## Métodos de colección diff --git a/i18n/es/docusaurus-plugin-content-docs/version-18/FormObjects/properties_Reference.md b/i18n/es/docusaurus-plugin-content-docs/version-18/FormObjects/properties_Reference.md index 4a637b41991583..d71f72543bd140 100644 --- a/i18n/es/docusaurus-plugin-content-docs/version-18/FormObjects/properties_Reference.md +++ b/i18n/es/docusaurus-plugin-content-docs/version-18/FormObjects/properties_Reference.md @@ -134,7 +134,7 @@ En esta página encontrará una lista completa de todas las propiedades de los o | [scrollbarHorizontal](properties_Appearance.md#horizontal-scroll-bar) | Una herramienta que permite al usuario desplazar el área de visualización hacia la izquierda o la derecha. | "visible", "hidden", "automatic" | | [scrollbarVertical](properties_Appearance.md#vertical-scroll-bar) | Una herramienta que permite al usuario mover el área de visualización hacia arriba o hacia abajo. | "visible", "hidden", "automatic" | | [selectedItemsSource](properties_DataSource.md#selected-items) | Colección de los elementos seleccionados en un list box. | Expresión de la colección | -| [selectionMode](properties_Action.md#multi-selectable) (hierarchical list)
    [selectionMode](properties_ListBox.md#selection-mode) (list box)
    [selectionMode](properties_Subform.md#selection-mode) (subform) | Permite la selección de múltiples registros/líneas. | "multiple", "single", "none" | +| [selectionMode](properties_Action.md#multi-selectable) (lista jerárquica)
    [selectionMode](properties_ListBox.md#selection-mode) (list box)
    [selectionMode](properties_Subform.md#selection-mode) (subformulario) | Permite la selección de múltiples registros/líneas. | "multiple", "single", "none" | | [shortcutAccel](properties_Entry.md#shortcut) | Especifica el sistema a utilizar, Windows o Mac. | true, false | | [shortcutAlt](properties_Entry.md#shortcut) | Designa la tecla Alt | true, false | | [shortcutCommand](properties_Entry.md#shortcut) | Designa la tecla Comando (macOS) | true, false | diff --git a/i18n/es/docusaurus-plugin-content-docs/version-18/FormObjects/properties_Scale.md b/i18n/es/docusaurus-plugin-content-docs/version-18/FormObjects/properties_Scale.md index a65bb9292bf2ae..8bcd38f4b774fb 100644 --- a/i18n/es/docusaurus-plugin-content-docs/version-18/FormObjects/properties_Scale.md +++ b/i18n/es/docusaurus-plugin-content-docs/version-18/FormObjects/properties_Scale.md @@ -31,7 +31,7 @@ Muestra/Oculta las graduaciones junto a las etiquetas. #### Objetos soportados -[Thermometer](progressIndicator.md#default-thermometer) - [Ruler](ruler.md) +[Termómetro](progressIndicator.md#default-thermometer) - [Regla](ruler.md) --- @@ -47,7 +47,7 @@ Medición de la visualización de la escala. #### Objetos soportados -[Thermometer](progressIndicator.md#default-thermometer) - [Ruler](ruler.md) +[Termómetro](progressIndicator.md#default-thermometer) - [Regla](ruler.md) --- @@ -67,7 +67,7 @@ Especifica la ubicación del texto mostrado de un objeto. #### Objetos soportados -[Thermometer](progressIndicator.md#default-thermometer) - [Ruler](ruler.md) +[Termómetro](progressIndicator.md#default-thermometer) - [Regla](ruler.md) --- @@ -86,7 +86,7 @@ Valor máximo de un indicador. #### Objetos soportados -[Thermometer](progressIndicator.md#default-thermometer) - [Ruler](ruler.md) - [Stepper](stepper.md) +[Termómetro](progressIndicator.md#default-thermometer) - [Regla](ruler.md) - [Paso a paso](stepper.md) --- @@ -102,7 +102,7 @@ Valor mínimo de un indicador. Para los steppers numéricos, esta propiedad repr #### Objetos soportados -[Thermometer](progressIndicator.md#default-thermometer) - [Ruler](ruler.md) - [Stepper](stepper.md) +[Termómetro](progressIndicator.md#default-thermometer) - [Regla](ruler.md) - [Paso a paso](stepper.md) --- @@ -118,4 +118,4 @@ Intervalo mínimo aceptado entre los valores durante el uso. Para los steppers n #### Objetos soportados -[Thermometer](progressIndicator.md#default-thermometer) - [Ruler](ruler.md) - [Stepper](stepper.md) +[Termómetro](progressIndicator.md#default-thermometer) - [Regla](ruler.md) - [Paso a paso](stepper.md) diff --git a/i18n/es/docusaurus-plugin-content-docs/version-18/FormObjects/properties_Subform.md b/i18n/es/docusaurus-plugin-content-docs/version-18/FormObjects/properties_Subform.md index 5746d41edf29b8..3ec9678555106e 100644 --- a/i18n/es/docusaurus-plugin-content-docs/version-18/FormObjects/properties_Subform.md +++ b/i18n/es/docusaurus-plugin-content-docs/version-18/FormObjects/properties_Subform.md @@ -149,7 +149,7 @@ Especifica la tabla a la que pertenece el subformulario Lista (si la hay). ## Modo de selección Designa la opción para permitir a los usuarios seleccionar líneas: -- **Ninguna**: las líneas no se pueden seleccionar si se elige este modo. Clicking on the list will have no effect unless the [Enterable in list](#enterable-in-list) option is enabled. Las teclas de navegación sólo hacen que la lista se desplace; no se genera el evento de formulario `On Selection Change`. +- **Ninguna**: las líneas no se pueden seleccionar si se elige este modo. Hacer clic en la lista no tendrá ningún efecto a menos que la opción [Editable en lista](#enterable-in-list) esté activada. Las teclas de navegación sólo hacen que la lista se desplace; no se genera el evento de formulario `On Selection Change`. - **Simple**: en este modo se puede seleccionar una línea a la vez. Si hace clic en una línea, la seleccionará. Un **Ctrl+clic** (Windows) o **Comando+clic** (macOS) en una línea cambia su estado (entre seleccionada o no). Las teclas de flecha arriba y abajo seleccionan la línea anterior/siguiente de la lista. Las otras teclas de navegación se desplazan por la lista. El evento de formulario `On Selection Change` se genera cada vez que se cambia la línea actual. - **Múltiple**: en este modo se pueden seleccionar varias líneas simultáneamente. diff --git a/i18n/es/docusaurus-plugin-content-docs/version-19/API/CryptoKeyClass.md b/i18n/es/docusaurus-plugin-content-docs/version-19/API/CryptoKeyClass.md index 1a1e06d4c91183..9fcd9681d98626 100644 --- a/i18n/es/docusaurus-plugin-content-docs/version-19/API/CryptoKeyClass.md +++ b/i18n/es/docusaurus-plugin-content-docs/version-19/API/CryptoKeyClass.md @@ -141,7 +141,7 @@ ASSERT($status.success) **.curve** : Text -Definido sólo para llaves ECDSA: el nombre de la curva normalizada de la llave. Generalmente "prime256v1" para ES256 (por defecto), "secp384r1" para ES384, "secp521r1" para ES512. +Definido sólo para llaves RSA: el tamaño de la llave en bits. . @@ -350,7 +350,7 @@ La función `.sign()` firma la representac **.size** : Integer -Definido sólo para llaves RSA: el tamaño de la llave en bits. . +Definido sólo para llaves ECDSA: el el tamaño de la llave en bits. . ## .type @@ -387,6 +387,7 @@ Contiene el nombre del tipo de llave - "RSA" **.verify**( *message* : Text ; *signature* : Text ; *options* : Object) : Object + | Parámetros | Tipo | | Descripción | | ---------- | ------ | -- | ---------------------------------------------------------------------------------------------------- | @@ -407,11 +408,11 @@ La `CryptoKey` debe contener una llave **pública** válida. | --------- | ------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | | hash | text | Algoritmo Digest a utilizar. Por ejemplo: "SHA256", "SHA384" o "SHA512". Cuando se utiliza para producir un JWT, el tamaño del hash debe coincidir con el tamaño del algoritmo PS@, ES@, RS@ o PS@ | | pss | boolean | Utilice el Probabilistic Signature Scheme (PSS). Se ignora si la llave no es una llave RSA. Pase `true` al verificar un JWT para el algoritmo PS@ | -| encoding | text | Encoding used to convert the binary encrypted message into the result string. Can be "Base64", or "Base64URL". Por defecto es "Base64". | +| encoding | text | Codificación utilizada para convertir el mensaje binario encriptado en la cadena de resultados. Puede ser "Base64", o "Base64URL". Por defecto es "Base64". | #### *Result* -La `CryptoKey` debe contener una llave **pública** válida. +La función devuelve un objeto de estado con la propiedad `success` definida como `true` si el `message` pudo ser verificado con éxito (es decir, la firma coincide). La función devuelve un objeto de estado con la propiedad `success` definida como `true` si el `message` pudo ser verificado con éxito (es decir, la firma coincide). diff --git a/i18n/es/docusaurus-plugin-content-docs/version-19/API/DataClassClass.md b/i18n/es/docusaurus-plugin-content-docs/version-19/API/DataClassClass.md index 96df2c096d4f13..c6a2e4ba240160 100644 --- a/i18n/es/docusaurus-plugin-content-docs/version-19/API/DataClassClass.md +++ b/i18n/es/docusaurus-plugin-content-docs/version-19/API/DataClassClass.md @@ -700,7 +700,7 @@ donde: * **Text**: la cadena de fórmulas debe ir precedida de la declaración `eval( )`, para que el analizador de consultas evalúe la expresión correctamente. Por ejemplo: *"eval(length(This.lastname) >=30)"* * **Object**: el [objeto fórmula](FunctionClass.md) se pasa como un **marcador** (ver abajo). La fórmula debe haber sido creada utilizando los comandos [`Formula`](FunctionClass.md#formula) o [`Formula from string`](FunctionClass.md#formula-from-string). -> * > * Keep in mind that 4D formulas only support `&` and `|` symbols as logical operators. +> * > * > * > * > * Keep in mind that 4D formulas only support `&` and `|` symbols as logical operators. > * Si la fórmula no es el único criterio de búsqueda, el optimizador del motor de búsquedas podría procesar previamente otros criterios (por ejemplo, los atributos indexados) y, por tanto, la fórmula podría evaluarse sólo para un subconjunto de entidades. Las fórmulas en las consultas pueden recibir parámetros a través de $1. Este punto se detalla en el párrafo **Parámetro fórmula** más abajo. @@ -723,7 +723,7 @@ donde: | Condición No aplicada a una sentencia | NOT | Los paréntesis son obligatorios cuando se utiliza NOT antes de una instrucción que contiene varios operadores | | Contiene palabra clave | % | Las palabras claves pueden utilizarse en atributos de tipo texto o imagen | -* **value**: el valor a comparar con el valor actual de la propiedad de cada entidad en la selección de entidades o elemento en la colección. Puede ser un **marcador** (ver **Uso de marcadores** más adelante) o cualquier expresión que coincida con la propiedad de tipo de datos. Al utilizar un valor constante, deben respetarse las siguientes reglas: +* **value**: el valor a comparar con el valor actual de la propiedad de cada entidad en la selección de entidades o elemento en la colección. Puede ser un **marcador** (ver **Uso de marcadores** más adelante) o cualquier expresión que coincida con la propiedad de tipo de datos. Al utilizar un valor constante, deben respetarse las siguientes reglas: Note that, in case of type mismatch with scalar types (text, date, number...), 4D will try to convert the **value** type to the attribute data type whenever possible, for an easier handling of values coming from the Internet. For example, if the string "v20" is entered as **value** to compare with an integer attribute, it will be converted to 20. * La constante de tipo **texto** puede pasarse con o sin comillas simples (ver **Uso de comillas** más abajo). Para consultar una cadena dentro de otra cadena (una consulta de tipo "contiene"), utilice el símbolo de comodín (@) en el valor para aislar la cadena a buscar como se muestra en este ejemplo: "@Smith@". Las siguientes palabras claves están prohibidas para las constantes de texto: true, false. * Valores constantes de tipo **boolean**: **true** o **false** (Sensible a las mayúsculas y minúsculas). * Valores constantes de tipo **numérico**: los decimales se separan con un '.' constantes de tipo de fecha: formato "YYYY-MM-DD" @@ -737,7 +737,7 @@ donde: | O | |,||, or | * **order by attributePath**: puede incluir una declaración order by *attributePath* en la búsqueda para que los datos resultantes se ordenen de acuerdo con esa declaración. Puede utilizar varias instrucciones de ordenación, separadas por comas (por ejemplo, ordenación por *attributePath1* desc, *attributePath2* asc). Por defecto, el orden es ascendente. Pase 'desc' para definir un orden descendente y 'asc' para definir un orden ascendente. -> > *If you use this statement, the returned entity selection is ordered (for more information, please refer to [Ordered vs Unordered entity selections](ORDA/dsMapping.md#ordered-or-unordered-entity-selection)). +> > > > > *If you use this statement, the returned entity selection is ordered (for more information, please refer to [Ordered vs Unordered entity selections](ORDA/dsMapping.md#ordered-or-unordered-entity-selection)). **Utilizar comillas** @@ -821,7 +821,7 @@ Al buscar dentro de atributos de objetos dataclass que contengan colecciones, el ``` Entity 1: -ds.Class.name: "A" +ds. Class.name: "A" ds.Class.info: { "coll" : [ { "val":1, @@ -829,7 +829,7 @@ ds.Class.info: } ] } Entity 2: -ds.Class.name: "B" +ds. Class.name: "B" ds.Class.info: { "coll" : [ { "val":1, @@ -837,7 +837,7 @@ ds.Class.info: } ] } Entity 3: -ds.Class.name: "C" +ds. Class.name: "C" ds.Class.info: { "coll" : [ { "val":0, @@ -852,11 +852,11 @@ Considere los siguientes resultados: // devuelve B y C // encuentra "entidades con 0 en al menos una propiedad val" -ds.Class.query("info.coll[].val != :1";0) +ds. Class.query("info.coll[].val != :1";0) // sólo devuelve A // encuentra "entidades en las que todas las propiedades val son distintas de 0" // lo que equivale a -ds.Class.query(not("info.coll[].val = :1";0)) +ds. Class.query(not("info.coll[].val = :1";0)) ``` Si desea implementar una búsqueda que encuentre entidades en las que "al menos una propiedad sea diferente del valor **", deberá utilizar una notación especial utilizando una letra en el `[]`: @@ -877,7 +877,7 @@ Esta funcionalidad sólo está disponible en las búsquedas en clases de datos y ::: -Al buscar dentro de los atributos de objetos de clases de datos que contengan colecciones utilizando varios argumentos de consulta unidos por el operador AND, es posible que desee asegurarse de que sólo se devuelvan entidades que contengan elementos que coincidan con todos los argumentos, y no entidades en las que los argumentos puedan encontrarse en elementos diferentes. Para ello, es necesario vincular los argumentos de la búsqueda a los elementos de colección, de modo que sólo se encuentren los elementos únicos que contengan argumentos vinculados. +Para ello, es necesario vincular los argumentos de la búsqueda a los elementos de colección, de modo que sólo se encuentren los elementos únicos que contengan argumentos vinculados. Al buscar dentro de los atributos de objetos de clases de datos que contengan colecciones utilizando varios argumentos de consulta unidos por el operador AND, es posible que desee asegurarse de que sólo se devuelvan entidades que contengan elementos que coincidan con todos los argumentos, y no entidades en las que los argumentos puedan encontrarse en elementos diferentes. Por ejemplo, con las dos entidades siguientes: @@ -932,7 +932,7 @@ La fórmula debe haber sido creada con el comando `Formula` o `Formula from stri * *fórmula* se evalúa para cada entidad y debe devolver true o false. Durante la ejecución de la búsqueda, si el resultado de la fórmula no es un booleano, se considera como false. * dentro de la *fórmula*, la entidad está disponible a través del objeto `This`. * si el objeto `Formula` es **null**, se genera el error 1626 ("Esperando un texto o una fórmula"), que llama a interceptar utilizando un método instalado con `ON ERR CALL`. -> > For security reasons, formula calls within `query(`) member methods can be disallowed. Ver la descripción del parámetro *querySettings*. +> > > > > For security reasons, formula calls within `query(`) member methods can be disallowed. Ver la descripción del parámetro *querySettings*. **Pasar parámetros a fórmulas** @@ -962,13 +962,13 @@ En el parámetro *querySettings* se puede pasar un objeto que contenga opciones | attributes | Object | **attributePath**: path of attribute on which you want to execute the query. Los atributos se expresan como pares propiedad / valor, donde propiedad es el nombre del marcador de posición insertado para una ruta de atributo en *queryString* o *formula* (":placeholder") y valor puede ser una cadena o una colección de cadenas. Cada valor es una ruta que puede designar un escalar o un atributo relacionado de la dataclass o una propiedad en un campo de objeto de la dataclass
    TipoDescripción
    StringattributePath expresado con la notación de puntos, por ejemplo: "name" o "user.address.zipCode"
    Colección de cadenasCada cadena de la colección representa un nivel de attributePath, por ejemplo: \["name"] o \["user","address","zipCode"]. El uso de una colección permite consultar atributos con nombres que no se ajustan a la notación de puntos, por ejemplo, ["4Dv17.1", "en/fr"]
    Puede combinar marcadores de posición indexados (valores pasados directamente en los parámetros *value*) y los valores de marcadores de posición con nombre en la misma búsqueda. | | args | Object | Parámetro(s) a pasar a las fórmulas, si las hay. El objeto **args** se recibirá en $1 dentro de las fórmulas y, por tanto, sus valores estarán disponibles a través de *$1.property* (ver ejemplo 3). | | allowFormulas | Boolean | True para permitir las llamadas de fórmulas en la búsqueda (por defecto). Pase false para desautorizar la ejecución de fórmulas. Si se establece como false y `query()` recibe una fórmula, se envía un error (1278 - Fórmula no permitida en este método miembro). | -| context | Text | Etiqueta para el contexto de optimización automática aplicado a la entity selection. Este contexto será utilizado por el código que maneja la selección de entidades para que pueda beneficiarse de la optimización. Esta funcionalidad está diseñada para el procesamiento cliente/servidor; para más información, consulte la página [**Optimización cliente/servidor**](https://doc.4d.com/4Dv19/4D/19/Entity-selections.300-5416640.en.html#4461913). | +| context | Text | Etiqueta para el contexto de optimización automática aplicado a la entity selection. Este contexto será utilizado por el código que maneja la selección de entidades para que pueda beneficiarse de la optimización. Este contexto será utilizado por el código que maneja la selección de entidades para que pueda beneficiarse de la optimización. | | queryPlan | Boolean | En la entity selection resultante, devuelve o no la descripción detallada de la búsqueda justo antes de que se ejecute, es decir, la búsqueda planificada. La propiedad devuelta es un objeto que incluye cada búsqueda y sub búsqueda prevista (en el caso de una búsqueda compleja). Esta opción es útil durante la fase de desarrollo de una aplicación. Suele utilizarse junto con queryPath. Por defecto si se omite: false. **Nota**: esta propiedad sólo la soportan las funciones`entitySelection.query( )` y `dataClass.query( )`. | | queryPath | Boolean | En la entity selection resultante, devuelve o no la descripción detallada de la búsqueda tal cual es realizada. La propiedad devuelta es un objeto que contiene la ruta utilizada para la búsqueda (normalmente idéntica a la de queryPlan, pero puede diferir si el motor consigue optimizar la búsqueda), así como el tiempo de procesamiento y el número de registros encontrados. Esta opción es útil durante la fase de desarrollo de una aplicación. Por defecto si se omite: false. **Nota**: esta propiedad sólo la soportan las funciones`entitySelection.query( )` y `dataClass.query( )`. | **Sobre queryPlan y queryPath** -La información registrada en `queryPlan`/`queryPath` incluye el tipo de búsqueda (indexada y secuencial) y cada subconsulta necesaria junto con los operadores de conjunción. Las rutas de acceso de las peticiones también contienen el número de entidades encontradas y el tiempo necesario para ejecutar cada criterio de búsqueda. Puede resultarle útil analizar esta información mientras desarrolla sus aplicaciones. Generalmente, la descripción del plan de consulta y su ruta de acceso son idénticas, pero pueden diferir porque 4D puede implementar optimizaciones dinámicas cuando se ejecuta una consulta para mejorar el rendimiento. Por ejemplo, el motor 4D puede convertir dinámicamente una consulta indexada en una secuencial si estima que es más rápida. Este caso concreto puede darse cuando el número de entidades que se buscan es bajo. +La información registrada en `queryPlan`/`queryPath` incluye el tipo de búsqueda (indexada y secuencial) y cada subconsulta necesaria junto con los operadores de conjunción. Las rutas de acceso de las peticiones también contienen el número de entidades encontradas y el tiempo necesario para ejecutar cada criterio de búsqueda. Las rutas de acceso de las peticiones también contienen el número de entidades encontradas y el tiempo necesario para ejecutar cada criterio de búsqueda. Generalmente, la descripción del plan de consulta y su ruta de acceso son idénticas, pero pueden diferir porque 4D puede implementar optimizaciones dinámicas cuando se ejecuta una consulta para mejorar el rendimiento. Por ejemplo, el motor 4D puede convertir dinámicamente una consulta indexada en una secuencial si estima que es más rápida. Este caso concreto puede darse cuando el número de entidades que se buscan es bajo. Por ejemplo, si ejecuta la siguiente búsqueda: diff --git a/i18n/es/docusaurus-plugin-content-docs/version-19/API/EntityClass.md b/i18n/es/docusaurus-plugin-content-docs/version-19/API/EntityClass.md index a1110c6dace068..980527eee3e22a 100644 --- a/i18n/es/docusaurus-plugin-content-docs/version-19/API/EntityClass.md +++ b/i18n/es/docusaurus-plugin-content-docs/version-19/API/EntityClass.md @@ -92,8 +92,10 @@ El tipo de valor del atributo depende del tipo [kind](DataClassClass.md#attribut #### Descripción -La función `.clone()` crea en memoria una nueva entidad que hace referencia al mismo registro que la entidad original. Esta función permite actualizar las entidades por separado. -> Tenga en cuenta que toda modificación realizada a las entidades se guardará en el registro referenciado sólo cuando se ejecute la función [`.save( )`](#save). +La función `.clone()` crea en memoria una nueva entidad que hace referencia al mismo registro que la entidad original. + +This function allows you to update entities separately. Note however that, for performance reasons, the new entity shares the same reference of object attributes as the cloned entity. +> Keep in mind that any modifications done to entities will be saved in the referenced record only when the [`.save()`](#save) function is executed. Esta función sólo puede utilizarse con entidades ya guardadas en la base de datos. No se puede llamar a una entidad recién creada (para la que [`.isNew()`](#isnew) devuelve **True**). @@ -232,7 +234,7 @@ $diff2: vCompareResult3:=$e1.diff($e2;$e1.touchedAttributes()) ``` -vCompareResult1 (se devuelven todas las diferencias): +vCompareResult3 (sólo se devuelven las diferencias en atributos tocados $e1) ```4d [ @@ -281,7 +283,7 @@ vCompareResult2 (sólo se devuelven las diferencias en $attributesToInspect) ] ``` -vCompareResult3 (sólo se devuelven las diferencias en atributos tocados $e1) +vCompareResult1 (se devuelven todas las diferencias): ```4d [ @@ -564,7 +566,7 @@ También puede utilizar una entidad relacionada dada como objeto: #### Descripción -La función `.getDataClass()` devuelve la clase de datos de la entidad. Esta función es útil al escribir código genérico. +La función `.isNew()` devuelve True si la entidad a la que se aplica acaba de ser creada y aún no se ha guardado en el almacén de datos. . #### Ejemplo @@ -907,7 +909,7 @@ El objeto devuelto por `.lock( )` contiene las siguientes propiedades: | | component signature | text | firma del componente interno (por ejemplo, "dmbg" significa el componente de la base) | | | errCode | number | Código de error | -(\*) Los siguientes valores pueden ser devueltos en las propiedades *status* y *statusText* del objeto *Result* en caso de error: +(\*) Los siguientes valores pueden ser devueltos en las propiedadese *status* y *statusText* del objeto *Result* en caso de error: | Constante | Valor | Comentario | | ----------------------------------------- | ----- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | @@ -1070,7 +1072,7 @@ El objeto devuelto por `.reload( )` contiene las siguientes propiedades: | status(\*) | number | Código de error, ver abajo | | statusText(\*) | text | Descripción del error, ver abajo | -(\*) Los siguientes valores pueden ser devueltos en las propiedadese *status* y *statusText* del objeto *Result* en caso de error: +(\*) Los siguientes valores pueden ser devueltos en las propiedades *status* y *statusText* del objeto *Result* en caso de error: | Constante | Valor | Comentario | | ----------------------------------------- | ----- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | diff --git a/i18n/es/docusaurus-plugin-content-docs/version-19/API/EntitySelectionClass.md b/i18n/es/docusaurus-plugin-content-docs/version-19/API/EntitySelectionClass.md index d3600d319cde4a..bfd026f166e406 100644 --- a/i18n/es/docusaurus-plugin-content-docs/version-19/API/EntitySelectionClass.md +++ b/i18n/es/docusaurus-plugin-content-docs/version-19/API/EntitySelectionClass.md @@ -844,7 +844,7 @@ Sin embargo, hay una diferencia entre ambas afirmaciones cuando la selección es #### Descripción -La función `.getDataClass()` The `.getDataClass()` function. +La función `.isNew()` The `.getDataClass()` function. Esta función es principalmente útil en el contexto del código genérico. diff --git a/i18n/es/docusaurus-plugin-content-docs/version-19/Concepts/classes.md b/i18n/es/docusaurus-plugin-content-docs/version-19/Concepts/classes.md index ce9e0f740036c0..452e37eafe63cc 100644 --- a/i18n/es/docusaurus-plugin-content-docs/version-19/Concepts/classes.md +++ b/i18n/es/docusaurus-plugin-content-docs/version-19/Concepts/classes.md @@ -172,7 +172,7 @@ Function ({$parameterName : type; ...}){->$parameterName : type} :::note -There is no ending keyword for function code. The 4D language automatically detects the end of a function's code by the next `Function` keyword or the end of the class file. +There is no ending keyword for function code. There is no ending keyword for function code. ::: @@ -279,11 +279,15 @@ $area:=$rect.getArea() //5000 Class Constructor({$parameterName : type; ...}) // code // code +// Class: +// Class: +// Class: +// Class: ``` :::note -There is no ending keyword for class constructor function code. The 4D language automatically detects the end of a function's code by the next `Function` keyword or the end of the class file. +There is no ending keyword for class constructor function code. There is no ending keyword for function code. ::: @@ -401,23 +405,24 @@ Super.doSomething(42) //llama a la función "doSomething" Este ejemplo ilustra el uso de `Super` en un class constructor. El comando es llamado para evitar duplicar las partes del constructor que son comunes entre las clases `Rectangle` y `Square`. ```4d -// Class: Rectangle -Class constructor($width : Integer; $height : Integer) - This.name:="Rectangle" - This.height:=$height - This.width:=$width +//Class: Square +Class extends Rectangle -Function sayName() - ALERT("Hi, I am a "+This.name+".") +Class constructor ($side : Integer) -// Function definition -Function getArea() - var $0 : Integer + // Llama al class constructor de la clase padre con longitudes + // proporcionadas para el ancho y alto del rectángulo + Super($side;$side) + // En las clases derivadas, Super debe ser llamado antes de que + // pueda utilizar 'This' + This. - $0:=(This.height)*(This.width) +ame:="Square" -// Class: +Function getArea() + C_LONGINT($0) + $0:=This.height*This.width ``` ```4d diff --git a/i18n/es/docusaurus-plugin-content-docs/version-19/FormObjects/dropdownList_Overview.md b/i18n/es/docusaurus-plugin-content-docs/version-19/FormObjects/dropdownList_Overview.md index 1c699067ae30a4..e2d55115202a92 100644 --- a/i18n/es/docusaurus-plugin-content-docs/version-19/FormObjects/dropdownList_Overview.md +++ b/i18n/es/docusaurus-plugin-content-docs/version-19/FormObjects/dropdownList_Overview.md @@ -124,7 +124,7 @@ Debe seleccionar cada evento que pruebe en sus sentencia Case. Los arrays siempr Si desea utilizar una lista desplegable para gestionar los valores de un área de entrada (campo listado o variable), 4D le permite hacer referencia al campo o variable directamente como [fuente de datos](properties_Object.md#variable-or-expression) de la lista desplegable. Esto facilita la gestión de los campos/variables listados. Por ejemplo, en el caso de un campo "Color" que sólo puede contener los valores "Blanco", "Azul", "Verde" o "Rojo", es posible crear una lista que contenga estos valores y asociarla a una lista desplegable que haga referencia al campo "Color" 4D. 4D se encarga entonces de gestionar automáticamente la entrada y la visualización del valor actual en el formulario. -> Si utiliza una lista jerárquica, sólo se muestra el primer nivel y se puede seleccionar. If you use a hierarchical list, only the first level is displayed and can be selected. +> Si utiliza una lista jerárquica, sólo se muestra el primer nivel y se puede seleccionar. Si utiliza una lista jerárquica, sólo se muestra el primer nivel y se puede seleccionar. Para asociar una lista desplegable a un campo o variable, introduzca directamente el nombre del campo o variable como campo [Variable o Expresión](properties_Object.md#variable-or-expression) de la lista desplegable en la Lista de propiedades. > No es posible utilizar esta funcionalidad con una lista desplegable de objetos o arrays. Si introduce un nombre de campo en el área "Variable o expresión", deberá utilizar una lista de selección. diff --git a/i18n/es/docusaurus-plugin-content-docs/version-19/FormObjects/properties_Object.md b/i18n/es/docusaurus-plugin-content-docs/version-19/FormObjects/properties_Object.md index 2dda5724b0e3cf..3fd72532ba2b2f 100644 --- a/i18n/es/docusaurus-plugin-content-docs/version-19/FormObjects/properties_Object.md +++ b/i18n/es/docusaurus-plugin-content-docs/version-19/FormObjects/properties_Object.md @@ -86,7 +86,7 @@ Las variables o expresiones se pueden introducir o no y pueden recibir datos de | Nombre | Tipos de datos | Valores posibles | | ---------- | ------------------------- | --------------------------------------------------------------------------- | -| dataSource | cadena o array de cadenas |
  • Variable, nombre de campo o cualquier expresión 4D.
  • Cadena vacía para [variables dinámicas](#variables-dinámicas).
  • Array de cadenas (colección de nombres de array) para una columna [hierarchical listbox](listbox_overview.md#hierarchical-list-boxes)]
  • | +| dataSource | cadena o array de cadenas |
  • Variable, nombre de campo o cualquier expresión 4D.
  • Cadena vacía para [variables dinámicas](#dynamic-variables).
  • Array de cadenas (colección de nombres de array) para una columna [hierarchical listbox](listbox_overview.md#hierarchical-list-boxes)]
  • | ### Expresiones @@ -184,7 +184,7 @@ La colección o la selección de entidades debe estar disponible para el formula - si ha utilizado una colección de objetos, puede llamar a **This** en la expresión de la fuente de datos para acceder a cada valor de propiedad, por ejemplo `This.`. - si ha utilizado una selección de entidades, puede llamar a **This** en la expresión de la fuente de datos para acceder a cada valor de atributo, por ejemplo `This.`. -> Si ha utilizado una colección de valores escalares (y no objetos), 4D le permite mostrar cada valor llamando a **This.value** en la expresión datasource. Sin embargo, en este caso no podrá modificar valores ni acceder al objeto actual (ver más adelante). +> > Si ha utilizado una colección de valores escalares (y no objetos), 4D le permite mostrar cada valor llamando a **This.value** en la expresión datasource. Sin embargo, en este caso no podrá modificar valores ni acceder al objeto actual (ver más adelante). #### Gramática JSON diff --git a/i18n/es/docusaurus-plugin-content-docs/version-19/FormObjects/properties_Scale.md b/i18n/es/docusaurus-plugin-content-docs/version-19/FormObjects/properties_Scale.md index f1db93cdbe617f..e1e8993da69725 100644 --- a/i18n/es/docusaurus-plugin-content-docs/version-19/FormObjects/properties_Scale.md +++ b/i18n/es/docusaurus-plugin-content-docs/version-19/FormObjects/properties_Scale.md @@ -31,7 +31,7 @@ Muestra/Oculta las graduaciones junto a las etiquetas. #### Objetos soportados -[Thermometer](progressIndicator.md#default-thermometer) - [Ruler](ruler.md) +[Termómetro](progressIndicator.md#default-thermometer) - [Regla](ruler.md) --- @@ -47,7 +47,7 @@ Medición de la visualización de la escala. #### Objetos soportados -[Thermometer](progressIndicator.md#default-thermometer) - [Ruler](ruler.md) +[Termómetro](progressIndicator.md#default-thermometer) - [Regla](ruler.md) --- @@ -67,7 +67,7 @@ Especifica la ubicación del texto mostrado de un objeto. #### Objetos soportados -[Thermometer](progressIndicator.md#default-thermometer) - [Ruler](ruler.md) +[Termómetro](progressIndicator.md#default-thermometer) - [Regla](ruler.md) --- @@ -86,7 +86,7 @@ Valor máximo de un indicador. #### Objetos soportados -[Thermometer](progressIndicator.md#default-thermometer) - [Ruler](ruler.md) - [Stepper](stepper.md) +[Termómetro](progressIndicator.md#default-thermometer) - [Regla](ruler.md) - [Paso a paso](stepper.md) --- @@ -103,7 +103,7 @@ Valor mínimo de un indicador. Para los steppers numéricos, esta propiedad repr #### Objetos soportados -[Thermometer](progressIndicator.md#default-thermometer) - [Ruler](ruler.md) - [Stepper](stepper.md) +[Termómetro](progressIndicator.md#default-thermometer) - [Regla](ruler.md) - [Paso a paso](stepper.md) --- @@ -119,4 +119,4 @@ Intervalo mínimo aceptado entre los valores durante el uso. Para los steppers n #### Objetos soportados -[Thermometer](progressIndicator.md#default-thermometer) - [Ruler](ruler.md) - [Stepper](stepper.md) +[Termómetro](progressIndicator.md#default-thermometer) - [Regla](ruler.md) - [Paso a paso](stepper.md) diff --git a/i18n/es/docusaurus-plugin-content-docs/version-20-R6/API/CollectionClass.md b/i18n/es/docusaurus-plugin-content-docs/version-20-R6/API/CollectionClass.md index f08a9070860150..0598a801cfdf26 100644 --- a/i18n/es/docusaurus-plugin-content-docs/version-20-R6/API/CollectionClass.md +++ b/i18n/es/docusaurus-plugin-content-docs/version-20-R6/API/CollectionClass.md @@ -15,8 +15,7 @@ Una colección se inicializa con: ### Ejemplo ```4d - var $colVar : Collection //creación de una variable 4D de tipo colección - $colVar:=New collection //inicialización de la colección y asignación a la variable 4D +Notas ``` ### Resumen @@ -63,7 +62,7 @@ Una colección se inicializa con: | [](#reduceRight)
    | | [](#remove)
    | | [](#resize)
    | -| [](#orderby)
    | +| Ejemplo 2 | | [](#shift)
    | | [](#slice)
    | | [](#some)
    | @@ -230,33 +229,27 @@ Esta función modifica la colección original. -| Parámetros | Tipo | | Descripción | -| ---------- | ------- | :-------------------------: | ------------------------------ | -| index | Integer | -> | Índice del elemento a devolver | -| Result | any | <- | El elemento en ese índice | +| Parámetros | Tipo | | Descripción | +| ---------- | ------- | :-------------------------: | ----------------------------------------------------------------------------------- | +| index | Integer | -> | Índice del elemento a devolver | +| Result | any | <- | Este ejemplo devuelve las personas contratadas hace más de 90 días: | #### Descripción -La función `.at()` devuelve el elemento en la posición *index*, permitiendo enteros positivos y negativos. +Igual a > Esta función no modifica la colección original. Los números enteros negativos cuentan hacia atrás desde el último elemento de la colección. -La función devuelve Undefined si el *index* sobrepasa los límites de la colección. +Igual a #### Ejemplo ```4d -var $col : Collection -$col:=New collection(10; 20; 30; 40; 50) -$element:=$col.at(0) // 10 -$element:=$col.at(1) // 20 -$element:=$col.at(-1) // 50 -$element:=$col.at(-2) // 40 -$element:=$col.at(10) // indefinido +Lanzamiento ``` @@ -277,26 +270,26 @@ $element:=$col.at(10) // indefinido -| Parámetros | Tipo | | Descripción | -| ------------ | --------------- | :-------------------------: | ----------------------------------------------------------------------------- | -| propertyPath | Text | -> | Ruta de la propiedad del objeto que se utilizará para el cálculo | -| Result | Real, Undefined | <- | Media aritmética (promedio) de los valores de la colección | +| Parámetros | Tipo | | Descripción | +| ------------ | --------------- | :-------------------------: | ---------------------------------------------------------------- | +| propertyPath | Text | -> | Ruta de la propiedad del objeto que se utilizará para el cálculo | +| Result | Real, Undefined | <- | donde: | #### Descripción -La función `.average()` devuelve la media aritmética (promedio) de los valores definidos en la instancia de la colección. +Diferente de Para el cálculo sólo se tienen en cuenta los elementos numéricos (se ignoran otros tipos de elementos). -Si la colección contiene objetos, pasa el parámetro *propertyPath* para indicar la propiedad del objeto a tener en cuenta. +Uso del paréntesis -`.average()` devuelve `undefined` si: +Number, Text, Date, Time, Boolean, Object, Collection, Picture, Pointer - la colección está vacía, - la colección no contiene elementos numéricos, -- *propertyPath* no se encuentra en la colección. +- Lanzamiento #### Ejemplo 1 @@ -335,15 +328,15 @@ Si la colección contiene objetos, pasa el parámetro *propertyPath* para indica -| Parámetros | Tipo | | Descripción | -| ---------- | ---------- | :-------------------------: | ----------------------------------------------------- | -| Result | Collection | <- | Colección original con todos los elementos eliminados | +| Parámetros | Tipo | | Descripción | +| ---------- | ---------- | :-------------------------: | ------------------------------------------- | +| Result | Collection | <- | Colección original sin elementos eliminados | #### Descripción -La función `.clear()` elimina todos los elementos de la instancia de la colección y devuelve una colección vacía. +Debe prestar atención a los siguientes aspectos de la conversión: > Esta función modifica la colección original. @@ -378,7 +371,7 @@ $vSize:=$col.length //$vSize=0 | ---------- | ---------- | :-------------------------: | ------------------------------------------------------------------------------------------------------------------------ | | col2 | Collection | -> | Colección a combinar | | index | Integer | -> | Posición a la que se deben combinar los elementos de inserción en la colección (por defecto=length+1) | -| Result | Collection | <- | Colección original que contiene elementos combinados | +| Result | Collection | <- | Colección original sin elementos eliminados | @@ -390,11 +383,11 @@ La función `.combine()` inserta eleme Por defecto, los elementos *col2* se añaden al final de la colección original. Puede pasar en *index* la posición donde desea insertar los elementos *col2* en la colección. -> **Atención**: recuerde que los elementos de la colección están numerados desde 0. +> Diferente de -- Si *index* > la longitud de la colección, el *index* inicial real será la longitud de la colección. -- Si *index* < 0, se recalcula como *index:=index+length* (se considera el desplazamiento desde el final de la colección). -- Si el valor calculado es negativo, *index* toma el valor 0. +- Ejemplo 1 +- Ejemplo 3 +- En caso de incoherencia, se aplican las siguientes reglas: #### Ejemplo @@ -423,20 +416,20 @@ $c.combine($fruits;3) //[1,2,3,"Orange","Banana","Apple","Grape",4,5,6] -| Parámetros | Tipo | | Descripción | -| ---------- | -------------------------------------------------------------- | :-------------------------: | ---------------------------------------------------------------------------------------------------------------------------------------- | -| value | Number, Text, Object, Collection, Date, Time, Boolean, Picture | -> | Valores a concatenar. Si *value* es una colección, todos los elementos de la colección se añaden a la colección original | -| Result | Collection | <- | Nueva colección con valor(es) añadido(s) a la colección original | +| Parámetros | Tipo | | Descripción | +| ---------- | -------------------------------------------------------------- | :-------------------------: | --------------------------------------------------------------------------------------------------------------------------------------------------- | +| value | Number, Text, Object, Collection, Date, Time, Boolean, Picture | -> | Valores a concatenar. Si *value* es una colección, todos sus elementos se añaden al final de la colección original. | +| Result | Collection | <- | Colección original con valores rellenados | #### Descripción -La función.`.concat()` devuelve una nueva colección que contiene los elementos de la colección original con todos los elementos del parámetro *value* añadidos al final. +Colección compartida que se agrupa con la colección resultante > Esta función no modifica la colección original. -Si *value* es una colección, todos sus elementos se añaden al final de la colección original. Si *value* no es una colección, se añade ella misma como un nuevo elemento. +La colección devuelta contiene el elemento especificado por *startFrom* y todos los elementos subsiguientes hasta, pero sin incluir, el elemento especificado por *end*. Si sólo se especifica el parámetro *startFrom*, la colección devuelta contiene todos los elementos desde *startFrom* hasta el último elemento de la colección original. #### Ejemplo @@ -468,29 +461,29 @@ $c2:=$c.concat(6;7;8) //[1,2,3,4,5,6,7,8] -| Parámetros | Tipo | | Descripción | -| ------------ | ---------- | :-------------------------: | -------------------------------------------------------------------------------------------------------------------------------------------- | -| option | Integer | -> | `ck resolve pointers`: resolver punteros antes de copiar,
    `ck shared`: devolver una colección compartida | -| groupWithCol | Collection | -> | Colección compartida que se agrupa con la colección resultante | -| groupWithObj | Object | -> | Objeto compartido que se agrupa con la colección resultante | -| Result | Collection | <- | Copia profunda de la colección original | +| Parámetros | Tipo | | Descripción | +| ------------ | ---------- | :-------------------------: | -------------------------------------------------------------- | +| option | Integer | -> | Ejemplo 3 | +| groupWithCol | Collection | -> | Colección compartida que se agrupa con la colección resultante | +| groupWithObj | Object | -> | Objeto compartido que se agrupa con la colección resultante | +| Result | Collection | <- | Colección original ordenada | #### Descripción -La función `.copy()` devuelve una copia profunda de la instancia de la colección.***Deep copy*** significa que los objetos o colecciones dentro de la colección original se duplican y no comparten ninguna referencia con la colección devuelta. +Uso de marcadores de posición > Esta función no modifica la colección original. -Si se pasa, el parámetro *option* puede contener una de las siguientes constantes (o ambas): +Lanzamiento | option | Descripción | | --------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -| `ck resolve pointers` | Si la colección original contiene valores de tipo puntero, por defecto la copia también contiene los punteros. Sin embargo, puede resolver los punteros al copiar pasando la constante `ck resolve pointers`. En este caso, cada puntero presente en la colección se evalúa al copiar y se utiliza su valor desreferenciado. | +| `ck resolve pointers` | Si la colección original contiene valores de tipo puntero, por defecto la copia también contiene los punteros. Si la colección original contiene valores de tipo puntero, por defecto la copia también contiene los punteros. En este caso, cada puntero presente en la colección se evalúa al copiar y se utiliza su valor desreferenciado. | | `ck shared` | Por defecto, `copy()` devuelve una colección Clásica (no compartida), incluso si el comando se aplica a una colección compartida. Pasa la constante `ck shared` para crear una colección compartida. En este caso, puede utilizar el parámetro *groupWith* para asociar la colección compartida con otra colección u objeto (ver más adelante). | -Los parámetros *groupWithCol* o *groupWithObj* permiten designar una colección o un objeto al que se debe asociar la colección resultante. +Ejemplo 2 :::note @@ -522,7 +515,7 @@ End use #### Ejemplo 2 -Queremos combinar *$sharedColl1* y *$sharedColl2*. Dado que pertenecen a diferentes grupos compartidos, una combinación directa daría lugar a un error. Por lo tanto, debemos hacer una copia compartida de *$sharedColl1* y designar *$sharedColl2* como grupo compartido para la copia. +Queremos combinar *$sharedColl1* y *$sharedColl2*. Dado que pertenecen a diferentes grupos compartidos, una combinación directa daría lugar a un error. Dado que pertenecen a diferentes grupos compartidos, una combinación directa daría lugar a un error. ```4d var $sharedColl1;$sharedColl2;$copyColl : Collection @@ -557,24 +550,10 @@ End use #### Ejemplo 4 -Este ejemplo ilustra el uso de la opción `ck resolve pointers`: +Primer elemento de la colección ```4d - var $col : Collection - var $p : Pointer - $p:=->$what - - $col:=New collection - $col.push(New object("alpha";"Hello";"num";1)) - $col.push(New object("beta";"You";"what";$p)) - - $col2:=$col.copy() - $col2[1].beta:="World!" - ALERT($col[0].alpha+" "+$col2[1].beta) //muestra "Hello World!" - - $what:="You!" - $col3:=$col2.copy(ck resolve pointers) - ALERT($col3[0].alpha+" "+$col3[1].what) //muestra "Hello You!" +Mayor que ``` @@ -598,13 +577,13 @@ Este ejemplo ilustra el uso de la opción `ck resolve pointers`: | Parámetros | Tipo | | Descripción | | ------------ | ---- | :-------------------------: | ---------------------------------------------------------------- | | propertyPath | Text | -> | Ruta de la propiedad del objeto que se utilizará para el cálculo | -| Result | Real | <- | Número de elementos en la colección | +| Result | Real | <- | Colección que contiene los elementos añadidos | #### Descripción -La función `.count()` devuelve el número de elementos no nulos en la colección. +Colección original sin elementos eliminados Si la colección contiene objetos, puede pasar el parámetro *propertyPath*. En este caso, sólo se tienen en cuenta los elementos que contienen el *propertyPath*. @@ -645,22 +624,22 @@ Si la colección contiene objetos, puede pasar el parámetro *propertyPath*. En | ------------ | ----------------------------------------------- | :-------------------------: | ---------------------------------------------------------------- | | value | Text, Number, Boolean, Date, Object, Collection | -> | Valor a contar | | propertyPath | Text | -> | Ruta de la propiedad del objeto que se utilizará para el cálculo | -| Result | Real | <- | Número de ocurrencias del valor | +| Result | Real | <- | Valor a contar | #### Descripción -La función `.countValues()` devuelve el número de veces que se encuentra el valor en la colección. +Mayor o igual que -Puede pasar en *value*: +Colección original ordenada - un valor escalar (texto, número, booleano, fecha), - una referencia de objeto o de colección. -Para encontrar un elemento, el tipo de *value* debe ser equivalente al tipo del elemento; el método utiliza el operador de igualdad. +Tipo -El parámetro opcional *propertyPath* permite contar valores dentro de una colección de objetos: pase en *propertyPath* la ruta de la propiedad cuyos valores quiere contar. +Resumen > Esta función no modifica la colección original. @@ -707,10 +686,10 @@ El parámetro opcional *propertyPath* permite contar valores dentro de una colec
    Historia -| Lanzamiento | Modificaciones | -| ----------- | ---------------------------- | -| 20 | Soporte de `ck count values` | -| v16 R6 | Añadidos | +| Lanzamiento | Modificaciones | +| ----------- | ------------------------------------------------------------------------------------------------------------------------------------------------- | +| 20 | Si se intenta eliminar un elemento de una colección vacía, el método no hace nada (no se genera ningún error). | +| v16 R6 | Añadidos |
    @@ -722,21 +701,21 @@ El parámetro opcional *propertyPath* permite contar valores dentro de una colec | ------------ | ---------- | :-------------------------: | ------------------------------------------------------- | | propertyPath | Text | -> | Ruta del atributo cuyos valores distintos desea obtener | | options | Integer | -> | `ck diacritical`, `ck count values` | -| Result | Collection | <- | Nueva colección con sólo valores distintos | +| Result | Collection | <- | Lanzamiento | #### Descripción -La función `.distinct()` devuelve una colección que contiene sólo valores distintos (diferentes) de la colección original. +Colección original con valores rellenados > Esta función no modifica la colección original. La colección devuelta se clasifica automáticamente. Los valores **Null** no son devueltos. -Si la colección contiene objetos, puede pasar el parámetro *propertyPath* para indicar la propiedad del objeto cuyos valores distintos desea obtener. +Índice para iniciar la prueba en -En el parámetro *options*, puede pasar una o una combinación de las siguientes constantes: +Ejemplos | Constante | Valor | Comentario | | ----------------- | ----- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | @@ -777,26 +756,26 @@ En el parámetro *options*, puede pasar una o una combinación de las siguientes -| Parámetros | Tipo | | Descripción | -| ----------- | ---------- | :-------------------------: | -------------------------------------------------------------------------------------------------- | -| collection2 | Collection | -> | Colección a comparar | -| option | Integer | -> | `ck diacritical`: evaluación diacrítica ("A" # "a" por ejemplo) | -| Result | Boolean | <- | True si las colecciones son idénticas, false en caso contrario | +| Parámetros | Tipo | | Descripción | +| ----------- | ---------- | :-------------------------: | -------------------- | +| collection2 | Collection | -> | Colección a comparar | +| option | Integer | -> | Añadidos | +| Result | Boolean | <- | Descripción | #### Descripción -La función `.equal()` compara recursivamente el contenido de la colección y *collection2* (comparación profunda/deep comparison) y devuelve **true** si son idénticas. +Tipo :::note Notas - La función `.equal()` solo comprueba la igualdad para los elementos de tipo cadena, booleano, número y null en las colecciones. No verifica la igualdad para objetos nativos. -- Los elementos con valores **null** no son iguales a los elementos Undefined. +- Constantes **null**: utilizando la palabra clave "null" se encontrarán las propiedades **null** y **undefined**. ::: -Por defecto, se realiza una evaluación no diacrítica. Si desea que la evaluación diferencie entre mayúsculas y minúsculas o que diferencie los caracteres acentuados, pase la constante `ck diacritical` en el parámetro option. +Por defecto, se realiza una evaluación no diacrítica. La evaluación distingue entre mayúsculas y minúsculas y diferencia los caracteres acentuados. :::tip @@ -846,59 +825,50 @@ Una comparación recursiva de colecciones puede llevar mucho tiempo si la colecc -| Parámetros | Tipo | | Descripción | -| ---------- | --------------------------- | :-------------------------: | ------------------------------------------------------------------ | -| startFrom | Integer | -> | Índice para iniciar la prueba en | -| formula | 4D.Function | -> | Objeto fórmula | -| methodName | Text | -> | Nombre de un método | -| param | any | -> | Parámetro(s) a pasar a *formula* o \*methodName | -| Result | Boolean | <- | True si todos los elementos han pasado la prueba con éxito | +| Parámetros | Tipo | | Descripción | +| ---------- | --------------------------- | :-------------------------: | -------------------------------- | +| startFrom | Integer | -> | Índice para iniciar la prueba en | +| formula | 4D.Function | -> | Objeto fórmula | +| methodName | Text | -> | Nombre de un método | +| param | any | -> | Colección original ordenada | +| Result | Boolean | <- | Lanzamiento | #### Descripción -La función `.every()` devuelve **true** si todos los elementos de la colección han superado con éxito una prueba implementada en el objeto *formula* o el método *methodName*. +Índice para iniciar la búsqueda en Se designa la retrollamada a ejecutar para evaluar los elementos de la colección utilizando: -- *formula* (sintaxis recomendada), un [objeto Fórmula](FunctionClass.md) que puede encapsular toda expresión ejecutable, incluyendo funciones y métodos proyecto; -- o *methodName*, el nombre de un método proyecto (texto). +- Comparación +- Tipo La retrollamada se llama con los parámetros pasados en *param* (opcional). La retrollamada puede efecturar toda prueba, con o sin los parámetros, y debe devolver *true* para cada elemento que cumpla la prueba. Recibe un `Object` en el primer parámetro ($1). La retrollamada recibe los siguientes parámetros: -- en *$1.value*: valor del elemento a evaluar -- en *$2*: param -- en *$N...*: paramN... +- Lanzamiento +- Colección original sin elementos eliminados +- Este ejemplo comprueba que todos los elementos de una colección son de tipo real: Puede definir los siguientes parámetros: -- (obligatorio si se ha utilizado un método) *$1.result* (booleano): **true** si la evaluación del valor del elemento tiene éxito, **false** en caso contrario. -- *$1.stop* (booleano, opcional): **true** para detener la retrollamada del método. El valor devuelto es el último calculado. +- Copia invertida de la colección +- *$1.stop* (boolean, opcional): **true** para detener la retrollamada del método. El valor devuelto es el último calculado. -En todos los casos, cuando la función `.every()` encuentra el primer elemento de la colección evaluado como **false**, deja de llamar a la retrollamada y devuelve **false**. +Menor o igual que Por defecto, `.every()` evalúa toda la colección. Opcionalmente, se puede pasar en *startFrom* el índice del elemento desde el que iniciar la prueba. -- Si *startFrom* >= la longitud de la colección, se devuelve **false**, lo que significa que no se prueba la colección. -- Si *startFrom* < 0, se considera el desplazamiento desde el final de la colección (*startFrom:=startFrom+length*). -- Si *startFrom* = 0, se busca en toda la colección (por defecto). +- Tipo +- Diferente de Si *startFrom* < 0, se considera el desplazamiento desde el final de la colección (*startFrom:=startFrom+length*). +- Descripción #### Ejemplo 1 ```4d -var $c : Collection -var $b : Boolean -var $f : 4D.Function - -$f:=Formula($1.value>0) -$c:=New collection -$c.push(5;3;1;4;6;2) -$b:=$c.every($f) //devuelve true -$c.push(-1) -$b:=$c.every($f) //devuelve false +Comentario ``` #### Ejemplo 2 @@ -942,19 +912,19 @@ $b:=$c.every($f;Is real) //$b=false | propertyPath | Text | -> | Ruta de la propiedad del objeto cuyos valores deben ser extraídos a la nueva colección | | targetpath | Text | -> | Ruta de la propiedad de destino o nombre de la propiedad | | option | Integer | -> | `ck keep null`: incluye la propiedad null en la colección devuelta (se ignora por defecto). Parámetro ignorado si se pasa *targetPath*. | -| Result | Collection | <- | Nueva colección que contiene los valores extraídos | +| Result | Collection | <- | Lanzamiento | #### Descripción -La función `.extract()` crea y devuelve una nueva colección que contiene valores *propertyPath* extraídos de la colección original de objetos. +Menor que > Esta función no modifica la colección original. -El contenido de la colección devuelta depende del parámetro *targetPath*: +Ejemplo -- Si se omite el parámetro *targetPath*, `.extract()` llena la nueva colección con los valores *propertyPath* de la colección original. +- Ejemplo Por defecto, los elementos cuya *propertyPath* es null o indefinida se ignoran en la colección resultante. Puede pasar la constante `ck keep null` en el parámetro *option* para incluir estos valores como elementos null en la colección devuelta. @@ -1007,30 +977,30 @@ $c2:=$c.extract("name";"City";"zc";"Zip") //$c2=[{Zip:35060},{City:null,Zip:3504 -| Parámetros | Tipo | | Descripción | -| ---------- | ----------------------------------------------- | :-------------------------: | ---------------------------------------------- | -| value | number, Text, Collection, Object, Date, Boolean | -> | Valor a asignar | -| startFrom | Integer | -> | Índice de inicio (incluido) | -| end | Integer | -> | Índice final (no incluido) | -| Result | collection | <- | Colección original con valores rellenados | +| Parámetros | Tipo | | Descripción | +| ---------- | ----------------------------------------------- | :-------------------------: | ----------------------------------------------------------------------------------------- | +| value | number, Text, Collection, Object, Date, Boolean | -> | Valor a asignar | +| startFrom | Integer | -> | Índice de inicio (incluido) | +| end | Integer | -> | Índice final (no incluido) | +| Result | collection | <- | *methodName*, el nombre de un método proyecto (texto). | #### Descripción -La función `.fill()` llena la colección con el *valor* especificado, opcionalmente desde el índice *startFrom* hasta el índice *end*, y devuelve la colección resultante. +Diferente de Si *startFrom* < 0, se considera el desplazamiento desde el final de la colección (*startFrom:=startFrom+length*). > Esta función modifica la colección original. -- Si se omite el parámetro *startFrom*, *value* se aplica a todos los elementos de la colección (*startFrom*=0). -- Si se pasa el parámetro *startFrom* y se omite *end*, *value* se aplica a los elementos de la colección a partir de *startFrom* hasta el último elemento de la colección (*end*=length). -- Si se pasan tanto el parámetro *startFrom* como *end*, *value* se aplica a los elementos de la colección empezando en *startFrom* hasta el elemento *end*. +- Descripción +- Ejemplo 3 +- Descripción En caso de incoherencia, se aplican las siguientes reglas: - Si *startFrom* < 0, se recalcula como *startFrom:=startFrom+length* (se considera el desplazamiento desde el final de la colección). Si el valor calculado es negativo, *startFrom* toma el valor 0. -- Si *end* < 0 , se recalcula como *end:=end+length*. -- Si *end* < *startFrom* (valores pasados o calculados), el método no hace nada. +- Soporte de querySettings +- Colección que contiene los elementos añadidos #### Ejemplo @@ -1062,12 +1032,12 @@ En caso de incoherencia, se aplican las siguientes reglas: -| Parámetros | Tipo | | Descripción | -| ---------- | --------------------------- | :-------------------------: | --------------------------------------------------------------------------------------- | -| formula | 4D.Function | -> | Objeto fórmula | -| methodName | Text | -> | Nombre de un método | -| param | any | -> | Parámetro(s) a pasar a *formula* o \*methodName | -| Result | Collection | <- | Nueva colección que contiene elementos filtrados (copia superficial) | +| Parámetros | Tipo | | Descripción | +| ---------- | --------------------------- | :-------------------------: | --------------------------- | +| formula | 4D.Function | -> | Objeto fórmula | +| methodName | Text | -> | Nombre de un método | +| param | any | -> | Colección original ordenada | +| Result | Collection | <- | O | @@ -1079,25 +1049,25 @@ La función `.filter()` devuelve una nu Se designa la retrollamada a ejecutar para filtrar los elementos de la colección utilizando: -- *formula* (sintaxis recomendada), un [objeto Fórmula](FunctionClass.md) que puede encapsular toda expresión ejecutable, incluyendo funciones y métodos proyecto; -- o *methodName*, el nombre de un método proyecto (texto). +- Comparación +- Tipo Se llama a la retrollamada con los parámetros pasados en *param* (opcional) y un objeto en primer parámetro (*$1*). La retrollamada puede realizar cualquier prueba, con o sin el parámetro(s) y debe devolver **true** para cada elemento que cumpla la condición y por lo tanto, debe añadirse a la nueva colección. La retrollamada recibe los siguientes parámetros: -- en *$1.value*: valor del elemento a evaluar -- en *$2*: param -- en *$N...*: paramN... +- Lanzamiento +- Colección original sin elementos eliminados +- Este ejemplo comprueba que todos los elementos de una colección son de tipo real: Puede definir los siguientes parámetros: -- *$1.result* (booleano): **true** si el valor del elemento coincide con la condición de filtro y debe conservarse, **false** en caso contrario. -- *$1.stop* (booleano, opcional): **true** para detener la retrollamada del método. El valor devuelto es el último calculado. +- Este ejemplo comprueba que todos los elementos de una colección son de tipo real: +- *$1.stop* (boolean, opcional): **true** para detener la retrollamada del método. El valor devuelto es el último calculado. :::note -Cuando se utiliza *methodName* como callback, y si el método no devuelve ningún valor, `.filter()` buscará la propiedad *$1.result* que debe dar el valor **true** para cada elemento que cumpla la condición. +Si se intenta eliminar un elemento de una colección vacía, el método no hace nada (no se genera ningún error). ::: @@ -1148,46 +1118,46 @@ Quiere filtrar los elementos según su tipo de valor: -| Parámetros | Tipo | | Descripción | -| ---------- | --------------------------- | :-------------------------: | ------------------------------------------------------------------ | -| startFrom | Integer | -> | Índice para iniciar la búsqueda en | -| formula | 4D.Function | -> | Objeto fórmula | -| methodName | Text | -> | Nombre de un método | -| param | any | -> | Parámetro(s) a pasar a *formula* o \*methodName | -| Result | any | <- | Primer valor encontrado, o Undefined si no se encuentra | +| Parámetros | Tipo | | Descripción | +| ---------- | --------------------------- | :-------------------------: | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| startFrom | Integer | -> | Índice para iniciar la búsqueda en | +| formula | 4D.Function | -> | Objeto fórmula | +| methodName | Text | -> | Nombre de un método | +| param | any | -> | Colección original ordenada | +| Result | any | <- | La función `.multiSort()` permite realizar una ordenación sincronizada multinivel sobre un conjunto de colecciones. | #### Descripción -La función `.find()` devuelve el primer valor de la colección para el que el resultado de *formula* o de *methodName*, aplicado a cada elemento, devuelve **true**. +Ejemplo > Esta función no modifica la colección original. Se designa la retrollamada a ejecutar para evaluar los elementos de la colección utilizando: -- *formula* (sintaxis recomendada), un [objeto Fórmula](FunctionClass.md) que puede encapsular toda expresión ejecutable, incluyendo funciones y métodos proyecto; -- o *methodName*, el nombre de un método proyecto (texto). +- Comparación +- Tipo -La retrollamada se llama con los parámetros pasados en *param* (opcional). La retrollamada puede realizar cualquier prueba, con o sin los parámetros y debe devolver **true** para el primer elemento que cumpla la condición. Recibe un `Object` en el primer parámetro ($1). +La retrollamada se llama con los parámetros pasados en *param* (opcional). La retrollamada se llama con los parámetros pasados en *param* (opcional). Recibe un `Object` en el primer parámetro ($1). La retrollamada recibe los siguientes parámetros: -- en *$1.value*: valor del elemento a evaluar -- en *$2*: param -- en *$N...*: paramN... +- Lanzamiento +- Colección original sin elementos eliminados +- Este ejemplo comprueba que todos los elementos de una colección son de tipo real: Puede definir los siguientes parámetros: -- (obligatorio si ha utilizado un método) *$1.result* (booleano): **true** si el valor del elemento coincide con la condición de búsqueda, **false** en caso contrario. -- *$1.stop* (booleano, opcional): **true** para detener la retrollamada del método. El valor devuelto es el último calculado. +- Búsquedas con fechas: +- *$1.stop* (boolean, opcional): **true** para detener la retrollamada del método. El valor devuelto es el último calculado. Por defecto, `.find()` busca en toda la colección. Opcionalmente, se puede pasar en *startFrom* el índice del elemento desde el que iniciar la búsqueda. -- Si *startFrom* >= la longitud de la colección, se devuelve -1, lo que significa que la colección no se busca. +- Modificaciones - Si *startFrom* < 0, se considera el desplazamiento desde el final de la colección (*startFrom:=startFrom+length*). **Nota**: incluso si *startFrom* es negativo, la colección se sigue buscando de izquierda a derecha. -- Si *startFrom* = 0, se busca en toda la colección (por defecto). +- Descripción #### Ejemplo 1 @@ -1236,46 +1206,46 @@ $c2:=$c.find(Formula($1.value.name=$2); "Clanton") //$c2={name:Clanton,zc:35046 -| Parámetros | Tipo | | Descripción | -| ---------- | --------------------------- | :-------------------------: | ------------------------------------------------------------------ | -| startFrom | Integer | -> | Índice para iniciar la búsqueda en | -| formula | 4D.Function | -> | Objeto fórmula | -| methodName | Text | -> | Nombre de un método | -| param | any | -> | Parámetro(s) a pasar a *formula* o \*methodName | -| Result | Integer | <- | Índice del primer valor encontrado, o -1 si no se encuentra | +| Parámetros | Tipo | | Descripción | +| ---------- | --------------------------- | :-------------------------: | ---------------------------------- | +| startFrom | Integer | -> | Índice para iniciar la búsqueda en | +| formula | 4D.Function | -> | Objeto fórmula | +| methodName | Text | -> | Nombre de un método | +| param | any | -> | Colección original ordenada | +| Result | Integer | <- | Conjunción | #### Descripción -La función `.findIndex()` devuelve el índice, en la colección, del primer valor para el que *formula* o *methodName*, aplicados sobre cada elemento, devuelven **true**. +Ejemplo: > Esta función no modifica la colección original. Se designa la retrollamada a ejecutar para evaluar los elementos de la colección utilizando: -- *formula* (sintaxis recomendada), un [objeto Fórmula](FunctionClass.md) que puede encapsular toda expresión ejecutable, incluyendo funciones y métodos proyecto; -- *methodName*, el nombre de un método proyecto (texto). +- Comparación +- Desea ordenar la colección resultante: -La retrollamada se llama con los parámetros pasados en *param* (opcional). La retrollamada puede realizar cualquier prueba, con o sin los parámetros y debe devolver **true** para el primer elemento que cumpla la condición. Recibe un `Object` en el primer parámetro ($1). +La retrollamada se llama con los parámetros pasados en *param* (opcional). La retrollamada se llama con los parámetros pasados en *param* (opcional). Recibe un `Object` en el primer parámetro ($1). La retrollamada recibe los siguientes parámetros: -- en *$1.value*: valor del elemento a evaluar -- en *$2*: param -- en *$N...*: paramN... +- Lanzamiento +- Colección original sin elementos eliminados +- Este ejemplo comprueba que todos los elementos de una colección son de tipo real: Puede definir los siguientes parámetros: -- (obligatorio si ha utilizado un método) *$1.result* (booleano): **true** si el valor del elemento coincide con la condición de búsqueda, **false** en caso contrario. -- *$1.stop* (booleano, opcional): **true** para detener la retrollamada del método. El valor devuelto es el último calculado. +- Búsquedas con fechas: +- *$1.stop* (boolean, opcional): **true** para detener la retrollamada del método. El valor devuelto es el último calculado. Por defecto, `.findIndex()` busca en toda la colección. Opcionalmente, se puede pasar en *startFrom* el índice del elemento desde el que iniciar la búsqueda. -- Si *startFrom* >= la longitud de la colección, se devuelve -1, lo que significa que la colección no se busca. +- Modificaciones - Si *startFrom* < 0, se considera el desplazamiento desde el final de la colección (*startFrom:=startFrom+length*). **Nota**: incluso si *startFrom* es negativo, la colección se sigue buscando de izquierda a derecha. -- Si *startFrom* = 0, se busca en toda la colección (por defecto). +- Descripción #### Ejemplo @@ -1312,15 +1282,15 @@ $val3:=$c.findIndex($val2+1;Formula($1.value.name=$2);"Clanton") //$val3=4 -| Parámetros | Tipo | | Descripción | -| ---------- | ---- | :-------------------------: | ------------------------------- | -| Result | any | <- | Primer elemento de la colección | +| Parámetros | Tipo | | Descripción | +| ---------- | ---- | :-------------------------: | ------------------------------------------- | +| Result | any | <- | Colección original sin elementos eliminados | #### Descripción -La función `.first()` devuelve el primer elemento de la colección. +Colección original sin elementos eliminados > Esta función no modifica la colección original. @@ -1360,15 +1330,15 @@ $first:=$emptyCol.first() // devuelve Undefined | Parámetros | Tipo | | Descripción | | ---------- | ---------- | :-------------------------: | --------------------------------------------------------------------------------------------------- | | depth | Integer | -> | A qué profundidad debe aplanarse una estructura de colección anidada. Por defecto=1 | -| Result | Collection | <- | Colección aplanada | +| Result | Collection | <- | Colección a combinar | #### Descripción -La función `.flat()` crea una nueva colección con todos los elementos de la subcolección concatenados recursivamente hasta la *depth* especificada. +La nueva colección compartida -Por defecto, si se omite el parámetro *depth*, sólo se aplanará el primer nivel de la estructura de la colección anidada. +expresión > Esta función no modifica la colección original. @@ -1410,12 +1380,12 @@ $col.flat(MAXLONG) -| Parámetros | Tipo | | Descripción | -| ---------- | --------------------------- | :-------------------------: | ---------------------------------------------------------------------- | -| formula | 4D.Function | -> | Objeto fórmula | -| methodName | Text | -> | Nombre de un método | -| param | any | -> | Parámetro(s) a pasar a *formula* o \*methodName | -| Result | Collection | <- | Colección de valores transformados y aplanados en una profundidad de 1 | +| Parámetros | Tipo | | Descripción | +| ---------- | --------------------------- | :-------------------------: | --------------------------- | +| formula | 4D.Function | -> | Objeto fórmula | +| methodName | Text | -> | Nombre de un método | +| param | any | -> | Colección original ordenada | +| Result | Collection | <- | Comentario | @@ -1423,27 +1393,27 @@ $col.flat(MAXLONG) La función `.flatMap()` crea una nueva colección basada en el resultado de la llamada a la función *formula* 4D o al método *methodName* sobre cada elemento de la colección original y aplanada por una profundidad de 1. Opcionalmente, puede pasar parámetros a *formula* o *methodName* utilizando los parámetros *param*. -Esta función es idéntica a una llamada a [`map()`](#map) seguida de una llamada a [`flat()`](#flat) de profundidad 1. +Colección de valores transformados > Esta función no modifica la colección original. Se designa la retrollamada a ejecutar para evaluar los elementos de la colección utilizando: -- *formula* (sintaxis recomendada), un [objeto Fórmula](FunctionClass.md) que puede encapsular toda expresión ejecutable, incluyendo funciones y métodos proyecto; -- o *methodName*, el nombre de un método proyecto (texto). +- Comparación +- Tipo La retrollamada se llama con los parámetros pasados en *param* (opcional). The callback is called with the parameter(s) passed in param (optional). Recibe un `Object` en el primer parámetro ($1). La retrollamada recibe los siguientes parámetros: -- en *$1.value*: valor del elemento a evaluar -- en *$2*: param -- en *$N...*: paramN... +- Lanzamiento +- Colección original sin elementos eliminados +- Este ejemplo comprueba que todos los elementos de una colección son de tipo real: Puede definir los siguientes parámetros: -- (obligatorio si ha utilizado un método) *$1.result* (cualquier tipo): nuevo valor transformado para añadir a la colección resultante -- *$1.stop* (booleano, opcional): **true** para detener la retrollamada del método. El valor devuelto es el último calculado. +- Descripción +- *$1.stop* (boolean, opcional): **true** para detener la retrollamada del método. El valor devuelto es el último calculado. #### Ejemplo 1 @@ -1502,17 +1472,17 @@ $c2:=$c.flatMap($f; $c.sum()) -| Parámetros | Tipo | | Descripción | -| ---------- | --------- | :-------------------------: | ----------------------------------------------- | -| toSearch | expresión | -> | Expresión a buscar en la colección | -| startFrom | Integer | -> | Índice para iniciar la búsqueda en | -| Result | Boolean | <- | True si *toSearch* se encuentra en la colección | +| Parámetros | Tipo | | Descripción | +| ---------- | --------- | :-------------------------: | ---------------------------------- | +| toSearch | expresión | -> | Expresión a buscar en la colección | +| startFrom | Integer | -> | Índice para iniciar la búsqueda en | +| Result | Boolean | <- | Ejemplo 1 | #### Descripción -La función `.includes()` devuelve True si la expresión *toSearch* se encuentra entre los elementos de la colección, en caso contrario False. +Ejemplo > Esta función no modifica la colección original. @@ -1522,13 +1492,13 @@ En *toSearch*, pase la expresión a encontrar en la colección. Puede pasar: - el valor null, - una referencia de objeto o de colección. -*toSearch* debe coincidir exactamente con el elemento a encontrar (se aplican las mismas reglas que para el operador de igualdad del tipo de datos). +Obtiene los datos coincidentes, admite el comodín (@), no distingue entre mayúsculas de minúsculas ni diacríticas. -Opcionalmente, puede pasar el índice de la colección desde el que iniciar la búsqueda en *startFrom*. +Una colección se inicializa con: -- Si *startFrom* >= la longitud de la colección, se devuelve False, lo que significa que no se busca en la colección. +- Ejemplo - Si *startFrom* < 0, se considera el desplazamiento desde el final de la colección (*startFrom:=startFrom+length*). Tenga en cuenta que incluso si *startFrom* es negativo, la colección se sigue buscando de izquierda a derecha. -- Si *startFrom* = 0, se busca en toda la colección (por defecto). +- Descripción #### Ejemplo @@ -1564,17 +1534,17 @@ Opcionalmente, puede pasar el índice de la colección desde el que iniciar la b -| Parámetros | Tipo | | Descripción | -| ---------- | --------- | :-------------------------: | ---------------------------------------------------------------------------------- | -| toSearch | expresión | -> | Expresión a buscar en la colección | -| startFrom | Integer | -> | Índice para iniciar la búsqueda en | -| Result | Integer | <- | Índice de la primera ocurrencia de toSearch en la colección, -1 si no se encuentra | +| Parámetros | Tipo | | Descripción | +| ---------- | --------- | :-------------------------: | ---------------------------------- | +| toSearch | expresión | -> | Expresión a buscar en la colección | +| startFrom | Integer | -> | Índice para iniciar la búsqueda en | +| Result | Integer | <- | Descripción | #### Descripción -La función `.indexOf()` busca la expresión *toSearch* entre los elementos de la colección y devuelve el índice de la primera ocurrencia encontrada, o -1 si no se encontró. +Tipo > Esta función no modifica la colección original. @@ -1584,14 +1554,14 @@ En *toSearch*, pase la expresión a encontrar en la colección. Puede pasar: - el valor null, - una referencia de objeto o de colección. -*toSearch* debe coincidir exactamente con el elemento a encontrar (se aplican las mismas reglas que para el operador de igualdad del tipo de datos). +Obtiene los datos coincidentes, admite el comodín (@), no distingue entre mayúsculas de minúsculas ni diacríticas. -Opcionalmente, puede pasar el índice de la colección desde el que iniciar la búsqueda en *startFrom*. +Una colección se inicializa con: -- Si *startFrom* >= la longitud de la colección, se devuelve -1, lo que significa que la colección no se busca. +- Modificaciones - Si *startFrom* < 0, se considera el desplazamiento desde el final de la colección (*startFrom:=startFrom+length*). **Nota**: incluso si *startFrom* es negativo, la colección se sigue buscando de izquierda a derecha. -- Si *startFrom* = 0, se busca en toda la colección (por defecto). +- Descripción #### Ejemplo @@ -1627,7 +1597,7 @@ Opcionalmente, puede pasar el índice de la colección desde el que iniciar la b | ----------- | ---------- | :-------------------------: | --------------------------------------------------------------------------------------------------------------------------- | | queryString | Text | -> | Criterio de búsqueda | | value | any | -> | Valor(es) a comparar cuando se utiliza(n) marcador(es) de posición | -| Result | Collection | <- | Índice(s) de elementos que coinciden con queryString en la colección | +| Result | Collection | <- | Ejemplo 3 | @@ -1637,13 +1607,13 @@ La función `.indices()` funciona exactamente igual que la función [`.query()`] > Esta función no modifica la colección original. -El parámetro *queryString* utiliza la siguiente sintaxis: +Ejemplo 1 ```4d propertyPath comparator value {logicalOperator propertyPath comparator value} ``` -Para una descripción detallada de los parámetros *queryString* y *value*, consulte la función `dataClass.query()`. +Los elementos se ordenan de forma descendente #### Ejemplo @@ -1678,26 +1648,26 @@ Para una descripción detallada de los parámetros *queryString* y *value*, cons -| Parámetros | Tipo | | Descripción | -| ---------- | ---------- | :-------------------------: | -------------------------------------------------------- | -| index | Integer | -> | Dónde insertar el elemento | -| element | any | -> | Elemento a insertar en la colección | -| Result | Collection | <- | Colección original que contiene los elementos insertados | +| Parámetros | Tipo | | Descripción | +| ---------- | ---------- | :-------------------------: | ------------------------------------------- | +| index | Integer | -> | Dónde insertar el elemento | +| element | any | -> | Elemento a insertar en la colección | +| Result | Collection | <- | Colección original sin elementos eliminados | #### Descripción -La función `.insert()` inserta *element* en la posición *index* especificada en la instancia de la colección y devuelve la colección modificada. +Búsquedas con fechas: > Esta función modifica la colección original. -En *index*, pase la posición donde quiere insertar el elemento en la colección. +Descripción -> **Atención**: recuerde que los elementos de la colección están numerados desde 0. +> Diferente de -- Si *index* la longitud de la colección, el índice inicial real se fijará en la longitud de la colección. -- Si *index* <0, se recalcula como *index:=index+length* (se considera el desplazamiento desde el final de la colección). +- Ejemplo 1 +- Ejemplo 1 - Si el valor calculado es negativo, index toma el valor 0. Se puede insertar cualquier tipo de elemento aceptado por una colección, incluso otra colección. @@ -1730,17 +1700,17 @@ Se puede insertar cualquier tipo de elemento aceptado por una colección, inclus -| Parámetros | Tipo | | Descripción | -| ---------- | ------- | :-------------------------: | --------------------------------------------------------------------------------------------- | -| delimiter | Text | -> | Separador a utilizar entre elementos | -| option | Integer | -> | `ck ignore null or empty`: ignorar las cadenas nulas y vacías en el resultado | -| Result | Text | <- | Cadena que contiene todos los elementos de la colección, separados por un delimitador | +| Parámetros | Tipo | | Descripción | +| ---------- | ------- | :-------------------------: | ------------------------------------ | +| delimiter | Text | -> | Separador a utilizar entre elementos | +| option | Integer | -> | Colección a combinar | +| Result | Text | <- | Ejemplo 3 | #### Descripción -La función `.join()` convierte todos los elementos de la colección en cadenas y las concatena utilizando la cadena delimiter especificada como separador.La función devuelve la cadena resultante. +Tipo > Esta función no modifica la colección original. @@ -1774,15 +1744,15 @@ Por defecto, los elementos nulos o vacíos de la colección se devuelven en la c -| Parámetros | Tipo | | Descripción | -| ---------- | ---- | :-------------------------: | ------------------------------- | -| Result | any | <- | Último elemento de la colección | +| Parámetros | Tipo | | Descripción | +| ---------- | ---- | :-------------------------: | --------------------------------------------- | +| Result | any | <- | Colección que contiene los elementos añadidos | #### Descripción -La función `.last()` devuelve el último elemento de la colección. +Objeto compartido que se agrupa con la colección resultante > Esta función no modifica la colección original. @@ -1791,15 +1761,7 @@ La función devuelve Undefined si la colección está vacía. #### Ejemplo ```4d -var $col; $emptyCol : Collection -var $last : Variant -$col:=New collection(10; 20; 30; "hello"; 50) -$last:=$col.last() // 50 - -$emptyCol:=New collection() //empty -// $last:=$emptyCol[$emptyCol.length-1] //devuelve un error -$last:=$emptyCol.last() // devuelve Indefinido - +Propiedad ``` @@ -1820,17 +1782,17 @@ $last:=$emptyCol.last() // devuelve Indefinido -| Parámetros | Tipo | | Descripción | -| ---------- | --------- | :-------------------------: | --------------------------------------------------------------------------------- | -| toSearch | expresión | -> | El elemento que se va a buscar dentro de la colección | -| startFrom | Integer | -> | Índice para iniciar la búsqueda en | -| Result | Integer | <- | Índice de la última ocurrencia de toSearch en la colección, -1 si no se encuentra | +| Parámetros | Tipo | | Descripción | +| ---------- | --------- | :-------------------------: | ----------------------------------------------------- | +| toSearch | expresión | -> | El elemento que se va a buscar dentro de la colección | +| startFrom | Integer | -> | Índice para iniciar la búsqueda en | +| Result | Integer | <- | Descripción | #### Descripción -La función `.lastIndexOf()` busca la expresión *toSearch* entre los elementos de la colección y devuelve el índice de la última ocurrencia, o -1 si no se encontró. +Ejemplo > Esta función no modifica la colección original. @@ -1840,26 +1802,19 @@ En *toSearch*, pase la expresión a encontrar en la colección. Puede pasar: - el valor null, - una referencia de objeto o de colección. -*toSearch* debe coincidir exactamente con el elemento a encontrar (se aplican las mismas reglas que para el operador de igualdad). +*toSearch* debe coincidir exactamente con el elemento a encontrar (se aplican las mismas reglas que para el operador de igualdad del tipo de datos). -Opcionalmente, puede pasar el índice de la colección desde el cual iniciar una búsqueda en reversa en *startFrom*. +Ejemplo 2 -- Si *startFrom* >= la longitud de la colección menos uno (coll.length-1), se busca en toda la colección (por defecto). +- Ejemplo 3 - Si *startFrom* < 0, se recalcula como *startFrom:=startFrom+length* (se considera el desplazamiento desde el final de la colección). Si el valor calculado es negativo, se devuelve -1 (no se busca en la colección). **Nota:** incluso si *startFrom* es negativo, la colección se sigue buscando de derecha a izquierda. -- Si *startFrom* = 0, se devuelve -1 lo que significa que la colección no se busca. +- Descripción #### Ejemplo ```4d - var $col : Collection - var $pos1;$pos2;$pos3;$pos4;$pos5 : Integer - $col:=Split string("a,b,c,d,e,f,g,h,i,j,e,k,e";",") //$col.length=13 - $pos1:=$col.lastIndexOf("e") //devuelve 12 - $pos2:=$col.lastIndexOf("e";6) //devuelve 4 - $pos3:=$col.lastIndexOf("e";15) //devuelve 12 - $pos4:=$col.lastIndexOf("e";-2) //devuelve 10 - $pos5:=$col.lastIndexOf("x") //devuelve -1 +Tipo ``` @@ -1880,17 +1835,14 @@ Opcionalmente, puede pasar el índice de la colección desde el cual iniciar una #### Descripción -La propiedad `.length` devuelve el número de elementos en la colección. +Ejemplo 2 La propiedad `.length` se inicializa cuando se crea la colección. Añadir o eliminar elementos actualiza la longitud, si es necesario. Esta propiedad es **sólo lectura** (no se puede utilizar para definir el tamaño de la colección). #### Ejemplo ```4d - var $col : Collection //$col.length inicializada en 0 - $col:=New collection("one";"two";"three") //$col.length actualizada a 3 - $col[4]:="five" //$col.length actualizada a 5 - $vSize:=$col.remove(0;3).length //$vSize=2 +Tipo ``` @@ -1912,12 +1864,12 @@ La propiedad `.length` se inicializa cuando se crea la colección. Añadir o eli -| Parámetros | Tipo | | Descripción | -| ---------- | --------------------------- | :-------------------------: | ------------------------------------------------------------------ | -| formula | 4D.Function | -> | Objeto fórmula | -| methodName | Text | -> | Nombre de un método | -| param | any | -> | Parámetro(s) a pasar a *formula* o \*methodName | -| Result | Collection | <- | Colección de valores transformados | +| Parámetros | Tipo | | Descripción | +| ---------- | --------------------------- | :-------------------------: | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| formula | 4D.Function | -> | Objeto fórmula | +| methodName | Text | -> | Nombre de un método | +| param | any | -> | Colección original ordenada | +| Result | Collection | <- | `.pop()`, utilizado junto con [`.push()`](#push), puede utilizarse para implementar una funcionalidad primera entrada última salida de tratamiento de datos apilados: | @@ -1929,21 +1881,21 @@ La función `.map()` crea una nueva colecc Se designa la retrollamada a ejecutar para evaluar los elementos de la colección utilizando: -- *formula* (sintaxis recomendada), un [objeto Fórmula](FunctionClass.md) que puede encapsular toda expresión ejecutable, incluyendo funciones y métodos proyecto; -- o *methodName*, el nombre de un método proyecto (texto). +- Comparación +- Tipo La retrollamada se llama con los parámetros pasados en *param* (opcional). The callback is called with the parameter(s) passed in param (optional). Recibe un `Object` en el primer parámetro ($1). La retrollamada recibe los siguientes parámetros: -- en *$1.value*: valor del elemento a evaluar -- en *$2*: param -- en *$N...*: paramN... +- Lanzamiento +- Colección original sin elementos eliminados +- Este ejemplo comprueba que todos los elementos de una colección son de tipo real: Puede definir los siguientes parámetros: -- (obligatorio si ha utilizado un método) *$1.result* (cualquier tipo): nuevo valor transformado para añadir a la colección resultante -- *$1.stop* (booleano, opcional): **true** para detener la retrollamada del método. El valor devuelto es el último calculado. +- Descripción +- *$1.stop* (boolean, opcional): **true** para detener la retrollamada del método. El valor devuelto es el último calculado. #### Ejemplo @@ -1975,21 +1927,21 @@ $c2:=$c.map(Formula(Round(($1.value/$2)*100; 2)); $c.sum()) | Parámetros | Tipo | | Descripción | | ------------ | ----------------------------------------------- | :-------------------------: | ------------------------------------------------------------------- | | propertyPath | Text | -> | Ruta de la propiedad del objeto que se utilizará para la evaluación | -| Result | Boolean, Text, Number, Collection, Object, Date | <- | Valor máximo en la colección | +| Result | Boolean, Text, Number, Collection, Object, Date | <- | Comentario | #### Descripción -La función `.max()` devuelve el elemento con el valor más alto de la colección (el último elemento de la colección tal y como se ordenaría en orden ascendente utilizando la función [`.sort()`](#sort)). +La función `.lastIndexOf()` busca la expresión *toSearch* entre los elementos de la colección y devuelve el índice de la última ocurrencia, o -1 si no se encontró. > Esta función no modifica la colección original. -Si la colección contiene diferentes tipos de valores, la función `.max()` devolverá el valor máximo dentro del último tipo de elemento en el orden de la lista de tipos (ver la descripción de [`.sort()`](#sort)). +Lanzamiento -Si la colección contiene objetos, pase el parámetro *propertyPath* para indicar la propiedad del objeto cuyo valor máximo desea obtener. +Lanzamiento -Si la colección está vacía, `.max()` devuelve *Undefined*. +Lanzamiento #### Ejemplo @@ -2025,21 +1977,21 @@ Si la colección está vacía, `.max()` devuelve *Undefined*. | Parámetros | Tipo | | Descripción | | ------------ | ----------------------------------------------- | :-------------------------: | ------------------------------------------------------------------- | | propertyPath | Text | -> | Ruta de la propiedad del objeto que se utilizará para la evaluación | -| Result | Boolean, Text, Number, Collection, Object, Date | <- | Valor mínimo en la colección | +| Result | Boolean, Text, Number, Collection, Object, Date | <- | Valor a contar | #### Descripción -La función `.min()` devuelve el elemento con el valor más pequeño de la colección (el primer elemento de la colección tal y como se ordenaría en orden ascendente utilizando la función [`.sort()`](#sort)). +Ordenar una colección de números de forma ascendente y descendente: > Esta función no modifica la colección original. -Si la colección contiene diferentes tipos de valores, la función `.min()` devolverá el valor mínimo dentro del primer tipo de elemento en el orden de la lista de tipos (ver la descripción de [`.sort()`](#sort)). +True si todos los elementos han pasado la prueba con éxito -Si la colección contiene objetos, pase el parámetro *propertyPath* para indicar la propiedad del objeto cuyo valor mínimo desea obtener. +Modificaciones -Si la colección está vacía, `.min()` devuelve *Undefined*. +Lanzamiento #### Ejemplo @@ -2072,19 +2024,19 @@ Si la colección está vacía, `.min()` devuelve *Undefined*. -| Parámetros | Tipo | | Descripción | -| ---------- | --------------------------- | :-------------------------: | -------------------------------------------------------------------------------------------------------------------------------------------------------- | -| formula | 4D.Function | -> | Objeto fórmula | -| colsToSort | Collection | -> | Colección de colecciones y/u objetos con propiedades {`collection`:*colToSort*;`order`:`ck ascending` o `ck descending`} | -| Result | Collection | <- | Colección original ordenada | +| Parámetros | Tipo | | Descripción | +| ---------- | --------------------------- | :-------------------------: | ------------------------------------------------------------------------------------------- | +| formula | 4D.Function | -> | Objeto fórmula | +| colsToSort | Collection | -> | Ejemplo 2 | +| Result | Collection | <- | o *methodName*, el nombre de un método proyecto (texto). | #### Descripción -La función `.multiSort()` permite realizar una ordenación sincronizada multinivel sobre un conjunto de colecciones. +Ejemplo 2 -> Esta función modifica la colección original, así como todas las colecciones utilizadas en el parámetro *colsToSort*. +> Ejemplo 2 Si se llama a `.multiSort()` sin parámetros, la función tiene el mismo efecto que la función [`.sort()`](#sort): la colección se ordena (sólo valores escalares) en orden ascendente por defecto, según su tipo. Si la colección contiene valores de diferentes tipos, se agrupan primero por tipo y se ordenan después. Si attributePath lleva a una propiedad de objeto que contiene valores de diferentes tipos, primero se agrupan por tipo y se ordenan después. @@ -2096,40 +2048,40 @@ Si se llama a `.multiSort()` sin parámetros, la función tiene el mismo efecto 6. collections 7. dates -**Ordenación sincronizada de un nivel** +Ruta de la propiedad del objeto que se utilizará para el cálculo Para ordenar varias colecciones de forma sincrónica, basta con pasar en *colsToSort* una colección de colecciones para ordenar. Puede pasar un número ilimitado de colecciones. La colección original se ordenará en orden ascendente y todas las colecciones *colsToSort* se ordenarán de forma sincronizada. :::note -Todas las colecciones *colsToSort* deben tener el mismo número de elementos, de lo contrario se devuelve un error. +Descripción ::: Si desea ordenar las colecciones en algún otro orden que no sea ascendente, debe suministrar una *formula* ([objeto Formula](FunctionClass.md#formula)) que defina el orden de clasificación. El valor de retorno debe ser un booleano que indica el orden relativo de los dos elementos: **True** si *$1.value* es menor que *$1.value2*, **False** si *$1.value* es mayor que *$1.value2*. Puede ofrecer parámetros adicionales a la fórmula si es necesario. -La fórmula recibe los siguientes parámetros: +Opcionalmente, puede pasar el índice de la colección desde el cual iniciar una búsqueda en reversa en *startFrom*. - $1 (objeto), donde: - - *$1.value* (todo tipo): valor del primer elemento a comparar - - *$1.value2* (todo tipo): valor del segundo elemento a comparar + - Lanzamiento + - Lanzamiento - $2...$N (cualquier tipo): parámetros adicionales -**Ordenación sincronizada multinivel** +Quiere obtener el primer elemento de texto con una longitud menor que 5: -La definición de una ordenación sincronizada multinivel requiere que se pase un objeto que contenga las propiedades {`collection`:*colToSort*;`order`:`ck ascending` o `ck descending`} en lugar de una colección *colToSort* para cada colección que se utilizará como subnivel. +Desea ordenar la colección resultante: -Los niveles de ordenación vienen determinados por el orden en que se pasan las colecciones en el parámetro *colsToSort*: la posición de un objeto `collection`/`order` en la sintaxis determina su nivel de ordenación. +Ejemplo 2 :::note -La función `.multiSort()` utiliza un algoritmo de ordenación [estable](https://en.wikipedia.org/wiki/Sorting_algorithm#Stability). +Ordenar una colección de números de forma ascendente y descendente: ::: #### Ejemplo 1 -Una simple ordenación sincronizada de colecciones con diferentes tipos de valores: +Descripción ```4d var $col;$col2;$col3 : Collection @@ -2168,7 +2120,7 @@ $continent.multiSort([$country; {collection: $city; order: ck ascending}]) #### Ejemplo 3 -También puede sincronizar colecciones de objetos. +(obligatorio si se ha utilizado un método) *$1.result* (booleano): **true** si la evaluación del valor del elemento tiene éxito, **false** en caso contrario. ```4d var $name : Collection @@ -2212,14 +2164,14 @@ $name.multiSort(Formula($1.value.firstname<$1.value2.firstname); [$address]) | ----------- | ---------- | :-------------------------: | --------------------------------------------------------------------------------------------------- | | pathStrings | Text | -> | Ruta(s) de propiedad(es) a utilizar para ordenar la colección | | pathObjects | Collection | -> | Colección de objetos criterio | -| ascOrDesc | Integer | -> | `ck ascending` o `ck descending` (valores escalares) | -| Result | Collection | <- | Copia ordenada de la colección (copia superficial) | +| ascOrDesc | Integer | -> | Ejemplo 1 | +| Result | Collection | <- | Colección original ordenada | #### Descripción -La función `.orderBy()` devuelve una nueva colección que contiene todos los elementos de la colección en el orden especificado. +La nueva colección Esta función devuelve una *copia superficial*, lo que significa que los objetos o colecciones de ambas colecciones comparten la misma referencia. Si la colección original es una colección compartida, la colección devuelta es también una colección compartida. @@ -2349,18 +2301,18 @@ Ordenar con una ruta de propiedad: -| Parámetros | Tipo | | Descripción | -| ---------- | --------------------------- | :-------------------------: | --------------------------------------------------------------------- | -| formula | 4D.Function | -> | Objeto fórmula | -| methodName | Text | -> | Nombre de un método | -| extraParam | any | -> | Parámetro(s) a pasar | -| Result | Collection | <- | Copia ordenada de la colección (copia superficial) | +| Parámetros | Tipo | | Descripción | +| ---------- | --------------------------- | :-------------------------: | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| formula | 4D.Function | -> | Objeto fórmula | +| methodName | Text | -> | Nombre de un método | +| extraParam | any | -> | Parámetro(s) a pasar | +| Result | Collection | <- | (obligatorio si se ha utilizado un método) *$1.result* (booleano): **true** si la evaluación del valor del elemento tiene éxito, **false** en caso contrario. | #### Descripción -La función `.orderByMethod()` devuelve una nueva colección que contiene todos los elementos de la colección en el orden definido mediante la función *formula* 4D o el método *methodName*. +La nueva colección Esta función devuelve una *copia superficial*, lo que significa que los objetos o colecciones de ambas colecciones comparten la misma referencia. Si la colección original es una colección compartida, la colección devuelta es también una colección compartida. @@ -2368,22 +2320,22 @@ Esta función devuelve una *copia superficial*, lo que significa que los objetos Se designa la retrollamada a ejecutar para evaluar los elementos de la colección utilizando: -- *formula* (sintaxis recomendada), un [objeto Fórmula](FunctionClass.md) que puede encapsular toda expresión ejecutable, incluyendo funciones y métodos proyecto; +- Comparación -- o *methodName*, el nombre de un método proyecto (texto). +- Tipo En la retrolamada, pase un código que compare dos valores y devuelva **true** si el primer valor es menor que el segundo. Puede ofrecer los parámetros *extraParam* a la retrollamada si es necesario. La retrollamada recibe los siguientes parámetros: - $1 (objeto), donde: - - *$1.value* (todo tipo): valor del primer elemento a comparar - - *$1.value2* (todo tipo): valor del segundo elemento a comparar + - Lanzamiento + - Lanzamiento - $2...$N (cualquier tipo): parámetros adicionales Si utilizó un método, debe definir el siguiente parámetro: -- *$1.result* (boolean): **true** si *$1.value < $1.value2*, **false** de lo contrario +- Considera la @ como un caracter estándar #### Ejemplo 1 @@ -2425,13 +2377,10 @@ $strings2:=$strings1.orderByMethod(Function(sortCollection);sk strict) // resultado : ["alpha","Alpha","bravo","Bravo","charlie","Charlie"] ``` -El método ***sortCollection***: +Con el siguiente método ***Flatten***: ```4d -var $1 : Object -var $2: Integer // opción de ordenación - -$1.result:=(Compare strings($1.value;$1.value2;$2)<0) +Lanzamiento ``` @@ -2452,32 +2401,26 @@ $1.result:=(Compare strings($1.value;$1.value2;$2)<0) -| Parámetros | Tipo | | Descripción | -| ---------- | ---- | :-------------------------: | ------------------------------- | -| Result | any | <- | Último elemento de la colección | +| Parámetros | Tipo | | Descripción | +| ---------- | ---- | :-------------------------: | --------------------------------------------- | +| Result | any | <- | Colección que contiene los elementos añadidos | #### Descripción -La función `.pop()` elimina el último elemento de la colección y lo devuelve como resultado de la función. +Condición No aplicada a una sentencia > Esta función modifica la colección original. -Cuando se aplica a una colección vacía, `.pop()` devuelve ***undefined***. +Modificaciones #### Ejemplo -`.pop()`, utilizado junto con [`.push()`](#push), puede utilizarse para implementar una funcionalidad primera entrada última salida de tratamiento de datos apilados: +Valor a contar ```4d - var $stack : Collection - $stack:=New collection //$stack=[] - $stack.push(1;2) //$stack=[1,2] - $stack.pop() //$stack=[1] Devuelve 2 - $stack.push(New collection(4;5)) //$stack=[[1,[4,5]] - $stack.pop() //$stack=[1] Devuelve [4,5] - $stack.pop() //$stack=[] Devuelve 1 +Lanzamiento ``` @@ -2501,13 +2444,13 @@ Cuando se aplica a una colección vacía, `.pop()` devuelve ***undefined***. | Parámetros | Tipo | | Descripción | | ---------- | ---------- | :-------------------------: | ------------------------------------------------------ | | element | any | -> | Elemento(s) a añadir a la colección | -| Result | Collection | <- | Colección original que contiene los elementos añadidos | +| Result | Collection | <- | Colección que contiene los elementos añadidos | #### Descripción -La función `.push()` añade uno o más *elemento*(s) al final de la instancia de la colección y devuelve la colección editada. +Este ejemplo permite reducir varios elementos de la colección a uno solo: > Esta función modifica la colección original. @@ -2541,11 +2484,11 @@ Desea ordenar la colección resultante:
    Historia -| Lanzamiento | Modificaciones | -| ----------- | --------------------------------------------------------------------- | -| 20 R6 | Soporte de consultas utilizando las referencias de objeto o colección | -| 17 R5 | Soporte de querySettings | -| v16 R6 | Añadidos | +| Lanzamiento | Modificaciones | +| ----------- | ------------------------ | +| 20 R6 | Ejemplo 1 | +| 17 R5 | Soporte de querySettings | +| v16 R6 | Añadidos |
    @@ -2558,7 +2501,7 @@ Desea ordenar la colección resultante: | queryString | Text | -> | Criterio de búsqueda | | value | any | -> | Valor(es) a comparar cuando se utiliza(n) marcador(es) de posición | | querySettings | Object | -> | Opciones de búsqueda: parámetros, atributos | -| Result | Collection | <- | Elemento(s) que coincide(n) con queryString en la colección | +| Result | Collection | <- | Descripción | @@ -2566,13 +2509,13 @@ Desea ordenar la colección resultante: La función `.query()` devuelve todos los elementos de una colección de objetos que coinciden con las condiciones de búsqueda definidas por *queryString* y (opcionalmente) *value* o *querySettings*. Si la colección original es una colección compartida, la colección devuelta es también una colección compartida. -Se devuelve una colección vacía si la colección en la que se ejecuta la consulta no contiene el *valor* buscado. +Descripción > Esta función no modifica la colección original. #### parámetro queryString -El parámetro *queryString* utiliza la siguiente sintaxis: +Ejemplo 1 ```4d propertyPath comparator value {logicalOperator propertyPath comparator value} @@ -2598,7 +2541,7 @@ donde: | Incluído en | IN | Devuelve los datos iguales a al menos uno de los valores de una colección o de un conjunto de valores, admite el comodín (@) | - **valor**: valor a comparar con el valor actual de la propiedad de cada elemento de la colección. Puede ser cualquier valor de expresión constante que coincida con la propiedad del tipo de datos del elemento o un [**marcador de posición**](#using-placeholders). - Al utilizar un valor constante, deben respetarse las siguientes reglas: + For example, if the string "v20" is entered as value to compare with an integer attribute, it will be converted to 20. - La constante de tipo **texto** puede pasarse con o sin comillas simples (ver **Uso de comillas** más abajo). Para consultar una cadena dentro de otra cadena (una consulta de tipo "contiene"), utilice el símbolo de comodín (@) en el valor para aislar la cadena a buscar como se muestra en este ejemplo: "@Smith@". Las siguientes palabras claves están prohibidas para las constantes de texto: true, false. - Valores constantes de tipo **booleano**: **true** o **false** (Sensible a las mayúsculas y minúsculas). - Valores constantes de **tipo numérico**: los decimales se separan con un '.' (punto). @@ -2635,9 +2578,9 @@ Puede utilizar paréntesis en la búsqueda para dar prioridad al cálculo. Por e 4D le permite utilizar marcadores de posición para los argumentos *propertyPath* y *value* dentro del parámetro *queryString*. Un marcador es un parámetro que se inserta en las cadenas de búsqueda y que se sustituye por otro valor cuando se evalúa la cadena de búsqueda. El valor de los marcadores se evalúa una vez al principio de la búsqueda; no se evalúa para cada elemento. -Se pueden utilizar dos tipos de marcadores de posición: **marcadores de posición indexados** y **marcadores de posición con nombre**. +Lanzamiento -- **Marcadores de posición indexados**: los parámetros se insertan como `:paramIndex` (por ejemplo ":1", ":2"...) en *queryString* y sus valores correspondientes son proporcionados por la secuencia de parámetros *value*. Puede usar hasta 128 parámetros *value*. +- **Marcadores de posición indexados**: los parámetros se insertan como `:paramIndex` (por ejemplo ":1", ":2"...) en *queryString* y sus valores correspondientes son proporcionados por la secuencia de parámetros *value*. en *queryString* y sus valores correspondientes son proporcionados por la secuencia de parámetros *value*. Ejemplo: @@ -2645,7 +2588,7 @@ Ejemplo: $c:=$myCol.query(":1=:2";"city";"Chicago") ``` -- **Marcadores de posición con nombre**: los parámetros se insertan como `:paramName` (por ejemplo ":myparam") y sus valores se proporcionan en los objetos "attributes" y/o "parameters" del parámetro *querySettings*. +- Copia ordenada de la colección (copia superficial) Ejemplo: @@ -2655,7 +2598,7 @@ $o.parameters:={name:"Chicago") $c:=$myCol.query(":att=:name";$o) ``` -Puede mezclar todos los tipos de argumentos en *queryString*. Un *queryString* puede contener, para los parámetros *propertyPath* y *value*: +Puede mezclar todos los tipos de argumentos en *queryString*. Puede mezclar todos los tipos de argumentos en *queryString*. - valores directos (sin marcadores), - marcadores indexados y/o con nombre. @@ -2679,7 +2622,7 @@ Cuando se utilizan marcadores de posición, no es posible anular las condiciones En este caso, si el usuario introduce *smith OR status='private'* en el área *myname*, no se interpretará en la cadena de búsqueda, sino que sólo se pasará como valor. La búsqueda de una persona llamada "smith OR status='private'" simplemente fallará. -2. Evita tener que preocuparse por cuestiones de formato o caracteres, especialmente cuando se manejan los parámetros *propertyPath* o *value* que pueden contener caracteres no alfanuméricos como ".", "['... +2. Descripción 3. Permite el uso de variables o expresiones en los argumentos de búsqueda. Ejemplos: @@ -2695,20 +2638,20 @@ $result2:=$col.query("company.name = :1";"John's Pizzas") Cuando se buscan valores null, no se puede utilizar la sintaxis de marcador de posición porque el motor de búsqueda considera null como un valor de comparación invalido. Por ejemplo, si ejecuta la siguiente búsqueda: ```4d -$vSingles:=$colPersons.query("spouse = :1";Null) // NO funcionará +Lanzamiento ``` No obtendrá el resultado esperado porque el valor null será evaluado por 4D como un error resultante de la evaluación del parámetro (por ejemplo, un atributo procedente de otra búsqueda). Para este tipo de búsquedas, debe utilizar la sintaxis de búsqueda directa: ```4d -$vSingles:=$colPersons.query("spouse = null") //sintaxis correcta +Lanzamiento ``` -#### Referencia de objeto o de colección como valor +#### Lanzamiento Puede consultar en una colección utilizando una referencia de objeto o una referencia de colección como parámetro *value* a comparar. La consulta coincidirá con los objetos de la colección que se refieran a (apunten a) la misma **instancia** de objeto o de colección. -Se soportan los siguientes comparadores: +Para una descripción detallada de los parámetros *queryString* y *value*, consulte la función `dataClass.query()`. | Comparación | Símbolo(s) | | ------------ | ----------------------------- | @@ -2718,34 +2661,13 @@ Se soportan los siguientes comparadores: Para construir una consulta con un objeto o una referencia de colección, debe utilizar la sintaxis del parámetro *querySettings*. Ejemplo con una referencia de objeto: ```4d -var $o1:={a: 1} -var $o2:={a: 1} /mismo objeto pero otra referencia -var $o3:=$o1 /mismo objeto y referencia - -var $col; $colResult : Collection - -$col:=[{o: $o1}; {o: $o2}; {o: $o3}] -$colResult:=$col.query("o = :v"; {parameters: {v: $o3}}) - //$colResult.length=2 - //$colResult[0].o=$o1 es true - //$colResult[1].o=$o1 es true - +Lanzamiento ``` -Ejemplo con una referencia de colección: +Para el cálculo sólo se tienen en cuenta los elementos numéricos (se ignoran otros tipos de elementos). ```4d - -$c1:=[1; 2; 3] -$c2:=[1; 2; 3] //misma colección pero otra referencia -$c3:=$c1 //misma colección y referencia - -$col:=[{c: $c1}; {c: $c2}; {c: $c3}] -$col2:=$col.query("c = :v"; {parameters: {v: $c3}}) - //$col2.length=2 - //$col2[0].c=$c1 es true - //$col2[1].c=$c1 es true - +Tipo ``` #### Parámetro querySettings @@ -2757,7 +2679,7 @@ En el parámetro *querySettings*, puede pasar un objeto que contenga marcadores | parameters | Object | **Marcadores de posición con nombre para los valores** utilizados en *queryString*. Los valores se expresan como pares propiedad / valor, donde propiedad es el nombre del marcador de posición insertado para un valor en *queryString* o formula (":placeholder") y valor es el valor a comparar. Puede combinar marcadores de posición indexados (valores pasados directamente en parámetros de valor) y valores de marcadores de posición con nombre en la misma búsqueda. | | attributes | Object | **Marcadores de posición con nombre para rutas de atributos** utilizados en la *queryString*. Los atributos se expresan como pares propiedad / valor, donde propiedad es el nombre del marcador de posición insertado para una ruta de atributo en *queryString* (":placeholder"), y valor puede ser una cadena o una colección de cadenas. Cada valor es una ruta que puede designar una propiedad en un objeto de la colección
    Tipo de objetoDescripción
    CadenaRuta de acceso del atributo expresado utilizando la notación de punto, por ejemplo, "name" o "user.address.zipCode"
    Colección de cadenasCada cadena de la colección representa un nivel de attributePath, por ejemplo, \["name"] o \["user","address","zipCode"]. El uso de una colección permite realizar consultas sobre atributos con nombres que no se ajustan a la notación de puntos, por ejemplo, \["4Dv17.1", "en/fr"]
    Puede mezclar marcadores de posición indexados (valores pasados directamente en parámetros *value*) y valores de marcador de posición con nombre en la misma consulta. | -> El uso de este parámetro es obligatorio si desea consultar en una colección [utilizando una **referencia de colección** o una **referencia de un objeto**](#referencia-de-objeto-o-de-colección-como-valor). +> Ejemplo #### Ejemplo 1 @@ -2804,15 +2726,13 @@ Este ejemplo devuelve las personas cuyo nombre no empieza por una cadena de una Este ejemplo devuelve las personas cuya edad no se conoce (propiedad definida como null o indefinida): ```4d - $col:=$c.query("age=null") //no están permitidos los marcadores de posición con "null" - //$col=[{name:Wesson...},{name:Sterling...},{name:Mark...}] +Ejemplo ``` Este ejemplo devuelve las personas contratadas hace más de 90 días: ```4d - $col:=$c.query("dateHired < :1";(Current date-90)) - //$col=[{name:Smith...},{name:Sterling...},{name:Mark...}] si hoy es 01/10/2018 +La nueva colección compartida ``` #### Ejemplo 3 @@ -2827,7 +2747,7 @@ $entitySelection:=ds.Employee.query("birthDate <= :1";Current date-10950) :::info -Se pueden encontrar más ejemplos de búsquedas en la página `dataClass.query()`. +Descripción ::: @@ -2850,13 +2770,13 @@ Se pueden encontrar más ejemplos de búsquedas en la página `dataClass.query() -| Parámetros | Tipo | | Descripción | -| ---------- | ----------------------------------------------- | :-------------------------: | ---------------------------------------------------------------------------------------- | -| formula | 4D.Function | -> | Objeto fórmula | -| methodName | Text | -> | Nombre de un método | -| initValue | Text, Number, Object, Collection, Date, Boolean | -> | Valor a utilizar como primer argumento de la primera llamada de *formula* o *methodName* | -| param | expresión | -> | Parámetro(s) a pasar | -| Result | Text, Number, Object, Collection, Date, Boolean | <- | Resultado del valor del acumulador | +| Parámetros | Tipo | | Descripción | +| ---------- | ----------------------------------------------- | :-------------------------: | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| formula | 4D.Function | -> | Objeto fórmula | +| methodName | Text | -> | Nombre de un método | +| initValue | Text, Number, Object, Collection, Date, Boolean | -> | Valor a utilizar como primer argumento de la primera llamada de *formula* o *methodName* | +| param | expresión | -> | Parámetro(s) a pasar | +| Result | Text, Number, Object, Collection, Date, Boolean | <- | *formula* (sintaxis recomendada), un [objeto Fórmula](FunctionClass.md) que puede encapsular toda expresión ejecutable, incluyendo funciones y métodos proyecto; | @@ -2868,22 +2788,22 @@ La función `.reduce()` aplica la *form Se designa la retrollamada a ejecutar para evaluar los elementos de la colección utilizando: -- *formula* (sintaxis recomendada), un [objeto Fórmula](FunctionClass.md) que puede encapsular toda expresión ejecutable, incluyendo funciones y métodos proyecto; -- o *methodName*, el nombre de un método proyecto (texto). +- Comparación +- Tipo -La retrollamada toma cada elemento de la colección y realiza toda operación deseada para acumular el resultado en *$1.accumulator*, que se devuelve en *$1.value*. +Tipo Puede pasar el valor para inicializar el acumulador en *initValue*. Si se omite, *$1.accumulator* empieza por *Undefined*. La retrollamada recibe los siguientes parámetros: -- en *$1.value*: valor del elemento a procesar -- en *$2: param* -- en *$N...*: *paramN...* +- La nueva colección +- Colección compartida que se agrupa con la colección resultante +- Objeto compartido que se agrupa con la colección resultante La retrollamada define los siguientes parámetros: -- *$1.accumulator*: valor que va a ser modificado por la función y que es inicializado por *initValue*. +- Descripción - *$1.stop* (boolean, opcional): **true** para detener la retrollamada del método. El valor devuelto es el último calculado. #### Ejemplo 1 @@ -2935,13 +2855,13 @@ Con el siguiente método ***Flatten***: -| Parámetros | Tipo | | Descripción | -| ---------- | ----------------------------------------------- | :-------------------------: | ---------------------------------------------------------------------------------------- | -| formula | 4D.Function | -> | Objeto fórmula | -| methodName | Text | -> | Nombre de un método | -| initValue | Text, Number, Object, Collection, Date, Boolean | -> | Valor a utilizar como primer argumento de la primera llamada de *formula* o *methodName* | -| param | expresión | -> | Parámetro(s) a pasar | -| Result | Text, Number, Object, Collection, Date, Boolean | <- | Resultado del valor del acumulador | +| Parámetros | Tipo | | Descripción | +| ---------- | ----------------------------------------------- | :-------------------------: | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| formula | 4D.Function | -> | Objeto fórmula | +| methodName | Text | -> | Nombre de un método | +| initValue | Text, Number, Object, Collection, Date, Boolean | -> | Valor a utilizar como primer argumento de la primera llamada de *formula* o *methodName* | +| param | expresión | -> | Parámetro(s) a pasar | +| Result | Text, Number, Object, Collection, Date, Boolean | <- | *formula* (sintaxis recomendada), un [objeto Fórmula](FunctionClass.md) que puede encapsular toda expresión ejecutable, incluyendo funciones y métodos proyecto; | @@ -2953,31 +2873,28 @@ La función `.reduceRight()` aplic Se designa la retrollamada a ejecutar para evaluar los elementos de la colección utilizando: -- *formula* (sintaxis recomendada), un [objeto Fórmula](FunctionClass.md) que puede encapsular toda expresión ejecutable, incluyendo funciones y métodos proyecto; -- o *methodName*, el nombre de un método proyecto (texto). +- Comparación +- Tipo -La retrollamada toma cada elemento de la colección y realiza toda operación deseada para acumular el resultado en *$1.accumulator*, que se devuelve en *$1.value*. +Tipo Puede pasar el valor para inicializar el acumulador en *initValue*. Si se omite, *$1.accumulator* empieza por *Undefined*. La retrollamada recibe los siguientes parámetros: -- en *$1.value*: valor del elemento a procesar -- en *$2: param* -- en *$N...*: *paramN...* +- La nueva colección +- Colección compartida que se agrupa con la colección resultante +- Objeto compartido que se agrupa con la colección resultante La retrollamada define los siguientes parámetros: -- *$1.accumulator*: valor que va a ser modificado por la función y que es inicializado por *initValue*. +- Descripción - *$1.stop* (boolean, opcional): **true** para detener la retrollamada del método. El valor devuelto es el último calculado. #### Ejemplo 1 ```4d -var $c : Collection -$c:=New collection(5;3;5;1;3;4;4;6;2;2) -$r:=$c.reduceRight(Formula($1.accumulator*=$1.value); 1) //devuelve 86400 - +Tipo ``` #### Ejemplo 2 @@ -2997,11 +2914,7 @@ Este ejemplo permite reducir varios elementos de la colección a uno solo: Con el siguiente método ***Flatten***: ```4d - //Método proyecto Flatten - If($1.accumulator=Null) - $1.accumulator:=New collection - End if - $1.accumulator.combine($1.value) +Ejemplo 4 ``` @@ -3022,11 +2935,11 @@ Con el siguiente método ***Flatten***: -| Parámetros | Tipo | | Descripción | -| ---------- | ---------- | :-------------------------: | --------------------------------------------------------------------------------------- | -| index | Integer | -> | Elemento en el que se inicia la eliminación | -| howMany | Integer | -> | Número de elementos a eliminar, o 1 elemento si se omite | -| Result | Collection | <- | Colección modificada sin elemento(s) eliminado(s) | +| Parámetros | Tipo | | Descripción | +| ---------- | ---------- | :-------------------------: | -------------------------------------------------------- | +| index | Integer | -> | Elemento en el que se inicia la eliminación | +| howMany | Integer | -> | Número de elementos a eliminar, o 1 elemento si se omite | +| Result | Collection | <- | Colección original sin elementos eliminados | @@ -3036,13 +2949,13 @@ La función `.remove()` elimina uno o m > Esta función modifica la colección original. -En *index*, pase la posición donde quiere eliminar el elemento de la colección. +Lanzamiento -> **Atención**: recuerde que los elementos de la colección están numerados desde 0. Si *index* es mayor que la longitud de la colección, el índice inicial real se definirá en la longitud de la colección. +> Diferente de Si *startFrom* < 0, se considera el desplazamiento desde el final de la colección (*startFrom:=startFrom+length*). -- Si *index* < 0, se recalcula como *index:=index+length* (se considera el desplazamiento desde el final de la colección). -- Si el valor calculado < 0, *index* toma el valor 0. -- Si el valor calculado > la longitud de la colección, *index* toma el valor de la longitud. +- Ejemplo 3 +- Si el valor calculado < 0, *startFrom* toma el valor 0. +- Ejemplo 1 En *howMany*, pase el número de elementos a eliminar de *index*. Si no se especifica *howMany*, se elimina un elemento. @@ -3081,18 +2994,18 @@ Si se intenta eliminar un elemento de una colección vacía, el método no hace | ------------ | ----------------------------------------------- | :-------------------------: | ---------------------------------------------- | | size | Integer | -> | Nuevo tamaño de la colección | | defaultValue | Number, Text, Object, Collection, Date, Boolean | -> | Valor por defecto para llenar nuevos elementos | -| Result | Collection | <- | Colección original redimensionada | +| Result | Collection | <- | Colección original ordenada | #### Descripción -La función `.resize()` ajusta la longitud de la colección al nuevo tamaño especificado y devuelve la colección redimensionada. +Ejemplo > Esta función modifica la colección original. -- Si *size* la longitud de la colección, los elementos que exceden se eliminan de la colección. -- Si *size* > longitud de la colección, *size* es la nueva longitud de la colección. +- Ejemplo 1 +- Ejemplo 1 Por defecto, los nuevos elementos se llenan con valores **null**. Puede especificar el valor a llenar en los elementos añadidos utilizando el parámetro *defaultValue*. @@ -3132,9 +3045,9 @@ Por defecto, los nuevos elementos se llenan con valores **null**. Puede especifi -| Parámetros | Tipo | | Descripción | -| ---------- | ---------- | :-------------------------: | ------------------------------- | -| Result | Collection | <- | Copia invertida de la colección | +| Parámetros | Tipo | | Descripción | +| ---------- | ---------- | :-------------------------: | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| Result | Collection | <- | *formula* (sintaxis recomendada), un [objeto Fórmula](FunctionClass.md) que puede encapsular toda expresión ejecutable, incluyendo funciones y métodos proyecto; | @@ -3170,9 +3083,9 @@ La función `.reverse()` devuelve una -| Parámetros | Tipo | | Descripción | -| ---------- | ---- | :-------------------------: | ------------------------------- | -| Result | any | <- | Primer elemento de la colección | +| Parámetros | Tipo | | Descripción | +| ---------- | ---- | :-------------------------: | ------------------------------------------- | +| Result | any | <- | Colección original sin elementos eliminados | @@ -3213,11 +3126,11 @@ Si la colección está vacía, este método no hace nada. -| Parámetros | Tipo | | Descripción | -| ---------- | ---------- | :-------------------------: | -------------------------------------------------------------------------------------- | -| startFrom | Integer | -> | Índice de inicio (incluido) | -| end | Integer | -> | Índice final (no incluido) | -| Result | Collection | <- | Nueva colección que contiene elementos cortados (copia superficial) | +| Parámetros | Tipo | | Descripción | +| ---------- | ---------- | :-------------------------: | ---------------------------------------------- | +| startFrom | Integer | -> | Índice de inicio (incluido) | +| end | Integer | -> | Índice final (no incluido) | +| Result | Collection | <- | La nueva colección compartida | @@ -3230,9 +3143,9 @@ La función `.slice()` devuelve una porc La colección devuelta contiene el elemento especificado por *startFrom* y todos los elementos subsiguientes hasta, pero sin incluir, el elemento especificado por *end*. Si sólo se especifica el parámetro *startFrom*, la colección devuelta contiene todos los elementos desde *startFrom* hasta el último elemento de la colección original. - Si *startFrom* < 0, se recalcula como *startFrom:=startFrom+length* (se considera el desplazamiento desde el final de la colección). -- Si el valor calculado < 0, *startFrom* toma el valor 0. -- Si *end* < 0 , se recalcula como *end:=end+length*. -- Si *end < startFrom* (valores pasados o calculados), el método no hace nada. +- Descripción +- Soporte de querySettings +- Este ejemplo permite reducir varios elementos de la colección a uno solo: #### Ejemplo @@ -3281,35 +3194,35 @@ La función `.some()` devuelve true si a Se designa el código 4D de retrollamada (callback) a ejecutar para evaluar los elementos de la colección utilizando: -- *formula* (sintaxis recomendada), un [objeto Fórmula](FunctionClass.md) que puede encapsular toda expresión ejecutable, incluyendo funciones y métodos proyecto; -- o *methodName*, el nombre de un método proyecto (texto). +- Comparación +- Tipo La retrollamada se llama con los parámetros pasados en *param* (opcional). La retrollamada puede efecturar toda prueba, con o sin los parámetros, y debe devolver *true* para cada elemento que cumpla la prueba. Recibe un `Object` en el primer parámetro ($1). La retrollamada recibe los siguientes parámetros: -- en *$1.value*: valor del elemento a procesar -- en *$2: param* -- en *$N...*: *paramN...* +- La nueva colección +- Colección compartida que se agrupa con la colección resultante +- Objeto compartido que se agrupa con la colección resultante Puede definir los siguientes parámetros: -- (obligatorio si se ha utilizado un método) *$1.result* (booleano): **true** si la evaluación del valor del elemento tiene éxito, **false** en caso contrario. +- Expresión a buscar en la colección - *$1.stop* (boolean, opcional): **true** para detener la retrollamada del método. El valor devuelto es el último calculado. -En todo caso, en el momento en que la función `.some()` encuentra el primer elemento de la colección que devuelve true, deja de llamar a la llamada de retorno y devuelve **true**. +Descripción Por defecto, `.some()` comprueba toda la colección. Opcionalmente, puede pasar el índice de un elemento desde el cual iniciar la prueba en *startFrom*. -- Si *startFrom* >= la longitud de la colección, se devuelve **False**, lo que significa que no se prueba la colección. +- Tipo -- Si *startFrom* < 0, se considera como el desplazamiento desde el final de la colección. +- Diferente de Si *startFrom* < 0, se considera el desplazamiento desde el final de la colección (*startFrom:=startFrom+length*). -- Si *startFrom* = 0, se busca en toda la colección (por defecto). +- Descripción #### Ejemplo -Quiere saber si al menos un valor de la colección es >0. +Incluído en ```4d var $c : Collection @@ -3345,18 +3258,18 @@ Quiere saber si al menos un valor de la colección es >0. -| Parámetros | Tipo | | Descripción | -| ---------- | --------------------------- | :-------------------------: | --------------------------- | -| formula | 4D.Function | -> | Objeto fórmula | -| methodName | Text | -> | Nombre de un método | -| extraParam | any | -> | Parámetros del método | -| Result | Collection | <- | Colección original ordenada | +| Parámetros | Tipo | | Descripción | +| ---------- | --------------------------- | :-------------------------: | ------------------------------------------------------------------------------------------- | +| formula | 4D.Function | -> | Objeto fórmula | +| methodName | Text | -> | Nombre de un método | +| extraParam | any | -> | Parámetros del método | +| Result | Collection | <- | o *methodName*, el nombre de un método proyecto (texto). | #### Descripción -La función `.sort()` ordena los elementos de la colección original y además devuelve la colección ordenada. +Colección original ordenada > Esta función modifica la colección original. @@ -3375,13 +3288,13 @@ Si quiere ordenar los elementos de la colección en algún otro orden o ordenar La retrollamada recibe los siguientes parámetros: - $1 (objeto), donde: - - *$1.value* (todo tipo): valor del primer elemento a comparar - - *$1.value2* (todo tipo): valor del segundo elemento a comparar + - Lanzamiento + - Lanzamiento - $2...$N (cualquier tipo): parámetros adicionales -Si utilizó un método, debe definir el siguiente parámetro: +Ejemplo -- *$1.result* (boolean): **true** si *$1.value < $1.value2*, **false** de lo contrario. +- Obtiene los datos coincidentes, admite el comodín (@), no distingue entre mayúsculas de minúsculas ni diacríticas. #### Ejemplo 1 @@ -3403,10 +3316,7 @@ Si utilizó un método, debe definir el siguiente parámetro: #### Ejemplo 3 ```4d -var $col; $col2; $col3 : Collection -$col:=New collection(33;4;66;1111;222) -$col2:=$col.sort() //numerical sort: [4,33,66,222,1111] -$col3:=$col.sort(Formula(String($1.value) @@ -3430,23 +3340,23 @@ $col3:=$col.sort(Formula(String($1.value) | Ruta de la propiedad del objeto que se utilizará para el cálculo | -| Result | Real | <- | Suma de los valores de la colección | +| Result | Real | <- | Colección original con valores rellenados | #### Descripción -La función `.sum()` devuelve la suma de todos los valores de la instancia de la colección. +Añadidos Para el cálculo sólo se tienen en cuenta los elementos numéricos (se ignoran otros tipos de elementos). -Si la colección contiene objetos, pasa el parámetro *propertyPath* para indicar la propiedad del objeto a tener en cuenta. +Uso del paréntesis -`.sum()` devuelve 0 si: +Para más información sobre las colecciones compartidas, por favor consulte la página [Objetos y colecciones compartidas](Concepts/shared.md). - la colección está vacía, - la colección no contiene elementos numéricos, -- *propertyPath* no se encuentra en la colección. +- Lanzamiento #### Ejemplo 1 diff --git a/i18n/es/docusaurus-plugin-content-docs/version-20-R6/API/CryptoKeyClass.md b/i18n/es/docusaurus-plugin-content-docs/version-20-R6/API/CryptoKeyClass.md index 2f6f85b9ef4536..4ee9ba05f5f82d 100644 --- a/i18n/es/docusaurus-plugin-content-docs/version-20-R6/API/CryptoKeyClass.md +++ b/i18n/es/docusaurus-plugin-content-docs/version-20-R6/API/CryptoKeyClass.md @@ -138,7 +138,7 @@ ASSERT($status.success) **.curve** : Text -Definido sólo para las llaves ECDSA: el nombre de la curva normalizada de la llave. Generalmente "prime256v1" para ES256 (por defecto), "secp384r1" para ES384, "secp521r1" para ES512. +Definido sólo para llaves RSA: el tamaño de la llave en bits. . @@ -373,7 +373,7 @@ La representación utf8 de la cadena *message*. **.size** : Integer -Definido sólo para llaves RSA: el tamaño de la llave en bits. . +Definido sólo para las llaves ECDSA: el nombre de la curva normalizada de la llave. . @@ -432,7 +432,7 @@ La `CryptoKey` debe contener una llave **pública** válida. | --------- | ------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | | hash | text | Algoritmo Digest a utilizar. Por ejemplo: "SHA256", "SHA384" o "SHA512". Cuando se utiliza para producir un JWT, el tamaño del hash debe coincidir con el tamaño del algoritmo PS@, ES@, RS@ o PS@ | | pss | boolean | Utilice el Probabilistic Signature Scheme (PSS). Se ignora si la llave no es una llave RSA. Pase `true` al verificar un JWT para el algoritmo PS@ | -| encoding | text | Encoding used to convert the binary encrypted message into the result string. Can be "Base64", or "Base64URL". Por defecto es "Base64". | +| encoding | text | Codificación utilizada para convertir el mensaje binario encriptado en la cadena de resultados. Puede ser "Base64", o "Base64URL". Por defecto es "Base64". | #### *Resultado* diff --git a/i18n/es/docusaurus-plugin-content-docs/version-20-R6/API/DataClassClass.md b/i18n/es/docusaurus-plugin-content-docs/version-20-R6/API/DataClassClass.md index e29440c0f70cd2..669f95753b8551 100644 --- a/i18n/es/docusaurus-plugin-content-docs/version-20-R6/API/DataClassClass.md +++ b/i18n/es/docusaurus-plugin-content-docs/version-20-R6/API/DataClassClass.md @@ -459,7 +459,7 @@ En este ejemplo, la primera entidad se creará y guardará pero la segunda falla La función `.get()` consulta la clase de datos para recuperar la entidad que coincide con el parámetro *primaryKey*. -En *primaryKey*, pase el valor de la llave primaria de la entidad a recuperar. El tipo de valor debe coincidir con el tipo de la llave primaria definida en el almacén de datos (Entero o Texto). También puedes asegurarse de que el valor de la llave primaria siempre se devuelva como Texto utilizando la función [`.getKey()`](EntityClass.md#getkey) con el parámetro `dk key as string`. +En *primaryKey*, pase el valor de la llave primaria de la entidad a recuperar. El tipo de valor debe coincidir con el tipo de la llave primaria definida en el almacén de datos (Entero o Texto). El tipo de valor debe coincidir con el tipo de la llave primaria definida en el almacén de datos (Entero o Texto). Si no se encuentra ninguna entidad con *primaryKey*, se devuelve una entidad **Null**. @@ -850,7 +850,7 @@ La función `.newSelection()` crea en la memoria una nueva entidad que hace referencia al mismo registro que la entidad original. Esta función permite actualizar las entidades por separado. +The `.clone()` function creates in memory a new entity referencing the same record as the original entity. -> Tenga en cuenta que toda modificación realizada a las entidades se guardará en el registro referenciado sólo cuando se ejecute la función [`.save( )`](#save). +This function allows you to update entities separately. Note however that, for performance reasons, the new entity shares the same reference of object attributes as the cloned entity. + +> Keep in mind that any modifications done to entities will be saved in the referenced record only when the [`.save()`](#save) function is executed. Esta función sólo puede utilizarse con entidades ya guardadas en la base de datos. No se puede llamar a una entidad recién creada (para la que [`isNew()`](#isnew) devuelve **True**). @@ -866,7 +868,7 @@ El valor resultante se incluye entre 0 y la longitud de la selección de entidad #### Descripción -La función `.isNew()` devuelve True si la entidad a la que se aplica acaba de ser creada y aún no ha sido guardada en el datastore. . +La función `.isNew()` devuelve True si la entidad a la que se aplica acaba de ser creada y aún no ha sido guardada en el datastore. . . #### Ejemplo @@ -966,34 +968,34 @@ De lo contrario, puede pasar la opción `dk reload if stamp changed` en el pará El objeto devuelto por `.lock()` contiene las siguientes propiedades: -| Propiedad | | Tipo | Descripción | -| --------------------------------- | ----------------------------------- | --------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -| success | | boolean | true si la acción de bloqueo tiene éxito (o si la entidad ya está bloqueada en el proceso actual), false en caso contrario. | -| | | | ***Disponible sólo si se utiliza la opción `dk reload if stamp changed`:*** | -| **wasReloaded** | | boolean | true si la entidad fue recargada con éxito, false en caso contrario. | -| | | | ***Disponible sólo en caso de error:*** | -| status(\*) | | number | Código de error, ver abajo | -| statusText(\*) | | text | Descripción del error, ver abajo | -| | | | ***Disponible sólo en caso de error de bloqueo pesimista:*** | -| lockKindText | | text | "Locked by record" si está bloqueado por un proceso 4D, "Locked by session" si está bloqueado por una sesión REST | -| lockInfo | | object | Información sobre el origen del bloqueo. Las propiedades devueltas dependen del origen del bloqueo (proceso 4D o sesión REST). | -| | | | ***Disponible sólo para un bloqueo por proceso 4D:*** | -| | task_id | number | ID del Proceso | -| | user_name | text | Nombre de usuario de la sesión en la máquina | -| | user4d_alias | text | Nombre o alias del usuario 4D | -| | user4d_id | number | ID del usuario en el directorio de la base de datos 4D | -| | host_name | text | Nombre de la máquina | -| | task_name | text | Nombre del proceso | -| | client_version | text | Versión del cliente | -| | | | ***Disponible sólo para un bloqueo por sesión REST:*** | -| | host | text | URL que bloqueó la entidad (por ejemplo, "www.myserver.com") | -| | IPAddr | text | Dirección IP del bloqueo (por ejemplo: "127.0.0.1") | -| | userAgent | text | userAgent del origin del bloqueo (ej: "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_3) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/96.0.4664.110 Safari/537.36") | -| | | | ***Disponible sólo en caso de error crítico*** (llave primaria duplicada, disco lleno...): | -| errors | | collection of objects | | -| | message | text | Mensaje de error | -| | component signature | text | firma del componente interno (por ejemplo, "dmbg" significa el componente de la base) | -| | errCode | number | Código de error | +| Propiedad | | Tipo | Descripción | +| --------------------------------- | ----------------------------------- | --------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| success | | boolean | true si la acción de bloqueo tiene éxito (o si la entidad ya está bloqueada en el proceso actual), false en caso contrario. | +| | | | ***Disponible sólo si se utiliza la opción `dk reload if stamp changed`:*** | +| **wasReloaded** | | boolean | true si la entidad fue recargada con éxito, false en caso contrario. | +| | | | ***Disponible sólo en caso de error:*** | +| status(\*) | | number | Código de error, ver abajo | +| statusText(\*) | | text | Descripción del error, ver abajo | +| | | | ***Disponible sólo en caso de error de bloqueo pesimista:*** | +| lockKindText | | text | "Locked by record" si está bloqueado por un proceso 4D, "Locked by session" si está bloqueado por una sesión REST | +| lockInfo | | object | Información sobre el origen del bloqueo. Las propiedades devueltas dependen del origen del bloqueo (proceso 4D o sesión REST). | +| | | | ***Disponible sólo para un bloqueo por proceso 4D:*** | +| | task_id | number | ID del Proceso | +| | user_name | text | Nombre de usuario de la sesión en la máquina | +| | user4d_alias | text | Nombre o alias del usuario 4D | +| | user4d_id | number | ID del usuario en el directorio de la base de datos 4D | +| | host_name | text | Nombre de la máquina | +| | task_name | text | Nombre del proceso | +| | client_version | text | Versión del cliente | +| | | | ***Disponible sólo para un bloqueo por sesión REST:*** | +| | host | text | \| URL que bloqueó la entidad (por ejemplo, "www.myserver.com") \| | +| | IPAddr | text | Dirección IP del bloqueo (por ejemplo: "127.0.0.1") | +| | userAgent | text | userAgent del origin del bloqueo (ej: "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_3) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/96.0.4664.110 Safari/537.36") | +| | | | ***Disponible sólo en caso de error crítico*** (llave primaria duplicada, disco lleno...): | +| errors | | collection of objects | | +| | message | text | Mensaje de error | +| | component signature | text | firma del componente interno (por ejemplo, "dmbg" significa el componente de la base) | +| | errCode | number | Código de error | (\*) Los siguientes valores pueden ser devueltos en las propiedades *status* y *statusText* del objeto *Result* en caso de error: diff --git a/i18n/es/docusaurus-plugin-content-docs/version-20-R6/API/EntitySelectionClass.md b/i18n/es/docusaurus-plugin-content-docs/version-20-R6/API/EntitySelectionClass.md index a47aba6889b8a8..a222711d5e2148 100644 --- a/i18n/es/docusaurus-plugin-content-docs/version-20-R6/API/EntitySelectionClass.md +++ b/i18n/es/docusaurus-plugin-content-docs/version-20-R6/API/EntitySelectionClass.md @@ -5,7 +5,7 @@ title: EntitySelection Una entity selection es un objeto que contiene una o más referencias a [entidades](ORDA/dsMapping.md#entity) pertenecientes a la misma [Dataclass](ORDA/dsMapping.md#dataclass). Una entity selection puede contener 0, 1 o X entidades de la dataclass -- donde X puede representar el número total de entidades contenidas en la dataclass. -Las entity selections pueden crearse a partir de selecciones existentes utilizando varias funciones de la clase [`DataClass`](DataClassClass.md) como [`.all()`](DataClassClass.md#all) o [`.query()`](DataClassClass.md#query), o funciones de la propia clase `EntityClass`, como [`.and()`](#and) u [`orderBy()`](#orderby). También puede crear entity selections vacías utilizando la función [`dataClass.newSelection()`](DataClassClass.md#newselection) o el comando [`Create new selection`](#create-new-selection). +Las entity selections pueden crearse a partir de selecciones existentes utilizando varias funciones de la clase [`DataClass`](DataClassClass.md) como [`.all()`](DataClassClass.md#all) o [`.query()`](DataClassClass.md#query), o funciones de la propia clase `EntityClass`, como [`.and()`](#and) u [`orderBy()`](#orderby). Las entity selections pueden crearse a partir de selecciones existentes utilizando varias funciones de la clase [`DataClass`](DataClassClass.md) como [`.all()`](DataClassClass.md#all) o [`.query()`](DataClassClass.md#query), o funciones de la propia clase `EntityClass`, como [`.and()`](#and) u [`orderBy()`](#orderby). ### Resumen @@ -291,7 +291,7 @@ La función `.add()` añade la * :::info atención -La entity selection debe ser *modificable*, es decir, ha sido creada, por ejemplo, por [`.newSelection()`](DataClassClass.md#newselection) o `Create entity selection`, de lo contrario `.add()` devolverá un error. Las entity selections compartibles no aceptan la adición de entidades. Para más información, consulte la sección [Selecciones de entidades compartibles o modificables](ORDA/entities.md#shareable-or-alterable-entity-selections). +La entity selection debe ser *modificable*, es decir, ha sido creada, por ejemplo, por [`.newSelection()`](DataClassClass.md#newselection) o `Create entity selection`, de lo contrario `.add()` devolverá un error. Las entity selections compartibles no aceptan la adición de entidades. Las entity selections compartibles no aceptan la adición de entidades. ::: @@ -765,7 +765,7 @@ En el parámetro *attributePath*, pase el atributo de entidad cuyos valores dist Puede utilizar la notación `[]` para designar una colección cuando *attributePath* es una ruta en un objeto (ver los ejemplos). -En el parámetro *options*, puede pasar una o una combinación de las siguientes constantes: +Ejemplos | Constante | Valor | Comentario | | ----------------- | ----- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | @@ -2099,10 +2099,10 @@ La función `.slice()` devuelv La entity selection devuelta contiene las entidades especificadas por *startFrom* y todas las entidades subsiguientes hasta, pero sin incluir, la entidad especificada por *end*. Si sólo se especifica el parámetro *startFrom*, la entity selection devuelta contiene todas las entidades entre *startFrom* y la última entidad de la entity selection original. -- Si *startFrom* < 0, se recalcula como *startFrom:=startFrom+length* (se considera el desplazamiento desde el final de la entity selection). Si el valor calculado < 0, *startFrom* toma el valor 0. +- Si *startFrom* < 0, se recalcula como *startFrom:=startFrom+length* (se considera el desplazamiento desde el final de la entity selection). Descripción - Si *startFrom >= length*, la función devuelve una entity selection vacía. - Si *end* < 0, se recalcula como *end:=end+length*. -- Si *end < startFrom* (valores pasados o calculados), el método no hace nada. +- Este ejemplo permite reducir varios elementos de la colección a uno solo: .sum() devuelve 0 si la entity selection está vacía. diff --git a/i18n/es/docusaurus-plugin-content-docs/version-20-R6/API/FileHandleClass.md b/i18n/es/docusaurus-plugin-content-docs/version-20-R6/API/FileHandleClass.md index 85f7fc68f1333b..eebc9e51518288 100644 --- a/i18n/es/docusaurus-plugin-content-docs/version-20-R6/API/FileHandleClass.md +++ b/i18n/es/docusaurus-plugin-content-docs/version-20-R6/API/FileHandleClass.md @@ -275,7 +275,7 @@ Esta propiedad es **lectura-escritura**. :::caution -Cuando se crea un file handle, el valor `.offset` es un número de bytes. Sin embargo, la unidad de medida del offset difiere según la función de lectura: con [`readBlob()`](#readblob), `.offset` es un número de bytes, mientras que con [`readText()`](#readtext)/[`readLine()`](#readline) es un número de caracteres. Según el conjunto de caracteres del archivo, un caracter corresponde a uno o varios bytes. Según el conjunto de caracteres del archivo, un caracter corresponde a uno o varios bytes. Por lo tanto, si comienza a leer con `readBlob()` y luego llama a `readText()`, la lectura de texto comenzará en una posición inconsistente. Por ejemplo: +Cuando se crea un file handle, el valor `.offset` es un número de bytes. Sin embargo, la unidad de medida del offset difiere según la función de lectura: con [`readBlob()`](#readblob), `.offset` es un número de bytes, mientras que con [`readText()`](#readtext)/[`readLine()`](#readline) es un número de caracteres. Según el conjunto de caracteres del archivo, un caracter corresponde a uno o varios bytes. Según el conjunto de caracteres del archivo, un caracter corresponde a uno o varios bytes. Según el conjunto de caracteres del archivo, un caracter corresponde a uno o varios bytes. Por ejemplo: ```4d // Abrir un fichero de texto europeo con codificación utf-16 (dos bytes por caracter) diff --git a/i18n/es/docusaurus-plugin-content-docs/version-20-R6/API/FolderClass.md b/i18n/es/docusaurus-plugin-content-docs/version-20-R6/API/FolderClass.md index 7b54fd0de407f3..6522c30efea923 100644 --- a/i18n/es/docusaurus-plugin-content-docs/version-20-R6/API/FolderClass.md +++ b/i18n/es/docusaurus-plugin-content-docs/version-20-R6/API/FolderClass.md @@ -3,7 +3,7 @@ id: FolderClass title: Folder --- -Los objetos `Folder` se crean con el comando [`Folder`](#folder). Contienen referencias a carpetas que pueden o no existir realmente en el disco. Por ejemplo, cuando ejecuta el comando `Folder` para crear una nueva carpeta, se crea un objeto `Folder` válido, pero en realidad no se almacena nada en el disco hasta que llame a la función [`folder.create()`](#create). +Comentario Contienen referencias a carpetas que pueden o no existir realmente en el disco. Por ejemplo, cuando ejecuta el comando `Folder` para crear una nueva carpeta, se crea un objeto `Folder` válido, pero en realidad no se almacena nada en el disco hasta que llame a la función [`folder.create()`](#create). ### Ejemplo @@ -78,7 +78,7 @@ Los objetos `Folder` admiten varios nombres de ruta, incluida la sintaxis `files #### Descripción -El comando `Folder` crea y devuelve un nuevo objeto del tipo `4D.Folder`. El comando acepta dos sintaxis: +Comentario El comando acepta dos sintaxis: **Folder ( path { ; pathType } { ; \* } )** @@ -364,7 +364,7 @@ La función `.moveTo( )` mueve o renom La *destinationFolder* debe existir en el disco, de lo contrario se genera un error. -Por defecto, la carpeta conserva su nombre cuando se mueve. Si desea cambiar renombrar la carpeta desplazada, pase el nombre completo en el parámetro *newName*. El nuevo nombre debe cumplir con las reglas de nomenclatura (por ejemplo, no debe contener caracteres como ":", "/", etc.), de lo contrario se devuelve un error. +Por defecto, la carpeta conserva su nombre cuando se mueve. Por defecto, la carpeta conserva su nombre cuando se mueve. El nuevo nombre debe cumplir con las reglas de nomenclatura (por ejemplo, no debe contener caracteres como ":", "/", etc.), de lo contrario se devuelve un error. **Objeto devuelto** diff --git a/i18n/es/docusaurus-plugin-content-docs/version-20-R6/API/HTTPRequestClass.md b/i18n/es/docusaurus-plugin-content-docs/version-20-R6/API/HTTPRequestClass.md index ae933993b6cd83..f37baa038890ed 100644 --- a/i18n/es/docusaurus-plugin-content-docs/version-20-R6/API/HTTPRequestClass.md +++ b/i18n/es/docusaurus-plugin-content-docs/version-20-R6/API/HTTPRequestClass.md @@ -478,7 +478,7 @@ La propiedad `.url` contiene la URL de ## .wait() -**.wait**( { *time* : Real } ) : HTTPRequestClass +**.wait**( { *time* : Real } ) : 4D.HTTPRequest @@ -499,6 +499,6 @@ Si se pasa un parámetro *time*, la función esperará como máximo el número d Si la respuesta del servidor ya ha llegado, la función regresa inmediatamente. -During a `.wait()` execution, callback functions are executed, whether from other `HTTPRequest` or [`SystemWorker`](SystemWorkerClass.md) instances, or other `CALL WORKER` calls. Puede salir de un `.wait()` llamando a [`terminate()`](#terminate) desde un callback. +Durante una ejecución `.wait()`, las funciones de retrollamada se ejecutan, ya sea desde otras instancias `HTTPRequest` o [`SystemWorker`](SystemWorkerClass.md) u otras llamadas `CALL WORKER`. Puede salir de un `.wait()` llamando a [`terminate()`](#terminate) desde un callback. diff --git a/i18n/es/docusaurus-plugin-content-docs/version-20-R6/API/SignalClass.md b/i18n/es/docusaurus-plugin-content-docs/version-20-R6/API/SignalClass.md index 4206d6de65715f..88ff2672a2f23b 100644 --- a/i18n/es/docusaurus-plugin-content-docs/version-20-R6/API/SignalClass.md +++ b/i18n/es/docusaurus-plugin-content-docs/version-20-R6/API/SignalClass.md @@ -198,7 +198,7 @@ Esta propiedad está en **lectura-escritura**. #### Descripción -Lanzamiento Cuando se crea la señal, `.signaled` es **False**. La propiedad `.signaled` se convierte en true cuando cualquier worker/proceso llama al método `.trigger()`. +Lanzamiento Lanzamiento Lanzamiento Lanzamiento Lanzamiento Cuando se crea la señal, `.signaled` es **False**. La propiedad `.signaled` se convierte en true cuando cualquier worker/proceso llama al método `.trigger()`. Esta propiedad es de **solo lectura**. @@ -230,7 +230,7 @@ Esta propiedad es de **solo lectura**. La función `.trigger( )` define la propiedad `signaled` del objeto signal como **true** y despierta a todos los workers o procesos que esperan esta signal. -Si la señal ya está en el estado de señalización (es decir, la propiedad signaled\\` ya es **true**), la función no hace nada. +Si la señal ya está en el estado de señalización (es decir, la propiedad signaled\\\\\\` ya es **true**), la función no hace nada. diff --git a/i18n/es/docusaurus-plugin-content-docs/version-20-R6/Backup/backup.md b/i18n/es/docusaurus-plugin-content-docs/version-20-R6/Backup/backup.md index 5a10c7257cdd6b..08b1ccee83c19f 100644 --- a/i18n/es/docusaurus-plugin-content-docs/version-20-R6/Backup/backup.md +++ b/i18n/es/docusaurus-plugin-content-docs/version-20-R6/Backup/backup.md @@ -16,7 +16,7 @@ Una copia de seguridad puede iniciarse de tres maneras: 1. Seleccione el elemento **Copia de seguridad...** en el menú **Archivo** de 4D. La ventana de copia de seguridad aparece: - ![](../assets/en/Backup/backup01. ng) + ![](../assets/en/Backup/backup01.png) Puede ver la ubicación de la carpeta de copia de seguridad usando el menú emergente junto al área de "destino de copia de seguridad". Esta ubicación se define en la página **Copia de seguridad/configuración** de las Propiedades de la base. - También puede abrir el [Centro de mantenimiento y seguridad](MSC/overview.md) de 4D y mostrar la [página de copias de seguridad](MSC/backup.md). diff --git a/i18n/es/docusaurus-plugin-content-docs/version-20-R6/Concepts/classes.md b/i18n/es/docusaurus-plugin-content-docs/version-20-R6/Concepts/classes.md index 018045b9957b41..57d120781bd016 100644 --- a/i18n/es/docusaurus-plugin-content-docs/version-20-R6/Concepts/classes.md +++ b/i18n/es/docusaurus-plugin-content-docs/version-20-R6/Concepts/classes.md @@ -331,7 +331,7 @@ Una función constructora de clase acepta [parámetros](#parameters) opcionales Cuando llama a la función [`new()`](API/ClassClass.md#new), el constructor de clase es llamado con los parámetros opcionalmente pasados a la función `new()`. -Sólo puede haber una función constructora en una clase (de lo contrario se devuelve un error). The [`Super`](../commands/super.md) command allows calls to the [`superclass`](../API/ClassClass#superclass), i.e. the parent class of the function. +Sólo puede haber una función constructora en una clase (de lo contrario se devuelve un error). El comando [`Super`](../commands/super.md) permite realizar llamadas a [`superclass`](../API/ClassClass#superclass), es decir, a la clase padre de la función. Puede crear y escribir propiedades de instancia dentro del constructor (ver ejemplo). Alternativamente, si los valores de las propiedades de instancia no dependen de los parámetros pasados al constructor, puede definirlos utilizando la palabra clave [`property`](#property). diff --git a/i18n/es/docusaurus-plugin-content-docs/version-20-R6/Concepts/variables.md b/i18n/es/docusaurus-plugin-content-docs/version-20-R6/Concepts/variables.md index 8e6d7ee54866ac..fd51621a28aaae 100644 --- a/i18n/es/docusaurus-plugin-content-docs/version-20-R6/Concepts/variables.md +++ b/i18n/es/docusaurus-plugin-content-docs/version-20-R6/Concepts/variables.md @@ -160,7 +160,7 @@ var $a; $b : Integer:=15 //error ## Asignar los valores -Los datos pueden introducirse y copiarse en variables y arrays. Poner datos en una variable se llama **asignar los datos a la variable** y se hace con el operador de asignación (:=). El operador de asignación también se utiliza para asignar datos a campos. +Los datos pueden introducirse y copiarse en variables y arrays. Los datos pueden introducirse y copiarse en variables y arrays. El operador de asignación también se utiliza para asignar datos a campos. El operador de asignación es un primer medio para crear una variable e introducir datos en ella. Se escribe el nombre de la variable que se quiere crear a la izquierda del operador de asignación. Por ejemplo: @@ -204,7 +204,7 @@ El nombre de una variable local siempre comienza por el signo dólar ($) y puede Cuando se trabaja en un proyecto de aplicación con muchos métodos y variables, a menudo se encuentra que se necesita utilizar una variable sólo dentro del método en el que se está trabajando. Puede crear y utilizar una variable local en el método sin preocuparse de si ha utilizado el mismo nombre de variable en otro lugar. -Con frecuencia, en una aplicación, se necesitan pequeñas piezas de información del usuario. El comando `Request` puede obtener esta información. Muestra una caja de diálogo con un mensaje que solicita al usuario una respuesta. Cuando el usuario introduce la respuesta, el comando devuelve la información que el usuario introdujo. Generalmente no es necesario mantener esta información en sus métodos durante mucho tiempo. Esta es una forma típica de utilizar una variable local. Aquí un ejemplo: +Con frecuencia, en una aplicación, se necesitan pequeñas piezas de información del usuario. Con frecuencia, en una aplicación, se necesitan pequeñas piezas de información del usuario. Muestra una caja de diálogo con un mensaje que solicita al usuario una respuesta. Cuando el usuario introduce la respuesta, el comando devuelve la información que el usuario introdujo. Generalmente no es necesario mantener esta información en sus métodos durante mucho tiempo. Esta es una forma típica de utilizar una variable local. Aquí un ejemplo: ```4d $vsID:=Request("Please enter your ID:") diff --git a/i18n/es/docusaurus-plugin-content-docs/version-20-R6/Debugging/debugging-remote.md b/i18n/es/docusaurus-plugin-content-docs/version-20-R6/Debugging/debugging-remote.md index 0181851a0ee5a0..c8a06914651a84 100644 --- a/i18n/es/docusaurus-plugin-content-docs/version-20-R6/Debugging/debugging-remote.md +++ b/i18n/es/docusaurus-plugin-content-docs/version-20-R6/Debugging/debugging-remote.md @@ -72,7 +72,7 @@ Para volver a conectar el depurador al servidor: > **Advertencia**: si se selecciona esta opción para un servidor que posteriormente se lanza en modo sin interfaz, el depurador no estará disponible para este servidor. -- En un cliente 4D remoto, esta opción se llama **Attach Remote Debugger At Startup**. Cuando se selecciona, el cliente 4D remoto intentará automáticamente adjuntar el depurador remoto en cada conexión posterior a la misma base de datos 4D Server. Si el adjunto es aceptado (ver [Rejected attachment requests](#rejected-attachment-requests)), el depurador remoto se adjunta automáticamente al cliente 4D remoto y se muestra la opción **Detach Remote Debugger**. +- Asociar al depurador Cuando se selecciona, el cliente 4D remoto intentará automáticamente adjuntar el depurador remoto en cada conexión posterior a la misma base de datos 4D Server. Depuradores adjuntos > Esta configuración se aplica por proyecto y se almacena localmente en el archivo [`.4DPreferences`](Project/architecture.md#userpreferencesusername). diff --git a/i18n/es/docusaurus-plugin-content-docs/version-20-R6/FormObjects/buttonGrid_overview.md b/i18n/es/docusaurus-plugin-content-docs/version-20-R6/FormObjects/buttonGrid_overview.md index 1fa894fa42ca83..42f6225816a18c 100644 --- a/i18n/es/docusaurus-plugin-content-docs/version-20-R6/FormObjects/buttonGrid_overview.md +++ b/i18n/es/docusaurus-plugin-content-docs/version-20-R6/FormObjects/buttonGrid_overview.md @@ -28,4 +28,4 @@ Puede asignar la [acción estándar](https://doc.4d.com/4Dv17R5/4D/17-R5/Standar ## Propiedades soportadas -[Estilo de línea de borde](properties_BackgroundAndBorder.md#border-line-style) - [Fondo](properties_CoordinatesAndSizing.md#bottom) - [Clase](properties_Object.md#css-class) - [Columnas](properties_Crop.md#columns) - [Altura](properties_CoordinatesAndSizing.md#height) - [Mensaje de ayuda](properties_Help.md#help-tip) - [Dimensionamiento horizontal](properties_ResizingOptions.md#horizontal-sizing) - [Izquierda](properties_CoordinatesAndSizing.md#left) - [Nombre del objeto](properties_Object.md#object-name) - [Derecha](properties_CoordinatesAndSizing.md#right) - [Filas](properties_Crop.md#rows) - [Acción estándar](properties_Action.md#standard-action) - [Superior](properties_CoordinatesAndSizing.md#top) - [Tipo](properties_Object.md#type) - [Variable o expresión](properties_Object.md#variable-o-expresión) - [Tamaño vertical](properties_ResizingOptions.md#vertical-sizing) - [Ancho](properties_CoordinatesAndSizing.md#width) - [Visibilidad](properties_Display.md#visibilidad) +[Estilo de línea de borde](properties_BackgroundAndBorder.md#border-line-style) - [Fondo](properties_CoordinatesAndSizing.md#bottom) - [Clase](properties_Object.md#css-class) - [Columnas](properties_Crop.md#columns) - [Altura](properties_CoordinatesAndSizing.md#height) - [Mensaje de ayuda](properties_Help.md#help-tip) - [Dimensionamiento horizontal](properties_ResizingOptions.md#horizontal-sizing) - [Izquierda](properties_CoordinatesAndSizing.md#left) - [Nombre del objeto](properties_Object.md#object-name) - [Derecha](properties_CoordinatesAndSizing.md#right) - [Filas](properties_Crop.md#rows) - [Acción estándar](properties_Action.md#standard-action) - [Superior](properties_CoordinatesAndSizing.md#top) - [Tipo](properties_Object.md#type) - [Variable o expresión](properties_Object.md#variable-or-expression) - [Tamaño vertical](properties_ResizingOptions.md#vertical-sizing) - [Ancho](properties_CoordinatesAndSizing.md#width) - [Visibilidad](properties_Display.md#visibilidad) diff --git a/i18n/es/docusaurus-plugin-content-docs/version-20-R6/FormObjects/listbox_overview.md b/i18n/es/docusaurus-plugin-content-docs/version-20-R6/FormObjects/listbox_overview.md index d350dcb233df71..d8028bc891b45b 100644 --- a/i18n/es/docusaurus-plugin-content-docs/version-20-R6/FormObjects/listbox_overview.md +++ b/i18n/es/docusaurus-plugin-content-docs/version-20-R6/FormObjects/listbox_overview.md @@ -199,30 +199,30 @@ Las propiedades soportadas dependen del tipo de list box. | Evento formulario | Propiedades adicionales devueltas (ver [Evento formulario](https://doc.4d.com/4Dv18/4D/18/FORM-Event.301-4522191.en.html) para las propiedades principales) | Comentarios | | -------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -| On After Edit |
  • [column](#additional-properties)
  • [columnName](#additional-properties)
  • [row](#additional-properties)
  • | | -| On After Keystroke |
  • [column](#additional-properties)
  • [columnName](#additional-properties)
  • [row](#additional-properties)
  • | | +| On After Edit |
  • [columna](#additional-properties)
  • [nombreColumna](#additional-properties)
  • [línea](#additional-properties)
  • | | +| On After Keystroke |
  • [columna](#additional-properties)
  • [nombreColumna](#additional-properties)
  • [línea](#additional-properties)
  • | | | On After Sort |
  • [column](#propiedades-adicionales)
  • [columnName](#propiedades-adicionales)
  • [headerName](#propiedades-adicionales)
  • | *Las fórmulas compuestas no se pueden ordenar.
    (por ejemplo, This.firstName + This.lastName)* | -| On Alternative Click |
  • [column](#additional-properties)
  • [columnName](#additional-properties)
  • [row](#additional-properties)
  • | *List box array únicamente* | -| On Before Data Entry |
  • [column](#additional-properties)
  • [columnName](#additional-properties)
  • [row](#additional-properties)
  • | | -| On Before Keystroke |
  • [column](#additional-properties)
  • [columnName](#additional-properties)
  • [row](#additional-properties)
  • | | -| On Begin Drag Over |
  • [column](#additional-properties)
  • [columnName](#additional-properties)
  • [row](#additional-properties)
  • | | -| On Clicked |
  • [column](#additional-properties)
  • [columnName](#additional-properties)
  • [row](#additional-properties)
  • | | +| On Alternative Click |
  • [columna](#additional-properties)
  • [nombreColumna](#additional-properties)
  • [línea](#additional-properties)
  • | *List box array únicamente* | +| On Before Data Entry |
  • [columna](#additional-properties)
  • [nombreColumna](#additional-properties)
  • [línea](#additional-properties)
  • | | +| On Before Keystroke |
  • [columna](#additional-properties)
  • [nombreColumna](#additional-properties)
  • [línea](#additional-properties)
  • | | +| On Begin Drag Over |
  • [columna](#additional-properties)
  • [nombreColumna](#additional-properties)
  • [línea](#additional-properties)
  • | | +| On Clicked |
  • [columna](#additional-properties)
  • [nombreColumna](#additional-properties)
  • [línea](#additional-properties)
  • | | | On Close Detail |
  • [row](#propiedades adicionales)
  • | *List box Selección actual y Selección temporal únicamente* | -| On Collapse |
  • [column](#additional-properties)
  • [columnName](#additional-properties)
  • [row](#additional-properties)
  • | *List box jerárquicos únicamente* | +| On Collapse |
  • [columna](#additional-properties)
  • [nombreColumna](#additional-properties)
  • [línea](#additional-properties)
  • | *List box jerárquicos únicamente* | | On Column Moved |
  • [columnName](#propiedades-adicionales)
  • [newPosition](#propiedades-adicionales)
  • [oldPosition](#propiedades-adicionales)
  • | | | On Column Resize |
  • [column](#propiedades-adicionales)
  • [columnName](#propiedades-adicionales)
  • [newSize](#propiedades-adicionales)
  • [oldSize](#propiedades-adicionales)
  • | | -| On Data Change |
  • [column](#additional-properties)
  • [columnName](#additional-properties)
  • [row](#additional-properties)
  • | | +| On Data Change |
  • [columna](#additional-properties)
  • [nombreColumna](#additional-properties)
  • [línea](#additional-properties)
  • | | | On Delete Action |
  • [row](#propiedades adicionales)
  • | | | On Display Detail |
  • [isRowSelected](#additional-properties)
  • [row](#additional-properties)
  • | | -| On Double Clicked |
  • [column](#additional-properties)
  • [columnName](#additional-properties)
  • [row](#additional-properties)
  • | | +| On Double Clicked |
  • [columna](#additional-properties)
  • [nombreColumna](#additional-properties)
  • [línea](#additional-properties)
  • | | | On Drag Over |
  • [area](#additional-properties)
  • [areaName](#additional-properties)
  • [column](#additional-properties)
  • [columnName](#additional-properties)
  • [row](#additional-properties)
  • | | -| On Drop |
  • [column](#additional-properties)
  • [columnName](#additional-properties)
  • [row](#additional-properties)
  • | | -| On Expand |
  • [column](#additional-properties)
  • [columnName](#additional-properties)
  • [row](#additional-properties)
  • | *List box jerárquicos únicamente* | +| On Drop |
  • [columna](#additional-properties)
  • [nombreColumna](#additional-properties)
  • [línea](#additional-properties)
  • | | +| On Expand |
  • [columna](#additional-properties)
  • [nombreColumna](#additional-properties)
  • [línea](#additional-properties)
  • | *List box jerárquicos únicamente* | | On Footer Click |
  • [column](#additional-properties)
  • [columnName](#additional-properties)
  • [footerName](#additional-properties)
  • | *List box arrays, selección actual y selección temporal únicamente* | -| On Getting Focus |
  • [column](#additional-properties)
  • [columnName](#additional-properties)
  • [row](#additional-properties)
  • | *Propiedades adicionales devueltas sólo al editar una celda* | +| On Getting Focus |
  • [columna](#additional-properties)
  • [nombreColumna](#additional-properties)
  • [línea](#additional-properties)
  • | *Propiedades adicionales devueltas sólo al editar una celda* | | On Header Click |
  • [column](#propiedades-adicionales)
  • [columnName](#propiedades-adicionales)
  • [headerName](#propiedades-adicionales)
  • | | | On Load | | | -| On Losing Focus |
  • [column](#additional-properties)
  • [columnName](#additional-properties)
  • [row](#additional-properties)
  • | *Propiedades adicionales devueltas sólo cuando la modificación de una celda se completa* | +| On Losing Focus |
  • [columna](#additional-properties)
  • [nombreColumna](#additional-properties)
  • [línea](#additional-properties)
  • | *Propiedades adicionales devueltas sólo cuando la modificación de una celda se completa* | | On Mouse Enter |
  • [area](#additional-properties)
  • [areaName](#additional-properties)
  • [column](#additional-properties)
  • [columnName](#additional-properties)
  • [row](#additional-properties)
  • | | | On Mouse Leave | | | | On Mouse Move |
  • [area](#additional-properties)
  • [areaName](#additional-properties)
  • [column](#additional-properties)
  • [columnName](#additional-properties)
  • [row](#additional-properties)
  • | | @@ -267,31 +267,31 @@ Puede definir propiedades estándar (texto, color de fondo, etc.) para cada colu ### Propiedades específicas de la columna -[Alpha Format](properties_Display.md#alpha-format) - [Alternate Background Color](properties_BackgroundAndBorder.md#alternate-background-color) - [Automatic Row Height](properties_CoordinatesAndSizing.md#automatic-row-height) - [Background Color](properties_BackgroundAndBorder.md#background-color--fill-color) - [Background Color Expression](properties_BackgroundAndBorder.md#background-color-expression) - [Bold](properties_Text.md#bold) - [Choice List](properties_DataSource.md#choice-list) - [Class](properties_Object.md#css-class) - [Data Type (selection and collection list box column)](properties_DataSource.md#data-type) - [Date Format](properties_Display.md#date-format) - [Default Values](properties_DataSource.md#default-list-of-values) - [Display Type](properties_Display.md#display-type) - [Enterable](properties_Entry.md#enterable) - [Entry Filter](properties_Entry.md#entry-filter) - [Excluded List](properties_RangeOfValues.md#excluded-list) - [Expression](properties_DataSource.md#expression) - [Expression Type (array list box column)](properties_Object.md#expression-type) - [Font](properties_Text.md#font) - [Font Color](properties_Text.md#font-color) - [Horizontal Alignment](properties_Text.md#horizontal-alignment) - [Horizontal Padding](properties_CoordinatesAndSizing.md#horizontal-padding) - [Italic](properties_Text.md#italic) - [Invisible](properties_Display.md#visibility) - [Maximum Width](properties_CoordinatesAndSizing.md#maximum-width) - [Method](properties_Action.md#method) - [Minimum Width](properties_CoordinatesAndSizing.md#minimum-width) - [Multi-style](properties_Text.md#multi-style) - [Number Format](properties_Display.md#number-format) - [Object Name](properties_Object.md#object-name) - [Picture Format](properties_Display.md#picture-format) - [Resizable](properties_ResizingOptions.md#resizable) - [Required List](properties_RangeOfValues.md#required-list) - [Row Background Color Array](properties_BackgroundAndBorder.md#row-background-color-array) - [Row Font Color Array](properties_Text.md#row-font-color-array) - [Row Style Array](properties_Text.md#row-style-array) - [Save as](properties_DataSource.md#save-as) - [Style Expression](properties_Text.md#style-expression) - [Text when False/Text when True](properties_Display.md#text-when-falsetext-when-true) - [Time Format](properties_Display.md#time-format) - [Truncate with ellipsis](properties_Display.md#truncate-with-ellipsis) - [Underline](properties_Text.md#underline) - [Variable or Expression](properties_Object.md#variable-or-expression) - [Vertical Alignment](properties_Text.md#vertical-alignment) - [Vertical Padding](properties_CoordinatesAndSizing.md#vertical-padding) - [Width](properties_CoordinatesAndSizing.md#width) - [Wordwrap](properties_Display.md#wordwrap) +[Formato Alfa](properties_Display.md#alpha-format) - [Color de fondo alternativo](properties_BackgroundAndBorder.md#alternate-background-color) - [Alto de fila automático](properties_CoordinatesAndSizing.md#automatic-row-height) - [Color de fondo](properties_BackgroundAndBorder.md#background-color--fill-color) - [Expresión de color de fondo](properties_BackgroundAndBorder.md#background-color-expression) - [Negrita](properties_Text.md#bold) - [Lista de opciones](properties_DataSource.md#choice-list) - [Clase](properties_Object.md#css-class) - [Tipo de datos (columna del list box de selección y colección)](properties_DataSource.md#data-type) - [Formato de fecha](properties_Display.md#date-format) - [Valores por defecto](properties_DataSource.md#default-list-of-values) - [Tipo de visualización](properties_Display.md#display-type) - [Entrable](properties_Entry.md#enterable) - [Filtro de entrada](properties_Entry.md#entry-filter) - [Lista de excluidos](properties_RangeOfValues.md#excluded-list) - [Expresión](properties_DataSource.md#expression) - [Expression Type (array columna list box)](properties_Object.md#expression-type) - [Fuente](properties_Text.md#font) - [Color de fuente](properties_Text.md#font-color) - [Alineación horizontal](properties_Text.md#horizontal-alignment) - [Horizontal Padding](properties_CoordinatesAndSizing.md#horizontal-padding) - [Cursiva](properties_Text.md#italic) - [Invisible](properties_Display.md#visibility) - [Ancho máximo](properties_CoordinatesAndSizing.md#maximum-width) - [Método](properties_Action.md#method) - [Ancho mínimo](properties_CoordinatesAndSizing.md#minimum-width) - [Varios estilos](properties_Text.md#multi-style) - [Formato numérico](properties_Display.md#number-format) - [Nombre del objeto](properties_Object.md#nombre-objeto) - [Formato Imagen](properties_Display.md#formato-imagen) - [Redimensionable](properties_ResizingOptions.md#redimensionable) - [Lista Requerida](properties_RangeOfValues.md#required-list) - [Color de Fondo de Fila](properties_BackgroundAndBorder.md#row-background-color-array) - [Color de fuente de fila](properties_Text.md#row-font-color-array) - [Estilo de fila](properties_Text.md#row-style-array) - [Guardar como](properties_DataSource.md#save-as) - [Expresión de estilo](properties_Text.md#style-expression) - [Texto cuando False/Texto cuando True](properties_Display.md#text-when-falsetext-when-true) - [Formato Hora](properties_Display.md#time-format) - [Truncar con elipsis](properties_Display.md#truncate-with-ellipsis) - [Subrayado](properties_Text.md#underline) - [Variable o expresión](properties_Object.md#variable-o-expresión) - [Alineación vertical](properties_Text.md#alineación-vertical) - [Relleno vertical](properties_CoordinatesAndSizing.md#Relleno-vertical) - [Ancho](properties_CoordinatesAndSizing.md#anchura) - [Ajuste de palabras](properties_Display.md#wordwrap) ### Eventos formulario soportados | Evento formulario | Propiedades adicionales devueltas (ver [Evento formulario](https://doc.4d.com/4Dv18/4D/18/FORM-Event.301-4522191.en.html) para las propiedades principales) | Comentarios | | -------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -| On After Edit |
  • [column](#additional-properties)
  • [columnName](#additional-properties)
  • [row](#additional-properties)
  • | | -| On After Keystroke |
  • [column](#additional-properties)
  • [columnName](#additional-properties)
  • [row](#additional-properties)
  • | | +| On After Edit |
  • [columna](#additional-properties)
  • [nombreColumna](#additional-properties)
  • [línea](#additional-properties)
  • | | +| On After Keystroke |
  • [columna](#additional-properties)
  • [nombreColumna](#additional-properties)
  • [línea](#additional-properties)
  • | | | On After Sort |
  • [column](#propiedades-adicionales)
  • [columnName](#propiedades-adicionales)
  • [headerName](#propiedades-adicionales)
  • | *Las fórmulas compuestas no se pueden ordenar.
    (por ejemplo, This.firstName + This.lastName)* | -| On Alternative Click |
  • [column](#additional-properties)
  • [columnName](#additional-properties)
  • [row](#additional-properties)
  • | *List box array únicamente* | -| On Before Data Entry |
  • [column](#additional-properties)
  • [columnName](#additional-properties)
  • [row](#additional-properties)
  • | | -| On Before Keystroke |
  • [column](#additional-properties)
  • [columnName](#additional-properties)
  • [row](#additional-properties)
  • | | -| On Begin Drag Over |
  • [column](#additional-properties)
  • [columnName](#additional-properties)
  • [row](#additional-properties)
  • | | -| On Clicked |
  • [column](#additional-properties)
  • [columnName](#additional-properties)
  • [row](#additional-properties)
  • | | +| On Alternative Click |
  • [columna](#additional-properties)
  • [nombreColumna](#additional-properties)
  • [línea](#additional-properties)
  • | *List box array únicamente* | +| On Before Data Entry |
  • [columna](#additional-properties)
  • [nombreColumna](#additional-properties)
  • [línea](#additional-properties)
  • | | +| On Before Keystroke |
  • [columna](#additional-properties)
  • [nombreColumna](#additional-properties)
  • [línea](#additional-properties)
  • | | +| On Begin Drag Over |
  • [columna](#additional-properties)
  • [nombreColumna](#additional-properties)
  • [línea](#additional-properties)
  • | | +| On Clicked |
  • [columna](#additional-properties)
  • [nombreColumna](#additional-properties)
  • [línea](#additional-properties)
  • | | | On Column Moved |
  • [columnName](#propiedades-adicionales)
  • [newPosition](#propiedades-adicionales)
  • [oldPosition](#propiedades-adicionales)
  • | | | On Column Resize |
  • [column](#propiedades-adicionales)
  • [columnName](#propiedades-adicionales)
  • [newSize](#propiedades-adicionales)
  • [oldSize](#propiedades-adicionales)
  • | | -| On Data Change |
  • [column](#additional-properties)
  • [columnName](#additional-properties)
  • [row](#additional-properties)
  • | | -| On Double Clicked |
  • [column](#additional-properties)
  • [columnName](#additional-properties)
  • [row](#additional-properties)
  • | | +| On Data Change |
  • [columna](#additional-properties)
  • [nombreColumna](#additional-properties)
  • [línea](#additional-properties)
  • | | +| On Double Clicked |
  • [columna](#additional-properties)
  • [nombreColumna](#additional-properties)
  • [línea](#additional-properties)
  • | | | On Drag Over |
  • [area](#additional-properties)
  • [areaName](#additional-properties)
  • [column](#additional-properties)
  • [columnName](#additional-properties)
  • [row](#additional-properties)
  • | | -| On Drop |
  • [column](#additional-properties)
  • [columnName](#additional-properties)
  • [row](#additional-properties)
  • | | +| On Drop |
  • [columna](#additional-properties)
  • [nombreColumna](#additional-properties)
  • [línea](#additional-properties)
  • | | | On Footer Click |
  • [column](#additional-properties)
  • [columnName](#additional-properties)
  • [footerName](#additional-properties)
  • | *List box arrays, selección actual y selección temporal únicamente* | -| On Getting Focus |
  • [column](#additional-properties)
  • [columnName](#additional-properties)
  • [row](#additional-properties)
  • | *Propiedades adicionales devueltas sólo al editar una celda* | +| On Getting Focus |
  • [columna](#additional-properties)
  • [nombreColumna](#additional-properties)
  • [línea](#additional-properties)
  • | *Propiedades adicionales devueltas sólo al editar una celda* | | On Header Click |
  • [column](#propiedades-adicionales)
  • [columnName](#propiedades-adicionales)
  • [headerName](#propiedades-adicionales)
  • | | | On Load | | | -| On Losing Focus |
  • [column](#additional-properties)
  • [columnName](#additional-properties)
  • [row](#additional-properties)
  • | *Propiedades adicionales devueltas sólo cuando la modificación de una celda se completa* | +| On Losing Focus |
  • [columna](#additional-properties)
  • [nombreColumna](#additional-properties)
  • [línea](#additional-properties)
  • | *Propiedades adicionales devueltas sólo cuando la modificación de una celda se completa* | | On Row Moved |
  • [newPosition](#additional-properties)
  • [oldPosition](#additional-properties)
  • | *List box array únicamente* | | On Scroll |
  • [horizontalScroll](#additional-properties)
  • [verticalScroll](#additional-properties)
  • | | | On Unload | | | diff --git a/i18n/es/docusaurus-plugin-content-docs/version-20-R6/FormObjects/pictureButton_overview.md b/i18n/es/docusaurus-plugin-content-docs/version-20-R6/FormObjects/pictureButton_overview.md index f5c189762341e6..48debb32204f93 100644 --- a/i18n/es/docusaurus-plugin-content-docs/version-20-R6/FormObjects/pictureButton_overview.md +++ b/i18n/es/docusaurus-plugin-content-docs/version-20-R6/FormObjects/pictureButton_overview.md @@ -19,6 +19,8 @@ Los botones imagen pueden utilizarse de dos maneras: | Use Last Frame as Disabled | useLastFrameAsDisabled | true | - Como botón de imagen que permite al usuario elegir entre varias opciones. En este caso, se puede utilizar un botón de imagen en lugar de un menú de imagen emergente. Con los [menús emergentes de imágenes](picturePopupMenu_overview.md), todas las opciones se muestran simultáneamente (como los elementos del menú emergente), mientras que el botón de imagen muestra las opciones consecutivamente (a medida que el usuario hace clic en el botón).\ + Aquí un ejemplo de un botón imagen.\ + Aquí un ejemplo de un botón imagen.\ Aquí un ejemplo de un botón imagen. Supongamos que quiere dar a los usuarios de una aplicación personalizada la posibilidad de elegir el idioma de la interfaz de la aplicación. La opción se implementa como un botón imagen en una caja de diálogo personalizada de propiedades: ![](../assets/en/FormObjects/button_pictureButton.png) @@ -52,11 +54,11 @@ Hay otros modos disponibles: - [Retroceder al primer cuadro](properties_Animation.md#loop-back-to-first-frame) - [Retroceder al soltar](properties_Animation.md#switch-back-when-released) - [Alternar al pasar el ratón por encima](properties_Animation.md#switch-when-roll-over) -- [Switch continuously on clicks](properties_Animation.md#switch-continuously-on-clicks) +- [Alternar continuamente al hacer clic](properties_Animation.md#switch-continuously-on-clicks) - [Usar el último fotograma como desactivado](properties_Animation.md#use-last-frame-as-disabled) - [Usar último fotograma como desactivado](properties_Animation.md#use-last-frame-as-disabled) -> [Use Last frame as disabled](properties_Animation.md#use-last-frame-as-disabled)> The [associated variable](properties_Object.md#variable-or-expression) of the picture button returns the index number, in the thumbnail table, of the current picture displa La numeración de las imágenes en la tabla empieza por 0. +> [Use Last frame as disabled](properties_Animation.md#use-last-frame-as-disabled)> The [associated variable](properties_Object.md#variable-or-expression) of the picture button returns the index number, in the thumbnail table, of the current picture displa La numeración de las imágenes en la tabla empieza por 0. La numeración de las imágenes en la tabla empieza por 0. ## Propiedades soportadas diff --git a/i18n/es/docusaurus-plugin-content-docs/version-20-R6/FormObjects/properties_Action.md b/i18n/es/docusaurus-plugin-content-docs/version-20-R6/FormObjects/properties_Action.md index 4de6af6b365587..910a9b5df41833 100644 --- a/i18n/es/docusaurus-plugin-content-docs/version-20-R6/FormObjects/properties_Action.md +++ b/i18n/es/docusaurus-plugin-content-docs/version-20-R6/FormObjects/properties_Action.md @@ -14,7 +14,7 @@ Hay dos modos de arrastrar disponibles: - **Personalizado**: en este modo, toda operación de arrastrar realizada en el objeto dispara el evento formulario `On Begin Drag` en el contexto del objeto. A continuación, gestiona la acción arrastrar utilizando un método.\ En el modo personalizado, básicamente toda la operación de arrastrar y soltar es realizada por el programador. Este modo le permite implementar cualquier interfaz basada en la función de arrastrar y soltar, incluidas las interfaces que no necesariamente transportan datos, sino que pueden realizar cualquier acción como abrir archivos o activar un cálculo. Este modo se basa en una combinación de propiedades, eventos y comandos específicos del tema `Portapapeles`. - **Automático**: en este modo, 4D **copia** el texto o las imágenes directamente desde el objeto formulario. Puede utilizarse en la misma área 4D, entre dos áreas 4D o entre 4D y otra aplicación. Por ejemplo, arrastrar (y soltar) automáticamente le permite copiar un valor entre dos campos sin usar programación:\ - ![](../assets/en/FormObjects/property_automaticDragDrop. ng)\ + ![](../assets/en/FormObjects/property_automaticDragDrop.png)\ ![](../assets/en/FormObjects/property_automaticDragDrop2.png) En este modo, NO se genera el evento del formulario `On Begin Drag`. Si quiere "forzar" el uso del arrastre personalizado mientras está activado el arrastre automático, mantenga presionada la tecla **Alt** (Windows) o **Opción** (macOS) durante la acción. Esta opción no está disponible para las imágenes. diff --git a/i18n/es/docusaurus-plugin-content-docs/version-20-R6/FormObjects/properties_BackgroundAndBorder.md b/i18n/es/docusaurus-plugin-content-docs/version-20-R6/FormObjects/properties_BackgroundAndBorder.md index acec6f82888ea6..44f2b34ece2b82 100644 --- a/i18n/es/docusaurus-plugin-content-docs/version-20-R6/FormObjects/properties_BackgroundAndBorder.md +++ b/i18n/es/docusaurus-plugin-content-docs/version-20-R6/FormObjects/properties_BackgroundAndBorder.md @@ -5,7 +5,7 @@ title: Fondo y borde ## Color de fondo alternado -Permite definir un color de fondo diferente para las líneas o columnas impares de un list box. Por defecto, *Automático* está seleccionado: la columna utiliza el color de fondo alternativo definido en el nivel del list box. +Permite definir un color de fondo diferente para las líneas o columnas impares de un list box. Permite definir un color de fondo diferente para las líneas o columnas impares de un list box. También puede definir esta propiedad utilizando el comando [`OBJECT SET RGB COLORS`](https://doc.4d.com/4dv20/help/command/en/page628.html). @@ -179,7 +179,7 @@ Por ejemplo, dado un list box en el que las líneas tienen un color gris/gris cl ![](../assets/en/FormObjects/listbox_styles1.png) -A continuación, quiere colorear las celdas con valores negativos en naranja oscuro. Para ello, se define un array de colores de fondo para cada columna, por ejemplo `<>_BgndColor_1`, `<>_BgndColor_2` y `<>_BgndColor_3`. Los valores de estos arrays tienen prioridad sobre los definidos en las propiedades del list box, así como los del array de color de fondo general: +A continuación, quiere colorear las celdas con valores negativos en naranja oscuro. A continuación, quiere colorear las celdas con valores negativos en naranja oscuro. Los valores de estos arrays tienen prioridad sobre los definidos en las propiedades del list box, así como los del array de color de fondo general: ```4d <>_BgndColorsCol_3{2}:=0x00FF8000 // naranja oscuro @@ -206,7 +206,7 @@ Puede obtener el mismo resultado utilizando los comandos [`LISTBOX SET ROW FONT ## Transparente -Define el fondo del list box como "Transparent". When set, any [alternate background color](#alternate-background-color) or [background color](#background-color--fill-color) defined for the column is ignored. +Define el fondo del list box como "Transparent". Cuando se define, se ignora cualquier [color de fondo alternativo](#alternate-background-color) o [color de fondo](#background-color--fill-color) definido para la columna. #### Gramática JSON diff --git a/i18n/es/docusaurus-plugin-content-docs/version-20-R6/Notes/updates.md b/i18n/es/docusaurus-plugin-content-docs/version-20-R6/Notes/updates.md index 0ab81c9d912119..6596e14429d519 100644 --- a/i18n/es/docusaurus-plugin-content-docs/version-20-R6/Notes/updates.md +++ b/i18n/es/docusaurus-plugin-content-docs/version-20-R6/Notes/updates.md @@ -17,7 +17,7 @@ Lea [**Novedades en 4D 20 R6**](https://blog.4d.com/en-whats-new-in-4d-20-R6/), - Nuevo archivo [4DCEFParameters.json](../FormObjects/webArea_overview.md#4dcefparametersjson) para personalizar las áreas web anidadas de 4D. - Nueva clase [HTTPAgent](../API/HTTPAgentClass.md) y nueva propiedad [`agent`](../API/HTTPRequestClass.md#options-parameter) para la clase HTTPRequest. - Nuevas funciones [`enableState()`](../API/WebFormClass.md) y [`disableState()`](../API/WebFormClass.md) para controlar los estados de las páginas Qodly desde el servidor. -- Nueva [\\\\\` API$singleton](../REST/$singleton.md) para llamar las funciones singleton expuestas desde REST y nuevos [privilegios asociados](../ORDA/privileges.md). +- Nueva [\\\\\\\\\` API$singleton](../REST/$singleton.md) para llamar las funciones singleton expuestas desde REST y nuevos [privilegios asociados](../ORDA/privileges.md). - Un [nuevo botón de parámetros](../settings/web.md#activate-rest-authentication-through-dsauthentify-function) le ayuda a actualizar su proyecto para utilizar el modo REST "conexión forzada" (el método base `On REST Authentication` es ahora obsoleto). - Una [nueva pestaña de parámetros](../Project/compiler.md#warnings) permite definir la generación de advertencias de forma global. - Varios comandos, principalmente del tema "Entorno 4D", ahora son hilo seguro ([ver la lista completa](https://doc.4d.com/4Dv20R6/4D/Preemptive_6957385.999-2878208.en.html)), así como algunos selectores de los comandos [`SET DATABASE PARAMETER`](https://doc.4d.com/4dv20R/help/command/en/page642.html)/[`Get database parameter`](https://doc.4d.com/4dv20R/help/command/en/page643.html). @@ -61,7 +61,7 @@ Lea [**Novedades en 4D 20 R4**](https://blog.4d.com/en-whats-new-in-4d-v20-R4/), #### Lo más destacado -- Soporte de [formato de cifrado ECDSA\\\\\`](../Admin/tls.md#encryption) para certificados TLS. +- Soporte de [formato de cifrado ECDSA\\\\\\\\\`](../Admin/tls.md#encryption) para certificados TLS. - Las conexiones TLS cliente/servidor y servidor SQL ahora se [configuran dinámicamente](../Admin/tls.md#enabling-tls-with-the-other-servers) (no se requieren archivos de certificado). - Formato HTML directo para [exportaciones de definición de estructura](https://doc.4d.com/4Dv20R4/4D/20-R4/Exporting-and-importing-structure-definitions.300-6654851.en.html). - Nuevo [Code Live Checker](../code-editor/write-class-method.md#warnings-and-errors) que mejora el control del código durante los pasos de declaración, comprobación de sintaxis y compilación para evitar errores de ejecución. diff --git a/i18n/es/docusaurus-plugin-content-docs/version-20-R6/Project/architecture.md b/i18n/es/docusaurus-plugin-content-docs/version-20-R6/Project/architecture.md index b5cf115da5b2fb..9601f0f53a8c81 100644 --- a/i18n/es/docusaurus-plugin-content-docs/version-20-R6/Project/architecture.md +++ b/i18n/es/docusaurus-plugin-content-docs/version-20-R6/Project/architecture.md @@ -109,9 +109,9 @@ Este archivo de texto también puede contener llaves de configuración, en parti #### `Triggers` -| Contenido | Descripción | Formato | -| -------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------- | ------- | -| table_*n*.4dm | Métodos trigger definidos en el proyecto. Un archivo de activación por tabla (n es el número de tabla) | text | +| Contenido | Descripción | Formato | +| -------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------- | ------- | +| table__n_.4dm | Métodos trigger definidos en el proyecto. Un archivo de activación por tabla (n es el número de tabla) | text | **Note:** The .4dm file extension is a text-based file format, containing the code of a 4D method. Es compatible con las herramientas de control de versión. @@ -237,4 +237,4 @@ Define la carpeta raíz por defecto del servidor web 4D para las páginas, las i ## Archivo `.gitignore` (opcional) -Archivo que especifica los archivos que serán ignorados por git. Puede incluir un archivo gitignore en sus proyectos utilizando la opción **Crear un archivo .gitignore** en la página **General** de las preferencias. Para configurar el contenido de ese archivo, consulte [Crear archivo `.gitignore`](Preferences/general.md#create-gitignore-file). +Archivo que especifica los archivos que serán ignorados por git. Archivo que especifica los archivos que serán ignorados por git. Puede incluir un archivo gitignore en sus proyectos utilizando la opción **Crear un archivo .gitignore** en la página **General** de las preferencias. diff --git a/i18n/es/docusaurus-plugin-content-docs/version-20-R6/Project/components.md b/i18n/es/docusaurus-plugin-content-docs/version-20-R6/Project/components.md index 1a818c281f4bd1..6ff25cae30e136 100644 --- a/i18n/es/docusaurus-plugin-content-docs/version-20-R6/Project/components.md +++ b/i18n/es/docusaurus-plugin-content-docs/version-20-R6/Project/components.md @@ -5,7 +5,7 @@ title: Componentes Un componente 4D es un conjunto de código y/o de formularios 4D que representan una o varias funcionalidades que pueden añadirse y utilizarse en sus proyectos. Por ejemplo, el componente [4D SVG](https://github.com/4d/4D-SVG) añade comandos avanzados y un motor de renderizado integrado que puede utilizarse para visualizar archivos SVG. -Puede [desarrollar](../Extensions/develop-components.md) y [crear](../Desktop/building.md) sus propios componentes 4D, o descargar componentes públicos compartidos por la comunidad 4D que [se pueden encontrar en GitHub](https://github.com/search?q=4d-component\&type=Repositories). +Puede [desarrollar](../Extensions/develop-components.md) y [crear](../Desktop/building.md) sus propios componentes 4D, o descargar componentes públicos compartidos por la comunidad 4D que [se pueden encontrar en GitHub](https://github.com/search?q=4d-component\\&type=Repositories). Al desarrollar en 4D, los archivos de los componentes pueden almacenarse de forma transparente en su ordenador o en un repositorio Github. @@ -118,7 +118,7 @@ Si no desea beneficiarse de la arquitectura **dependencies.json**, puede instala #### Personalizar rutas de componentes -Si desea personalizar la ubicación de los componentes locales, declare las rutas de las dependencias que no se almacenan en el mismo nivel que la carpeta del proyecto en el archivo [**environment4d.json**](#environment4djson). +Si la ruta de un componente declarado en el archivo **environment4d.json** no se encuentra cuando se inicia el proyecto, el componente no se carga y obtiene el estado *No encontrado* [status](dependency-status), incluso si existe una versión del componente junto a la carpeta de paquetes del proyecto. Puede utilizar rutas absolutas o relativas, expresadas en sintaxis POSIX como se describe en [este párrafo](../Concepts/paths#posix-syntax). Las rutas relativas son relativas al archivo environment4d.json. @@ -136,13 +136,13 @@ Ejemplos: :::note -Si la ruta de un componente declarado en el archivo **environment4d.json** no se encuentra cuando se inicia el proyecto, el componente no se carga y obtiene el estado *No encontrado* [status](dependency-status), incluso si existe una versión del componente junto a la carpeta de paquetes del proyecto. +Si desea personalizar la ubicación de los componentes locales, declare las rutas de las dependencias que no se almacenan en el mismo nivel que la carpeta del proyecto en el archivo [**environment4d.json**](#environment4djson). ::: ### Declarar componentes almacenados en GitHub -Los componentes 4D disponibles en GitHub pueden ser referenciados y cargados automáticamente en sus proyectos 4D. +Para poder referenciar y utilizar directamente un componente 4D almacenado en GitHub, es necesario configurar el repositorio del componente GitHub: :::note @@ -150,9 +150,9 @@ En cuanto a los componentes almacenados en GitHub, tanto los archivos [**depende ::: -#### Configuración del repositorio GitHub +#### Componentes almacenados en GitHub -Para poder referenciar y utilizar directamente un componente 4D almacenado en GitHub, es necesario configurar el repositorio del componente GitHub: +Los componentes 4D disponibles en GitHub pueden ser referenciados y cargados automáticamente en sus proyectos 4D. - Comprima los archivos componentes en formato ZIP. - Nombre este archivo con el mismo nombre que el repositorio GitHub. diff --git a/i18n/es/docusaurus-plugin-content-docs/version-20-R6/Project/documentation.md b/i18n/es/docusaurus-plugin-content-docs/version-20-R6/Project/documentation.md index 56bf06eb732926..82f4cfad16caac 100644 --- a/i18n/es/docusaurus-plugin-content-docs/version-20-R6/Project/documentation.md +++ b/i18n/es/docusaurus-plugin-content-docs/version-20-R6/Project/documentation.md @@ -196,30 +196,30 @@ The [documentation](https://doc.4d.com) of the command .... En el archivo `WP SwitchToolbar.md`, puede escribir: ````md - + GetLogo (size) -> logo -| Parameter | Type | in/out | Description | -| --------- | ------ | ------ | ----------- | -| size | Integer | in | Logo style selector (1 to 5) | -| logo | Picture | out | Selected logo | +| Parámetro | Tipo | Entrada/Salida | Descripción | +| --------- | ------ | -------------- | ----------- | +| size | Integer | Entrada | Selector de estilo de logo (1 a 5) | +| logo | Picture | Salida | Logo seleccionado | -## Description +## Descripción -This method returns a logo of a specific size, depending on the value of the *size* parameter. -1 = smallest size, 5 = largest size. +Este método devuelve un logo de un tamaño específico, dependiendo del valor del parámetro *size*. +1 = tamaño más pequeño, 5 = tamaño más grande. -## Example +## Ejemplo ```4d C_PICTURE($logo) C_LONGINT($size) -//Get the largest logo +//Obtener el logo más grande $logo:=GetLogo(5) ``` ```` diff --git a/i18n/es/docusaurus-plugin-content-docs/version-20-R6/REST/$catalog.md b/i18n/es/docusaurus-plugin-content-docs/version-20-R6/REST/$catalog.md index 30373c372355e3..df494152504e9f 100644 --- a/i18n/es/docusaurus-plugin-content-docs/version-20-R6/REST/$catalog.md +++ b/i18n/es/docusaurus-plugin-content-docs/version-20-R6/REST/$catalog.md @@ -16,7 +16,7 @@ El catálogo describe todas las clases de datos, atributos y [singletoneos inter ## $catalog -Returns [shared singletons](#singletons) (if any) and a list of the dataclasses in your project along with two URIs: one to access the information about its structure and one to retrieve the data in the dataclass +Devuelve [shared singletons](#singletons) (si existe) y una lista de las clases de datos de su proyecto junto con dos URIs: una para acceder a la información sobre su estructura y otra para recuperar los datos de la clase de datos ### Descripción diff --git a/i18n/es/docusaurus-plugin-content-docs/version-20-R6/REST/authUsers.md b/i18n/es/docusaurus-plugin-content-docs/version-20-R6/REST/authUsers.md index d042a365ee7017..48d7d412c13493 100644 --- a/i18n/es/docusaurus-plugin-content-docs/version-20-R6/REST/authUsers.md +++ b/i18n/es/docusaurus-plugin-content-docs/version-20-R6/REST/authUsers.md @@ -39,7 +39,7 @@ La secuencia de inicio de sesión del usuario es la siguiente: En la fase de inicio de sesión del usuario, el uso de la licencia está desconectado de las sesiones de usuario web. Sólo se requiere una licencia cuando se ejecuta el comando [`Session.setPrivileges()`](../API/SessionClass.md#setprivileges), lo que permite controlar el número de licencias utilizadas. -Todas las demás peticiones REST (manejando datos o ejecutando una función) sólo serán procesadas si son ejecutadas dentro de una sesión web con privilegios apropiados, de lo contrario devuelven un error. Sintaxis Sintaxis Sintaxis Sintaxis Ejecutar esta función activa el consumo de la licencia 4D. +Todas las demás peticiones REST (manejando datos o ejecutando una función) sólo serán procesadas si son ejecutadas dentro de una sesión web con privilegios apropiados, de lo contrario devuelven un error. Sintaxis Sintaxis Sintaxis Sintaxis Sintaxis Sintaxis Sintaxis Sintaxis Ejecutar esta función activa el consumo de la licencia 4D. ### Peticiones REST descriptivas diff --git a/i18n/es/docusaurus-plugin-content-docs/version-20-R6/ViewPro/commands/vp-resize-table.md b/i18n/es/docusaurus-plugin-content-docs/version-20-R6/ViewPro/commands/vp-resize-table.md index 6ffb5b49b597d9..e9f8717eea9589 100644 --- a/i18n/es/docusaurus-plugin-content-docs/version-20-R6/ViewPro/commands/vp-resize-table.md +++ b/i18n/es/docusaurus-plugin-content-docs/version-20-R6/ViewPro/commands/vp-resize-table.md @@ -29,7 +29,7 @@ El comando `VP RESIZE TABLE` cambi Se aplican las siguientes reglas: - Los encabezados deben permanecer en la misma línea y el rango de la tabla resultante debe superponerse al rango de la tabla original. -- If the row count of the resized table is inferior to the initial row count, values inside cropped rows or columns are kept if they were not bound to a [data context](vp-set-data-context.md), otherwise they are deleted. +- Si el conteo de líneas de la tabla redimensionada es inferior al conteo de líneas inicial, los valores dentro de las líneas o columnas recortadas se mantienen si no estaban vinculados a un [contexto de datos](vp-set-data-context.md), de lo contrario se eliminan. - Si la tabla se expande en las celdas que contienen datos: - si se añaden líneas, se eliminan datos, - si se añaden columnas, los datos se mantienen y se muestran en nuevas columnas. diff --git a/i18n/es/docusaurus-plugin-content-docs/version-20-R6/ViewPro/configuring.md b/i18n/es/docusaurus-plugin-content-docs/version-20-R6/ViewPro/configuring.md index 8bd86830f034ce..90c25e38cb9edf 100644 --- a/i18n/es/docusaurus-plugin-content-docs/version-20-R6/ViewPro/configuring.md +++ b/i18n/es/docusaurus-plugin-content-docs/version-20-R6/ViewPro/configuring.md @@ -126,7 +126,7 @@ La definición de un modelo de formato garantiza que el contenido de sus documen 4D View Pro tiene formatos integrados para números, fechas, horas y texto, pero también puede crear sus propios modelos para dar formato al contenido de las celdas utilizando caracteres y códigos especiales. -For example, when using the [VP SET VALUE](commands/vp-set-value.md) or [VP SET NUM VALUE](commands/vp-set-num-value.md) commands to enter amounts in an invoice, you may want the currency symbols ($, €, ¥, etc.) alinearse independientemente del espacio requerido por el número (es decir, si el importe es de 5,00 $ o de 5.000,00 $). Podría utilizar caracteres de formato y espectificar el patrón *($\* #,##0.00*) que mostraría los importes como se muestra: +Por ejemplo, al usar los comandos [VP SET VALUE](commands/vp-set-value.md) o [VP SET NUM VALUE](commands/vp-set-num-value.md) para introducir cantidades en una factura, puede que desee utilizar los símbolos de moneda ($, €, ¥, etc.) alinearse independientemente del espacio requerido por el número (es decir, si el importe es de 5,00 $ o de 5.000,00 $). Podría utilizar caracteres de formato y espectificar el patrón *($\* #,##0.00*) que mostraría los importes como se muestra: ![](../assets/en/ViewPro/apx_vpCellFormat1.PNG) diff --git a/i18n/es/docusaurus-plugin-content-docs/version-20-R6/WebServer/authentication.md b/i18n/es/docusaurus-plugin-content-docs/version-20-R6/WebServer/authentication.md index b2682aae87aa67..3cb41875949217 100644 --- a/i18n/es/docusaurus-plugin-content-docs/version-20-R6/WebServer/authentication.md +++ b/i18n/es/docusaurus-plugin-content-docs/version-20-R6/WebServer/authentication.md @@ -28,7 +28,7 @@ Básicamente, en este modo, depende del desarrollador definir cómo autenticar a Este modo de autenticación es el más flexible porque permite: - o bien, delegar la autenticación del usuario a una aplicación de terceros (por ejemplo, una red social, SSO); -- o bien, ofrecer una interfaz al usuario (por ejemplo, un formulario web) para que pueda crear su cuenta en su base de datos clientes; luego, puede autenticar a los usuarios con cualquier algoritmo personalizado (ver [este ejemplo](sessions.md#example) del Lo importante es que nunca guarde la contraseña en claro, utilizando ese código: Lo importante es que nunca guarde la contraseña en claro, utilizando ese código: Lo importante es que nunca guarde la contraseña en claro, utilizando ese código: Lo importante es que nunca guarde la contraseña en claro, utilizando ese código: Lo importante es que nunca guarde la contraseña en claro, utilizando ese código: +- o bien, ofrecer una interfaz al usuario (por ejemplo, un formulario web) para que pueda crear su cuenta en su base de datos clientes; luego, puede autenticar a los usuarios con cualquier algoritmo personalizado (ver [este ejemplo](sessions.md#example) del Lo importante es que nunca guarde la contraseña en claro, utilizando ese código: Lo importante es que nunca guarde la contraseña en claro, utilizando ese código: Lo importante es que nunca guarde la contraseña en claro, utilizando ese código: Lo importante es que nunca guarde la contraseña en claro, utilizando ese código: Lo importante es que nunca guarde la contraseña en claro, utilizando ese código: Lo importante es que nunca guarde la contraseña en claro, utilizando ese código: ```4d //... creación de cuenta de usuario @@ -157,7 +157,7 @@ El parámetro `$4` recibe la dirección IP utilizada para llamar al servidor web #### $5 y $6 - Nombre de usuario y contraseña -Los parámetros `$5` y `$6` reciben el nombre de usuario y la contraseña introducidos por el usuario en la caja de diálogo de identificación estándar que muestra el navegador. Generalidades Generalidades Generalidades Esta caja de diálogo aparece para cada conexión, si se selecciona la autenticación [basic](#basic-protocol) o [digest](#digest-protocol). +Los parámetros `$5` y `$6` reciben el nombre de usuario y la contraseña introducidos por el usuario en la caja de diálogo de identificación estándar que muestra el navegador. Generalidades Generalidades Generalidades Generalidades Generalidades Generalidades Generalidades Esta caja de diálogo aparece para cada conexión, si se selecciona la autenticación [basic](#basic-protocol) o [digest](#digest-protocol). > Si el nombre de usuario enviado por el navegador existe en 4D, el parámetro $6 (la contraseña del usuario) no se devuelve por razones de seguridad. diff --git a/i18n/es/docusaurus-plugin-content-docs/version-20-R6/WebServer/httpRequests.md b/i18n/es/docusaurus-plugin-content-docs/version-20-R6/WebServer/httpRequests.md index c7d490a07cae3b..eeeb585b348fea 100644 --- a/i18n/es/docusaurus-plugin-content-docs/version-20-R6/WebServer/httpRequests.md +++ b/i18n/es/docusaurus-plugin-content-docs/version-20-R6/WebServer/httpRequests.md @@ -338,6 +338,6 @@ El servidor web de 4D ahora soporta archivos cargados con codificación chunked ## Método proyecto COMPILER_WEB -El método COMPILER\WEB, si existe, es llamado sistemáticamente cuando el servidor HTTP recibe una petición dinámica y llama al motor 4D. Este es el caso, por ejemplo, cuando el servidor web de 4D recibe un formulario publicado o una URL para procesar en [`On Web Connection`](#on-web-connection). Este método está destinado a contener directivas de digitación y/o inicialización de variables utilizadas durante los intercambios web. Es utilizado por el compilador cuando se compila la aplicación. El método COMPILER\WEB es común a todos los formularios web. Por defecto, el método COMPILER_WEB no existe. Debe crearlo explícitamente. +El método COMPILER\WEB, si existe, es llamado sistemáticamente cuando el servidor HTTP recibe una petición dinámica y llama al motor 4D. El método COMPILER\WEB, si existe, es llamado sistemáticamente cuando el servidor HTTP recibe una petición dinámica y llama al motor 4D. Este método está destinado a contener directivas de digitación y/o inicialización de variables utilizadas durante los intercambios web. Es utilizado por el compilador cuando se compila la aplicación. El método COMPILER\WEB es común a todos los formularios web. Por defecto, el método COMPILER_WEB no existe. Debe crearlo explícitamente. > También se llama al método proyecto COMPILER_WEB, si existe, para cada solicitud SOAP aceptada. diff --git a/i18n/es/docusaurus-plugin-content-docs/version-20-R6/WebServer/sessions.md b/i18n/es/docusaurus-plugin-content-docs/version-20-R6/WebServer/sessions.md index 69d6b7990fa41d..21b7dac13c9d8f 100644 --- a/i18n/es/docusaurus-plugin-content-docs/version-20-R6/WebServer/sessions.md +++ b/i18n/es/docusaurus-plugin-content-docs/version-20-R6/WebServer/sessions.md @@ -38,7 +38,7 @@ En cualquier caso, la configuración es local para la máquina; por lo que puede ## Implementación de la sesión -Cuando [se habilitan las sesiones](#enabling-sessions), se implementan mecanismos automáticos, basados en una cookie privada establecida por el propio 4D: "4DSID_*AppName*", donde *AppName* es el nombre del proyecto de la aplicación. Esta cookie hace referencia a la sesión web actual de la aplicación. +Cuando [se habilitan las sesiones](#enabling-sessions), se implementan mecanismos automáticos, basados en una cookie privada establecida por el propio 4D: "4DSID__AppName_", donde *AppName* es el nombre del proyecto de la aplicación. Esta cookie hace referencia a la sesión web actual de la aplicación. :::info @@ -46,13 +46,13 @@ El nombre de la cookie se puede obtener utilizando la propiedad [`.sessionCookie ::: -1. En cada petición del cliente web, el servidor web comprueba la presencia y el valor de la cookie privada "4DSID_*AppName*". +1. En cada petición del cliente web, el servidor web comprueba la presencia y el valor de la cookie privada "4DSID__AppName_". 2. Si la cookie tiene un valor, 4D busca la sesión que creó esta cookie entre las sesiones existentes; si se encuentra esta sesión, se reutiliza para la llamada. 3. Si la solicitud del cliente no corresponde a una sesión ya abierta: -- se crea una nueva sesión con una cookie privada "4DSID_*AppName*" en el servidor web +- se crea una nueva sesión con una cookie privada "4DSID__AppName_" en el servidor web - se crea un nuevo objeto Guest `Session` dedicado a la sesión web escalable. :::note @@ -100,7 +100,7 @@ Puede cerrar una sesión desde un formulario Qodly utilizando la función [**log ## Privilegios -Los privilegios pueden asociarse a sesiones de usuario web. En el servidor web, puede proporcionar un acceso o unas funcionalidades específicas en función de los privilegios de la sesión. +Fecha de caducidad de la sesión En el servidor web, puede proporcionar un acceso o unas funcionalidades específicas en función de los privilegios de la sesión. Puedes asignar privilegios utilizando la función [`.setPrivileges()`](API/SessionClass.md#setprivileges). En su código, puede comprobar los privilegios de la sesión para permitir o denegar el acceso utilizando la función [`.hasPrivilege()`](API/SessionClass.md#hasprivilege). Por defecto, las sesiones nuevas no tienen ningún privilegio: son sesiones **Invitadas** (la función [`.isGuest()`](API/SessionClass.md#isguest) devuelve true). diff --git a/i18n/es/docusaurus-plugin-content-docs/version-20-R7/API/CollectionClass.md b/i18n/es/docusaurus-plugin-content-docs/version-20-R7/API/CollectionClass.md index aa1769b059c160..76dd5f03615110 100644 --- a/i18n/es/docusaurus-plugin-content-docs/version-20-R7/API/CollectionClass.md +++ b/i18n/es/docusaurus-plugin-content-docs/version-20-R7/API/CollectionClass.md @@ -5,13 +5,12 @@ title: Collection La clase Collection gestiona variables de tipo [Collection](Concepts/dt_collection.md). -Una colección es inicializada con los comandos [`New collection`](../commands/new-collection.md) o [`New shared collection`](../commands/new-shared-collection.md). +Ejemplo 3 ### Ejemplo ```4d - var $colVar : Collection //creación de una variable 4D de tipo colección - $colVar:=New collection //inicialización de la colección y asignación a la variable 4D +Notas ``` ### Resumen @@ -58,7 +57,7 @@ Una colección es inicializada con los comandos [`New collection`](../commands/n | [](#reduceRight)
    | | [](#remove)
    | | [](#resize)
    | -| [](#orderby)
    | +| Ejemplo 2 | | [](#shift)
    | | [](#slice)
    | | [](#some)
    | @@ -82,33 +81,27 @@ Una colección es inicializada con los comandos [`New collection`](../commands/n -| Parámetros | Tipo | | Descripción | -| ---------- | ------- | :-------------------------: | ------------------------------ | -| index | Integer | -> | Índice del elemento a devolver | -| Result | any | <- | El elemento en ese índice | +| Parámetros | Tipo | | Descripción | +| ---------- | ------- | :-------------------------: | ----------------------------------------------------------------------------------- | +| index | Integer | -> | Índice del elemento a devolver | +| Result | any | <- | Este ejemplo devuelve las personas contratadas hace más de 90 días: | #### Descripción -La función `.at()` devuelve el elemento en la posición *index*, permitiendo enteros positivos y negativos. +Igual a > Esta función no modifica la colección original. Los números enteros negativos cuentan hacia atrás desde el último elemento de la colección. -La función devuelve Undefined si el *index* sobrepasa los límites de la colección. +Igual a #### Ejemplo ```4d -var $col : Collection -$col:=New collection(10; 20; 30; 40; 50) -$element:=$col.at(0) // 10 -$element:=$col.at(1) // 20 -$element:=$col.at(-1) // 50 -$element:=$col.at(-2) // 40 -$element:=$col.at(10) // indefinido +Lanzamiento ``` @@ -129,26 +122,26 @@ $element:=$col.at(10) // indefinido -| Parámetros | Tipo | | Descripción | -| ------------ | --------------- | :-------------------------: | ----------------------------------------------------------------------------- | -| propertyPath | Text | -> | Ruta de la propiedad del objeto que se utilizará para el cálculo | -| Result | Real, Undefined | <- | Media aritmética (promedio) de los valores de la colección | +| Parámetros | Tipo | | Descripción | +| ------------ | --------------- | :-------------------------: | ---------------------------------------------------------------- | +| propertyPath | Text | -> | Ruta de la propiedad del objeto que se utilizará para el cálculo | +| Result | Real, Undefined | <- | donde: | #### Descripción -La función `.average()` devuelve la media aritmética (promedio) de los valores definidos en la instancia de la colección. +Diferente de Para el cálculo sólo se tienen en cuenta los elementos numéricos (se ignoran otros tipos de elementos). -Si la colección contiene objetos, pasa el parámetro *propertyPath* para indicar la propiedad del objeto a tener en cuenta. +Uso del paréntesis -`.average()` devuelve `undefined` si: +Number, Text, Date, Time, Boolean, Object, Collection, Picture, Pointer - la colección está vacía, - la colección no contiene elementos numéricos, -- *propertyPath* no se encuentra en la colección. +- Lanzamiento #### Ejemplo 1 @@ -187,15 +180,15 @@ Si la colección contiene objetos, pasa el parámetro *propertyPath* para indica -| Parámetros | Tipo | | Descripción | -| ---------- | ---------- | :-------------------------: | ----------------------------------------------------- | -| Result | Collection | <- | Colección original con todos los elementos eliminados | +| Parámetros | Tipo | | Descripción | +| ---------- | ---------- | :-------------------------: | ------------------------------------------- | +| Result | Collection | <- | Colección original sin elementos eliminados | #### Descripción -La función `.clear()` elimina todos los elementos de la instancia de la colección y devuelve una colección vacía. +Debe prestar atención a los siguientes aspectos de la conversión: > Esta función modifica la colección original. @@ -230,7 +223,7 @@ $vSize:=$col.length //$vSize=0 | ---------- | ---------- | :-------------------------: | ------------------------------------------------------------------------------------------------------------------------ | | col2 | Collection | -> | Colección a combinar | | index | Integer | -> | Posición a la que se deben combinar los elementos de inserción en la colección (por defecto=length+1) | -| Result | Collection | <- | Colección original que contiene elementos combinados | +| Result | Collection | <- | Colección original sin elementos eliminados | @@ -242,11 +235,11 @@ La función `.combine()` inserta eleme Por defecto, los elementos *col2* se añaden al final de la colección original. Puede pasar en *index* la posición donde desea insertar los elementos *col2* en la colección. -> **Atención**: recuerde que los elementos de la colección están numerados desde 0. +> Diferente de -- Si *index* > la longitud de la colección, el *index* inicial real será la longitud de la colección. -- Si *index* < 0, se recalcula como *index:=index+length* (se considera el desplazamiento desde el final de la colección). -- Si el valor calculado es negativo, *index* toma el valor 0. +- Ejemplo 1 +- Ejemplo 3 +- En caso de incoherencia, se aplican las siguientes reglas: #### Ejemplo @@ -275,20 +268,20 @@ $c.combine($fruits;3) //[1,2,3,"Orange","Banana","Apple","Grape",4,5,6] -| Parámetros | Tipo | | Descripción | -| ---------- | -------------------------------------------------------------- | :-------------------------: | ---------------------------------------------------------------------------------------------------------------------------------------- | -| value | Number, Text, Object, Collection, Date, Time, Boolean, Picture | -> | Valores a concatenar. Si *value* es una colección, todos los elementos de la colección se añaden a la colección original | -| Result | Collection | <- | Nueva colección con valor(es) añadido(s) a la colección original | +| Parámetros | Tipo | | Descripción | +| ---------- | -------------------------------------------------------------- | :-------------------------: | --------------------------------------------------------------------------------------------------------------------------------------------------- | +| value | Number, Text, Object, Collection, Date, Time, Boolean, Picture | -> | Valores a concatenar. Si *value* es una colección, todos sus elementos se añaden al final de la colección original. | +| Result | Collection | <- | Colección original con valores rellenados | #### Descripción -La función.`.concat()` devuelve una nueva colección que contiene los elementos de la colección original con todos los elementos del parámetro *value* añadidos al final. +Colección compartida que se agrupa con la colección resultante > Esta función no modifica la colección original. -Si *value* es una colección, todos sus elementos se añaden al final de la colección original. Si *value* no es una colección, se añade ella misma como un nuevo elemento. +La colección devuelta contiene el elemento especificado por *startFrom* y todos los elementos subsiguientes hasta, pero sin incluir, el elemento especificado por *end*. Si sólo se especifica el parámetro *startFrom*, la colección devuelta contiene todos los elementos desde *startFrom* hasta el último elemento de la colección original. #### Ejemplo @@ -320,29 +313,29 @@ $c2:=$c.concat(6;7;8) //[1,2,3,4,5,6,7,8] -| Parámetros | Tipo | | Descripción | -| ------------ | ---------- | :-------------------------: | -------------------------------------------------------------------------------------------------------------------------------------------- | -| option | Integer | -> | `ck resolve pointers`: resolver punteros antes de copiar,
    `ck shared`: devolver una colección compartida | -| groupWithCol | Collection | -> | Colección compartida que se agrupa con la colección resultante | -| groupWithObj | Object | -> | Objeto compartido que se agrupa con la colección resultante | -| Result | Collection | <- | Copia profunda de la colección original | +| Parámetros | Tipo | | Descripción | +| ------------ | ---------- | :-------------------------: | -------------------------------------------------------------- | +| option | Integer | -> | Ejemplo 3 | +| groupWithCol | Collection | -> | Colección compartida que se agrupa con la colección resultante | +| groupWithObj | Object | -> | Objeto compartido que se agrupa con la colección resultante | +| Result | Collection | <- | Colección original ordenada | #### Descripción -La función `.copy()` devuelve una copia profunda de la instancia de la colección.***Deep copy*** significa que los objetos o colecciones dentro de la colección original se duplican y no comparten ninguna referencia con la colección devuelta. +Uso de marcadores de posición > Esta función no modifica la colección original. -Si se pasa, el parámetro *option* puede contener una de las siguientes constantes (o ambas): +Lanzamiento | option | Descripción | | --------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -| `ck resolve pointers` | Si la colección original contiene valores de tipo puntero, por defecto la copia también contiene los punteros. Sin embargo, puede resolver los punteros al copiar pasando la constante `ck resolve pointers`. En este caso, cada puntero presente en la colección se evalúa al copiar y se utiliza su valor desreferenciado. | +| `ck resolve pointers` | Si la colección original contiene valores de tipo puntero, por defecto la copia también contiene los punteros. Si la colección original contiene valores de tipo puntero, por defecto la copia también contiene los punteros. En este caso, cada puntero presente en la colección se evalúa al copiar y se utiliza su valor desreferenciado. | | `ck shared` | Por defecto, `copy()` devuelve una colección Clásica (no compartida), incluso si el comando se aplica a una colección compartida. Pasa la constante `ck shared` para crear una colección compartida. En este caso, puede utilizar el parámetro *groupWith* para asociar la colección compartida con otra colección u objeto (ver más adelante). | -Los parámetros *groupWithCol* o *groupWithObj* permiten designar una colección o un objeto al que se debe asociar la colección resultante. +Ejemplo 2 :::note @@ -374,7 +367,7 @@ End use #### Ejemplo 2 -Queremos combinar *$sharedColl1* y *$sharedColl2*. Dado que pertenecen a diferentes grupos compartidos, una combinación directa daría lugar a un error. Por lo tanto, debemos hacer una copia compartida de *$sharedColl1* y designar *$sharedColl2* como grupo compartido para la copia. +Queremos combinar *$sharedColl1* y *$sharedColl2*. Dado que pertenecen a diferentes grupos compartidos, una combinación directa daría lugar a un error. Dado que pertenecen a diferentes grupos compartidos, una combinación directa daría lugar a un error. ```4d var $sharedColl1;$sharedColl2;$copyColl : Collection @@ -409,24 +402,10 @@ End use #### Ejemplo 4 -Este ejemplo ilustra el uso de la opción `ck resolve pointers`: +Primer elemento de la colección ```4d - var $col : Collection - var $p : Pointer - $p:=->$what - - $col:=New collection - $col.push(New object("alpha";"Hello";"num";1)) - $col.push(New object("beta";"You";"what";$p)) - - $col2:=$col.copy() - $col2[1].beta:="World!" - ALERT($col[0].alpha+" "+$col2[1].beta) //muestra "Hello World!" - - $what:="You!" - $col3:=$col2.copy(ck resolve pointers) - ALERT($col3[0].alpha+" "+$col3[1].what) //muestra "Hello You!" +Mayor que ``` @@ -450,13 +429,13 @@ Este ejemplo ilustra el uso de la opción `ck resolve pointers`: | Parámetros | Tipo | | Descripción | | ------------ | ---- | :-------------------------: | ---------------------------------------------------------------- | | propertyPath | Text | -> | Ruta de la propiedad del objeto que se utilizará para el cálculo | -| Result | Real | <- | Número de elementos en la colección | +| Result | Real | <- | Colección que contiene los elementos añadidos | #### Descripción -La función `.count()` devuelve el número de elementos no nulos en la colección. +Colección original sin elementos eliminados Si la colección contiene objetos, puede pasar el parámetro *propertyPath*. En este caso, sólo se tienen en cuenta los elementos que contienen el *propertyPath*. @@ -497,22 +476,22 @@ Si la colección contiene objetos, puede pasar el parámetro *propertyPath*. En | ------------ | ----------------------------------------------- | :-------------------------: | ---------------------------------------------------------------- | | value | Text, Number, Boolean, Date, Object, Collection | -> | Valor a contar | | propertyPath | Text | -> | Ruta de la propiedad del objeto que se utilizará para el cálculo | -| Result | Real | <- | Número de ocurrencias del valor | +| Result | Real | <- | Valor a contar | #### Descripción -La función `.countValues()` devuelve el número de veces que se encuentra el valor en la colección. +Mayor o igual que -Puede pasar en *value*: +Colección original ordenada - un valor escalar (texto, número, booleano, fecha), - una referencia de objeto o de colección. -Para encontrar un elemento, el tipo de *value* debe ser equivalente al tipo del elemento; el método utiliza el operador de igualdad. +Tipo -El parámetro opcional *propertyPath* permite contar valores dentro de una colección de objetos: pase en *propertyPath* la ruta de la propiedad cuyos valores quiere contar. +Resumen > Esta función no modifica la colección original. @@ -559,10 +538,10 @@ El parámetro opcional *propertyPath* permite contar valores dentro de una colec
    Historia -| Lanzamiento | Modificaciones | -| ----------- | ---------------------------- | -| 20 | Soporte de `ck count values` | -| v16 R6 | Añadidos | +| Lanzamiento | Modificaciones | +| ----------- | ------------------------------------------------------------------------------------------------------------------------------------------------- | +| 20 | Si se intenta eliminar un elemento de una colección vacía, el método no hace nada (no se genera ningún error). | +| v16 R6 | Añadidos |
    @@ -574,21 +553,21 @@ El parámetro opcional *propertyPath* permite contar valores dentro de una colec | ------------ | ---------- | :-------------------------: | ------------------------------------------------------- | | propertyPath | Text | -> | Ruta del atributo cuyos valores distintos desea obtener | | options | Integer | -> | `ck diacritical`, `ck count values` | -| Result | Collection | <- | Nueva colección con sólo valores distintos | +| Result | Collection | <- | Lanzamiento | #### Descripción -La función `.distinct()` devuelve una colección que contiene sólo valores distintos (diferentes) de la colección original. +Colección original con valores rellenados > Esta función no modifica la colección original. La colección devuelta se clasifica automáticamente. Los valores **Null** no son devueltos. -Si la colección contiene objetos, puede pasar el parámetro *propertyPath* para indicar la propiedad del objeto cuyos valores distintos desea obtener. +Índice para iniciar la prueba en -En el parámetro *options*, puede pasar una o una combinación de las siguientes constantes: +Ejemplos | Constante | Valor | Comentario | | ----------------- | ----- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | @@ -629,26 +608,26 @@ En el parámetro *options*, puede pasar una o una combinación de las siguientes -| Parámetros | Tipo | | Descripción | -| ----------- | ---------- | :-------------------------: | -------------------------------------------------------------------------------------------------- | -| collection2 | Collection | -> | Colección a comparar | -| option | Integer | -> | `ck diacritical`: evaluación diacrítica ("A" # "a" por ejemplo) | -| Result | Boolean | <- | True si las colecciones son idénticas, false en caso contrario | +| Parámetros | Tipo | | Descripción | +| ----------- | ---------- | :-------------------------: | -------------------- | +| collection2 | Collection | -> | Colección a comparar | +| option | Integer | -> | Añadidos | +| Result | Boolean | <- | Descripción | #### Descripción -La función `.equal()` compara recursivamente el contenido de la colección y *collection2* (comparación profunda/deep comparison) y devuelve **true** si son idénticas. +Tipo :::note Notas - La función `.equal()` solo comprueba la igualdad para los elementos de tipo cadena, booleano, número y null en las colecciones. No verifica la igualdad para objetos nativos. -- Los elementos con valores **null** no son iguales a los elementos Undefined. +- Constantes **null**: utilizando la palabra clave "null" se encontrarán las propiedades **null** y **undefined**. ::: -Por defecto, se realiza una evaluación no diacrítica. Si desea que la evaluación diferencie entre mayúsculas y minúsculas o que diferencie los caracteres acentuados, pase la constante `ck diacritical` en el parámetro option. +Por defecto, se realiza una evaluación no diacrítica. La evaluación distingue entre mayúsculas y minúsculas y diferencia los caracteres acentuados. :::tip @@ -698,59 +677,50 @@ Una comparación recursiva de colecciones puede llevar mucho tiempo si la colecc -| Parámetros | Tipo | | Descripción | -| ---------- | --------------------------- | :-------------------------: | ------------------------------------------------------------------ | -| startFrom | Integer | -> | Índice para iniciar la prueba en | -| formula | 4D.Function | -> | Objeto fórmula | -| methodName | Text | -> | Nombre de un método | -| param | any | -> | Parámetro(s) a pasar a *formula* o \*methodName | -| Result | Boolean | <- | True si todos los elementos han pasado la prueba con éxito | +| Parámetros | Tipo | | Descripción | +| ---------- | --------------------------- | :-------------------------: | -------------------------------- | +| startFrom | Integer | -> | Índice para iniciar la prueba en | +| formula | 4D.Function | -> | Objeto fórmula | +| methodName | Text | -> | Nombre de un método | +| param | any | -> | Colección original ordenada | +| Result | Boolean | <- | Lanzamiento | #### Descripción -La función `.every()` devuelve **true** si todos los elementos de la colección han superado con éxito una prueba implementada en el objeto *formula* o el método *methodName*. +Índice para iniciar la búsqueda en Se designa la retrollamada a ejecutar para evaluar los elementos de la colección utilizando: -- *formula* (sintaxis recomendada), un [objeto Fórmula](FunctionClass.md) que puede encapsular toda expresión ejecutable, incluyendo funciones y métodos proyecto; -- o *methodName*, el nombre de un método proyecto (texto). +- Comparación +- Tipo La retrollamada se llama con los parámetros pasados en *param* (opcional). La retrollamada puede efecturar toda prueba, con o sin los parámetros, y debe devolver *true* para cada elemento que cumpla la prueba. Recibe un `Object` en el primer parámetro ($1). La retrollamada recibe los siguientes parámetros: -- en *$1.value*: valor del elemento a evaluar -- en *$2*: param -- en *$N...*: paramN... +- Lanzamiento +- Colección original sin elementos eliminados +- Este ejemplo comprueba que todos los elementos de una colección son de tipo real: Puede definir los siguientes parámetros: -- (obligatorio si se ha utilizado un método) *$1.result* (booleano): **true** si la evaluación del valor del elemento tiene éxito, **false** en caso contrario. -- *$1.stop* (booleano, opcional): **true** para detener la retrollamada del método. El valor devuelto es el último calculado. +- Copia invertida de la colección +- *$1.stop* (boolean, opcional): **true** para detener la retrollamada del método. El valor devuelto es el último calculado. -En todos los casos, cuando la función `.every()` encuentra el primer elemento de la colección evaluado como **false**, deja de llamar a la retrollamada y devuelve **false**. +Menor o igual que Por defecto, `.every()` evalúa toda la colección. Opcionalmente, se puede pasar en *startFrom* el índice del elemento desde el que iniciar la prueba. -- Si *startFrom* >= la longitud de la colección, se devuelve **false**, lo que significa que no se prueba la colección. -- Si *startFrom* < 0, se considera el desplazamiento desde el final de la colección (*startFrom:=startFrom+length*). -- Si *startFrom* = 0, se busca en toda la colección (por defecto). +- Tipo +- Diferente de Si *startFrom* < 0, se considera el desplazamiento desde el final de la colección (*startFrom:=startFrom+length*). +- Descripción #### Ejemplo 1 ```4d -var $c : Collection -var $b : Boolean -var $f : 4D.Function - -$f:=Formula($1.value>0) -$c:=New collection -$c.push(5;3;1;4;6;2) -$b:=$c.every($f) //devuelve true -$c.push(-1) -$b:=$c.every($f) //devuelve false +Comentario ``` #### Ejemplo 2 @@ -794,19 +764,19 @@ $b:=$c.every($f;Is real) //$b=false | propertyPath | Text | -> | Ruta de la propiedad del objeto cuyos valores deben ser extraídos a la nueva colección | | targetpath | Text | -> | Ruta de la propiedad de destino o nombre de la propiedad | | option | Integer | -> | `ck keep null`: incluye la propiedad null en la colección devuelta (se ignora por defecto). Parámetro ignorado si se pasa *targetPath*. | -| Result | Collection | <- | Nueva colección que contiene los valores extraídos | +| Result | Collection | <- | Lanzamiento | #### Descripción -La función `.extract()` crea y devuelve una nueva colección que contiene valores *propertyPath* extraídos de la colección original de objetos. +Menor que > Esta función no modifica la colección original. -El contenido de la colección devuelta depende del parámetro *targetPath*: +Ejemplo -- Si se omite el parámetro *targetPath*, `.extract()` llena la nueva colección con los valores *propertyPath* de la colección original. +- Ejemplo Por defecto, los elementos cuya *propertyPath* es null o indefinida se ignoran en la colección resultante. Puede pasar la constante `ck keep null` en el parámetro *option* para incluir estos valores como elementos null en la colección devuelta. @@ -859,30 +829,30 @@ $c2:=$c.extract("name";"City";"zc";"Zip") //$c2=[{Zip:35060},{City:null,Zip:3504 -| Parámetros | Tipo | | Descripción | -| ---------- | ----------------------------------------------- | :-------------------------: | ---------------------------------------------- | -| value | number, Text, Collection, Object, Date, Boolean | -> | Valor a asignar | -| startFrom | Integer | -> | Índice de inicio (incluido) | -| end | Integer | -> | Índice final (no incluido) | -| Result | collection | <- | Colección original con valores rellenados | +| Parámetros | Tipo | | Descripción | +| ---------- | ----------------------------------------------- | :-------------------------: | ----------------------------------------------------------------------------------------- | +| value | number, Text, Collection, Object, Date, Boolean | -> | Valor a asignar | +| startFrom | Integer | -> | Índice de inicio (incluido) | +| end | Integer | -> | Índice final (no incluido) | +| Result | collection | <- | *methodName*, el nombre de un método proyecto (texto). | #### Descripción -La función `.fill()` llena la colección con el *valor* especificado, opcionalmente desde el índice *startFrom* hasta el índice *end*, y devuelve la colección resultante. +Diferente de Si *startFrom* < 0, se considera el desplazamiento desde el final de la colección (*startFrom:=startFrom+length*). > Esta función modifica la colección original. -- Si se omite el parámetro *startFrom*, *value* se aplica a todos los elementos de la colección (*startFrom*=0). -- Si se pasa el parámetro *startFrom* y se omite *end*, *value* se aplica a los elementos de la colección a partir de *startFrom* hasta el último elemento de la colección (*end*=length). -- Si se pasan tanto el parámetro *startFrom* como *end*, *value* se aplica a los elementos de la colección empezando en *startFrom* hasta el elemento *end*. +- Descripción +- Ejemplo 3 +- Descripción En caso de incoherencia, se aplican las siguientes reglas: - Si *startFrom* < 0, se recalcula como *startFrom:=startFrom+length* (se considera el desplazamiento desde el final de la colección). Si el valor calculado es negativo, *startFrom* toma el valor 0. -- Si *end* < 0 , se recalcula como *end:=end+length*. -- Si *end* < *startFrom* (valores pasados o calculados), el método no hace nada. +- Soporte de querySettings +- Colección que contiene los elementos añadidos #### Ejemplo @@ -914,12 +884,12 @@ En caso de incoherencia, se aplican las siguientes reglas: -| Parámetros | Tipo | | Descripción | -| ---------- | --------------------------- | :-------------------------: | --------------------------------------------------------------------------------------- | -| formula | 4D.Function | -> | Objeto fórmula | -| methodName | Text | -> | Nombre de un método | -| param | any | -> | Parámetro(s) a pasar a *formula* o \*methodName | -| Result | Collection | <- | Nueva colección que contiene elementos filtrados (copia superficial) | +| Parámetros | Tipo | | Descripción | +| ---------- | --------------------------- | :-------------------------: | --------------------------- | +| formula | 4D.Function | -> | Objeto fórmula | +| methodName | Text | -> | Nombre de un método | +| param | any | -> | Colección original ordenada | +| Result | Collection | <- | O | @@ -931,25 +901,25 @@ La función `.filter()` devuelve una nu Se designa la retrollamada a ejecutar para filtrar los elementos de la colección utilizando: -- *formula* (sintaxis recomendada), un [objeto Fórmula](FunctionClass.md) que puede encapsular toda expresión ejecutable, incluyendo funciones y métodos proyecto; -- o *methodName*, el nombre de un método proyecto (texto). +- Comparación +- Tipo Se llama a la retrollamada con los parámetros pasados en *param* (opcional) y un objeto en primer parámetro (*$1*). La retrollamada puede realizar cualquier prueba, con o sin el parámetro(s) y debe devolver **true** para cada elemento que cumpla la condición y por lo tanto, debe añadirse a la nueva colección. La retrollamada recibe los siguientes parámetros: -- en *$1.value*: valor del elemento a evaluar -- en *$2*: param -- en *$N...*: paramN... +- Lanzamiento +- Colección original sin elementos eliminados +- Este ejemplo comprueba que todos los elementos de una colección son de tipo real: Puede definir los siguientes parámetros: -- *$1.result* (booleano): **true** si el valor del elemento coincide con la condición de filtro y debe conservarse, **false** en caso contrario. -- *$1.stop* (booleano, opcional): **true** para detener la retrollamada del método. El valor devuelto es el último calculado. +- Este ejemplo comprueba que todos los elementos de una colección son de tipo real: +- *$1.stop* (boolean, opcional): **true** para detener la retrollamada del método. El valor devuelto es el último calculado. :::note -Cuando se utiliza *methodName* como callback, y si el método no devuelve ningún valor, `.filter()` buscará la propiedad *$1.result* que debe dar el valor **true** para cada elemento que cumpla la condición. +Si se intenta eliminar un elemento de una colección vacía, el método no hace nada (no se genera ningún error). ::: @@ -1000,46 +970,46 @@ Quiere filtrar los elementos según su tipo de valor: -| Parámetros | Tipo | | Descripción | -| ---------- | --------------------------- | :-------------------------: | ------------------------------------------------------------------ | -| startFrom | Integer | -> | Índice para iniciar la búsqueda en | -| formula | 4D.Function | -> | Objeto fórmula | -| methodName | Text | -> | Nombre de un método | -| param | any | -> | Parámetro(s) a pasar a *formula* o \*methodName | -| Result | any | <- | Primer valor encontrado, o Undefined si no se encuentra | +| Parámetros | Tipo | | Descripción | +| ---------- | --------------------------- | :-------------------------: | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| startFrom | Integer | -> | Índice para iniciar la búsqueda en | +| formula | 4D.Function | -> | Objeto fórmula | +| methodName | Text | -> | Nombre de un método | +| param | any | -> | Colección original ordenada | +| Result | any | <- | La función `.multiSort()` permite realizar una ordenación sincronizada multinivel sobre un conjunto de colecciones. | #### Descripción -La función `.find()` devuelve el primer valor de la colección para el que el resultado de *formula* o de *methodName*, aplicado a cada elemento, devuelve **true**. +Ejemplo > Esta función no modifica la colección original. Se designa la retrollamada a ejecutar para evaluar los elementos de la colección utilizando: -- *formula* (sintaxis recomendada), un [objeto Fórmula](FunctionClass.md) que puede encapsular toda expresión ejecutable, incluyendo funciones y métodos proyecto; -- o *methodName*, el nombre de un método proyecto (texto). +- Comparación +- Tipo -La retrollamada se llama con los parámetros pasados en *param* (opcional). La retrollamada puede realizar cualquier prueba, con o sin los parámetros y debe devolver **true** para el primer elemento que cumpla la condición. Recibe un `Object` en el primer parámetro ($1). +La retrollamada se llama con los parámetros pasados en *param* (opcional). La retrollamada se llama con los parámetros pasados en *param* (opcional). Recibe un `Object` en el primer parámetro ($1). La retrollamada recibe los siguientes parámetros: -- en *$1.value*: valor del elemento a evaluar -- en *$2*: param -- en *$N...*: paramN... +- Lanzamiento +- Colección original sin elementos eliminados +- Este ejemplo comprueba que todos los elementos de una colección son de tipo real: Puede definir los siguientes parámetros: -- (obligatorio si ha utilizado un método) *$1.result* (booleano): **true** si el valor del elemento coincide con la condición de búsqueda, **false** en caso contrario. -- *$1.stop* (booleano, opcional): **true** para detener la retrollamada del método. El valor devuelto es el último calculado. +- Búsquedas con fechas: +- *$1.stop* (boolean, opcional): **true** para detener la retrollamada del método. El valor devuelto es el último calculado. Por defecto, `.find()` busca en toda la colección. Opcionalmente, se puede pasar en *startFrom* el índice del elemento desde el que iniciar la búsqueda. -- Si *startFrom* >= la longitud de la colección, se devuelve -1, lo que significa que la colección no se busca. +- Modificaciones - Si *startFrom* < 0, se considera el desplazamiento desde el final de la colección (*startFrom:=startFrom+length*). **Nota**: incluso si *startFrom* es negativo, la colección se sigue buscando de izquierda a derecha. -- Si *startFrom* = 0, se busca en toda la colección (por defecto). +- Descripción #### Ejemplo 1 @@ -1088,46 +1058,46 @@ $c2:=$c.find(Formula($1.value.name=$2); "Clanton") //$c2={name:Clanton,zc:35046 -| Parámetros | Tipo | | Descripción | -| ---------- | --------------------------- | :-------------------------: | ------------------------------------------------------------------ | -| startFrom | Integer | -> | Índice para iniciar la búsqueda en | -| formula | 4D.Function | -> | Objeto fórmula | -| methodName | Text | -> | Nombre de un método | -| param | any | -> | Parámetro(s) a pasar a *formula* o \*methodName | -| Result | Integer | <- | Índice del primer valor encontrado, o -1 si no se encuentra | +| Parámetros | Tipo | | Descripción | +| ---------- | --------------------------- | :-------------------------: | ---------------------------------- | +| startFrom | Integer | -> | Índice para iniciar la búsqueda en | +| formula | 4D.Function | -> | Objeto fórmula | +| methodName | Text | -> | Nombre de un método | +| param | any | -> | Colección original ordenada | +| Result | Integer | <- | Conjunción | #### Descripción -La función `.findIndex()` devuelve el índice, en la colección, del primer valor para el que *formula* o *methodName*, aplicados sobre cada elemento, devuelven **true**. +Ejemplo: > Esta función no modifica la colección original. Se designa la retrollamada a ejecutar para evaluar los elementos de la colección utilizando: -- *formula* (sintaxis recomendada), un [objeto Fórmula](FunctionClass.md) que puede encapsular toda expresión ejecutable, incluyendo funciones y métodos proyecto; -- *methodName*, el nombre de un método proyecto (texto). +- Comparación +- Desea ordenar la colección resultante: -La retrollamada se llama con los parámetros pasados en *param* (opcional). La retrollamada puede realizar cualquier prueba, con o sin los parámetros y debe devolver **true** para el primer elemento que cumpla la condición. Recibe un `Object` en el primer parámetro ($1). +La retrollamada se llama con los parámetros pasados en *param* (opcional). La retrollamada se llama con los parámetros pasados en *param* (opcional). Recibe un `Object` en el primer parámetro ($1). La retrollamada recibe los siguientes parámetros: -- en *$1.value*: valor del elemento a evaluar -- en *$2*: param -- en *$N...*: paramN... +- Lanzamiento +- Colección original sin elementos eliminados +- Este ejemplo comprueba que todos los elementos de una colección son de tipo real: Puede definir los siguientes parámetros: -- (obligatorio si ha utilizado un método) *$1.result* (booleano): **true** si el valor del elemento coincide con la condición de búsqueda, **false** en caso contrario. -- *$1.stop* (booleano, opcional): **true** para detener la retrollamada del método. El valor devuelto es el último calculado. +- Búsquedas con fechas: +- *$1.stop* (boolean, opcional): **true** para detener la retrollamada del método. El valor devuelto es el último calculado. Por defecto, `.findIndex()` busca en toda la colección. Opcionalmente, se puede pasar en *startFrom* el índice del elemento desde el que iniciar la búsqueda. -- Si *startFrom* >= la longitud de la colección, se devuelve -1, lo que significa que la colección no se busca. +- Modificaciones - Si *startFrom* < 0, se considera el desplazamiento desde el final de la colección (*startFrom:=startFrom+length*). **Nota**: incluso si *startFrom* es negativo, la colección se sigue buscando de izquierda a derecha. -- Si *startFrom* = 0, se busca en toda la colección (por defecto). +- Descripción #### Ejemplo @@ -1164,15 +1134,15 @@ $val3:=$c.findIndex($val2+1;Formula($1.value.name=$2);"Clanton") //$val3=4 -| Parámetros | Tipo | | Descripción | -| ---------- | ---- | :-------------------------: | ------------------------------- | -| Result | any | <- | Primer elemento de la colección | +| Parámetros | Tipo | | Descripción | +| ---------- | ---- | :-------------------------: | ------------------------------------------- | +| Result | any | <- | Colección original sin elementos eliminados | #### Descripción -La función `.first()` devuelve el primer elemento de la colección. +Colección original sin elementos eliminados > Esta función no modifica la colección original. @@ -1212,15 +1182,15 @@ $first:=$emptyCol.first() // devuelve Undefined | Parámetros | Tipo | | Descripción | | ---------- | ---------- | :-------------------------: | --------------------------------------------------------------------------------------------------- | | depth | Integer | -> | A qué profundidad debe aplanarse una estructura de colección anidada. Por defecto=1 | -| Result | Collection | <- | Colección aplanada | +| Result | Collection | <- | Colección a combinar | #### Descripción -La función `.flat()` crea una nueva colección con todos los elementos de la subcolección concatenados recursivamente hasta la *depth* especificada. +La nueva colección compartida -Por defecto, si se omite el parámetro *depth*, sólo se aplanará el primer nivel de la estructura de la colección anidada. +expresión > Esta función no modifica la colección original. @@ -1262,12 +1232,12 @@ $col.flat(MAXLONG) -| Parámetros | Tipo | | Descripción | -| ---------- | --------------------------- | :-------------------------: | ---------------------------------------------------------------------- | -| formula | 4D.Function | -> | Objeto fórmula | -| methodName | Text | -> | Nombre de un método | -| param | any | -> | Parámetro(s) a pasar a *formula* o \*methodName | -| Result | Collection | <- | Colección de valores transformados y aplanados en una profundidad de 1 | +| Parámetros | Tipo | | Descripción | +| ---------- | --------------------------- | :-------------------------: | --------------------------- | +| formula | 4D.Function | -> | Objeto fórmula | +| methodName | Text | -> | Nombre de un método | +| param | any | -> | Colección original ordenada | +| Result | Collection | <- | Comentario | @@ -1275,27 +1245,27 @@ $col.flat(MAXLONG) La función `.flatMap()` crea una nueva colección basada en el resultado de la llamada a la función *formula* 4D o al método *methodName* sobre cada elemento de la colección original y aplanada por una profundidad de 1. Opcionalmente, puede pasar parámetros a *formula* o *methodName* utilizando los parámetros *param*. -Esta función es idéntica a una llamada a [`map()`](#map) seguida de una llamada a [`flat()`](#flat) de profundidad 1. +Colección de valores transformados > Esta función no modifica la colección original. Se designa la retrollamada a ejecutar para evaluar los elementos de la colección utilizando: -- *formula* (sintaxis recomendada), un [objeto Fórmula](FunctionClass.md) que puede encapsular toda expresión ejecutable, incluyendo funciones y métodos proyecto; -- o *methodName*, el nombre de un método proyecto (texto). +- Comparación +- Tipo La retrollamada se llama con los parámetros pasados en *param* (opcional). The callback is called with the parameter(s) passed in param (optional). Recibe un `Object` en el primer parámetro ($1). La retrollamada recibe los siguientes parámetros: -- en *$1.value*: valor del elemento a evaluar -- en *$2*: param -- en *$N...*: paramN... +- Lanzamiento +- Colección original sin elementos eliminados +- Este ejemplo comprueba que todos los elementos de una colección son de tipo real: Puede definir los siguientes parámetros: -- (obligatorio si ha utilizado un método) *$1.result* (cualquier tipo): nuevo valor transformado para añadir a la colección resultante -- *$1.stop* (booleano, opcional): **true** para detener la retrollamada del método. El valor devuelto es el último calculado. +- Descripción +- *$1.stop* (boolean, opcional): **true** para detener la retrollamada del método. El valor devuelto es el último calculado. #### Ejemplo 1 @@ -1354,17 +1324,17 @@ $c2:=$c.flatMap($f; $c.sum()) -| Parámetros | Tipo | | Descripción | -| ---------- | --------- | :-------------------------: | ----------------------------------------------- | -| toSearch | expresión | -> | Expresión a buscar en la colección | -| startFrom | Integer | -> | Índice para iniciar la búsqueda en | -| Result | Boolean | <- | True si *toSearch* se encuentra en la colección | +| Parámetros | Tipo | | Descripción | +| ---------- | --------- | :-------------------------: | ---------------------------------- | +| toSearch | expresión | -> | Expresión a buscar en la colección | +| startFrom | Integer | -> | Índice para iniciar la búsqueda en | +| Result | Boolean | <- | Ejemplo 1 | #### Descripción -La función `.includes()` devuelve True si la expresión *toSearch* se encuentra entre los elementos de la colección, en caso contrario False. +Ejemplo > Esta función no modifica la colección original. @@ -1374,13 +1344,13 @@ En *toSearch*, pase la expresión a encontrar en la colección. Puede pasar: - el valor null, - una referencia de objeto o de colección. -*toSearch* debe coincidir exactamente con el elemento a encontrar (se aplican las mismas reglas que para el operador de igualdad del tipo de datos). +Obtiene los datos coincidentes, admite el comodín (@), no distingue entre mayúsculas de minúsculas ni diacríticas. -Opcionalmente, puede pasar el índice de la colección desde el que iniciar la búsqueda en *startFrom*. +Una colección se inicializa con: -- Si *startFrom* >= la longitud de la colección, se devuelve False, lo que significa que no se busca en la colección. +- Ejemplo - Si *startFrom* < 0, se considera el desplazamiento desde el final de la colección (*startFrom:=startFrom+length*). Tenga en cuenta que incluso si *startFrom* es negativo, la colección se sigue buscando de izquierda a derecha. -- Si *startFrom* = 0, se busca en toda la colección (por defecto). +- Descripción #### Ejemplo @@ -1416,17 +1386,17 @@ Opcionalmente, puede pasar el índice de la colección desde el que iniciar la b -| Parámetros | Tipo | | Descripción | -| ---------- | --------- | :-------------------------: | ---------------------------------------------------------------------------------- | -| toSearch | expresión | -> | Expresión a buscar en la colección | -| startFrom | Integer | -> | Índice para iniciar la búsqueda en | -| Result | Integer | <- | Índice de la primera ocurrencia de toSearch en la colección, -1 si no se encuentra | +| Parámetros | Tipo | | Descripción | +| ---------- | --------- | :-------------------------: | ---------------------------------- | +| toSearch | expresión | -> | Expresión a buscar en la colección | +| startFrom | Integer | -> | Índice para iniciar la búsqueda en | +| Result | Integer | <- | Descripción | #### Descripción -La función `.indexOf()` busca la expresión *toSearch* entre los elementos de la colección y devuelve el índice de la primera ocurrencia encontrada, o -1 si no se encontró. +Tipo > Esta función no modifica la colección original. @@ -1436,14 +1406,14 @@ En *toSearch*, pase la expresión a encontrar en la colección. Puede pasar: - el valor null, - una referencia de objeto o de colección. -*toSearch* debe coincidir exactamente con el elemento a encontrar (se aplican las mismas reglas que para el operador de igualdad del tipo de datos). +Obtiene los datos coincidentes, admite el comodín (@), no distingue entre mayúsculas de minúsculas ni diacríticas. -Opcionalmente, puede pasar el índice de la colección desde el que iniciar la búsqueda en *startFrom*. +Una colección se inicializa con: -- Si *startFrom* >= la longitud de la colección, se devuelve -1, lo que significa que la colección no se busca. +- Modificaciones - Si *startFrom* < 0, se considera el desplazamiento desde el final de la colección (*startFrom:=startFrom+length*). **Nota**: incluso si *startFrom* es negativo, la colección se sigue buscando de izquierda a derecha. -- Si *startFrom* = 0, se busca en toda la colección (por defecto). +- Descripción #### Ejemplo @@ -1479,7 +1449,7 @@ Opcionalmente, puede pasar el índice de la colección desde el que iniciar la b | ----------- | ---------- | :-------------------------: | --------------------------------------------------------------------------------------------------------------------------- | | queryString | Text | -> | Criterio de búsqueda | | value | any | -> | Valor(es) a comparar cuando se utiliza(n) marcador(es) de posición | -| Result | Collection | <- | Índice(s) de elementos que coinciden con queryString en la colección | +| Result | Collection | <- | Ejemplo 3 | @@ -1489,13 +1459,13 @@ La función `.indices()` funciona exactamente igual que la función [`.query()`] > Esta función no modifica la colección original. -El parámetro *queryString* utiliza la siguiente sintaxis: +Ejemplo 1 ```4d propertyPath comparator value {logicalOperator propertyPath comparator value} ``` -Para una descripción detallada de los parámetros *queryString* y *value*, consulte la función `dataClass.query()`. +Los elementos se ordenan de forma descendente #### Ejemplo @@ -1530,26 +1500,26 @@ Para una descripción detallada de los parámetros *queryString* y *value*, cons -| Parámetros | Tipo | | Descripción | -| ---------- | ---------- | :-------------------------: | -------------------------------------------------------- | -| index | Integer | -> | Dónde insertar el elemento | -| element | any | -> | Elemento a insertar en la colección | -| Result | Collection | <- | Colección original que contiene los elementos insertados | +| Parámetros | Tipo | | Descripción | +| ---------- | ---------- | :-------------------------: | ------------------------------------------- | +| index | Integer | -> | Dónde insertar el elemento | +| element | any | -> | Elemento a insertar en la colección | +| Result | Collection | <- | Colección original sin elementos eliminados | #### Descripción -La función `.insert()` inserta *element* en la posición *index* especificada en la instancia de la colección y devuelve la colección modificada. +Búsquedas con fechas: > Esta función modifica la colección original. -En *index*, pase la posición donde quiere insertar el elemento en la colección. +Descripción -> **Atención**: recuerde que los elementos de la colección están numerados desde 0. +> Diferente de -- Si *index* la longitud de la colección, el índice inicial real se fijará en la longitud de la colección. -- Si *index* <0, se recalcula como *index:=index+length* (se considera el desplazamiento desde el final de la colección). +- Ejemplo 1 +- Ejemplo 1 - Si el valor calculado es negativo, index toma el valor 0. Se puede insertar cualquier tipo de elemento aceptado por una colección, incluso otra colección. @@ -1582,17 +1552,17 @@ Se puede insertar cualquier tipo de elemento aceptado por una colección, inclus -| Parámetros | Tipo | | Descripción | -| ---------- | ------- | :-------------------------: | --------------------------------------------------------------------------------------------- | -| delimiter | Text | -> | Separador a utilizar entre elementos | -| option | Integer | -> | `ck ignore null or empty`: ignorar las cadenas nulas y vacías en el resultado | -| Result | Text | <- | Cadena que contiene todos los elementos de la colección, separados por un delimitador | +| Parámetros | Tipo | | Descripción | +| ---------- | ------- | :-------------------------: | ------------------------------------ | +| delimiter | Text | -> | Separador a utilizar entre elementos | +| option | Integer | -> | Colección a combinar | +| Result | Text | <- | Ejemplo 3 | #### Descripción -La función `.join()` convierte todos los elementos de la colección en cadenas y las concatena utilizando la cadena delimiter especificada como separador.La función devuelve la cadena resultante. +Tipo > Esta función no modifica la colección original. @@ -1626,15 +1596,15 @@ Por defecto, los elementos nulos o vacíos de la colección se devuelven en la c -| Parámetros | Tipo | | Descripción | -| ---------- | ---- | :-------------------------: | ------------------------------- | -| Result | any | <- | Último elemento de la colección | +| Parámetros | Tipo | | Descripción | +| ---------- | ---- | :-------------------------: | --------------------------------------------- | +| Result | any | <- | Colección que contiene los elementos añadidos | #### Descripción -La función `.last()` devuelve el último elemento de la colección. +Objeto compartido que se agrupa con la colección resultante > Esta función no modifica la colección original. @@ -1643,15 +1613,7 @@ La función devuelve Undefined si la colección está vacía. #### Ejemplo ```4d -var $col; $emptyCol : Collection -var $last : Variant -$col:=New collection(10; 20; 30; "hello"; 50) -$last:=$col.last() // 50 - -$emptyCol:=New collection() //empty -// $last:=$emptyCol[$emptyCol.length-1] //devuelve un error -$last:=$emptyCol.last() // devuelve Indefinido - +Propiedad ``` @@ -1672,17 +1634,17 @@ $last:=$emptyCol.last() // devuelve Indefinido -| Parámetros | Tipo | | Descripción | -| ---------- | --------- | :-------------------------: | --------------------------------------------------------------------------------- | -| toSearch | expresión | -> | El elemento que se va a buscar dentro de la colección | -| startFrom | Integer | -> | Índice para iniciar la búsqueda en | -| Result | Integer | <- | Índice de la última ocurrencia de toSearch en la colección, -1 si no se encuentra | +| Parámetros | Tipo | | Descripción | +| ---------- | --------- | :-------------------------: | ----------------------------------------------------- | +| toSearch | expresión | -> | El elemento que se va a buscar dentro de la colección | +| startFrom | Integer | -> | Índice para iniciar la búsqueda en | +| Result | Integer | <- | Descripción | #### Descripción -La función `.lastIndexOf()` busca la expresión *toSearch* entre los elementos de la colección y devuelve el índice de la última ocurrencia, o -1 si no se encontró. +Ejemplo > Esta función no modifica la colección original. @@ -1692,26 +1654,19 @@ En *toSearch*, pase la expresión a encontrar en la colección. Puede pasar: - el valor null, - una referencia de objeto o de colección. -*toSearch* debe coincidir exactamente con el elemento a encontrar (se aplican las mismas reglas que para el operador de igualdad). +*toSearch* debe coincidir exactamente con el elemento a encontrar (se aplican las mismas reglas que para el operador de igualdad del tipo de datos). -Opcionalmente, puede pasar el índice de la colección desde el cual iniciar una búsqueda en reversa en *startFrom*. +Ejemplo 2 -- Si *startFrom* >= la longitud de la colección menos uno (coll.length-1), se busca en toda la colección (por defecto). +- Ejemplo 3 - Si *startFrom* < 0, se recalcula como *startFrom:=startFrom+length* (se considera el desplazamiento desde el final de la colección). Si el valor calculado es negativo, se devuelve -1 (no se busca en la colección). **Nota:** incluso si *startFrom* es negativo, la colección se sigue buscando de derecha a izquierda. -- Si *startFrom* = 0, se devuelve -1 lo que significa que la colección no se busca. +- Descripción #### Ejemplo ```4d - var $col : Collection - var $pos1;$pos2;$pos3;$pos4;$pos5 : Integer - $col:=Split string("a,b,c,d,e,f,g,h,i,j,e,k,e";",") //$col.length=13 - $pos1:=$col.lastIndexOf("e") //devuelve 12 - $pos2:=$col.lastIndexOf("e";6) //devuelve 4 - $pos3:=$col.lastIndexOf("e";15) //devuelve 12 - $pos4:=$col.lastIndexOf("e";-2) //devuelve 10 - $pos5:=$col.lastIndexOf("x") //devuelve -1 +Tipo ``` @@ -1732,17 +1687,14 @@ Opcionalmente, puede pasar el índice de la colección desde el cual iniciar una #### Descripción -La propiedad `.length` devuelve el número de elementos en la colección. +Ejemplo 2 La propiedad `.length` se inicializa cuando se crea la colección. Añadir o eliminar elementos actualiza la longitud, si es necesario. Esta propiedad es **sólo lectura** (no se puede utilizar para definir el tamaño de la colección). #### Ejemplo ```4d - var $col : Collection //$col.length inicializada en 0 - $col:=New collection("one";"two";"three") //$col.length actualizada a 3 - $col[4]:="five" //$col.length actualizada a 5 - $vSize:=$col.remove(0;3).length //$vSize=2 +Tipo ``` @@ -1764,12 +1716,12 @@ La propiedad `.length` se inicializa cuando se crea la colección. Añadir o eli -| Parámetros | Tipo | | Descripción | -| ---------- | --------------------------- | :-------------------------: | ------------------------------------------------------------------ | -| formula | 4D.Function | -> | Objeto fórmula | -| methodName | Text | -> | Nombre de un método | -| param | any | -> | Parámetro(s) a pasar a *formula* o \*methodName | -| Result | Collection | <- | Colección de valores transformados | +| Parámetros | Tipo | | Descripción | +| ---------- | --------------------------- | :-------------------------: | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| formula | 4D.Function | -> | Objeto fórmula | +| methodName | Text | -> | Nombre de un método | +| param | any | -> | Colección original ordenada | +| Result | Collection | <- | `.pop()`, utilizado junto con [`.push()`](#push), puede utilizarse para implementar una funcionalidad primera entrada última salida de tratamiento de datos apilados: | @@ -1781,21 +1733,21 @@ La función `.map()` crea una nueva colecc Se designa la retrollamada a ejecutar para evaluar los elementos de la colección utilizando: -- *formula* (sintaxis recomendada), un [objeto Fórmula](FunctionClass.md) que puede encapsular toda expresión ejecutable, incluyendo funciones y métodos proyecto; -- o *methodName*, el nombre de un método proyecto (texto). +- Comparación +- Tipo La retrollamada se llama con los parámetros pasados en *param* (opcional). The callback is called with the parameter(s) passed in param (optional). Recibe un `Object` en el primer parámetro ($1). La retrollamada recibe los siguientes parámetros: -- en *$1.value*: valor del elemento a evaluar -- en *$2*: param -- en *$N...*: paramN... +- Lanzamiento +- Colección original sin elementos eliminados +- Este ejemplo comprueba que todos los elementos de una colección son de tipo real: Puede definir los siguientes parámetros: -- (obligatorio si ha utilizado un método) *$1.result* (cualquier tipo): nuevo valor transformado para añadir a la colección resultante -- *$1.stop* (booleano, opcional): **true** para detener la retrollamada del método. El valor devuelto es el último calculado. +- Descripción +- *$1.stop* (boolean, opcional): **true** para detener la retrollamada del método. El valor devuelto es el último calculado. #### Ejemplo @@ -1827,21 +1779,21 @@ $c2:=$c.map(Formula(Round(($1.value/$2)*100; 2)); $c.sum()) | Parámetros | Tipo | | Descripción | | ------------ | ----------------------------------------------- | :-------------------------: | ------------------------------------------------------------------- | | propertyPath | Text | -> | Ruta de la propiedad del objeto que se utilizará para la evaluación | -| Result | Boolean, Text, Number, Collection, Object, Date | <- | Valor máximo en la colección | +| Result | Boolean, Text, Number, Collection, Object, Date | <- | Comentario | #### Descripción -La función `.max()` devuelve el elemento con el valor más alto de la colección (el último elemento de la colección tal y como se ordenaría en orden ascendente utilizando la función [`.sort()`](#sort)). +La función `.lastIndexOf()` busca la expresión *toSearch* entre los elementos de la colección y devuelve el índice de la última ocurrencia, o -1 si no se encontró. > Esta función no modifica la colección original. -Si la colección contiene diferentes tipos de valores, la función `.max()` devolverá el valor máximo dentro del último tipo de elemento en el orden de la lista de tipos (ver la descripción de [`.sort()`](#sort)). +Lanzamiento -Si la colección contiene objetos, pase el parámetro *propertyPath* para indicar la propiedad del objeto cuyo valor máximo desea obtener. +Lanzamiento -Si la colección está vacía, `.max()` devuelve *Undefined*. +Lanzamiento #### Ejemplo @@ -1877,21 +1829,21 @@ Si la colección está vacía, `.max()` devuelve *Undefined*. | Parámetros | Tipo | | Descripción | | ------------ | ----------------------------------------------- | :-------------------------: | ------------------------------------------------------------------- | | propertyPath | Text | -> | Ruta de la propiedad del objeto que se utilizará para la evaluación | -| Result | Boolean, Text, Number, Collection, Object, Date | <- | Valor mínimo en la colección | +| Result | Boolean, Text, Number, Collection, Object, Date | <- | Valor a contar | #### Descripción -La función `.min()` devuelve el elemento con el valor más pequeño de la colección (el primer elemento de la colección tal y como se ordenaría en orden ascendente utilizando la función [`.sort()`](#sort)). +Ordenar una colección de números de forma ascendente y descendente: > Esta función no modifica la colección original. -Si la colección contiene diferentes tipos de valores, la función `.min()` devolverá el valor mínimo dentro del primer tipo de elemento en el orden de la lista de tipos (ver la descripción de [`.sort()`](#sort)). +True si todos los elementos han pasado la prueba con éxito -Si la colección contiene objetos, pase el parámetro *propertyPath* para indicar la propiedad del objeto cuyo valor mínimo desea obtener. +Modificaciones -Si la colección está vacía, `.min()` devuelve *Undefined*. +Lanzamiento #### Ejemplo @@ -1924,19 +1876,19 @@ Si la colección está vacía, `.min()` devuelve *Undefined*. -| Parámetros | Tipo | | Descripción | -| ---------- | --------------------------- | :-------------------------: | -------------------------------------------------------------------------------------------------------------------------------------------------------- | -| formula | 4D.Function | -> | Objeto fórmula | -| colsToSort | Collection | -> | Colección de colecciones y/u objetos con propiedades {`collection`:*colToSort*;`order`:`ck ascending` o `ck descending`} | -| Result | Collection | <- | Colección original ordenada | +| Parámetros | Tipo | | Descripción | +| ---------- | --------------------------- | :-------------------------: | ------------------------------------------------------------------------------------------- | +| formula | 4D.Function | -> | Objeto fórmula | +| colsToSort | Collection | -> | Ejemplo 2 | +| Result | Collection | <- | o *methodName*, el nombre de un método proyecto (texto). | #### Descripción -La función `.multiSort()` permite realizar una ordenación sincronizada multinivel sobre un conjunto de colecciones. +Ejemplo 2 -> Esta función modifica la colección original, así como todas las colecciones utilizadas en el parámetro *colsToSort*. +> Ejemplo 2 Si se llama a `.multiSort()` sin parámetros, la función tiene el mismo efecto que la función [`.sort()`](#sort): la colección se ordena (sólo valores escalares) en orden ascendente por defecto, según su tipo. Si la colección contiene valores de diferentes tipos, se agrupan primero por tipo y se ordenan después. Si attributePath lleva a una propiedad de objeto que contiene valores de diferentes tipos, primero se agrupan por tipo y se ordenan después. @@ -1948,40 +1900,40 @@ Si se llama a `.multiSort()` sin parámetros, la función tiene el mismo efecto 6. collections 7. dates -**Ordenación sincronizada de un nivel** +Ruta de la propiedad del objeto que se utilizará para el cálculo Para ordenar varias colecciones de forma sincrónica, basta con pasar en *colsToSort* una colección de colecciones para ordenar. Puede pasar un número ilimitado de colecciones. La colección original se ordenará en orden ascendente y todas las colecciones *colsToSort* se ordenarán de forma sincronizada. :::note -Todas las colecciones *colsToSort* deben tener el mismo número de elementos, de lo contrario se devuelve un error. +Descripción ::: Si desea ordenar las colecciones en algún otro orden que no sea ascendente, debe suministrar una *formula* ([objeto Formula](FunctionClass.md#formula)) que defina el orden de clasificación. El valor de retorno debe ser un booleano que indica el orden relativo de los dos elementos: **True** si *$1.value* es menor que *$1.value2*, **False** si *$1.value* es mayor que *$1.value2*. Puede ofrecer parámetros adicionales a la fórmula si es necesario. -La fórmula recibe los siguientes parámetros: +Opcionalmente, puede pasar el índice de la colección desde el cual iniciar una búsqueda en reversa en *startFrom*. - $1 (objeto), donde: - - *$1.value* (todo tipo): valor del primer elemento a comparar - - *$1.value2* (todo tipo): valor del segundo elemento a comparar + - Lanzamiento + - Lanzamiento - $2...$N (cualquier tipo): parámetros adicionales -**Ordenación sincronizada multinivel** +Quiere obtener el primer elemento de texto con una longitud menor que 5: -La definición de una ordenación sincronizada multinivel requiere que se pase un objeto que contenga las propiedades {`collection`:*colToSort*;`order`:`ck ascending` o `ck descending`} en lugar de una colección *colToSort* para cada colección que se utilizará como subnivel. +Desea ordenar la colección resultante: -Los niveles de ordenación vienen determinados por el orden en que se pasan las colecciones en el parámetro *colsToSort*: la posición de un objeto `collection`/`order` en la sintaxis determina su nivel de ordenación. +Ejemplo 2 :::note -La función `.multiSort()` utiliza un algoritmo de ordenación [estable](https://en.wikipedia.org/wiki/Sorting_algorithm#Stability). +Ordenar una colección de números de forma ascendente y descendente: ::: #### Ejemplo 1 -Una simple ordenación sincronizada de colecciones con diferentes tipos de valores: +Descripción ```4d var $col;$col2;$col3 : Collection @@ -2020,7 +1972,7 @@ $continent.multiSort([$country; {collection: $city; order: ck ascending}]) #### Ejemplo 3 -También puede sincronizar colecciones de objetos. +(obligatorio si se ha utilizado un método) *$1.result* (booleano): **true** si la evaluación del valor del elemento tiene éxito, **false** en caso contrario. ```4d var $name : Collection @@ -2064,14 +2016,14 @@ $name.multiSort(Formula($1.value.firstname<$1.value2.firstname); [$address]) | ----------- | ---------- | :-------------------------: | --------------------------------------------------------------------------------------------------- | | pathStrings | Text | -> | Ruta(s) de propiedad(es) a utilizar para ordenar la colección | | pathObjects | Collection | -> | Colección de objetos criterio | -| ascOrDesc | Integer | -> | `ck ascending` o `ck descending` (valores escalares) | -| Result | Collection | <- | Copia ordenada de la colección (copia superficial) | +| ascOrDesc | Integer | -> | Ejemplo 1 | +| Result | Collection | <- | Colección original ordenada | #### Descripción -La función `.orderBy()` devuelve una nueva colección que contiene todos los elementos de la colección en el orden especificado. +La nueva colección Esta función devuelve una *copia superficial*, lo que significa que los objetos o colecciones de ambas colecciones comparten la misma referencia. Si la colección original es una colección compartida, la colección devuelta es también una colección compartida. @@ -2201,18 +2153,18 @@ Ordenar con una ruta de propiedad: -| Parámetros | Tipo | | Descripción | -| ---------- | --------------------------- | :-------------------------: | --------------------------------------------------------------------- | -| formula | 4D.Function | -> | Objeto fórmula | -| methodName | Text | -> | Nombre de un método | -| extraParam | any | -> | Parámetro(s) a pasar | -| Result | Collection | <- | Copia ordenada de la colección (copia superficial) | +| Parámetros | Tipo | | Descripción | +| ---------- | --------------------------- | :-------------------------: | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| formula | 4D.Function | -> | Objeto fórmula | +| methodName | Text | -> | Nombre de un método | +| extraParam | any | -> | Parámetro(s) a pasar | +| Result | Collection | <- | (obligatorio si se ha utilizado un método) *$1.result* (booleano): **true** si la evaluación del valor del elemento tiene éxito, **false** en caso contrario. | #### Descripción -La función `.orderByMethod()` devuelve una nueva colección que contiene todos los elementos de la colección en el orden definido mediante la función *formula* 4D o el método *methodName*. +La nueva colección Esta función devuelve una *copia superficial*, lo que significa que los objetos o colecciones de ambas colecciones comparten la misma referencia. Si la colección original es una colección compartida, la colección devuelta es también una colección compartida. @@ -2220,22 +2172,22 @@ Esta función devuelve una *copia superficial*, lo que significa que los objetos Se designa la retrollamada a ejecutar para evaluar los elementos de la colección utilizando: -- *formula* (sintaxis recomendada), un [objeto Fórmula](FunctionClass.md) que puede encapsular toda expresión ejecutable, incluyendo funciones y métodos proyecto; +- Comparación -- o *methodName*, el nombre de un método proyecto (texto). +- Tipo En la retrolamada, pase un código que compare dos valores y devuelva **true** si el primer valor es menor que el segundo. Puede ofrecer los parámetros *extraParam* a la retrollamada si es necesario. La retrollamada recibe los siguientes parámetros: - $1 (objeto), donde: - - *$1.value* (todo tipo): valor del primer elemento a comparar - - *$1.value2* (todo tipo): valor del segundo elemento a comparar + - Lanzamiento + - Lanzamiento - $2...$N (cualquier tipo): parámetros adicionales Si utilizó un método, debe definir el siguiente parámetro: -- *$1.result* (boolean): **true** si *$1.value < $1.value2*, **false** de lo contrario +- Considera la @ como un caracter estándar #### Ejemplo 1 @@ -2277,13 +2229,10 @@ $strings2:=$strings1.orderByMethod(Function(sortCollection);sk strict) // resultado : ["alpha","Alpha","bravo","Bravo","charlie","Charlie"] ``` -El método ***sortCollection***: +Con el siguiente método ***Flatten***: ```4d -var $1 : Object -var $2: Integer // opción de ordenación - -$1.result:=(Compare strings($1.value;$1.value2;$2)<0) +Lanzamiento ``` @@ -2304,32 +2253,26 @@ $1.result:=(Compare strings($1.value;$1.value2;$2)<0) -| Parámetros | Tipo | | Descripción | -| ---------- | ---- | :-------------------------: | ------------------------------- | -| Result | any | <- | Último elemento de la colección | +| Parámetros | Tipo | | Descripción | +| ---------- | ---- | :-------------------------: | --------------------------------------------- | +| Result | any | <- | Colección que contiene los elementos añadidos | #### Descripción -La función `.pop()` elimina el último elemento de la colección y lo devuelve como resultado de la función. +Condición No aplicada a una sentencia > Esta función modifica la colección original. -Cuando se aplica a una colección vacía, `.pop()` devuelve ***undefined***. +Modificaciones #### Ejemplo -`.pop()`, utilizado junto con [`.push()`](#push), puede utilizarse para implementar una funcionalidad primera entrada última salida de tratamiento de datos apilados: +Valor a contar ```4d - var $stack : Collection - $stack:=New collection //$stack=[] - $stack.push(1;2) //$stack=[1,2] - $stack.pop() //$stack=[1] Devuelve 2 - $stack.push(New collection(4;5)) //$stack=[[1,[4,5]] - $stack.pop() //$stack=[1] Devuelve [4,5] - $stack.pop() //$stack=[] Devuelve 1 +Lanzamiento ``` @@ -2353,13 +2296,13 @@ Cuando se aplica a una colección vacía, `.pop()` devuelve ***undefined***. | Parámetros | Tipo | | Descripción | | ---------- | ---------- | :-------------------------: | ------------------------------------------------------ | | element | any | -> | Elemento(s) a añadir a la colección | -| Result | Collection | <- | Colección original que contiene los elementos añadidos | +| Result | Collection | <- | Colección que contiene los elementos añadidos | #### Descripción -La función `.push()` añade uno o más *elemento*(s) al final de la instancia de la colección y devuelve la colección editada. +Este ejemplo permite reducir varios elementos de la colección a uno solo: > Esta función modifica la colección original. @@ -2393,11 +2336,11 @@ Desea ordenar la colección resultante:
    Historia -| Lanzamiento | Modificaciones | -| ----------- | --------------------------------------------------------------------- | -| 20 R6 | Soporte de consultas utilizando las referencias de objeto o colección | -| 17 R5 | Soporte de querySettings | -| v16 R6 | Añadidos | +| Lanzamiento | Modificaciones | +| ----------- | ------------------------ | +| 20 R6 | Ejemplo 1 | +| 17 R5 | Soporte de querySettings | +| v16 R6 | Añadidos |
    @@ -2410,7 +2353,7 @@ Desea ordenar la colección resultante: | queryString | Text | -> | Criterio de búsqueda | | value | any | -> | Valor(es) a comparar cuando se utiliza(n) marcador(es) de posición | | querySettings | Object | -> | Opciones de búsqueda: parámetros, atributos | -| Result | Collection | <- | Elemento(s) que coincide(n) con queryString en la colección | +| Result | Collection | <- | Descripción | @@ -2418,13 +2361,13 @@ Desea ordenar la colección resultante: La función `.query()` devuelve todos los elementos de una colección de objetos que coinciden con las condiciones de búsqueda definidas por *queryString* y (opcionalmente) *value* o *querySettings*. Si la colección original es una colección compartida, la colección devuelta es también una colección compartida. -Se devuelve una colección vacía si la colección en la que se ejecuta la consulta no contiene el *valor* buscado. +Descripción > Esta función no modifica la colección original. #### parámetro queryString -El parámetro *queryString* utiliza la siguiente sintaxis: +Ejemplo 1 ```4d propertyPath comparator value {logicalOperator propertyPath comparator value} @@ -2450,7 +2393,7 @@ donde: | Incluído en | IN | Devuelve los datos iguales a al menos uno de los valores de una colección o de un conjunto de valores, admite el comodín (@) | - **valor**: valor a comparar con el valor actual de la propiedad de cada elemento de la colección. Puede ser cualquier valor de expresión constante que coincida con la propiedad del tipo de datos del elemento o un [**marcador de posición**](#using-placeholders). - Al utilizar un valor constante, deben respetarse las siguientes reglas: + For example, if the string "v20" is entered as value to compare with an integer attribute, it will be converted to 20. - La constante de tipo **texto** puede pasarse con o sin comillas simples (ver **Uso de comillas** más abajo). Para consultar una cadena dentro de otra cadena (una consulta de tipo "contiene"), utilice el símbolo de comodín (@) en el valor para aislar la cadena a buscar como se muestra en este ejemplo: "@Smith@". Las siguientes palabras claves están prohibidas para las constantes de texto: true, false. - Valores constantes de tipo **booleano**: **true** o **false** (Sensible a las mayúsculas y minúsculas). - Valores constantes de **tipo numérico**: los decimales se separan con un '.' (punto). @@ -2487,9 +2430,9 @@ Puede utilizar paréntesis en la búsqueda para dar prioridad al cálculo. Por e 4D le permite utilizar marcadores de posición para los argumentos *propertyPath* y *value* dentro del parámetro *queryString*. Un marcador es un parámetro que se inserta en las cadenas de búsqueda y que se sustituye por otro valor cuando se evalúa la cadena de búsqueda. El valor de los marcadores se evalúa una vez al principio de la búsqueda; no se evalúa para cada elemento. -Se pueden utilizar dos tipos de marcadores de posición: **marcadores de posición indexados** y **marcadores de posición con nombre**. +Lanzamiento -- **Marcadores de posición indexados**: los parámetros se insertan como `:paramIndex` (por ejemplo ":1", ":2"...) en *queryString* y sus valores correspondientes son proporcionados por la secuencia de parámetros *value*. Puede usar hasta 128 parámetros *value*. +- **Marcadores de posición indexados**: los parámetros se insertan como `:paramIndex` (por ejemplo ":1", ":2"...) en *queryString* y sus valores correspondientes son proporcionados por la secuencia de parámetros *value*. en *queryString* y sus valores correspondientes son proporcionados por la secuencia de parámetros *value*. Ejemplo: @@ -2497,7 +2440,7 @@ Ejemplo: $c:=$myCol.query(":1=:2";"city";"Chicago") ``` -- **Marcadores de posición con nombre**: los parámetros se insertan como `:paramName` (por ejemplo ":myparam") y sus valores se proporcionan en los objetos "attributes" y/o "parameters" del parámetro *querySettings*. +- Copia ordenada de la colección (copia superficial) Ejemplo: @@ -2507,7 +2450,7 @@ $o.parameters:={name:"Chicago") $c:=$myCol.query(":att=:name";$o) ``` -Puede mezclar todos los tipos de argumentos en *queryString*. Un *queryString* puede contener, para los parámetros *propertyPath* y *value*: +Puede mezclar todos los tipos de argumentos en *queryString*. Puede mezclar todos los tipos de argumentos en *queryString*. - valores directos (sin marcadores), - marcadores indexados y/o con nombre. @@ -2531,7 +2474,7 @@ Cuando se utilizan marcadores de posición, no es posible anular las condiciones En este caso, si el usuario introduce *smith OR status='private'* en el área *myname*, no se interpretará en la cadena de búsqueda, sino que sólo se pasará como valor. La búsqueda de una persona llamada "smith OR status='private'" simplemente fallará. -2. Evita tener que preocuparse por cuestiones de formato o caracteres, especialmente cuando se manejan los parámetros *propertyPath* o *value* que pueden contener caracteres no alfanuméricos como ".", "['... +2. Descripción 3. Permite el uso de variables o expresiones en los argumentos de búsqueda. Ejemplos: @@ -2547,20 +2490,20 @@ $result2:=$col.query("company.name = :1";"John's Pizzas") Cuando se buscan valores null, no se puede utilizar la sintaxis de marcador de posición porque el motor de búsqueda considera null como un valor de comparación invalido. Por ejemplo, si ejecuta la siguiente búsqueda: ```4d -$vSingles:=$colPersons.query("spouse = :1";Null) // NO funcionará +Lanzamiento ``` No obtendrá el resultado esperado porque el valor null será evaluado por 4D como un error resultante de la evaluación del parámetro (por ejemplo, un atributo procedente de otra búsqueda). Para este tipo de búsquedas, debe utilizar la sintaxis de búsqueda directa: ```4d -$vSingles:=$colPersons.query("spouse = null") //sintaxis correcta +Lanzamiento ``` -#### Referencia de objeto o de colección como valor +#### Lanzamiento Puede consultar en una colección utilizando una referencia de objeto o una referencia de colección como parámetro *value* a comparar. La consulta coincidirá con los objetos de la colección que se refieran a (apunten a) la misma **instancia** de objeto o de colección. -Se soportan los siguientes comparadores: +Para una descripción detallada de los parámetros *queryString* y *value*, consulte la función `dataClass.query()`. | Comparación | Símbolo(s) | | ------------ | ----------------------------- | @@ -2570,34 +2513,13 @@ Se soportan los siguientes comparadores: Para construir una consulta con un objeto o una referencia de colección, debe utilizar la sintaxis del parámetro *querySettings*. Ejemplo con una referencia de objeto: ```4d -var $o1:={a: 1} -var $o2:={a: 1} /mismo objeto pero otra referencia -var $o3:=$o1 /mismo objeto y referencia - -var $col; $colResult : Collection - -$col:=[{o: $o1}; {o: $o2}; {o: $o3}] -$colResult:=$col.query("o = :v"; {parameters: {v: $o3}}) - //$colResult.length=2 - //$colResult[0].o=$o1 es true - //$colResult[1].o=$o1 es true - +Lanzamiento ``` -Ejemplo con una referencia de colección: +Para el cálculo sólo se tienen en cuenta los elementos numéricos (se ignoran otros tipos de elementos). ```4d - -$c1:=[1; 2; 3] -$c2:=[1; 2; 3] //misma colección pero otra referencia -$c3:=$c1 //misma colección y referencia - -$col:=[{c: $c1}; {c: $c2}; {c: $c3}] -$col2:=$col.query("c = :v"; {parameters: {v: $c3}}) - //$col2.length=2 - //$col2[0].c=$c1 es true - //$col2[1].c=$c1 es true - +Tipo ``` #### Parámetro querySettings @@ -2609,7 +2531,7 @@ En el parámetro *querySettings*, puede pasar un objeto que contenga marcadores | parameters | Object | **Marcadores de posición con nombre para los valores** utilizados en *queryString*. Los valores se expresan como pares propiedad / valor, donde propiedad es el nombre del marcador de posición insertado para un valor en *queryString* o formula (":placeholder") y valor es el valor a comparar. Puede combinar marcadores de posición indexados (valores pasados directamente en parámetros de valor) y valores de marcadores de posición con nombre en la misma búsqueda. | | attributes | Object | **Marcadores de posición con nombre para rutas de atributos** utilizados en la *queryString*. Los atributos se expresan como pares propiedad / valor, donde propiedad es el nombre del marcador de posición insertado para una ruta de atributo en *queryString* (":placeholder"), y valor puede ser una cadena o una colección de cadenas. Cada valor es una ruta que puede designar una propiedad en un objeto de la colección
    Tipo de objetoDescripción
    CadenaRuta de acceso del atributo expresado utilizando la notación de punto, por ejemplo, "name" o "user.address.zipCode"
    Colección de cadenasCada cadena de la colección representa un nivel de attributePath, por ejemplo, \["name"] o \["user","address","zipCode"]. El uso de una colección permite realizar consultas sobre atributos con nombres que no se ajustan a la notación de puntos, por ejemplo, \["4Dv17.1", "en/fr"]
    Puede mezclar marcadores de posición indexados (valores pasados directamente en parámetros *value*) y valores de marcador de posición con nombre en la misma consulta. | -> El uso de este parámetro es obligatorio si desea consultar en una colección [utilizando una **referencia de colección** o una **referencia de un objeto**](#referencia-de-objeto-o-de-colección-como-valor). +> Ejemplo #### Ejemplo 1 @@ -2656,15 +2578,13 @@ Este ejemplo devuelve las personas cuyo nombre no empieza por una cadena de una Este ejemplo devuelve las personas cuya edad no se conoce (propiedad definida como null o indefinida): ```4d - $col:=$c.query("age=null") //no están permitidos los marcadores de posición con "null" - //$col=[{name:Wesson...},{name:Sterling...},{name:Mark...}] +Ejemplo ``` Este ejemplo devuelve las personas contratadas hace más de 90 días: ```4d - $col:=$c.query("dateHired < :1";(Current date-90)) - //$col=[{name:Smith...},{name:Sterling...},{name:Mark...}] si hoy es 01/10/2018 +La nueva colección compartida ``` #### Ejemplo 3 @@ -2679,7 +2599,7 @@ $entitySelection:=ds.Employee.query("birthDate <= :1";Current date-10950) :::info -Se pueden encontrar más ejemplos de búsquedas en la página `dataClass.query()`. +Descripción ::: @@ -2702,13 +2622,13 @@ Se pueden encontrar más ejemplos de búsquedas en la página `dataClass.query() -| Parámetros | Tipo | | Descripción | -| ---------- | ----------------------------------------------- | :-------------------------: | ---------------------------------------------------------------------------------------- | -| formula | 4D.Function | -> | Objeto fórmula | -| methodName | Text | -> | Nombre de un método | -| initValue | Text, Number, Object, Collection, Date, Boolean | -> | Valor a utilizar como primer argumento de la primera llamada de *formula* o *methodName* | -| param | expresión | -> | Parámetro(s) a pasar | -| Result | Text, Number, Object, Collection, Date, Boolean | <- | Resultado del valor del acumulador | +| Parámetros | Tipo | | Descripción | +| ---------- | ----------------------------------------------- | :-------------------------: | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| formula | 4D.Function | -> | Objeto fórmula | +| methodName | Text | -> | Nombre de un método | +| initValue | Text, Number, Object, Collection, Date, Boolean | -> | Valor a utilizar como primer argumento de la primera llamada de *formula* o *methodName* | +| param | expresión | -> | Parámetro(s) a pasar | +| Result | Text, Number, Object, Collection, Date, Boolean | <- | *formula* (sintaxis recomendada), un [objeto Fórmula](FunctionClass.md) que puede encapsular toda expresión ejecutable, incluyendo funciones y métodos proyecto; | @@ -2720,22 +2640,22 @@ La función `.reduce()` aplica la *form Se designa la retrollamada a ejecutar para evaluar los elementos de la colección utilizando: -- *formula* (sintaxis recomendada), un [objeto Fórmula](FunctionClass.md) que puede encapsular toda expresión ejecutable, incluyendo funciones y métodos proyecto; -- o *methodName*, el nombre de un método proyecto (texto). +- Comparación +- Tipo -La retrollamada toma cada elemento de la colección y realiza toda operación deseada para acumular el resultado en *$1.accumulator*, que se devuelve en *$1.value*. +Tipo Puede pasar el valor para inicializar el acumulador en *initValue*. Si se omite, *$1.accumulator* empieza por *Undefined*. La retrollamada recibe los siguientes parámetros: -- en *$1.value*: valor del elemento a procesar -- en *$2: param* -- en *$N...*: *paramN...* +- La nueva colección +- Colección compartida que se agrupa con la colección resultante +- Objeto compartido que se agrupa con la colección resultante La retrollamada define los siguientes parámetros: -- *$1.accumulator*: valor que va a ser modificado por la función y que es inicializado por *initValue*. +- Descripción - *$1.stop* (boolean, opcional): **true** para detener la retrollamada del método. El valor devuelto es el último calculado. #### Ejemplo 1 @@ -2787,13 +2707,13 @@ Con el siguiente método ***Flatten***: -| Parámetros | Tipo | | Descripción | -| ---------- | ----------------------------------------------- | :-------------------------: | ---------------------------------------------------------------------------------------- | -| formula | 4D.Function | -> | Objeto fórmula | -| methodName | Text | -> | Nombre de un método | -| initValue | Text, Number, Object, Collection, Date, Boolean | -> | Valor a utilizar como primer argumento de la primera llamada de *formula* o *methodName* | -| param | expresión | -> | Parámetro(s) a pasar | -| Result | Text, Number, Object, Collection, Date, Boolean | <- | Resultado del valor del acumulador | +| Parámetros | Tipo | | Descripción | +| ---------- | ----------------------------------------------- | :-------------------------: | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| formula | 4D.Function | -> | Objeto fórmula | +| methodName | Text | -> | Nombre de un método | +| initValue | Text, Number, Object, Collection, Date, Boolean | -> | Valor a utilizar como primer argumento de la primera llamada de *formula* o *methodName* | +| param | expresión | -> | Parámetro(s) a pasar | +| Result | Text, Number, Object, Collection, Date, Boolean | <- | *formula* (sintaxis recomendada), un [objeto Fórmula](FunctionClass.md) que puede encapsular toda expresión ejecutable, incluyendo funciones y métodos proyecto; | @@ -2805,31 +2725,28 @@ La función `.reduceRight()` aplic Se designa la retrollamada a ejecutar para evaluar los elementos de la colección utilizando: -- *formula* (sintaxis recomendada), un [objeto Fórmula](FunctionClass.md) que puede encapsular toda expresión ejecutable, incluyendo funciones y métodos proyecto; -- o *methodName*, el nombre de un método proyecto (texto). +- Comparación +- Tipo -La retrollamada toma cada elemento de la colección y realiza toda operación deseada para acumular el resultado en *$1.accumulator*, que se devuelve en *$1.value*. +Tipo Puede pasar el valor para inicializar el acumulador en *initValue*. Si se omite, *$1.accumulator* empieza por *Undefined*. La retrollamada recibe los siguientes parámetros: -- en *$1.value*: valor del elemento a procesar -- en *$2: param* -- en *$N...*: *paramN...* +- La nueva colección +- Colección compartida que se agrupa con la colección resultante +- Objeto compartido que se agrupa con la colección resultante La retrollamada define los siguientes parámetros: -- *$1.accumulator*: valor que va a ser modificado por la función y que es inicializado por *initValue*. +- Descripción - *$1.stop* (boolean, opcional): **true** para detener la retrollamada del método. El valor devuelto es el último calculado. #### Ejemplo 1 ```4d -var $c : Collection -$c:=New collection(5;3;5;1;3;4;4;6;2;2) -$r:=$c.reduceRight(Formula($1.accumulator*=$1.value); 1) //devuelve 86400 - +Tipo ``` #### Ejemplo 2 @@ -2849,11 +2766,7 @@ Este ejemplo permite reducir varios elementos de la colección a uno solo: Con el siguiente método ***Flatten***: ```4d - //Método proyecto Flatten - If($1.accumulator=Null) - $1.accumulator:=New collection - End if - $1.accumulator.combine($1.value) +Ejemplo 4 ``` @@ -2874,11 +2787,11 @@ Con el siguiente método ***Flatten***: -| Parámetros | Tipo | | Descripción | -| ---------- | ---------- | :-------------------------: | --------------------------------------------------------------------------------------- | -| index | Integer | -> | Elemento en el que se inicia la eliminación | -| howMany | Integer | -> | Número de elementos a eliminar, o 1 elemento si se omite | -| Result | Collection | <- | Colección modificada sin elemento(s) eliminado(s) | +| Parámetros | Tipo | | Descripción | +| ---------- | ---------- | :-------------------------: | -------------------------------------------------------- | +| index | Integer | -> | Elemento en el que se inicia la eliminación | +| howMany | Integer | -> | Número de elementos a eliminar, o 1 elemento si se omite | +| Result | Collection | <- | Colección original sin elementos eliminados | @@ -2888,13 +2801,13 @@ La función `.remove()` elimina uno o m > Esta función modifica la colección original. -En *index*, pase la posición donde quiere eliminar el elemento de la colección. +Lanzamiento -> **Atención**: recuerde que los elementos de la colección están numerados desde 0. Si *index* es mayor que la longitud de la colección, el índice inicial real se definirá en la longitud de la colección. +> Diferente de Si *startFrom* < 0, se considera el desplazamiento desde el final de la colección (*startFrom:=startFrom+length*). -- Si *index* < 0, se recalcula como *index:=index+length* (se considera el desplazamiento desde el final de la colección). -- Si el valor calculado < 0, *index* toma el valor 0. -- Si el valor calculado > la longitud de la colección, *index* toma el valor de la longitud. +- Ejemplo 3 +- Si el valor calculado < 0, *startFrom* toma el valor 0. +- Ejemplo 1 En *howMany*, pase el número de elementos a eliminar de *index*. Si no se especifica *howMany*, se elimina un elemento. @@ -2933,18 +2846,18 @@ Si se intenta eliminar un elemento de una colección vacía, el método no hace | ------------ | ----------------------------------------------- | :-------------------------: | ---------------------------------------------- | | size | Integer | -> | Nuevo tamaño de la colección | | defaultValue | Number, Text, Object, Collection, Date, Boolean | -> | Valor por defecto para llenar nuevos elementos | -| Result | Collection | <- | Colección original redimensionada | +| Result | Collection | <- | Colección original ordenada | #### Descripción -La función `.resize()` ajusta la longitud de la colección al nuevo tamaño especificado y devuelve la colección redimensionada. +Ejemplo > Esta función modifica la colección original. -- Si *size* la longitud de la colección, los elementos que exceden se eliminan de la colección. -- Si *size* > longitud de la colección, *size* es la nueva longitud de la colección. +- Ejemplo 1 +- Ejemplo 1 Por defecto, los nuevos elementos se llenan con valores **null**. Puede especificar el valor a llenar en los elementos añadidos utilizando el parámetro *defaultValue*. @@ -2984,9 +2897,9 @@ Por defecto, los nuevos elementos se llenan con valores **null**. Puede especifi -| Parámetros | Tipo | | Descripción | -| ---------- | ---------- | :-------------------------: | ------------------------------- | -| Result | Collection | <- | Copia invertida de la colección | +| Parámetros | Tipo | | Descripción | +| ---------- | ---------- | :-------------------------: | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| Result | Collection | <- | *formula* (sintaxis recomendada), un [objeto Fórmula](FunctionClass.md) que puede encapsular toda expresión ejecutable, incluyendo funciones y métodos proyecto; | @@ -3022,9 +2935,9 @@ La función `.reverse()` devuelve una -| Parámetros | Tipo | | Descripción | -| ---------- | ---- | :-------------------------: | ------------------------------- | -| Result | any | <- | Primer elemento de la colección | +| Parámetros | Tipo | | Descripción | +| ---------- | ---- | :-------------------------: | ------------------------------------------- | +| Result | any | <- | Colección original sin elementos eliminados | @@ -3065,11 +2978,11 @@ Si la colección está vacía, este método no hace nada. -| Parámetros | Tipo | | Descripción | -| ---------- | ---------- | :-------------------------: | -------------------------------------------------------------------------------------- | -| startFrom | Integer | -> | Índice de inicio (incluido) | -| end | Integer | -> | Índice final (no incluido) | -| Result | Collection | <- | Nueva colección que contiene elementos cortados (copia superficial) | +| Parámetros | Tipo | | Descripción | +| ---------- | ---------- | :-------------------------: | ---------------------------------------------- | +| startFrom | Integer | -> | Índice de inicio (incluido) | +| end | Integer | -> | Índice final (no incluido) | +| Result | Collection | <- | La nueva colección compartida | @@ -3082,9 +2995,9 @@ La función `.slice()` devuelve una porc La colección devuelta contiene el elemento especificado por *startFrom* y todos los elementos subsiguientes hasta, pero sin incluir, el elemento especificado por *end*. Si sólo se especifica el parámetro *startFrom*, la colección devuelta contiene todos los elementos desde *startFrom* hasta el último elemento de la colección original. - Si *startFrom* < 0, se recalcula como *startFrom:=startFrom+length* (se considera el desplazamiento desde el final de la colección). -- Si el valor calculado < 0, *startFrom* toma el valor 0. -- Si *end* < 0 , se recalcula como *end:=end+length*. -- Si *end < startFrom* (valores pasados o calculados), el método no hace nada. +- Descripción +- Soporte de querySettings +- Este ejemplo permite reducir varios elementos de la colección a uno solo: #### Ejemplo @@ -3133,35 +3046,35 @@ La función `.some()` devuelve true si a Se designa el código 4D de retrollamada (callback) a ejecutar para evaluar los elementos de la colección utilizando: -- *formula* (sintaxis recomendada), un [objeto Fórmula](FunctionClass.md) que puede encapsular toda expresión ejecutable, incluyendo funciones y métodos proyecto; -- o *methodName*, el nombre de un método proyecto (texto). +- Comparación +- Tipo La retrollamada se llama con los parámetros pasados en *param* (opcional). La retrollamada puede efecturar toda prueba, con o sin los parámetros, y debe devolver *true* para cada elemento que cumpla la prueba. Recibe un `Object` en el primer parámetro ($1). La retrollamada recibe los siguientes parámetros: -- en *$1.value*: valor del elemento a procesar -- en *$2: param* -- en *$N...*: *paramN...* +- La nueva colección +- Colección compartida que se agrupa con la colección resultante +- Objeto compartido que se agrupa con la colección resultante Puede definir los siguientes parámetros: -- (obligatorio si se ha utilizado un método) *$1.result* (booleano): **true** si la evaluación del valor del elemento tiene éxito, **false** en caso contrario. +- Expresión a buscar en la colección - *$1.stop* (boolean, opcional): **true** para detener la retrollamada del método. El valor devuelto es el último calculado. -En todo caso, en el momento en que la función `.some()` encuentra el primer elemento de la colección que devuelve true, deja de llamar a la llamada de retorno y devuelve **true**. +Descripción Por defecto, `.some()` comprueba toda la colección. Opcionalmente, puede pasar el índice de un elemento desde el cual iniciar la prueba en *startFrom*. -- Si *startFrom* >= la longitud de la colección, se devuelve **False**, lo que significa que no se prueba la colección. +- Tipo -- Si *startFrom* < 0, se considera como el desplazamiento desde el final de la colección. +- Diferente de Si *startFrom* < 0, se considera el desplazamiento desde el final de la colección (*startFrom:=startFrom+length*). -- Si *startFrom* = 0, se busca en toda la colección (por defecto). +- Descripción #### Ejemplo -Quiere saber si al menos un valor de la colección es >0. +Incluído en ```4d var $c : Collection @@ -3197,18 +3110,18 @@ Quiere saber si al menos un valor de la colección es >0. -| Parámetros | Tipo | | Descripción | -| ---------- | --------------------------- | :-------------------------: | --------------------------- | -| formula | 4D.Function | -> | Objeto fórmula | -| methodName | Text | -> | Nombre de un método | -| extraParam | any | -> | Parámetros del método | -| Result | Collection | <- | Colección original ordenada | +| Parámetros | Tipo | | Descripción | +| ---------- | --------------------------- | :-------------------------: | ------------------------------------------------------------------------------------------- | +| formula | 4D.Function | -> | Objeto fórmula | +| methodName | Text | -> | Nombre de un método | +| extraParam | any | -> | Parámetros del método | +| Result | Collection | <- | o *methodName*, el nombre de un método proyecto (texto). | #### Descripción -La función `.sort()` ordena los elementos de la colección original y además devuelve la colección ordenada. +Colección original ordenada > Esta función modifica la colección original. @@ -3227,13 +3140,13 @@ Si quiere ordenar los elementos de la colección en algún otro orden o ordenar La retrollamada recibe los siguientes parámetros: - $1 (objeto), donde: - - *$1.value* (todo tipo): valor del primer elemento a comparar - - *$1.value2* (todo tipo): valor del segundo elemento a comparar + - Lanzamiento + - Lanzamiento - $2...$N (cualquier tipo): parámetros adicionales -Si utilizó un método, debe definir el siguiente parámetro: +Ejemplo -- *$1.result* (boolean): **true** si *$1.value < $1.value2*, **false** de lo contrario. +- Obtiene los datos coincidentes, admite el comodín (@), no distingue entre mayúsculas de minúsculas ni diacríticas. #### Ejemplo 1 @@ -3255,10 +3168,7 @@ Si utilizó un método, debe definir el siguiente parámetro: #### Ejemplo 3 ```4d -var $col; $col2; $col3 : Collection -$col:=New collection(33;4;66;1111;222) -$col2:=$col.sort() //numerical sort: [4,33,66,222,1111] -$col3:=$col.sort(Formula(String($1.value) @@ -3282,23 +3192,23 @@ $col3:=$col.sort(Formula(String($1.value) | Ruta de la propiedad del objeto que se utilizará para el cálculo | -| Result | Real | <- | Suma de los valores de la colección | +| Result | Real | <- | Colección original con valores rellenados | #### Descripción -La función `.sum()` devuelve la suma de todos los valores de la instancia de la colección. +Añadidos Para el cálculo sólo se tienen en cuenta los elementos numéricos (se ignoran otros tipos de elementos). -Si la colección contiene objetos, pasa el parámetro *propertyPath* para indicar la propiedad del objeto a tener en cuenta. +Uso del paréntesis -`.sum()` devuelve 0 si: +Para más información sobre las colecciones compartidas, por favor consulte la página [Objetos y colecciones compartidas](Concepts/shared.md). - la colección está vacía, - la colección no contiene elementos numéricos, -- *propertyPath* no se encuentra en la colección. +- Lanzamiento #### Ejemplo 1 diff --git a/i18n/es/docusaurus-plugin-content-docs/version-20-R7/API/CryptoKeyClass.md b/i18n/es/docusaurus-plugin-content-docs/version-20-R7/API/CryptoKeyClass.md index 2f6f85b9ef4536..4ee9ba05f5f82d 100644 --- a/i18n/es/docusaurus-plugin-content-docs/version-20-R7/API/CryptoKeyClass.md +++ b/i18n/es/docusaurus-plugin-content-docs/version-20-R7/API/CryptoKeyClass.md @@ -138,7 +138,7 @@ ASSERT($status.success) **.curve** : Text -Definido sólo para las llaves ECDSA: el nombre de la curva normalizada de la llave. Generalmente "prime256v1" para ES256 (por defecto), "secp384r1" para ES384, "secp521r1" para ES512. +Definido sólo para llaves RSA: el tamaño de la llave en bits. . @@ -373,7 +373,7 @@ La representación utf8 de la cadena *message*. **.size** : Integer -Definido sólo para llaves RSA: el tamaño de la llave en bits. . +Definido sólo para las llaves ECDSA: el nombre de la curva normalizada de la llave. . @@ -432,7 +432,7 @@ La `CryptoKey` debe contener una llave **pública** válida. | --------- | ------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | | hash | text | Algoritmo Digest a utilizar. Por ejemplo: "SHA256", "SHA384" o "SHA512". Cuando se utiliza para producir un JWT, el tamaño del hash debe coincidir con el tamaño del algoritmo PS@, ES@, RS@ o PS@ | | pss | boolean | Utilice el Probabilistic Signature Scheme (PSS). Se ignora si la llave no es una llave RSA. Pase `true` al verificar un JWT para el algoritmo PS@ | -| encoding | text | Encoding used to convert the binary encrypted message into the result string. Can be "Base64", or "Base64URL". Por defecto es "Base64". | +| encoding | text | Codificación utilizada para convertir el mensaje binario encriptado en la cadena de resultados. Puede ser "Base64", o "Base64URL". Por defecto es "Base64". | #### *Resultado* diff --git a/i18n/es/docusaurus-plugin-content-docs/version-20-R7/API/DataClassClass.md b/i18n/es/docusaurus-plugin-content-docs/version-20-R7/API/DataClassClass.md index 53110713cc0b47..043f8c0eb1e011 100644 --- a/i18n/es/docusaurus-plugin-content-docs/version-20-R7/API/DataClassClass.md +++ b/i18n/es/docusaurus-plugin-content-docs/version-20-R7/API/DataClassClass.md @@ -459,7 +459,7 @@ En este ejemplo, la primera entidad se creará y guardará pero la segunda falla La función `.get()` consulta la clase de datos para recuperar la entidad que coincide con el parámetro *primaryKey*. -En *primaryKey*, pase el valor de la llave primaria de la entidad a recuperar. El tipo de valor debe coincidir con el tipo de la llave primaria definida en el almacén de datos (Entero o Texto). También puedes asegurarse de que el valor de la llave primaria siempre se devuelva como Texto utilizando la función [`.getKey()`](EntityClass.md#getkey) con el parámetro `dk key as string`. +En *primaryKey*, pase el valor de la llave primaria de la entidad a recuperar. El tipo de valor debe coincidir con el tipo de la llave primaria definida en el almacén de datos (Entero o Texto). El tipo de valor debe coincidir con el tipo de la llave primaria definida en el almacén de datos (Entero o Texto). Si no se encuentra ninguna entidad con *primaryKey*, se devuelve una entidad **Null**. @@ -850,7 +850,7 @@ La función `.newSelection()` crea en la memoria una nueva entidad que hace referencia al mismo registro que la entidad original. Esta función permite actualizar las entidades por separado. +La función `.clone()` crea en la memoria una nueva entidad que hace referencia al mismo registro que la entidad original. -> Tenga en cuenta que toda modificación realizada a las entidades se guardará en el registro referenciado sólo cuando se ejecute la función [`.save( )`](#save). +This function allows you to update entities separately. Note however that, for performance reasons, the new entity shares the same reference of object attributes as the cloned entity. + +> Keep in mind that any modifications done to entities will be saved in the referenced record only when the [`.save()`](#save) function is executed. Esta función sólo puede utilizarse con entidades ya guardadas en la base de datos. No se puede llamar a una entidad recién creada (para la que [`isNew()`](#isnew) devuelve **True**). @@ -866,7 +868,7 @@ El valor resultante se incluye entre 0 y la longitud de la selección de entidad #### Descripción -La función `.isNew()` devuelve True si la entidad a la que se aplica acaba de ser creada y aún no ha sido guardada en el datastore. . +La función `.isNew()` devuelve True si la entidad a la que se aplica acaba de ser creada y aún no ha sido guardada en el datastore. . . #### Ejemplo @@ -966,34 +968,34 @@ De lo contrario, puede pasar la opción `dk reload if stamp changed` en el pará El objeto devuelto por `.lock()` contiene las siguientes propiedades: -| Propiedad | | Tipo | Descripción | -| --------------------------------- | ----------------------------------- | --------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -| success | | boolean | true si la acción de bloqueo tiene éxito (o si la entidad ya está bloqueada en el proceso actual), false en caso contrario. | -| | | | ***Disponible sólo si se utiliza la opción `dk reload if stamp changed`:*** | -| **wasReloaded** | | boolean | true si la entidad fue recargada con éxito, false en caso contrario. | -| | | | ***Disponible sólo en caso de error:*** | -| status(\*) | | number | Código de error, ver abajo | -| statusText(\*) | | text | Descripción del error, ver abajo | -| | | | ***Disponible sólo en caso de error de bloqueo pesimista:*** | -| lockKindText | | text | "Locked by record" si está bloqueado por un proceso 4D, "Locked by session" si está bloqueado por una sesión REST | -| lockInfo | | object | Información sobre el origen del bloqueo. Las propiedades devueltas dependen del origen del bloqueo (proceso 4D o sesión REST). | -| | | | ***Disponible sólo para un bloqueo por proceso 4D:*** | -| | task_id | number | ID del Proceso | -| | user_name | text | Nombre de usuario de la sesión en la máquina | -| | user4d_alias | text | Nombre o alias del usuario 4D | -| | user4d_id | number | ID del usuario en el directorio de la base de datos 4D | -| | host_name | text | Nombre de la máquina | -| | task_name | text | Nombre del proceso | -| | client_version | text | Versión del cliente | -| | | | ***Disponible sólo para un bloqueo por sesión REST:*** | -| | host | text | URL que bloqueó la entidad (por ejemplo, "www.myserver.com") | -| | IPAddr | text | Dirección IP del bloqueo (por ejemplo: "127.0.0.1") | -| | userAgent | text | userAgent del origin del bloqueo (ej: "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_3) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/96.0.4664.110 Safari/537.36") | -| | | | ***Disponible sólo en caso de error crítico*** (llave primaria duplicada, disco lleno...): | -| errors | | collection of objects | | -| | message | text | Mensaje de error | -| | component signature | text | firma del componente interno (por ejemplo, "dmbg" significa el componente de la base) | -| | errCode | number | Código de error | +| Propiedad | | Tipo | Descripción | +| --------------------------------- | ----------------------------------- | --------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| success | | boolean | true si la acción de bloqueo tiene éxito (o si la entidad ya está bloqueada en el proceso actual), false en caso contrario. | +| | | | ***Disponible sólo si se utiliza la opción `dk reload if stamp changed`:*** | +| **wasReloaded** | | boolean | true si la entidad fue recargada con éxito, false en caso contrario. | +| | | | ***Disponible sólo en caso de error:*** | +| status(\*) | | number | Código de error, ver abajo | +| statusText(\*) | | text | Descripción del error, ver abajo | +| | | | ***Disponible sólo en caso de error de bloqueo pesimista:*** | +| lockKindText | | text | "Locked by record" si está bloqueado por un proceso 4D, "Locked by session" si está bloqueado por una sesión REST | +| lockInfo | | object | Información sobre el origen del bloqueo. Las propiedades devueltas dependen del origen del bloqueo (proceso 4D o sesión REST). | +| | | | ***Disponible sólo para un bloqueo por proceso 4D:*** | +| | task_id | number | ID del Proceso | +| | user_name | text | Nombre de usuario de la sesión en la máquina | +| | user4d_alias | text | Nombre o alias del usuario 4D | +| | user4d_id | number | ID del usuario en el directorio de la base de datos 4D | +| | host_name | text | Nombre de la máquina | +| | task_name | text | Nombre del proceso | +| | client_version | text | Versión del cliente | +| | | | ***Disponible sólo para un bloqueo por sesión REST:*** | +| | host | text | \| URL que bloqueó la entidad (por ejemplo, "www.myserver.com") \| | +| | IPAddr | text | Dirección IP del bloqueo (por ejemplo: "127.0.0.1") | +| | userAgent | text | userAgent del origin del bloqueo (ej: "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_3) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/96.0.4664.110 Safari/537.36") | +| | | | ***Disponible sólo en caso de error crítico*** (llave primaria duplicada, disco lleno...): | +| errors | | collection of objects | | +| | message | text | Mensaje de error | +| | component signature | text | firma del componente interno (por ejemplo, "dmbg" significa el componente de la base) | +| | errCode | number | Código de error | (\*) Los siguientes valores pueden ser devueltos en las propiedades *status* y *statusText* del objeto *Result* en caso de error: diff --git a/i18n/es/docusaurus-plugin-content-docs/version-20-R7/API/EntitySelectionClass.md b/i18n/es/docusaurus-plugin-content-docs/version-20-R7/API/EntitySelectionClass.md index fa6bc2d58a1956..694521589c2453 100644 --- a/i18n/es/docusaurus-plugin-content-docs/version-20-R7/API/EntitySelectionClass.md +++ b/i18n/es/docusaurus-plugin-content-docs/version-20-R7/API/EntitySelectionClass.md @@ -5,7 +5,7 @@ title: EntitySelection Una entity selection es un objeto que contiene una o más referencias a [entidades](ORDA/dsMapping.md#entity) pertenecientes a la misma [Dataclass](ORDA/dsMapping.md#dataclass). Una entity selection puede contener 0, 1 o X entidades de la dataclass -- donde X puede representar el número total de entidades contenidas en la dataclass. -Las entity selections pueden crearse a partir de selecciones existentes utilizando varias funciones de la clase [`DataClass`](DataClassClass.md) como [`.all()`](DataClassClass.md#all) o [`.query()`](DataClassClass.md#query), o funciones de la propia clase `EntityClass`, como [`.and()`](#and) u [`orderBy()`](#orderby). You can also create blank entity selections using the [`dataClass.newSelection()`](DataClassClass.md#newselection) function or the [`Create entity selection`](../commands/create-entity-selection.md) command. +Las entity selections pueden crearse a partir de selecciones existentes utilizando varias funciones de la clase [`DataClass`](DataClassClass.md) como [`.all()`](DataClassClass.md#all) o [`.query()`](DataClassClass.md#query), o funciones de la propia clase `EntityClass`, como [`.and()`](#and) u [`orderBy()`](#orderby). También puede crear entity selections vacías utilizando la función [`dataClass.newSelection()`](DataClassClass.md#newselection) o el comando [`Create entity selection`](../commands/create-entity-selection.md). ### Resumen @@ -213,7 +213,7 @@ La función `.add()` añade la * :::info atención -La entity selection debe ser *modificable*, es decir, ha sido creada, por ejemplo, por [`.newSelection()`](DataClassClass.md#newselection) o `Create entity selection`, de lo contrario `.add()` devolverá un error. Las entity selections compartibles no aceptan la adición de entidades. Para más información, consulte la sección [Selecciones de entidades compartibles o modificables](ORDA/entities.md#shareable-or-alterable-entity-selections). +La entity selection debe ser *modificable*, es decir, ha sido creada, por ejemplo, por [`.newSelection()`](DataClassClass.md#newselection) o `Create entity selection`, de lo contrario `.add()` devolverá un error. Las entity selections compartibles no aceptan la adición de entidades. Las entity selections compartibles no aceptan la adición de entidades. ::: @@ -687,7 +687,7 @@ En el parámetro *attributePath*, pase el atributo de entidad cuyos valores dist Puede utilizar la notación `[]` para designar una colección cuando *attributePath* es una ruta en un objeto (ver los ejemplos). -En el parámetro *options*, puede pasar una o una combinación de las siguientes constantes: +Ejemplos | Constante | Valor | Comentario | | ----------------- | ----- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | @@ -2021,10 +2021,10 @@ La función `.slice()` devuelv La entity selection devuelta contiene las entidades especificadas por *startFrom* y todas las entidades subsiguientes hasta, pero sin incluir, la entidad especificada por *end*. Si sólo se especifica el parámetro *startFrom*, la entity selection devuelta contiene todas las entidades entre *startFrom* y la última entidad de la entity selection original. -- Si *startFrom* < 0, se recalcula como *startFrom:=startFrom+length* (se considera el desplazamiento desde el final de la entity selection). Si el valor calculado < 0, *startFrom* toma el valor 0. +- Si *startFrom* < 0, se recalcula como *startFrom:=startFrom+length* (se considera el desplazamiento desde el final de la entity selection). Descripción - Si *startFrom >= length*, la función devuelve una entity selection vacía. - Si *end* < 0, se recalcula como *end:=end+length*. -- Si *end < startFrom* (valores pasados o calculados), el método no hace nada. +- Este ejemplo permite reducir varios elementos de la colección a uno solo: .sum() devuelve 0 si la entity selection está vacía. diff --git a/i18n/es/docusaurus-plugin-content-docs/version-20-R7/API/FileHandleClass.md b/i18n/es/docusaurus-plugin-content-docs/version-20-R7/API/FileHandleClass.md index 85f7fc68f1333b..eebc9e51518288 100644 --- a/i18n/es/docusaurus-plugin-content-docs/version-20-R7/API/FileHandleClass.md +++ b/i18n/es/docusaurus-plugin-content-docs/version-20-R7/API/FileHandleClass.md @@ -275,7 +275,7 @@ Esta propiedad es **lectura-escritura**. :::caution -Cuando se crea un file handle, el valor `.offset` es un número de bytes. Sin embargo, la unidad de medida del offset difiere según la función de lectura: con [`readBlob()`](#readblob), `.offset` es un número de bytes, mientras que con [`readText()`](#readtext)/[`readLine()`](#readline) es un número de caracteres. Según el conjunto de caracteres del archivo, un caracter corresponde a uno o varios bytes. Según el conjunto de caracteres del archivo, un caracter corresponde a uno o varios bytes. Por lo tanto, si comienza a leer con `readBlob()` y luego llama a `readText()`, la lectura de texto comenzará en una posición inconsistente. Por ejemplo: +Cuando se crea un file handle, el valor `.offset` es un número de bytes. Sin embargo, la unidad de medida del offset difiere según la función de lectura: con [`readBlob()`](#readblob), `.offset` es un número de bytes, mientras que con [`readText()`](#readtext)/[`readLine()`](#readline) es un número de caracteres. Según el conjunto de caracteres del archivo, un caracter corresponde a uno o varios bytes. Según el conjunto de caracteres del archivo, un caracter corresponde a uno o varios bytes. Según el conjunto de caracteres del archivo, un caracter corresponde a uno o varios bytes. Por ejemplo: ```4d // Abrir un fichero de texto europeo con codificación utf-16 (dos bytes por caracter) diff --git a/i18n/es/docusaurus-plugin-content-docs/version-20-R7/API/FolderClass.md b/i18n/es/docusaurus-plugin-content-docs/version-20-R7/API/FolderClass.md index 7e18727a9a1cf7..6c779f042edc9b 100644 --- a/i18n/es/docusaurus-plugin-content-docs/version-20-R7/API/FolderClass.md +++ b/i18n/es/docusaurus-plugin-content-docs/version-20-R7/API/FolderClass.md @@ -3,7 +3,7 @@ id: FolderClass title: Folder --- -`Folder` objects are created with the [`Folder`](../commands/folder.md) command. Contienen referencias a carpetas que pueden o no existir realmente en el disco. Por ejemplo, cuando ejecuta el comando `Folder` para crear una nueva carpeta, se crea un objeto `Folder` válido, pero en realidad no se almacena nada en el disco hasta que llame a la función [`folder.create()`](#create). +Los objetos `Folder` son creados con el comando [`Folder`](../commands/folder.md). Contienen referencias a carpetas que pueden o no existir realmente en el disco. Por ejemplo, cuando ejecuta el comando `Folder` para crear una nueva carpeta, se crea un objeto `Folder` válido, pero en realidad no se almacena nada en el disco hasta que llame a la función [`folder.create()`](#create). ### Ejemplo @@ -67,9 +67,9 @@ Los objetos `Folder` admiten varios nombres de ruta, incluida la sintaxis `files #### Descripción -La función `4D.Folder.new()` crea y devuelve un nuevo objeto del tipo `4D.Folder`. It is identical to the [`Folder`](../commands/folder.md) command (shortcut). +La función `4D.Folder.new()` crea y devuelve un nuevo objeto del tipo `4D.Folder`. Es idéntico al comando [`Folder`](../commands/folder.md) (atajo). -> It is recommended to use the [`Folder`](../commands/folder.md) shortcut command instead of `4D.Folder.new()`. +> Se recomienda utilizar el comando de acceso directo [`Folder`](../commands/folder.md) en lugar de `4D.Folder.new()`. @@ -297,7 +297,7 @@ La función `.moveTo( )` mueve o renom La *destinationFolder* debe existir en el disco, de lo contrario se genera un error. -Por defecto, la carpeta conserva su nombre cuando se mueve. Si desea cambiar renombrar la carpeta desplazada, pase el nombre completo en el parámetro *newName*. El nuevo nombre debe cumplir con las reglas de nomenclatura (por ejemplo, no debe contener caracteres como ":", "/", etc.), de lo contrario se devuelve un error. +Por defecto, la carpeta conserva su nombre cuando se mueve. Por defecto, la carpeta conserva su nombre cuando se mueve. El nuevo nombre debe cumplir con las reglas de nomenclatura (por ejemplo, no debe contener caracteres como ":", "/", etc.), de lo contrario se devuelve un error. **Objeto devuelto** diff --git a/i18n/es/docusaurus-plugin-content-docs/version-20-R7/API/HTTPRequestClass.md b/i18n/es/docusaurus-plugin-content-docs/version-20-R7/API/HTTPRequestClass.md index bcb16c4790ee56..45c4a9150b41cc 100644 --- a/i18n/es/docusaurus-plugin-content-docs/version-20-R7/API/HTTPRequestClass.md +++ b/i18n/es/docusaurus-plugin-content-docs/version-20-R7/API/HTTPRequestClass.md @@ -478,7 +478,7 @@ La propiedad `.url` contiene la URL de ## .wait() -**.wait**( { *time* : Real } ) : HTTPRequestClass +**.wait**( { *time* : Real } ) : 4D.HTTPRequest @@ -499,6 +499,6 @@ Si se pasa un parámetro *time*, la función esperará como máximo el número d Si la respuesta del servidor ya ha llegado, la función regresa inmediatamente. -During a `.wait()` execution, callback functions are executed, whether from other `HTTPRequest` or [`SystemWorker`](SystemWorkerClass.md) instances, or other [`CALL WORKER`](../commands-legacy/call-worker.md) calls. Puede salir de un `.wait()` llamando a [`terminate()`](#terminate) desde un callback. +Durante una ejecución `.wait()`, las funciones de retrollamada se ejecutan, ya sea desde otras instancias `HTTPRequest` o [`SystemWorker`](SystemWorkerClass.md) u otras llamadas [`CALL WORKER`](../commands-legacy/call-worker.md). Puede salir de un `.wait()` llamando a [`terminate()`](#terminate) desde un callback. diff --git a/i18n/es/docusaurus-plugin-content-docs/version-20-R7/API/IMAPTransporterClass.md b/i18n/es/docusaurus-plugin-content-docs/version-20-R7/API/IMAPTransporterClass.md index d348fb30b466ef..24a4cbcd7f27af 100644 --- a/i18n/es/docusaurus-plugin-content-docs/version-20-R7/API/IMAPTransporterClass.md +++ b/i18n/es/docusaurus-plugin-content-docs/version-20-R7/API/IMAPTransporterClass.md @@ -7,7 +7,7 @@ La clase `IMAPTransporter` le permite recuperar mensajes de un servidor de corre ### Objeto IMAP Transporter -IMAP Transporter objects are instantiated with the [IMAP New transporter](../commands/imap-new-transporter.md) command. Ofrecen las siguientes propiedades y funciones: +Los objetos IMAP Transporter se instancian con el comando [IMAP New transporter](../commands/imap-new-transporter.md). Ofrecen las siguientes propiedades y funciones: | | | ------------------------------------------------------------------------------------------------------------------------------------------------------------------- | @@ -57,7 +57,7 @@ IMAP Transporter objects are instantiated with the [IMAP New transporter](../com #### Descripción -La función `4D.IMAPTransporter.new()` crea y devuelve un nuevo objeto de tipo `4D.IMAPTransporter`. It is identical to the [`IMAP New transporter`](../commands/imap-new-transporter.md) command (shortcut). +La función `4D.IMAPTransporter.new()` crea y devuelve un nuevo objeto de tipo `4D.IMAPTransporter`. Es idéntico al comando [`IMAP New transporter`](../commands/imap-new-transporter.md) (acceso directo). @@ -794,7 +794,7 @@ Cada objeto de la colección devuelta contiene las siguientes propiedades: | Propiedad | Tipo | Descripción | | ------------------------------------------------------------------------------------ | ------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | | \[].name | Text | Nombre del buzón. Devuelto si withBoxProperties=true o withBoxInfo=true | -| \[].selectable | Boolean | Indicates whether or not the access rights allow the mailbox to be selected:
    • true - the mailbox can be selected
    • false - the mailbox can not be selected
    Returned if withBoxProperties=true | +| \[].selectable | Boolean | Indica si los derechos de acceso permiten o no seleccionar el buzón de correo:
    • true - el buzón puede ser seleccionado
    • false - el buzón de correo no puede ser seleccionado
    Devuelto si withBoxProperties=true | | \[].inferior | Boolean | Indica si los derechos de acceso permiten o no crear una jerarquía inferior en el buzón:
    • true - se puede crear un nivel inferior
    • false - no se puede crear un nivel inferior
    Se devuelve si withBoxProperties=true | | \[].interesting | Boolean | Indica si el buzón ha sido marcado como "interesante" por el servidor:
    • true - El buzón ha sido marcado como "interesante" por el servidor. Por ejemplo, puede contener nuevos mensajes.
    • false - El buzón no ha sido marcado como "interesante" por el servidor.
    Devuelto si withBoxProperties=true | | [].mailCount | Number | Número de mensajes en el buzón. Devuelto si withBoxInfo=true | diff --git a/i18n/es/docusaurus-plugin-content-docs/version-20-R7/API/POP3TransporterClass.md b/i18n/es/docusaurus-plugin-content-docs/version-20-R7/API/POP3TransporterClass.md index 6f38aca9bf78cc..362c25a0ab4be2 100644 --- a/i18n/es/docusaurus-plugin-content-docs/version-20-R7/API/POP3TransporterClass.md +++ b/i18n/es/docusaurus-plugin-content-docs/version-20-R7/API/POP3TransporterClass.md @@ -7,7 +7,7 @@ La clase `POP3Transporter` permite recuperar mensajes de un servidor de correo P ### Objeto POP3 Transporter -POP3 Transporter objects are instantiated with the [`POP3 New transporter`](../commands/pop3-new-transporter.md) command. Ofrecen las siguientes propiedades y funciones: +Los objetos POP3 Transporter son instanciados con el comando [`POP3 New transporter`](../commands/pop3-new-transporter.md). Ofrecen las siguientes propiedades y funciones: | | | ------------------------------------------------------------------------------------------------------------------------------------------------------------- | @@ -42,7 +42,7 @@ POP3 Transporter objects are instantiated with the [`POP3 New transporter`](../c #### Descripción -La función `4D.POP3Transporter.new()` crea y devuelve un nuevo objeto de tipo `4D.POP3Transporter`. It is identical to the [`POP3 New transporter`](../commands/pop3-new-transporter.md) command (shortcut). +La función `4D.POP3Transporter.new()` crea y devuelve un nuevo objeto de tipo `4D.POP3Transporter`. Es idéntico al comando [`POP3 New transporter`](../commands/pop3-new-transporter.md) (atajo). diff --git a/i18n/es/docusaurus-plugin-content-docs/version-20-R7/API/SMTPTransporterClass.md b/i18n/es/docusaurus-plugin-content-docs/version-20-R7/API/SMTPTransporterClass.md index 6225b2c4292b30..4d04332a838df1 100644 --- a/i18n/es/docusaurus-plugin-content-docs/version-20-R7/API/SMTPTransporterClass.md +++ b/i18n/es/docusaurus-plugin-content-docs/version-20-R7/API/SMTPTransporterClass.md @@ -7,7 +7,7 @@ La clase `SMTPTransporter` permite configurar conexiones SMTP y enviar correos e ### Objeto SMTP Transporter -SMTP Transporter objects are instantiated with the [`SMTP New transporter`](../commands/smtp-new-transporter.md) command. Ofrecen las siguientes propiedades y funciones: +Los objetos SMTP Transporter son instanciados con el comando [`SMTP New transporter`](../commands/smtp-new-transporter.md). Ofrecen las siguientes propiedades y funciones: | | | ------------------------------------------------------------------------------------------------------------------------------------------------------------- | @@ -40,7 +40,7 @@ SMTP Transporter objects are instantiated with the [`SMTP New transporter`](../c #### Descripción -La función `4D.SMTPTransporter.new()` crea y devuelve un nuevo objeto del tipo `4D.SMTPTransporter`. It is identical to the [`SMTP New transporter`](../commands/smtp-new-transporter.md) command (shortcut). +La función `4D.SMTPTransporter.new()` crea y devuelve un nuevo objeto del tipo `4D.SMTPTransporter`. Es idéntico al comando [`SMTP New transporter`](../commands/smtp-new-transporter.md) (acceso directo). diff --git a/i18n/es/docusaurus-plugin-content-docs/version-20-R7/API/SessionClass.md b/i18n/es/docusaurus-plugin-content-docs/version-20-R7/API/SessionClass.md index ec179205ac5b09..6258b7ee092327 100644 --- a/i18n/es/docusaurus-plugin-content-docs/version-20-R7/API/SessionClass.md +++ b/i18n/es/docusaurus-plugin-content-docs/version-20-R7/API/SessionClass.md @@ -3,7 +3,7 @@ id: SessionClass title: Session --- -Session objects are returned by the [`Session`](../commands/session.md) command. Estos objetos ofrecen al desarrollador una interfaz que permite gestionar la sesión de usuario actual y ejecutar acciones como almacenar datos contextuales, compartir información entre procesos de sesión, lanzar procesos preferentes relacionados con la sesión o (sólo web) gestionar [privilegios](../ORDA/privileges.md). +Los objetos de sesión son devueltos por el comando [`Session`](../commands/session.md). Estos objetos ofrecen al desarrollador una interfaz que permite gestionar la sesión de usuario actual y ejecutar acciones como almacenar datos contextuales, compartir información entre procesos de sesión, lanzar procesos preferentes relacionados con la sesión o (sólo web) gestionar [privilegios](../ORDA/privileges.md). ### Tipos de sesiones diff --git a/i18n/es/docusaurus-plugin-content-docs/version-20-R7/API/SignalClass.md b/i18n/es/docusaurus-plugin-content-docs/version-20-R7/API/SignalClass.md index 0e579eed98cfa9..ab6418eaee23f2 100644 --- a/i18n/es/docusaurus-plugin-content-docs/version-20-R7/API/SignalClass.md +++ b/i18n/es/docusaurus-plugin-content-docs/version-20-R7/API/SignalClass.md @@ -126,7 +126,7 @@ Esta propiedad está en **lectura-escritura**. #### Descripción -Lanzamiento Cuando se crea la señal, `.signaled` es **False**. La propiedad `.signaled` se convierte en true cuando cualquier worker/proceso llama al método `.trigger()`. +Lanzamiento Lanzamiento Lanzamiento Lanzamiento Lanzamiento Cuando se crea la señal, `.signaled` es **False**. La propiedad `.signaled` se convierte en true cuando cualquier worker/proceso llama al método `.trigger()`. Esta propiedad es de **solo lectura**. @@ -158,7 +158,7 @@ Esta propiedad es de **solo lectura**. La función `.trigger( )` define la propiedad `signaled` del objeto signal como **true** y despierta a todos los workers o procesos que esperan esta signal. -Si la señal ya está en el estado de señalización (es decir, la propiedad signaled\\` ya es **true**), la función no hace nada. +Si la señal ya está en el estado de señalización (es decir, la propiedad signaled\\\\\\` ya es **true**), la función no hace nada. diff --git a/i18n/es/docusaurus-plugin-content-docs/version-20-R7/Backup/backup.md b/i18n/es/docusaurus-plugin-content-docs/version-20-R7/Backup/backup.md index 5a10c7257cdd6b..08b1ccee83c19f 100644 --- a/i18n/es/docusaurus-plugin-content-docs/version-20-R7/Backup/backup.md +++ b/i18n/es/docusaurus-plugin-content-docs/version-20-R7/Backup/backup.md @@ -16,7 +16,7 @@ Una copia de seguridad puede iniciarse de tres maneras: 1. Seleccione el elemento **Copia de seguridad...** en el menú **Archivo** de 4D. La ventana de copia de seguridad aparece: - ![](../assets/en/Backup/backup01. ng) + ![](../assets/en/Backup/backup01.png) Puede ver la ubicación de la carpeta de copia de seguridad usando el menú emergente junto al área de "destino de copia de seguridad". Esta ubicación se define en la página **Copia de seguridad/configuración** de las Propiedades de la base. - También puede abrir el [Centro de mantenimiento y seguridad](MSC/overview.md) de 4D y mostrar la [página de copias de seguridad](MSC/backup.md). diff --git a/i18n/es/docusaurus-plugin-content-docs/version-20-R7/Concepts/classes.md b/i18n/es/docusaurus-plugin-content-docs/version-20-R7/Concepts/classes.md index 4c6f97c447bfdd..388f8b9cc78524 100644 --- a/i18n/es/docusaurus-plugin-content-docs/version-20-R7/Concepts/classes.md +++ b/i18n/es/docusaurus-plugin-content-docs/version-20-R7/Concepts/classes.md @@ -107,9 +107,9 @@ Las clases disponibles son accesibles desde sus class stores. Hay dos class stor -| Parámetros | Tipo | | Descripción | | -| ---------- | ------ | -------------------------------------- | ------------------------------------------------- | ---------------- | -| classStore | Object | &amp;amp;larr; | Class store usuario para el proyecto o componente | | +| Parámetros | Tipo | | Descripción | | +| ---------- | ------ | - | ------------------------------------------------- | ---------------- | +| classStore | Object | ← | Class store usuario para el proyecto o componente | | El comando `cs` devuelve el almacén de clases de usuario para el proyecto o componente actual. Devuelve todas las clases de usuario [definidas](#class-definition) en el proyecto o componente abierto. Por defecto, sólo las [clases ORDA](ORDA/ordaClasses.md) están disponibles. @@ -127,9 +127,9 @@ $instance:=cs.myClass.new() -| Parámetros | Tipo | | Descripción | | -| ---------- | ------ | -------------------------------------- | -------------- | ---------------- | -| classStore | Object | &amp;amp;larr; | Class store 4D | | +| Parámetros | Tipo | | Descripción | | +| ---------- | ------ | - | -------------- | ---------------- | +| classStore | Object | ← | Class store 4D | | El comando `4D` devuelve el almacén de clases para las clases 4D integradas. Ofrece acceso a las APIs específicas como [CryptoKey](API/CryptoKeyClass.md). @@ -158,7 +158,7 @@ Cuando una clase es [definida](#class-definition) en el proyecto, se carga en el - función [`new()`](API/ClassClass.md#new), que permite instanciar objetos de clase - propiedad [`isShared`](API/ClassClass.md#isshared), true si la clase es [compartida](#clases-compartidas) - propiedad [`isSingleton`](API/ClassClass.md#issingleton), verdadero si la clase define una [clase singleton](#singleton-classes). -- [`isSectionSingleton`](API/ClassClass.md#issectionsingleton) property, true if the class defines a [session singleton](#singleton-classes). +- propiedad [`isSectionSingleton`](API/ClassClass.md#issectionsingleton), true si la clase define un [singleton de sesión](#singleton-classes). - Propiedad [`me`](API/ClassClass.md#me), que permite instanciar y acceder a [singletons](#singleton-classes). Además, un objeto clase puede hacer referencia a un objeto [`constructor`](#class-constructor) (opcional). @@ -341,7 +341,7 @@ Una función constructora de clase acepta [parámetros](#parameters) opcionales Cuando llama a la función [`new()`](API/ClassClass.md#new), el constructor de clase es llamado con los parámetros opcionalmente pasados a la función `new()`. -Sólo puede haber una función constructora en una clase (de lo contrario se devuelve un error). The [`Super`](../commands/super.md) command allows calls to the [`superclass`](../API/ClassClass#superclass), i.e. the parent class of the function. +Sólo puede haber una función constructora en una clase (de lo contrario se devuelve un error). El comando [`Super`](../commands/super.md) permite realizar llamadas a [`superclass`](../API/ClassClass#superclass), es decir, a la clase padre de la función. Puede crear y escribir propiedades de instancia dentro del constructor (ver ejemplo). Alternativamente, si los valores de las propiedades de instancia no dependen de los parámetros pasados al constructor, puede definirlos utilizando la palabra clave [`property`](#property). @@ -612,18 +612,18 @@ The following commands have specific features when they are used within class fu ### `Super` -The [`Super`](../commands/super.md) command allows calls to the [`superclass`](../API/ClassClass#superclass), i.e. the parent class of the function. Sólo puede haber una función constructora en una clase (de lo contrario se devuelve un error). +El comando [`Super`](../commands/super.md) permite realizar llamadas a [`superclass`](../API/ClassClass#superclass), es decir, a la clase padre de la función. Sólo puede haber una función constructora en una clase (de lo contrario se devuelve un error). -For more details, see the [`Super`](../commands/super.md) command description. +Para más detalles, vea la descripción del comando [`Super`](../commands/super.md). ### `This` -The [`This`](../commands/this.md) command returns a reference to the currently processed object. In most cases, the value of `This` is determined by how a class function is called. Usually, `This` refers to the object the function was called on, as if the function were on the object. +El comando [`This`](../commands/this.md) devuelve una referencia al objeto procesado actualmente. In most cases, the value of `This` is determined by how a class function is called. Usually, `This` refers to the object the function was called on, as if the function were on the object. Ejemplo: ```4d -//Class: ob +//Clase: ob Function f() : Integer return This.a+This.b @@ -638,7 +638,7 @@ $o.b:=3 $val:=$o.f() //8 ``` -For more details, see the [`This`](../commands/this.md) command description. +Para más detalles, vea la descripción del comando [`This`](../commands/this.md). ## Comandos de clases @@ -713,7 +713,7 @@ Si se utiliza la palabra clave `shared` en una clase usuario no compartida, se i ## Clases Singleton -Una **clase singleton** es una clase usuario que sólo produce una única instancia. For more information on the concept of singletons, please see the [Wikipedia page about singletons](https://en.wikipedia.org/wiki/Singleton_pattern). +Una **clase singleton** es una clase usuario que sólo produce una única instancia. Para más información sobre el concepto de singletons, por favor consulte la [página Wikipedia sobre los singletons](https://en.wikipedia.org/wiki/Singleton_pattern). ### Tipos de Singletons @@ -721,7 +721,7 @@ Una **clase singleton** es una clase usuario que sólo produce una única instan - a **process singleton** has a unique instance for the process in which it is instantiated, - a **shared singleton** has a unique instance for all processes on the machine. -- a **session singleton** is a shared singleton but with a unique instance for all processes in the [session](../API/SessionClass.md). Session singletons are shared within an entire session but vary between sessions. In the context of a client-server or a web application, session singletons make it possible to create and use a different instance for each session, and therefore for each user. +- un **singleton de sesión** es un singleton compartido pero con una instancia única para todos los procesos en la [sesión](../API/SessionClass.md). Session singletons are shared within an entire session but vary between sessions. In the context of a client-server or a web application, session singletons make it possible to create and use a different instance for each session, and therefore for each user. Singletons are useful to define values that need to be available from anywhere in an application, a session, or a process. @@ -745,14 +745,14 @@ Una vez instanciado, existe una clase singleton (y su singleton) siempre que exi Se declaran clases singleton añadiendo la(s) palabra(s) clave(s) apropiada(s) antes del [`Class constructor`](#class-constructor): -- To declare a (process) singleton class, write `singleton Class Constructor()`. -- To declare a shared singleton class, write `shared singleton Class constructor()`. -- To declare a session singleton class, write `session singleton Class constructor()`. +- Para declarar una clase singleton (proceso), escriba `singleton Class Constructor()`. +- Para declarar una clase singleton compartida, escribe `shared singleton Class constructor()`. +- Para declarar una clase singleton de sesión, escriba `session singleton Class constructor()`. :::note -- Session singletons are automatically shared singletons (there's no need to use the `shared` keyword in the class constructor). -- Singleton shared functions support [`onHttpGet` keyword](../ORDA/ordaClasses.md#onhttpget-keyword). +- Los singletons de sesión son automáticamente singletons compartidos (no hay necesidad de usar la palabra clave `shared` en el constructor de clases). +- Las funciones compartidas Singleton soportan [palabra clave `onHttpGet`](../ORDA/ordaClasses.md#onhttpget-keyword). ::: @@ -762,7 +762,7 @@ Si necesita instanciar un singleton con parámetros, también puede llamar la fu La propiedad [`isSingleton`](../API/ClassClass.md#issingleton) de los objetos Clase permite saber si la clase es un singleton. -The [`.isSessionSingleton`](../API/ClassClass.md#issessionsingleton) property of Class objects allows to know if the class is a session singleton. +La propiedad [`.isSessionSingleton`](../API/ClassClass.md#issessionsingleton) de los objetos Class permite saber si la clase es un singleton de sesión. ### Ejemplos @@ -856,4 +856,4 @@ $myList := cs.ItemInventory.me.itemList #### Ver también -[Singletons in 4D](https://blog.4d.com/singletons-in-4d) (blog post)
    [Session Singletons](https://blog.4d.com/introducing-session-singletons) (blog post). +[Singletons en 4D](https://blog.4d.com/singletons-in-4d) (post del blog)
    [Singletons de sesión](https://blog.4d.com/introducing-session-singletons) (post del blog). diff --git a/i18n/es/docusaurus-plugin-content-docs/version-20-R7/Concepts/dt_collection.md b/i18n/es/docusaurus-plugin-content-docs/version-20-R7/Concepts/dt_collection.md index e70edc51b89a84..1b8f0fc8bad7a0 100644 --- a/i18n/es/docusaurus-plugin-content-docs/version-20-R7/Concepts/dt_collection.md +++ b/i18n/es/docusaurus-plugin-content-docs/version-20-R7/Concepts/dt_collection.md @@ -46,18 +46,18 @@ Las colecciones deben haber sido instanciadas, de lo contrario intentar leer o m La instanciación de la colección puede realizarse de una de las siguientes maneras: -- using the [`New collection`](../commands/new-collection.md) command, +- usando el comando [`New collection`](../commands/new-collection.md) - utilizando el operador `[]`. :::info -Several 4D commands and functions return collections, for example [`Monitored activity`](../commands-legacy/monitored-activity.md) or [`collection.copy`](../API/CollectionClass.md#copy). En este caso, no es necesario instanciar explícitamente la colección, el lenguaje 4D lo hace por usted. +Varios comandos y funciones 4D devuelven colecciones, por ejemplo [`Monitored activity`](../commands-legacy/monitored-activity.md) o [`collection.copy`](../API/CollectionClass.md#copy). En este caso, no es necesario instanciar explícitamente la colección, el lenguaje 4D lo hace por usted. ::: ### Comando `New collection` -The [`New collection`](../commands/new-collection.md) command creates a new empty or prefilled collection and returns its reference. +El comando [`New collection`](../commands/new-collection.md) crea una nueva colección vacía o prellenada y devuelve su referencia. Ejemplos: @@ -105,8 +105,8 @@ Si crea un literal de colección que contenga un único elemento, asegúrese de Puede crear dos tipos de colecciones: -- regular (non-shared) collections, using the [`New collection`](commands/new-collection.md) command or collection literal syntax (`[]`). Estas colecciones pueden ser editadas sin ningún control de acceso específico, pero no pueden ser compartidas entre procesos. -- shared collections, using the [`New shared collection`](commands/new-shared-collection.md) command. Estas colecciones pueden ser compartidas entre procesos, incluidos los hilos apropiativos. El acceso a estas colecciones se controla mediante estructuras [`Use...End use`](Concepts/shared.md#useend-use). +- las colecciones estándar (no compartidas), utilizando el comando [`New collection`](commands/new-collection.md) o la sintaxis literal de la colección (`[]`). Estas colecciones pueden ser editadas sin ningún control de acceso específico, pero no pueden ser compartidas entre procesos. +- las colecciones compartidas, utilizando el comando [`New shared collection`](commands/new-shared-collection.md). Estas colecciones pueden ser compartidas entre procesos, incluidos los hilos apropiativos. El acceso a estas colecciones se controla mediante estructuras [`Use...End use`](Concepts/shared.md#useend-use). Para más información, consulte la sección [Objetos y colecciones compartidos](shared.md). diff --git a/i18n/es/docusaurus-plugin-content-docs/version-20-R7/Concepts/dt_object.md b/i18n/es/docusaurus-plugin-content-docs/version-20-R7/Concepts/dt_object.md index 1b2c603b23be88..9ed0bcb4e34797 100644 --- a/i18n/es/docusaurus-plugin-content-docs/version-20-R7/Concepts/dt_object.md +++ b/i18n/es/docusaurus-plugin-content-docs/version-20-R7/Concepts/dt_object.md @@ -47,7 +47,7 @@ La instanciación de objetos puede realizarse de una de las siguientes maneras: :::info -Several 4D commands and functions return objects, for example [`Database measures`](https://doc.4d.com/4Dv19R7/4D/19-R7/database-measures.301-5945423.en.html) or [`File`](../commands/file.md). En este caso, no es necesario instanciar explícitamente el objeto, el lenguaje 4D lo hace por usted. +Varias funciones y comandos 4D devuelven objetos, por ejemplo [`Database measures`](https://doc.4d.com/4Dv19R7/4D/19-R7/database-tilizes.301-5945423.en.html) o [`File`](../commands/file.md). En este caso, no es necesario instanciar explícitamente el objeto, el lenguaje 4D lo hace por usted. ::: diff --git a/i18n/es/docusaurus-plugin-content-docs/version-20-R7/Concepts/parameters.md b/i18n/es/docusaurus-plugin-content-docs/version-20-R7/Concepts/parameters.md index 1812ffcc081881..16759fe6f945ab 100644 --- a/i18n/es/docusaurus-plugin-content-docs/version-20-R7/Concepts/parameters.md +++ b/i18n/es/docusaurus-plugin-content-docs/version-20-R7/Concepts/parameters.md @@ -451,11 +451,11 @@ Cuando los parámetros opcionales son necesarios en sus métodos, también puede Cuando pasa un parámetro, 4D siempre evalúa la expresión del parámetro en el contexto del método que llama y define el **valor resultante** en las variables locales en la función de clase o la subrutina. Las variables/parámetros locales no son los campos, variables o expresiones reales pasados por el método que llama; sólo contienen los valores que se han pasado. Las variables/parámetros locales no son los campos, variables o expresiones reales pasados por el método que llama; sólo contienen los valores que se han pasado. Por ejemplo: ```4d - //Here is some code from the method MY_METHOD -DO_SOMETHING([People]Name) //Let's say [People]Name value is "williams" + //Aquí hay un código del método MY_METHOD +DO_SOMETHING([People]Name) ///Digamos [People]El valor del nombre es "williams" ALERT([People]Name) - //Here is the code of the method DO_SOMETHING + //Aquí está el código del método DO_SOMETHING #DECLARE($param : Text) $param:=Uppercase($param) ALERT($param) @@ -468,11 +468,11 @@ Hay dos formas de hacer que el método `DO_SOMETHING` cambie el valor del campo: 1. En lugar de pasar el campo al método, se pasa un puntero al mismo, por lo que se escribiría: ```4d - //Here is some code from the method MY_METHOD -DO_SOMETHING(->[People]Name) //Let's say [People]Name value is "williams" + //Aquí hay un código del método MY_METHOD +DO_SOMETHING(->[People]Name) ///Digamos [People]El valor del nombre es "williams" ALERT([People]Last Name) - //Here the code of the method DO_SOMETHING + //Aquí el código del método DO_SOMETHING #DECLARE($param : Text) $param->:=Uppercase($param->) ALERT($param->) @@ -483,11 +483,11 @@ Aquí el parámetro no es el campo, sino un puntero al mismo. Therefore, within 2. En lugar de que el método `DO_SOMETHING` "haga algo", puede reescribir el método para que devuelva un valor. Por lo tanto, escribiría: ```4d - //Here is some code from the method MY METHOD - [People]Name:=DO_SOMETHING([People]Name) //Let's say [People]Name value is "williams" + //Aquí hay un código del método MY METHOD + [People]Name:=DO_SOMETHING([People]Name) ///Digamos [People]El valor del nombre es "williams" ALERT([People]Name) - //Here the code of the method DO SOMETHING + //Aquí el código del método DO SOMETHING #DECLARE ($param : Text) -> ($result : Text) $result:=Uppercase($param) ALERT($result) @@ -499,7 +499,7 @@ This second technique of returning a value by a subroutine is called "using a fu Debe prestar atención al hecho de que los tipos de datos Objeto y Colección sólo pueden manejarse a través de una referencia (es decir, un *puntero* interno). -Consequently, when using such data types as parameters, `$param, $return...` do not contain *values* but *references*. Modifying the value of the `$param, $return...` parameters within the subroutine will be propagated wherever the source object or collection is used. This is the same principle as for [pointers](dt_pointer.md#pointers-as-parameters-to-methods), except that `$param, $return...` parameters do not need to be dereferenced in the subroutine. +Consequently, when using such data types as parameters, `$param, $return...` do not contain *values* but *references*. Modifying the value of the `$param, $return...` parameters within the subroutine will be propagated wherever the source object or collection is used. Este es el mismo principio que para [los punteros](dt_pointer.md#pointers-as-parameters-to-methods), excepto que los parámetros `$param, $return...` no necesitan ser desreferenciados en la subrutina. Por ejemplo, considere el método `CreatePerson` que crea un objeto y lo envía como parámetro: diff --git a/i18n/es/docusaurus-plugin-content-docs/version-20-R7/Concepts/paths.md b/i18n/es/docusaurus-plugin-content-docs/version-20-R7/Concepts/paths.md index fe9ec5a6e30ef0..1e648fd247850a 100644 --- a/i18n/es/docusaurus-plugin-content-docs/version-20-R7/Concepts/paths.md +++ b/i18n/es/docusaurus-plugin-content-docs/version-20-R7/Concepts/paths.md @@ -41,7 +41,7 @@ Con esta sintaxis: - los nombres de ruta absolutos empiezan por "/" - para subir una carpeta en una ruta relativa, utilice "../" delante del nombre de la ruta (por seguridad, no puede subir en el sistema de archivos). -In POSIX syntax, you will generally use `filesystem` pathnames with [`File`](../commands/file.md) and [`Folder`](../commands/folder.md) commands, for example: +En la sintaxis POSIX, generalmente usará los nombres de ruta `filesystem` con comandos [`File`](../commands/file.md) y [`Folder`](../commands/folder.md), por ejemplo: ```4d var $pathFile : 4D.File @@ -62,7 +62,7 @@ Se soportan los siguientes modelos: - el texto contiene ":" y "\" como segundo y tercer caracter, - el texto comienza con "\\". -Examples with [`Folder`](../commands/folder.md): +Ejemplos con [`Folder`](../commands/folder.md): ```4d $ok:=Folder("C:\\Monday";fk platform path).create() @@ -82,7 +82,7 @@ Se soportan los siguientes modelos (sintaxis HFS+): - los separadores de carpetas son ":" - la ruta no debe comenzar con un ":" -Examples with [`Folder`](../commands/folder.md): +Ejemplos con [`Folder`](../commands/folder.md): ```4d $ok:=Folder("macintosh hd:";fk platform path).create() @@ -93,7 +93,7 @@ $ok:=Folder("Monday:Tuesday";fk platform path).create() //un volume debe llamars ### Constructores `File` y `Folder` -[`File`](../commands/file.md) and [`Folder`](../commands/folder.md) commands only accept **absolute pathnames**. Las rutas relativas no están soportadas y devolverán errores. Por ejemplo, el siguiente código no es permitido: +Los comandos [`File`](../commands/file.md) y [`Folder`](../commands/folder.md) sólo aceptan **rutas absolutas**. Las rutas relativas no están soportadas y devolverán errores. Por ejemplo, el siguiente código no es permitido: ```4d //ERROR diff --git a/i18n/es/docusaurus-plugin-content-docs/version-20-R7/Concepts/shared.md b/i18n/es/docusaurus-plugin-content-docs/version-20-R7/Concepts/shared.md index b327cd1de415eb..5759e617be2374 100644 --- a/i18n/es/docusaurus-plugin-content-docs/version-20-R7/Concepts/shared.md +++ b/i18n/es/docusaurus-plugin-content-docs/version-20-R7/Concepts/shared.md @@ -8,7 +8,7 @@ title: Objetos y colecciones compartidos Los objetos compartidos y las colecciones compartidas se almacenan en variables estándar [`Object`](dt_object.md) y [`Collection`](dt_collection.md), pero deben instanciarse utilizando comandos específicos: - para crear un objeto compartido, utilice el comando [`New shared object`](https://doc.4d.com/4dv20/help/command/en/page1471.html) o llama a la función [`new()`](../API/ClassClass.md#new) de una [clase compartida](classes.md#clases-compartidas), -- to create a shared collection, use the [`New shared collection`](../commands/new-shared-collection.md) command. +- para crear una colección compartida, utilice el comando [`New shared collection`](../commands/new-shared-collection.md). Los objetos y colecciones compartidas solo pueden contener valores escalares u otros objetos y colecciones compartidas. Sin embargo, los objetos y colecciones compartidos pueden establecerse como propiedades de objetos o colecciones estándar (no compartidos). diff --git a/i18n/es/docusaurus-plugin-content-docs/version-20-R7/Concepts/variables.md b/i18n/es/docusaurus-plugin-content-docs/version-20-R7/Concepts/variables.md index e1281fb30817b7..9669c121cf54d4 100644 --- a/i18n/es/docusaurus-plugin-content-docs/version-20-R7/Concepts/variables.md +++ b/i18n/es/docusaurus-plugin-content-docs/version-20-R7/Concepts/variables.md @@ -49,7 +49,7 @@ var $myVar //una variable variant ``` `varName` es el nombre de la variable, debe cumplir con las [reglas 4D](Concepts/identifiers.md) sobre identificadores. -This syntax only supports [local and process variables](#local-process-and-interprocess-variables) declarations, thus excluding [interprocess variables](#interprocess-variables) (deprecated) and [arrays](Concepts/arrays.md). +Esta sintaxis solo soporta declaraciones de [variables locales y de proceso](#local-process-and-interprocess-variables), por lo que excluye [variables interproceso](#interprocess-variables) (obsoleto) y [arrays](Concepts/arrays.md). `varType` puede ser: @@ -163,7 +163,7 @@ var $a; $b : Integer:=15 //error ## Asignar los valores -Los datos pueden introducirse y copiarse en variables y arrays. Poner datos en una variable se llama **asignar los datos a la variable** y se hace con el operador de asignación (:=). El operador de asignación también se utiliza para asignar datos a campos. +Los datos pueden introducirse y copiarse en variables y arrays. Los datos pueden introducirse y copiarse en variables y arrays. El operador de asignación también se utiliza para asignar datos a campos. El operador de asignación es un primer medio para crear una variable e introducir datos en ella. Se escribe el nombre de la variable que se quiere crear a la izquierda del operador de asignación. Por ejemplo: @@ -201,7 +201,7 @@ El nombre de una variable local siempre comienza por el signo dólar ($) y puede Cuando se trabaja en un proyecto de aplicación con muchos métodos y variables, a menudo se encuentra que se necesita utilizar una variable sólo dentro del método en el que se está trabajando. Puede crear y utilizar una variable local en el método sin preocuparse de si ha utilizado el mismo nombre de variable en otro lugar. -Con frecuencia, en una aplicación, se necesitan pequeñas piezas de información del usuario. El comando `Request` puede obtener esta información. Muestra una caja de diálogo con un mensaje que solicita al usuario una respuesta. Cuando el usuario introduce la respuesta, el comando devuelve la información que el usuario introdujo. Generalmente no es necesario mantener esta información en sus métodos durante mucho tiempo. Esta es una forma típica de utilizar una variable local. Aquí un ejemplo: +Con frecuencia, en una aplicación, se necesitan pequeñas piezas de información del usuario. Con frecuencia, en una aplicación, se necesitan pequeñas piezas de información del usuario. Muestra una caja de diálogo con un mensaje que solicita al usuario una respuesta. Cuando el usuario introduce la respuesta, el comando devuelve la información que el usuario introdujo. Generalmente no es necesario mantener esta información en sus métodos durante mucho tiempo. Esta es una forma típica de utilizar una variable local. Aquí un ejemplo: ```4d $vsID:=Request("Please enter your ID:") diff --git a/i18n/es/docusaurus-plugin-content-docs/version-20-R7/Debugging/debugger.md b/i18n/es/docusaurus-plugin-content-docs/version-20-R7/Debugging/debugger.md index bd479a69eef688..27f0d1d6345754 100644 --- a/i18n/es/docusaurus-plugin-content-docs/version-20-R7/Debugging/debugger.md +++ b/i18n/es/docusaurus-plugin-content-docs/version-20-R7/Debugging/debugger.md @@ -36,7 +36,7 @@ La ventana del depurador suele aparecer en la máquina donde se ejecuta el códi :::note Notas - Si el servidor se ejecuta en modo sin interfaz, no se puede mostrar ninguna ventana de depuración en el servidor, es necesario utilizar el depurador remoto. Ver [Depuración desde máquinas remotas](./debugging-remote.md). -- You can also [attach the Qodly Studio debugger to a 4D Server application](../WebServer/qodly-studio.md#using-qodly-debugger-on-4d-server) if you need to debug Qodly pages in a deployed environment. +- También puede [adjuntar el depurador de Qodly Studio a una aplicación 4D Server](../WebServer/qodly-studio.md#using-qodly-debugger-on-4d-server) si necesita depurar páginas Qodly en un entorno desplegado. ::: @@ -282,7 +282,7 @@ Para mostrar el tipo de parámetro, marque la opción **Mostrar tipos** en el me Después de desplegar la lista de parámetros, puede arrastrar y soltar los parámetros y los resultados de las funciones en el [Custom Watch Pane](#custom-watch-pane). -You can also use the [Call chain](https://doc.4d.com/4dv19/help/command/en/page1662.html) command to retrieve the call chain programmatically. +También puede utilizar el comando [Call chain](https://doc.4d.com/4dv19/help/command/en/page1662.html) para recuperar la cadena de llamadas por programación. ## Panel de vigilancia personalizado diff --git a/i18n/es/docusaurus-plugin-content-docs/version-20-R7/Debugging/debugging-remote.md b/i18n/es/docusaurus-plugin-content-docs/version-20-R7/Debugging/debugging-remote.md index 3a2985f25d366b..484587e09605c9 100644 --- a/i18n/es/docusaurus-plugin-content-docs/version-20-R7/Debugging/debugging-remote.md +++ b/i18n/es/docusaurus-plugin-content-docs/version-20-R7/Debugging/debugging-remote.md @@ -19,7 +19,7 @@ Sólo un depurador puede depurar una aplicación 4D Server en un momento dado. S - el depurador local de 4D Server (por defecto) - si el servidor no está ejecutando sin interfaz. - el depurador de un cliente 4D remoto - si la sesión remota tiene acceso al modo Diseño. -- the [Qodly debugger](../WebServer/qodly-studio.md#using-qodly-debugger-on-4d-server) on 4D Server - if the server allows access to Qodly Studio. +- el [depurador Qodly](../WebServer/qodly-studio.md#using-qodly-debugger-on-4d-server) en el servidor 4D - si el servidor permite el acceso a Qodly Studio. El depurador asociado es llamado cada vez que se encuentra un 4D Server: @@ -73,7 +73,7 @@ Para volver a conectar el depurador al servidor: > **Advertencia**: si se selecciona esta opción para un servidor que posteriormente se lanza en modo sin interfaz, el depurador no estará disponible para este servidor. -- En un cliente 4D remoto, esta opción se llama **Attach Remote Debugger At Startup**. Cuando se selecciona, el cliente 4D remoto intentará automáticamente adjuntar el depurador remoto en cada conexión posterior a la misma base de datos 4D Server. Si el adjunto es aceptado (ver [Rejected attachment requests](#rejected-attachment-requests)), el depurador remoto se adjunta automáticamente al cliente 4D remoto y se muestra la opción **Detach Remote Debugger**. +- Asociar al depurador Cuando se selecciona, el cliente 4D remoto intentará automáticamente adjuntar el depurador remoto en cada conexión posterior a la misma base de datos 4D Server. Depuradores adjuntos > Esta configuración se aplica por proyecto y se almacena localmente en el archivo [`.4DPreferences`](Project/architecture.md#userpreferencesusername). diff --git a/i18n/es/docusaurus-plugin-content-docs/version-20-R7/Desktop/clientServer.md b/i18n/es/docusaurus-plugin-content-docs/version-20-R7/Desktop/clientServer.md index 48efc82852c4a7..b7558fdffcd32f 100644 --- a/i18n/es/docusaurus-plugin-content-docs/version-20-R7/Desktop/clientServer.md +++ b/i18n/es/docusaurus-plugin-content-docs/version-20-R7/Desktop/clientServer.md @@ -87,7 +87,7 @@ Sin embargo, debe prestar atención a las siguientes diferencias de comportamien ## Sesiones de usuarios remotos -On the server, the [`Session`](../commands/session.md) command returns a `session` object describing the current user session. Este objeto se maneja a través de las funciones y propiedades de la [clase `Session`](../API/SessionClass.md). +En el servidor, el comando [`Session`](../commands/session.md) devuelve un objeto `session` que describe la sesión de usuario actual. Este objeto se maneja a través de las funciones y propiedades de la [clase `Session`](../API/SessionClass.md). ### Utilización diff --git a/i18n/es/docusaurus-plugin-content-docs/version-20-R7/Events/onDragOver.md b/i18n/es/docusaurus-plugin-content-docs/version-20-R7/Events/onDragOver.md index 186b06228e6483..d8e70bab387a6e 100644 --- a/i18n/es/docusaurus-plugin-content-docs/version-20-R7/Events/onDragOver.md +++ b/i18n/es/docusaurus-plugin-content-docs/version-20-R7/Events/onDragOver.md @@ -29,10 +29,10 @@ El código que maneja un evento `On Drag Over` debe ser corto y ejecutarse rápi ### Ejemplo ```4d -//Destination object method +/Método del objeto destino #DECLARE : Integer If(Form event code=On Drag Over) - //returns 0 by default + //devuelve 0 por defecto ... If($DataType=Is picture) return -1 diff --git a/i18n/es/docusaurus-plugin-content-docs/version-20-R7/FormObjects/buttonGrid_overview.md b/i18n/es/docusaurus-plugin-content-docs/version-20-R7/FormObjects/buttonGrid_overview.md index 1fa894fa42ca83..42f6225816a18c 100644 --- a/i18n/es/docusaurus-plugin-content-docs/version-20-R7/FormObjects/buttonGrid_overview.md +++ b/i18n/es/docusaurus-plugin-content-docs/version-20-R7/FormObjects/buttonGrid_overview.md @@ -28,4 +28,4 @@ Puede asignar la [acción estándar](https://doc.4d.com/4Dv17R5/4D/17-R5/Standar ## Propiedades soportadas -[Estilo de línea de borde](properties_BackgroundAndBorder.md#border-line-style) - [Fondo](properties_CoordinatesAndSizing.md#bottom) - [Clase](properties_Object.md#css-class) - [Columnas](properties_Crop.md#columns) - [Altura](properties_CoordinatesAndSizing.md#height) - [Mensaje de ayuda](properties_Help.md#help-tip) - [Dimensionamiento horizontal](properties_ResizingOptions.md#horizontal-sizing) - [Izquierda](properties_CoordinatesAndSizing.md#left) - [Nombre del objeto](properties_Object.md#object-name) - [Derecha](properties_CoordinatesAndSizing.md#right) - [Filas](properties_Crop.md#rows) - [Acción estándar](properties_Action.md#standard-action) - [Superior](properties_CoordinatesAndSizing.md#top) - [Tipo](properties_Object.md#type) - [Variable o expresión](properties_Object.md#variable-o-expresión) - [Tamaño vertical](properties_ResizingOptions.md#vertical-sizing) - [Ancho](properties_CoordinatesAndSizing.md#width) - [Visibilidad](properties_Display.md#visibilidad) +[Estilo de línea de borde](properties_BackgroundAndBorder.md#border-line-style) - [Fondo](properties_CoordinatesAndSizing.md#bottom) - [Clase](properties_Object.md#css-class) - [Columnas](properties_Crop.md#columns) - [Altura](properties_CoordinatesAndSizing.md#height) - [Mensaje de ayuda](properties_Help.md#help-tip) - [Dimensionamiento horizontal](properties_ResizingOptions.md#horizontal-sizing) - [Izquierda](properties_CoordinatesAndSizing.md#left) - [Nombre del objeto](properties_Object.md#object-name) - [Derecha](properties_CoordinatesAndSizing.md#right) - [Filas](properties_Crop.md#rows) - [Acción estándar](properties_Action.md#standard-action) - [Superior](properties_CoordinatesAndSizing.md#top) - [Tipo](properties_Object.md#type) - [Variable o expresión](properties_Object.md#variable-or-expression) - [Tamaño vertical](properties_ResizingOptions.md#vertical-sizing) - [Ancho](properties_CoordinatesAndSizing.md#width) - [Visibilidad](properties_Display.md#visibilidad) diff --git a/i18n/es/docusaurus-plugin-content-docs/version-20-R7/FormObjects/listbox_overview.md b/i18n/es/docusaurus-plugin-content-docs/version-20-R7/FormObjects/listbox_overview.md index 042c8b95d543bd..8fc835fcf2e1fb 100644 --- a/i18n/es/docusaurus-plugin-content-docs/version-20-R7/FormObjects/listbox_overview.md +++ b/i18n/es/docusaurus-plugin-content-docs/version-20-R7/FormObjects/listbox_overview.md @@ -199,30 +199,30 @@ Las propiedades soportadas dependen del tipo de list box. | Evento formulario | Propiedades adicionales devueltas (ver [Evento formulario](https://doc.4d.com/4Dv18/4D/18/FORM-Event.301-4522191.en.html) para las propiedades principales) | Comentarios | | -------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -| On After Edit |
  • [column](#additional-properties)
  • [columnName](#additional-properties)
  • [row](#additional-properties)
  • | | -| On After Keystroke |
  • [column](#additional-properties)
  • [columnName](#additional-properties)
  • [row](#additional-properties)
  • | | +| On After Edit |
  • [columna](#additional-properties)
  • [nombreColumna](#additional-properties)
  • [línea](#additional-properties)
  • | | +| On After Keystroke |
  • [columna](#additional-properties)
  • [nombreColumna](#additional-properties)
  • [línea](#additional-properties)
  • | | | On After Sort |
  • [column](#propiedades-adicionales)
  • [columnName](#propiedades-adicionales)
  • [headerName](#propiedades-adicionales)
  • | *Las fórmulas compuestas no se pueden ordenar.
    (por ejemplo, This.firstName + This.lastName)* | -| On Alternative Click |
  • [column](#additional-properties)
  • [columnName](#additional-properties)
  • [row](#additional-properties)
  • | *List box array únicamente* | -| On Before Data Entry |
  • [column](#additional-properties)
  • [columnName](#additional-properties)
  • [row](#additional-properties)
  • | | -| On Before Keystroke |
  • [column](#additional-properties)
  • [columnName](#additional-properties)
  • [row](#additional-properties)
  • | | -| On Begin Drag Over |
  • [column](#additional-properties)
  • [columnName](#additional-properties)
  • [row](#additional-properties)
  • | | -| On Clicked |
  • [column](#additional-properties)
  • [columnName](#additional-properties)
  • [row](#additional-properties)
  • | | +| On Alternative Click |
  • [columna](#additional-properties)
  • [nombreColumna](#additional-properties)
  • [línea](#additional-properties)
  • | *List box array únicamente* | +| On Before Data Entry |
  • [columna](#additional-properties)
  • [nombreColumna](#additional-properties)
  • [línea](#additional-properties)
  • | | +| On Before Keystroke |
  • [columna](#additional-properties)
  • [nombreColumna](#additional-properties)
  • [línea](#additional-properties)
  • | | +| On Begin Drag Over |
  • [columna](#additional-properties)
  • [nombreColumna](#additional-properties)
  • [línea](#additional-properties)
  • | | +| On Clicked |
  • [columna](#additional-properties)
  • [nombreColumna](#additional-properties)
  • [línea](#additional-properties)
  • | | | On Close Detail |
  • [row](#propiedades adicionales)
  • | *List box Selección actual y Selección temporal únicamente* | -| On Collapse |
  • [column](#additional-properties)
  • [columnName](#additional-properties)
  • [row](#additional-properties)
  • | *List box jerárquicos únicamente* | +| On Collapse |
  • [columna](#additional-properties)
  • [nombreColumna](#additional-properties)
  • [línea](#additional-properties)
  • | *List box jerárquicos únicamente* | | On Column Moved |
  • [columnName](#propiedades-adicionales)
  • [newPosition](#propiedades-adicionales)
  • [oldPosition](#propiedades-adicionales)
  • | | | On Column Resize |
  • [column](#propiedades-adicionales)
  • [columnName](#propiedades-adicionales)
  • [newSize](#propiedades-adicionales)
  • [oldSize](#propiedades-adicionales)
  • | | -| On Data Change |
  • [column](#additional-properties)
  • [columnName](#additional-properties)
  • [row](#additional-properties)
  • | | +| On Data Change |
  • [columna](#additional-properties)
  • [nombreColumna](#additional-properties)
  • [línea](#additional-properties)
  • | | | On Delete Action |
  • [row](#propiedades adicionales)
  • | | | On Display Detail |
  • [isRowSelected](#additional-properties)
  • [row](#additional-properties)
  • | | -| On Double Clicked |
  • [column](#additional-properties)
  • [columnName](#additional-properties)
  • [row](#additional-properties)
  • | | +| On Double Clicked |
  • [columna](#additional-properties)
  • [nombreColumna](#additional-properties)
  • [línea](#additional-properties)
  • | | | On Drag Over |
  • [area](#additional-properties)
  • [areaName](#additional-properties)
  • [column](#additional-properties)
  • [columnName](#additional-properties)
  • [row](#additional-properties)
  • | | -| On Drop |
  • [column](#additional-properties)
  • [columnName](#additional-properties)
  • [row](#additional-properties)
  • | | -| On Expand |
  • [column](#additional-properties)
  • [columnName](#additional-properties)
  • [row](#additional-properties)
  • | *List box jerárquicos únicamente* | +| On Drop |
  • [columna](#additional-properties)
  • [nombreColumna](#additional-properties)
  • [línea](#additional-properties)
  • | | +| On Expand |
  • [columna](#additional-properties)
  • [nombreColumna](#additional-properties)
  • [línea](#additional-properties)
  • | *List box jerárquicos únicamente* | | On Footer Click |
  • [column](#additional-properties)
  • [columnName](#additional-properties)
  • [footerName](#additional-properties)
  • | *List box arrays, selección actual y selección temporal únicamente* | -| On Getting Focus |
  • [column](#additional-properties)
  • [columnName](#additional-properties)
  • [row](#additional-properties)
  • | *Propiedades adicionales devueltas sólo al editar una celda* | +| On Getting Focus |
  • [columna](#additional-properties)
  • [nombreColumna](#additional-properties)
  • [línea](#additional-properties)
  • | *Propiedades adicionales devueltas sólo al editar una celda* | | On Header Click |
  • [column](#propiedades-adicionales)
  • [columnName](#propiedades-adicionales)
  • [headerName](#propiedades-adicionales)
  • | | | On Load | | | -| On Losing Focus |
  • [column](#additional-properties)
  • [columnName](#additional-properties)
  • [row](#additional-properties)
  • | *Propiedades adicionales devueltas sólo cuando la modificación de una celda se completa* | +| On Losing Focus |
  • [columna](#additional-properties)
  • [nombreColumna](#additional-properties)
  • [línea](#additional-properties)
  • | *Propiedades adicionales devueltas sólo cuando la modificación de una celda se completa* | | On Mouse Enter |
  • [area](#additional-properties)
  • [areaName](#additional-properties)
  • [column](#additional-properties)
  • [columnName](#additional-properties)
  • [row](#additional-properties)
  • | | | On Mouse Leave | | | | On Mouse Move |
  • [area](#additional-properties)
  • [areaName](#additional-properties)
  • [column](#additional-properties)
  • [columnName](#additional-properties)
  • [row](#additional-properties)
  • | | @@ -267,31 +267,31 @@ Puede definir propiedades estándar (texto, color de fondo, etc.) para cada colu ### Propiedades específicas de la columna -[Alpha Format](properties_Display.md#alpha-format) - [Alternate Background Color](properties_BackgroundAndBorder.md#alternate-background-color) - [Automatic Row Height](properties_CoordinatesAndSizing.md#automatic-row-height) - [Background Color](properties_BackgroundAndBorder.md#background-color--fill-color) - [Background Color Expression](properties_BackgroundAndBorder.md#background-color-expression) - [Bold](properties_Text.md#bold) - [Choice List](properties_DataSource.md#choice-list) - [Class](properties_Object.md#css-class) - [Data Type (selection and collection list box column)](properties_DataSource.md#data-type) - [Date Format](properties_Display.md#date-format) - [Default Values](properties_DataSource.md#default-list-of-values) - [Display Type](properties_Display.md#display-type) - [Enterable](properties_Entry.md#enterable) - [Entry Filter](properties_Entry.md#entry-filter) - [Excluded List](properties_RangeOfValues.md#excluded-list) - [Expression](properties_DataSource.md#expression) - [Expression Type (array list box column)](properties_Object.md#expression-type) - [Font](properties_Text.md#font) - [Font Color](properties_Text.md#font-color) - [Horizontal Alignment](properties_Text.md#horizontal-alignment) - [Horizontal Padding](properties_CoordinatesAndSizing.md#horizontal-padding) - [Italic](properties_Text.md#italic) - [Invisible](properties_Display.md#visibility) - [Maximum Width](properties_CoordinatesAndSizing.md#maximum-width) - [Method](properties_Action.md#method) - [Minimum Width](properties_CoordinatesAndSizing.md#minimum-width) - [Multi-style](properties_Text.md#multi-style) - [Number Format](properties_Display.md#number-format) - [Object Name](properties_Object.md#object-name) - [Picture Format](properties_Display.md#picture-format) - [Resizable](properties_ResizingOptions.md#resizable) - [Required List](properties_RangeOfValues.md#required-list) - [Row Background Color Array](properties_BackgroundAndBorder.md#row-background-color-array) - [Row Font Color Array](properties_Text.md#row-font-color-array) - [Row Style Array](properties_Text.md#row-style-array) - [Save as](properties_DataSource.md#save-as) - [Style Expression](properties_Text.md#style-expression) - [Text when False/Text when True](properties_Display.md#text-when-falsetext-when-true) - [Time Format](properties_Display.md#time-format) - [Truncate with ellipsis](properties_Display.md#truncate-with-ellipsis) - [Underline](properties_Text.md#underline) - [Variable or Expression](properties_Object.md#variable-or-expression) - [Vertical Alignment](properties_Text.md#vertical-alignment) - [Vertical Padding](properties_CoordinatesAndSizing.md#vertical-padding) - [Width](properties_CoordinatesAndSizing.md#width) - [Wordwrap](properties_Display.md#wordwrap) +[Formato Alfa](properties_Display.md#alpha-format) - [Color de fondo alternativo](properties_BackgroundAndBorder.md#alternate-background-color) - [Alto de fila automático](properties_CoordinatesAndSizing.md#automatic-row-height) - [Color de fondo](properties_BackgroundAndBorder.md#background-color--fill-color) - [Expresión de color de fondo](properties_BackgroundAndBorder.md#background-color-expression) - [Negrita](properties_Text.md#bold) - [Lista de opciones](properties_DataSource.md#choice-list) - [Clase](properties_Object.md#css-class) - [Tipo de datos (columna del list box de selección y colección)](properties_DataSource.md#data-type) - [Formato de fecha](properties_Display.md#date-format) - [Valores por defecto](properties_DataSource.md#default-list-of-values) - [Tipo de visualización](properties_Display.md#display-type) - [Entrable](properties_Entry.md#enterable) - [Filtro de entrada](properties_Entry.md#entry-filter) - [Lista de excluidos](properties_RangeOfValues.md#excluded-list) - [Expresión](properties_DataSource.md#expression) - [Expression Type (array columna list box)](properties_Object.md#expression-type) - [Fuente](properties_Text.md#font) - [Color de fuente](properties_Text.md#font-color) - [Alineación horizontal](properties_Text.md#horizontal-alignment) - [Horizontal Padding](properties_CoordinatesAndSizing.md#horizontal-padding) - [Cursiva](properties_Text.md#italic) - [Invisible](properties_Display.md#visibility) - [Ancho máximo](properties_CoordinatesAndSizing.md#maximum-width) - [Método](properties_Action.md#method) - [Ancho mínimo](properties_CoordinatesAndSizing.md#minimum-width) - [Varios estilos](properties_Text.md#multi-style) - [Formato numérico](properties_Display.md#number-format) - [Nombre del objeto](properties_Object.md#nombre-objeto) - [Formato Imagen](properties_Display.md#formato-imagen) - [Redimensionable](properties_ResizingOptions.md#redimensionable) - [Lista Requerida](properties_RangeOfValues.md#required-list) - [Color de Fondo de Fila](properties_BackgroundAndBorder.md#row-background-color-array) - [Color de fuente de fila](properties_Text.md#row-font-color-array) - [Estilo de fila](properties_Text.md#row-style-array) - [Guardar como](properties_DataSource.md#save-as) - [Expresión de estilo](properties_Text.md#style-expression) - [Texto cuando False/Texto cuando True](properties_Display.md#text-when-falsetext-when-true) - [Formato Hora](properties_Display.md#time-format) - [Truncar con elipsis](properties_Display.md#truncate-with-ellipsis) - [Subrayado](properties_Text.md#underline) - [Variable o expresión](properties_Object.md#variable-o-expresión) - [Alineación vertical](properties_Text.md#alineación-vertical) - [Relleno vertical](properties_CoordinatesAndSizing.md#Relleno-vertical) - [Ancho](properties_CoordinatesAndSizing.md#anchura) - [Ajuste de palabras](properties_Display.md#wordwrap) ### Eventos formulario soportados | Evento formulario | Propiedades adicionales devueltas (ver [Evento formulario](https://doc.4d.com/4Dv18/4D/18/FORM-Event.301-4522191.en.html) para las propiedades principales) | Comentarios | | -------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -| On After Edit |
  • [column](#additional-properties)
  • [columnName](#additional-properties)
  • [row](#additional-properties)
  • | | -| On After Keystroke |
  • [column](#additional-properties)
  • [columnName](#additional-properties)
  • [row](#additional-properties)
  • | | +| On After Edit |
  • [columna](#additional-properties)
  • [nombreColumna](#additional-properties)
  • [línea](#additional-properties)
  • | | +| On After Keystroke |
  • [columna](#additional-properties)
  • [nombreColumna](#additional-properties)
  • [línea](#additional-properties)
  • | | | On After Sort |
  • [column](#propiedades-adicionales)
  • [columnName](#propiedades-adicionales)
  • [headerName](#propiedades-adicionales)
  • | *Las fórmulas compuestas no se pueden ordenar.
    (por ejemplo, This.firstName + This.lastName)* | -| On Alternative Click |
  • [column](#additional-properties)
  • [columnName](#additional-properties)
  • [row](#additional-properties)
  • | *List box array únicamente* | -| On Before Data Entry |
  • [column](#additional-properties)
  • [columnName](#additional-properties)
  • [row](#additional-properties)
  • | | -| On Before Keystroke |
  • [column](#additional-properties)
  • [columnName](#additional-properties)
  • [row](#additional-properties)
  • | | -| On Begin Drag Over |
  • [column](#additional-properties)
  • [columnName](#additional-properties)
  • [row](#additional-properties)
  • | | -| On Clicked |
  • [column](#additional-properties)
  • [columnName](#additional-properties)
  • [row](#additional-properties)
  • | | +| On Alternative Click |
  • [columna](#additional-properties)
  • [nombreColumna](#additional-properties)
  • [línea](#additional-properties)
  • | *List box array únicamente* | +| On Before Data Entry |
  • [columna](#additional-properties)
  • [nombreColumna](#additional-properties)
  • [línea](#additional-properties)
  • | | +| On Before Keystroke |
  • [columna](#additional-properties)
  • [nombreColumna](#additional-properties)
  • [línea](#additional-properties)
  • | | +| On Begin Drag Over |
  • [columna](#additional-properties)
  • [nombreColumna](#additional-properties)
  • [línea](#additional-properties)
  • | | +| On Clicked |
  • [columna](#additional-properties)
  • [nombreColumna](#additional-properties)
  • [línea](#additional-properties)
  • | | | On Column Moved |
  • [columnName](#propiedades-adicionales)
  • [newPosition](#propiedades-adicionales)
  • [oldPosition](#propiedades-adicionales)
  • | | | On Column Resize |
  • [column](#propiedades-adicionales)
  • [columnName](#propiedades-adicionales)
  • [newSize](#propiedades-adicionales)
  • [oldSize](#propiedades-adicionales)
  • | | -| On Data Change |
  • [column](#additional-properties)
  • [columnName](#additional-properties)
  • [row](#additional-properties)
  • | | -| On Double Clicked |
  • [column](#additional-properties)
  • [columnName](#additional-properties)
  • [row](#additional-properties)
  • | | +| On Data Change |
  • [columna](#additional-properties)
  • [nombreColumna](#additional-properties)
  • [línea](#additional-properties)
  • | | +| On Double Clicked |
  • [columna](#additional-properties)
  • [nombreColumna](#additional-properties)
  • [línea](#additional-properties)
  • | | | On Drag Over |
  • [area](#additional-properties)
  • [areaName](#additional-properties)
  • [column](#additional-properties)
  • [columnName](#additional-properties)
  • [row](#additional-properties)
  • | | -| On Drop |
  • [column](#additional-properties)
  • [columnName](#additional-properties)
  • [row](#additional-properties)
  • | | +| On Drop |
  • [columna](#additional-properties)
  • [nombreColumna](#additional-properties)
  • [línea](#additional-properties)
  • | | | On Footer Click |
  • [column](#additional-properties)
  • [columnName](#additional-properties)
  • [footerName](#additional-properties)
  • | *List box arrays, selección actual y selección temporal únicamente* | -| On Getting Focus |
  • [column](#additional-properties)
  • [columnName](#additional-properties)
  • [row](#additional-properties)
  • | *Propiedades adicionales devueltas sólo al editar una celda* | +| On Getting Focus |
  • [columna](#additional-properties)
  • [nombreColumna](#additional-properties)
  • [línea](#additional-properties)
  • | *Propiedades adicionales devueltas sólo al editar una celda* | | On Header Click |
  • [column](#propiedades-adicionales)
  • [columnName](#propiedades-adicionales)
  • [headerName](#propiedades-adicionales)
  • | | | On Load | | | -| On Losing Focus |
  • [column](#additional-properties)
  • [columnName](#additional-properties)
  • [row](#additional-properties)
  • | *Propiedades adicionales devueltas sólo cuando la modificación de una celda se completa* | +| On Losing Focus |
  • [columna](#additional-properties)
  • [nombreColumna](#additional-properties)
  • [línea](#additional-properties)
  • | *Propiedades adicionales devueltas sólo cuando la modificación de una celda se completa* | | On Row Moved |
  • [newPosition](#additional-properties)
  • [oldPosition](#additional-properties)
  • | *List box array únicamente* | | On Scroll |
  • [horizontalScroll](#additional-properties)
  • [verticalScroll](#additional-properties)
  • | | | On Unload | | | diff --git a/i18n/es/docusaurus-plugin-content-docs/version-20-R7/FormObjects/pictureButton_overview.md b/i18n/es/docusaurus-plugin-content-docs/version-20-R7/FormObjects/pictureButton_overview.md index ef4e1ac8dc9123..3138e68a9a1f2e 100644 --- a/i18n/es/docusaurus-plugin-content-docs/version-20-R7/FormObjects/pictureButton_overview.md +++ b/i18n/es/docusaurus-plugin-content-docs/version-20-R7/FormObjects/pictureButton_overview.md @@ -19,6 +19,8 @@ Los botones imagen pueden utilizarse de dos maneras: | Use Last Frame as Disabled | useLastFrameAsDisabled | true | - Como botón de imagen que permite al usuario elegir entre varias opciones. En este caso, se puede utilizar un botón de imagen en lugar de un menú de imagen emergente. Con los [menús emergentes de imágenes](picturePopupMenu_overview.md), todas las opciones se muestran simultáneamente (como los elementos del menú emergente), mientras que el botón de imagen muestra las opciones consecutivamente (a medida que el usuario hace clic en el botón).\ + Aquí un ejemplo de un botón imagen.\ + Aquí un ejemplo de un botón imagen.\ Aquí un ejemplo de un botón imagen. Supongamos que quiere dar a los usuarios de una aplicación personalizada la posibilidad de elegir el idioma de la interfaz de la aplicación. La opción se implementa como un botón imagen en una caja de diálogo personalizada de propiedades: ![](../assets/en/FormObjects/button_pictureButton.png) @@ -52,11 +54,11 @@ Hay otros modos disponibles: - [Retroceder al primer cuadro](properties_Animation.md#loop-back-to-first-frame) - [Retroceder al soltar](properties_Animation.md#switch-back-when-released) - [Alternar al pasar el ratón por encima](properties_Animation.md#switch-when-roll-over) -- [Switch continuously on clicks](properties_Animation.md#switch-continuously-on-clicks) +- [Alternar continuamente al hacer clic](properties_Animation.md#switch-continuously-on-clicks) - [Usar el último fotograma como desactivado](properties_Animation.md#use-last-frame-as-disabled) - [Usar último fotograma como desactivado](properties_Animation.md#use-last-frame-as-disabled) -> [Use Last frame as disabled](properties_Animation.md#use-last-frame-as-disabled)> The [associated variable](properties_Object.md#variable-or-expression) of the picture button returns the index number, in the thumbnail table, of the current picture displa La numeración de las imágenes en la tabla empieza por 0. +> [Use Last frame as disabled](properties_Animation.md#use-last-frame-as-disabled)> The [associated variable](properties_Object.md#variable-or-expression) of the picture button returns the index number, in the thumbnail table, of the current picture displa La numeración de las imágenes en la tabla empieza por 0. La numeración de las imágenes en la tabla empieza por 0. ## Propiedades soportadas diff --git a/i18n/es/docusaurus-plugin-content-docs/version-20-R7/FormObjects/properties_Action.md b/i18n/es/docusaurus-plugin-content-docs/version-20-R7/FormObjects/properties_Action.md index 4de6af6b365587..910a9b5df41833 100644 --- a/i18n/es/docusaurus-plugin-content-docs/version-20-R7/FormObjects/properties_Action.md +++ b/i18n/es/docusaurus-plugin-content-docs/version-20-R7/FormObjects/properties_Action.md @@ -14,7 +14,7 @@ Hay dos modos de arrastrar disponibles: - **Personalizado**: en este modo, toda operación de arrastrar realizada en el objeto dispara el evento formulario `On Begin Drag` en el contexto del objeto. A continuación, gestiona la acción arrastrar utilizando un método.\ En el modo personalizado, básicamente toda la operación de arrastrar y soltar es realizada por el programador. Este modo le permite implementar cualquier interfaz basada en la función de arrastrar y soltar, incluidas las interfaces que no necesariamente transportan datos, sino que pueden realizar cualquier acción como abrir archivos o activar un cálculo. Este modo se basa en una combinación de propiedades, eventos y comandos específicos del tema `Portapapeles`. - **Automático**: en este modo, 4D **copia** el texto o las imágenes directamente desde el objeto formulario. Puede utilizarse en la misma área 4D, entre dos áreas 4D o entre 4D y otra aplicación. Por ejemplo, arrastrar (y soltar) automáticamente le permite copiar un valor entre dos campos sin usar programación:\ - ![](../assets/en/FormObjects/property_automaticDragDrop. ng)\ + ![](../assets/en/FormObjects/property_automaticDragDrop.png)\ ![](../assets/en/FormObjects/property_automaticDragDrop2.png) En este modo, NO se genera el evento del formulario `On Begin Drag`. Si quiere "forzar" el uso del arrastre personalizado mientras está activado el arrastre automático, mantenga presionada la tecla **Alt** (Windows) o **Opción** (macOS) durante la acción. Esta opción no está disponible para las imágenes. diff --git a/i18n/es/docusaurus-plugin-content-docs/version-20-R7/FormObjects/properties_BackgroundAndBorder.md b/i18n/es/docusaurus-plugin-content-docs/version-20-R7/FormObjects/properties_BackgroundAndBorder.md index acec6f82888ea6..44f2b34ece2b82 100644 --- a/i18n/es/docusaurus-plugin-content-docs/version-20-R7/FormObjects/properties_BackgroundAndBorder.md +++ b/i18n/es/docusaurus-plugin-content-docs/version-20-R7/FormObjects/properties_BackgroundAndBorder.md @@ -5,7 +5,7 @@ title: Fondo y borde ## Color de fondo alternado -Permite definir un color de fondo diferente para las líneas o columnas impares de un list box. Por defecto, *Automático* está seleccionado: la columna utiliza el color de fondo alternativo definido en el nivel del list box. +Permite definir un color de fondo diferente para las líneas o columnas impares de un list box. Permite definir un color de fondo diferente para las líneas o columnas impares de un list box. También puede definir esta propiedad utilizando el comando [`OBJECT SET RGB COLORS`](https://doc.4d.com/4dv20/help/command/en/page628.html). @@ -179,7 +179,7 @@ Por ejemplo, dado un list box en el que las líneas tienen un color gris/gris cl ![](../assets/en/FormObjects/listbox_styles1.png) -A continuación, quiere colorear las celdas con valores negativos en naranja oscuro. Para ello, se define un array de colores de fondo para cada columna, por ejemplo `<>_BgndColor_1`, `<>_BgndColor_2` y `<>_BgndColor_3`. Los valores de estos arrays tienen prioridad sobre los definidos en las propiedades del list box, así como los del array de color de fondo general: +A continuación, quiere colorear las celdas con valores negativos en naranja oscuro. A continuación, quiere colorear las celdas con valores negativos en naranja oscuro. Los valores de estos arrays tienen prioridad sobre los definidos en las propiedades del list box, así como los del array de color de fondo general: ```4d <>_BgndColorsCol_3{2}:=0x00FF8000 // naranja oscuro @@ -206,7 +206,7 @@ Puede obtener el mismo resultado utilizando los comandos [`LISTBOX SET ROW FONT ## Transparente -Define el fondo del list box como "Transparent". When set, any [alternate background color](#alternate-background-color) or [background color](#background-color--fill-color) defined for the column is ignored. +Define el fondo del list box como "Transparent". Cuando se define, se ignora cualquier [color de fondo alternativo](#alternate-background-color) o [color de fondo](#background-color--fill-color) definido para la columna. #### Gramática JSON diff --git a/i18n/es/docusaurus-plugin-content-docs/version-20-R7/FormObjects/webArea_overview.md b/i18n/es/docusaurus-plugin-content-docs/version-20-R7/FormObjects/webArea_overview.md index bb4a085e937f40..1250cdfe61a098 100644 --- a/i18n/es/docusaurus-plugin-content-docs/version-20-R7/FormObjects/webArea_overview.md +++ b/i18n/es/docusaurus-plugin-content-docs/version-20-R7/FormObjects/webArea_overview.md @@ -209,7 +209,7 @@ When you have done the settings as described above, you then have new options su ## Propiedades soportadas -[Border Line Style](properties_BackgroundAndBorder.md#border-line-style) - [Bottom](properties_CoordinatesAndSizing.md#bottom) - [Class](properties_Object.md#css-class) - [Context Menu](properties_Entry.md#context-menu) - [Height](properties_CoordinatesAndSizing.md#height) - [Horizontal Sizing](properties_ResizingOptions.md#horizontal-sizing) - [Left](properties_CoordinatesAndSizing.md#left) - [Method](properties_Action.md#method) - [Object Name](properties_Object.md#object-name) - [Progression](properties_WebArea.md#progression) - [Right](properties_CoordinatesAndSizing.md#right) - [Top](properties_CoordinatesAndSizing.md#top) - [Type](properties_Object.md#type) - [URL](properties_WebArea.md#url) - [Use embedded Web rendering engine](properties_WebArea.md#use-embedded-web-rendering-engine) - [Variable or Expression](properties_Object.md#variable-or-expression) - [Vertical Sizing](properties_ResizingOptions.md#vertical-sizing) - [Visibilty](properties_Display.md#visibility) - [Width](properties_CoordinatesAndSizing.md#width) +[Estilo de línea de borde](properties_BackgroundAndBorder.md#border-line-style) - [Fondo](properties_CoordinatesAndSizing.md#bottom) - [Clase](properties_Object.md#css-class) - [Menú contextual](properties_Entry.md#context-menu) - [Altura](properties_CoordinatesAndSizing.md#height) - [Tamaño horizontal](properties_ResizingOptions.md#horizontal-sizing) - [Izquierda](properties_CoordinatesAndSizing.md#left) - [Método](properties_Action.md#method) - [Nombre del objeto](properties_Object.md#nombre-del-objeto) - [Progresión](properties_WebArea.md#progression) - [Derecha](properties_CoordinatesAndSizing.md#right) - [Arriba](properties_CoordinatesAndSizing.md#top) - [Tipo](properties_Object.md#type) - [URL](properties_WebArea.md#url) - [Usar motor de renderizado web incrustado](properties_WebArea.md#use-embedded-web-rendering-engine) - [Variable o expresión](properties_Object.md#variable-or-expression) - [Tamaño vertical](properties_ResizingOptions.md#vertical-sizing) - [Visibilidad](properties_Display.md#visibility) - [Ancho](properties_CoordinatesAndSizing.md#width) ## 4DCEFParameters.json diff --git a/i18n/es/docusaurus-plugin-content-docs/version-20-R7/Notes/updates.md b/i18n/es/docusaurus-plugin-content-docs/version-20-R7/Notes/updates.md index 715da5b6b50617..f234c1086a71f8 100644 --- a/i18n/es/docusaurus-plugin-content-docs/version-20-R7/Notes/updates.md +++ b/i18n/es/docusaurus-plugin-content-docs/version-20-R7/Notes/updates.md @@ -30,7 +30,7 @@ Lea [**Novedades en 4D 20 R7**](https://blog.4d.com/en-whats-new-in-4d-v20-R7/), #### Cambios de comportamiento - La documentación del [Lenguaje 4D](../commands/command-index.md) y del [Lenguaje 4D Write Pro](../WritePro/commands/command-index.md) ya está disponible en developer.4d.com. Descubra todas las novedades y cambios relativos a estas documentaciones en esta nota de la versión. -- The [`File`](../commands/file.md) command (as well as [`4D.File.new()`](../API/FileClass.md#4dfilenew)) is stricter when it comes to checking the syntax of the *path* supplied as a parameter. +- El comando [`File`](../commands/file.md) (así como [`4D.File.new()`](../API/FileClass.md#4dfilenew)) es más estricto a la hora de comprobar la sintaxis de *path* suministrada como parámetro. ## 4D 20 R6 @@ -46,7 +46,7 @@ Lea [**Novedades en 4D 20 R6**](https://blog.4d.com/en-whats-new-in-4d-20-R6/), - Nuevo archivo [4DCEFParameters.json](../FormObjects/webArea_overview.md#4dcefparametersjson) para personalizar las áreas web anidadas de 4D. - Nueva clase [HTTPAgent](../API/HTTPAgentClass.md) y nueva propiedad [`agent`](../API/HTTPRequestClass.md#options-parameter) para la clase HTTPRequest. - Nuevas funciones [`enableState()`](../API/WebFormClass.md) y [`disableState()`](../API/WebFormClass.md) para controlar los estados de las páginas Qodly desde el servidor. -- Nueva [\\\\\` API$singleton](../REST/$singleton.md) para llamar las funciones singleton expuestas desde REST y nuevos [privilegios asociados](../ORDA/privileges.md). +- Nueva [\\\\\\\\\` API$singleton](../REST/$singleton.md) para llamar las funciones singleton expuestas desde REST y nuevos [privilegios asociados](../ORDA/privileges.md). - Un [nuevo botón de parámetros](../settings/web.md#activate-rest-authentication-through-dsauthentify-function) le ayuda a actualizar su proyecto para utilizar el modo REST "conexión forzada" (el método base `On REST Authentication` es ahora obsoleto). - Una [nueva pestaña de parámetros](../Project/compiler.md#warnings) permite definir la generación de advertencias de forma global. - Varios comandos, principalmente del tema "Entorno 4D", ahora son hilo seguro ([ver la lista completa](https://doc.4d.com/4Dv20R6/4D/Preemptive_6957385.999-2878208.en.html)), así como algunos selectores de los comandos [`SET DATABASE PARAMETER`](https://doc.4d.com/4dv20R/help/command/en/page642.html)/[`Get database parameter`](https://doc.4d.com/4dv20R/help/command/en/page643.html). @@ -90,7 +90,7 @@ Lea [**Novedades en 4D 20 R4**](https://blog.4d.com/en-whats-new-in-4d-v20-R4/), #### Lo más destacado -- Soporte de [formato de cifrado ECDSA\\\\\`](../Admin/tls.md#encryption) para certificados TLS. +- Soporte de [formato de cifrado ECDSA\\\\\\\\\`](../Admin/tls.md#encryption) para certificados TLS. - Las conexiones TLS cliente/servidor y servidor SQL ahora se [configuran dinámicamente](../Admin/tls.md#enabling-tls-with-the-other-servers) (no se requieren archivos de certificado). - Formato HTML directo para [exportaciones de definición de estructura](https://doc.4d.com/4Dv20R4/4D/20-R4/Exporting-and-importing-structure-definitions.300-6654851.en.html). - Nuevo [Code Live Checker](../code-editor/write-class-method.md#warnings-and-errors) que mejora el control del código durante los pasos de declaración, comprobación de sintaxis y compilación para evitar errores de ejecución. @@ -168,7 +168,7 @@ Consulte [**Notas de la versión 4D 20.x LTS**](../../version-20/Notes/updates.m | Librería | Versión actual | Actualizado en 4D | Comentario | | --------- | -------------------------------------- | ----------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------- | | BoringSSL | 0aa300b | 20 R6 | Utilizado para QUIC | -| CEF | 128 | **20 R7** | Chromium 6613 | +| CEF | 121 | 20 R5 | Chromium 6167 | | Hunspell | 1.7.2 | 20 | Utilizado para la corrección ortográfica en formularios 4D y 4D Write Pro | | ICU | 73.2 | 20 | Esta importante actualización obliga a reconstruir automáticamente los índices alfanuméricos, texto y objeto. | | libldap | 2.6.7 | 20 R6 | | diff --git a/i18n/es/docusaurus-plugin-content-docs/version-20-R7/ORDA/entities.md b/i18n/es/docusaurus-plugin-content-docs/version-20-R7/ORDA/entities.md index 5700aab7c82a4e..db63b48df21139 100644 --- a/i18n/es/docusaurus-plugin-content-docs/version-20-R7/ORDA/entities.md +++ b/i18n/es/docusaurus-plugin-content-docs/version-20-R7/ORDA/entities.md @@ -239,7 +239,7 @@ Puede crear un objeto de tipo [entity selection](dsMapping.md#entity-selection) - Lance una búsqueda en las entidades [en una dataclass](API/DataClassClass.md#query) o en una [selección de entidades existente](API/EntitySelectionClass.md#query); - Uso de la función dataclass [`.all()`](API/DataClassClass.md#all) para seleccionar todas las entidades de una dataclass; -- Using the [`Create entity selection`](../commands/create-entity-selection.md) command or the [`.newSelection()`](API/DataClassClass.md#newselection) dataclass function to create a blank entity selection; +- Usando el comando [`Create entity selection`](../commands/create-entity-selection.md) o la función [`.newSelection()`](API/DataClassClass.md#newselection) de la dataclass para crear una selección de entidades en blanco; - Utilizando la función [`.copy()`](API/EntitySelectionClass.md#copy) para duplicar una entity selection existente; - Utilizando una de las diversas funciones de la [clase Entity selection](API/EntitySelectionClass.md) que devuelve una nueva selección de entidades, como [`.or()`](API/EntitySelectionClass.md#or); - Utilizando un atributo de relación de tipo "related entities" (ver abajo). diff --git a/i18n/es/docusaurus-plugin-content-docs/version-20-R7/ORDA/ordaClasses.md b/i18n/es/docusaurus-plugin-content-docs/version-20-R7/ORDA/ordaClasses.md index 0d19ac3ec45e5d..bb4575e170cef3 100644 --- a/i18n/es/docusaurus-plugin-content-docs/version-20-R7/ORDA/ordaClasses.md +++ b/i18n/es/docusaurus-plugin-content-docs/version-20-R7/ORDA/ordaClasses.md @@ -138,7 +138,7 @@ El catálogo *City* siguiente está expuesto en un datastore remoto (vista parci La clase `City` ofrece una API: ```4d -// cs.City class +// clase cs.City Class extends DataClass @@ -832,7 +832,7 @@ Use the `onHttpGet` keyword to declare functions that can be called through HTTP The `onHttpGet` keyword is available with: - ORDA Data model class functions -- [Singletons class functions](../Concepts/classes.md#singleton-classes) +- [Funciones de la clase Singletons](../Concepts/classes.md#singleton-classes) La sintaxis formal es: @@ -863,7 +863,7 @@ In the HTTP GET request, parameters must be passed directly in the URL and decla IP:port/rest//functionName?$params='[]' ``` -See the [Parameters](../REST/classFunctions#parameters) section in the REST server documentation. +Consulte la sección [Parámetros](../REST/classFunctions#parameters) en la documentación del servidor REST. ### resultado diff --git a/i18n/es/docusaurus-plugin-content-docs/version-20-R7/Project/architecture.md b/i18n/es/docusaurus-plugin-content-docs/version-20-R7/Project/architecture.md index b5cf115da5b2fb..9601f0f53a8c81 100644 --- a/i18n/es/docusaurus-plugin-content-docs/version-20-R7/Project/architecture.md +++ b/i18n/es/docusaurus-plugin-content-docs/version-20-R7/Project/architecture.md @@ -109,9 +109,9 @@ Este archivo de texto también puede contener llaves de configuración, en parti #### `Triggers` -| Contenido | Descripción | Formato | -| -------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------- | ------- | -| table_*n*.4dm | Métodos trigger definidos en el proyecto. Un archivo de activación por tabla (n es el número de tabla) | text | +| Contenido | Descripción | Formato | +| -------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------- | ------- | +| table__n_.4dm | Métodos trigger definidos en el proyecto. Un archivo de activación por tabla (n es el número de tabla) | text | **Note:** The .4dm file extension is a text-based file format, containing the code of a 4D method. Es compatible con las herramientas de control de versión. @@ -237,4 +237,4 @@ Define la carpeta raíz por defecto del servidor web 4D para las páginas, las i ## Archivo `.gitignore` (opcional) -Archivo que especifica los archivos que serán ignorados por git. Puede incluir un archivo gitignore en sus proyectos utilizando la opción **Crear un archivo .gitignore** en la página **General** de las preferencias. Para configurar el contenido de ese archivo, consulte [Crear archivo `.gitignore`](Preferences/general.md#create-gitignore-file). +Archivo que especifica los archivos que serán ignorados por git. Archivo que especifica los archivos que serán ignorados por git. Puede incluir un archivo gitignore en sus proyectos utilizando la opción **Crear un archivo .gitignore** en la página **General** de las preferencias. diff --git a/i18n/es/docusaurus-plugin-content-docs/version-20-R7/Project/code-overview.md b/i18n/es/docusaurus-plugin-content-docs/version-20-R7/Project/code-overview.md index a1bc65fbdbebc9..80bb89f1329f66 100644 --- a/i18n/es/docusaurus-plugin-content-docs/version-20-R7/Project/code-overview.md +++ b/i18n/es/docusaurus-plugin-content-docs/version-20-R7/Project/code-overview.md @@ -5,7 +5,7 @@ title: Métodos y clases El código 4D utilizado en todo el proyecto está escrito en [métodos](../Concepts/methods.md) y [clases](../Concepts/classes.md). -El IDE de 4D le ofrece varias funcionalidades para crear, editar, exportar o eliminar su código. Por lo general, utilizará el [editor de código](../code-editor/write-class-method.md) de 4D para trabajar con su código. +El IDE de 4D le ofrece varias funcionalidades para crear, editar, exportar o eliminar su código. You will usually use the included 4D [code editor](../code-editor/write-class-method.md) to work with your code. You can also use other editors such as **VS Code**, for which the [4D-Analyzer extension](https://github.com/4d/4D-Analyzer-VSCode) is available. ## Creación de métodos diff --git a/i18n/es/docusaurus-plugin-content-docs/version-20-R7/Project/compiler.md b/i18n/es/docusaurus-plugin-content-docs/version-20-R7/Project/compiler.md index 6ed85067ebca1b..6e0577ee4f7289 100644 --- a/i18n/es/docusaurus-plugin-content-docs/version-20-R7/Project/compiler.md +++ b/i18n/es/docusaurus-plugin-content-docs/version-20-R7/Project/compiler.md @@ -61,7 +61,7 @@ El control sintáctico también puede lanzarse directamente con el comando **Ver :::info Compatibilidad -This button is only displayed in converted projects if the **All variables are typed (Direct typing)** [compilation path option](#enabling-direct-typing) is not selected. For information about this button, please refer to the [documentation of previous 4D releases](https://developer.4d.com/docs/20/Project/compiler#generate-typing). +This button is only displayed in converted projects if the **All variables are typed (Direct typing)** [compilation path option](#enabling-direct-typing) is not selected. Para más información sobre este botón, consulte la [documentación de versiones anteriores de 4D](https://developer.4d.com/docs/20/Project/compiler#generate-typing). ::: @@ -131,12 +131,12 @@ In projects converted from 4D versions prior to 20 R7, additional compilation op - **Declaración de tipos por defecto** - **Métodos Compilador para...** -Estas opciones solo se mantienen por compatibilidad con código antiguo. For more information, please refer to the [documentation of previous 4D releases](https://developer.4d.com/docs/20/Project/compiler#compiler-settings). +Estas opciones solo se mantienen por compatibilidad con código antiguo. Para más información, consulte la [documentación de versiones anteriores de 4D](https://developer.4d.com/docs/20/Project/compiler#compiler-settings). -In converted projects, it is recommended to [enable the direct typing mode](#enabling-direct-typing) and to write compliant declaration code, i.e.: +En proyectos convertidos, se recomienda [habilitar el modo de escritura directa](#enabling-direct-typing) y escribir código de declaración conforme, por ejemplo: -- declare explicitely all variables [using `var` keywords](../Concepts/variables.md#declaring-variables) -- declare explicitely all parameters in function prototypes (i.e. using the `Function` or `Class Constructor` keywords) or with `#DECLARE` keywords in methods (see [Declaring parameters](../Concepts/parameters.md#declaring-parameters). +- declarar explícitamente todas las variables [usando palabras clave `var`](../Concepts/variables.md#declaring-variables) +- declarar explícitamente todos los parámetros en prototipos de funciones (es decir, usando las palabras clave `Function` o `Class Constructor`) o con `#DECLARE` en métodos (ver [Declarando parámetros](../Concepts/parameters.md#declaring-parameters)). #### Enabling direct typing @@ -148,7 +148,7 @@ El modo de escritura directa es opcional sólo en proyectos convertidos. Se util Select **All variables are typed (Direct typing)** option in the **Compilation Path** menu to enable the direct typing mode. When this option is selected, other compatibility options become useless and are no longer displayed. -Using this option is recommended since it provides flexibility and efficiency. The direct typing concept assumes that all elements are directly declared where they are defined in your code. You just have to make sure that all your variables are declared using the regular [`var` syntax](../Concepts/variables.md#declaring-variables) and that your method and function parameters are declared [in their prototypes](../Concepts/parameters.md) (the [Check Syntax](#check-syntax) feature can help you detecting missing or invalid declarations). +Using this option is recommended since it provides flexibility and efficiency. The direct typing concept assumes that all elements are directly declared where they are defined in your code. Solo tiene que asegurarse de que todas sus variables son declaradas utilizando la [sintaxis 'var'](../Concepts/variables.md#declaring-variables) y que sus parámetros de método y función son declarados [en sus prototipos](../Concepts/parameters.md) (la función [Verificar sintaxis](#check-syntax) puede ayudarle a detectar declaraciones faltantes o no válidas). ## Advertencias diff --git a/i18n/es/docusaurus-plugin-content-docs/version-20-R7/Project/components.md b/i18n/es/docusaurus-plugin-content-docs/version-20-R7/Project/components.md index a9ded766942d97..48f3eea9855bd5 100644 --- a/i18n/es/docusaurus-plugin-content-docs/version-20-R7/Project/components.md +++ b/i18n/es/docusaurus-plugin-content-docs/version-20-R7/Project/components.md @@ -5,7 +5,7 @@ title: Componentes Un componente 4D es un conjunto de código y/o de formularios 4D que representan una o varias funcionalidades que pueden añadirse y utilizarse en sus proyectos. Por ejemplo, el componente [4D SVG](https://github.com/4d/4D-SVG) añade comandos avanzados y un motor de renderizado integrado que puede utilizarse para visualizar archivos SVG. -Puede [desarrollar](../Extensions/develop-components.md) y [crear](../Desktop/building.md) sus propios componentes 4D, o descargar componentes públicos compartidos por la comunidad 4D que [se pueden encontrar en GitHub](https://github.com/search?q=4d-component\&type=Repositories). +Puede [desarrollar](../Extensions/develop-components.md) y [crear](../Desktop/building.md) sus propios componentes 4D, o descargar componentes públicos compartidos por la comunidad 4D que [se pueden encontrar en GitHub](https://github.com/search?q=4d-component\\&type=Repositories). Al desarrollar en 4D, los archivos de los componentes pueden almacenarse de forma transparente en su ordenador o en un repositorio Github. @@ -34,7 +34,7 @@ Esta página describe cómo trabajar con componentes en los entornos **4D** y ** Para cargar un componente en su proyecto 4D, usted puede: - copiar los archivos del componente en la [carpeta **Components** de su proyecto](architecture.md#components), -- or, declare the component in the **dependencies.json** file of your project; this is done automatically for local files when you [**add a dependency using the Dependency manager interface**](#adding-a-dependency). +- o bien, declare el componente en el archivo **dependencies.json** de su proyecto; esto se hace automáticamente para los archivos locales cuando [**añade una dependencia utilizando la interfaz del gestor de dependencias**](#adding-a-dependency). Los componentes declarados en el archivo **dependencies.json** pueden almacenarse en diferentes ubicaciones: @@ -109,7 +109,7 @@ Declara un componente local en el archivo [**dependencies.json**](#dependencyjso ... donde "myComponent1" y "myComponent2" son el nombre de los componentes a cargar. -By default, if "myComponent1" and "myComponent2" are not declared in an [**environment4d.json**](#environment4djson) file, 4D will look for the component's package folder (*i.e.* the project root folder of the component) at the same level as your 4D project's package folder, e.g.: +De forma predeterminada, si "myComponent1" y "myComponent2" no están declarados en un archivo [**environment4d.json**](#environment4djson), 4D buscará la carpeta del paquete del componente (*es decir*, la carpeta raíz del proyecto del componente) al mismo nivel que la carpeta del paquete de su proyecto de 4D, por ejemplo: ``` /MyProjectRoot/ @@ -126,7 +126,7 @@ Si no desea utilizar la arquitectura **dependencies.json**, puede instalar compo #### Personalizar rutas de componentes -Si desea personalizar la ubicación de los componentes locales, declare las rutas de las dependencias que no se almacenan en el mismo nivel que la carpeta del proyecto en el archivo [**environment4d.json**](#environment4djson). +Si la ruta de un componente declarado en el archivo **environment4d.json** no se encuentra cuando se inicia el proyecto, el componente no se carga y obtiene el estado *No encontrado* [status](dependency-status), incluso si existe una versión del componente junto a la carpeta de paquetes del proyecto. Puede utilizar rutas **relativas** o **absolutas** (ver abajo). @@ -144,7 +144,7 @@ Ejemplos: :::note -Si la ruta de un componente declarado en el archivo **environment4d.json** no se encuentra cuando se inicia el proyecto, el componente no se carga y obtiene el estado *No encontrado* [status](dependency-status), incluso si existe una versión del componente junto a la carpeta de paquetes del proyecto. +Si desea personalizar la ubicación de los componentes locales, declare las rutas de las dependencias que no se almacenan en el mismo nivel que la carpeta del proyecto en el archivo [**environment4d.json**](#environment4djson). ::: @@ -158,9 +158,9 @@ Utilizar rutas relativas es **recomendable** en la mayoría de los casos, ya que Las rutas absolutas sólo deben utilizarse para componentes específicos de una máquina y un usuario. -### Componentes almacenados en GitHub +### Configuración del repositorio GitHub -Los componentes 4D disponibles en GitHub pueden ser referenciados y cargados automáticamente en sus proyectos 4D. +Para poder referenciar y utilizar directamente un componente 4D almacenado en GitHub, es necesario configurar el repositorio del componente GitHub: :::note @@ -168,9 +168,9 @@ En cuanto a los componentes almacenados en GitHub, tanto los archivos [**depende ::: -#### Configuración del repositorio GitHub +#### Componentes almacenados en GitHub -Para poder referenciar y utilizar directamente un componente 4D almacenado en GitHub, es necesario configurar el repositorio del componente GitHub: +Los componentes 4D disponibles en GitHub pueden ser referenciados y cargados automáticamente en sus proyectos 4D. - Comprima los archivos componentes en formato ZIP. - Nombre este archivo con el mismo nombre que el repositorio GitHub. @@ -357,26 +357,26 @@ Una vez establecida la conexión, se muestra el icono de GitHub![dependency-gitl :::note -If the component is stored on a [private GitHub repository](#private-repositories) and your personal token is missing, an error message is displayed and a **Add a personal access token...** button is displayed (see [Providing your GitHub access token](#providing-your-github-access-token)). +Si el componente se almacena en un [repositorio privado de GitHub](#private-repositories) y falta su token personal, se muestra un mensaje de error y se muestra un botón **Añadir un token de acceso personal...** (ver [Suministrar su token de acceso GitHub](#providing-your-github-access-token)). ::: -You can then define the [tag or version](#tags-and-versions) option for the dependency: +Luego puede definir la opción [etiqueta o versión](#tags-and-versions) para la dependencia: ![dependency-git-tag](../assets/en/Project/dependency-git-tag.png) - **Latest**: Selected by default and allows to download the release that is tagged as the latest (stable) version. -- **Up to Next Major Version**: Define a [semantic version range](#tags-and-versions) to restrict updates to the next major version. +- **Hasta la próxima versión mayor**: define un [rango de versiones semánticas](#tags-and-versions) para restringir las actualizaciones a la próxima versión principal. - **Up to Next Minor Version**: Similarly, restrict updates to the next minor version. -- **Exact Version (Tag)**: Select or manually enter a [specific tag](#tags-and-versions) from the available list. +- **Versión exacta (Etiqueta)**: selecciona o introduce manualmente una [etiqueta específica](#tags-and-versions) de la lista disponible. Haga clic en el botón **Añadir** para añadir la dependencia al proyecto. -The GitHub dependency declared in the [**dependencies.json**](#dependenciesjson) file and added to the [inactive dependency list](#dependency-status) with the **Available at restart** status. Se cargará cuando se reinicie la aplicación. +La dependencia de GitHub declarada en el archivo [**dependencies.json**](#dependenciesjson) y añadida a la [lista de dependencias inactivas](#dependency-status) con el estado **Disponible al reiniciar**. Se cargará cuando se reinicie la aplicación. #### Providing your GitHub access token -If the component is stored on a [private GitHub repository](#private-repositories), you need to provide your personal access token to the Dependency manager. Para hacer esto, puede: +Si el componente está almacenado en un [repositorio privado GitHub](#private-repositories), deberá suministrar su token de acceso personal al gestor de dependencias. Para hacer esto, puede: - click on **Add a personal access token...** button that is displayed in the "Add a dependency" dialog box after you entered a private GitHub repository path. - or, select **Add a GitHub personal access token...** in the Dependency manager menu at any moment. @@ -403,7 +403,7 @@ Aparece una caja de diálogo de confirmación. Si la dependencia se declaró en ![dependency-remove](../assets/en/Project/remove-comp.png) -If you confirm the dialog box, the removed dependency [status](#dependency-status) is automatically flagged "Unload after restart". Se descargará cuando se reinicie la aplicación. +Si confirma la caja de diálogo, la dependencia eliminada [estado](#estado-dependencia) se marca automáticamente como "Descargar tras reinicio". Se descargará cuando se reinicie la aplicación. ### Origen de dependencia @@ -460,8 +460,8 @@ Las siguientes etiquetas de estado están disponibles: - **Not found**: la dependencia se declara en el archivo dependencies.json pero no se encuentra. - **Inactive**: la dependencia no se carga porque no es compatible con el proyecto (por ejemplo, el componente no está compilado para la plataforma actual). - **Duplicated**: la dependencia no se carga porque existe otra dependencia con el mismo nombre en la misma ubicación (y está cargada). -- **Available after restart**: The dependency reference has just been added [using the interface](#monitoring-project-dependencies), it will be loaded once the application restarts. -- **Unloaded after restart**: The dependency reference has just been removed [using the interface](#removing-a-dependency), it will be unloaded once the application restarts. +- **Disponible después del reinicio**: la referencia a dependencias acaba de ser añadida [usando la interfaz](#monitoring-project-dependencies), se cargará una vez que la aplicación se reinicie. +- **Descargado después de reiniciar**: la referencia de dependencias acaba de ser removida [utilizando la interfaz](#removing-a-dependency), se descargará una vez que la aplicación se reinicie. Al pasar el ratón por encima de la línea de dependencia, se muestra un mensaje que ofrece información adicional sobre el estado: diff --git a/i18n/es/docusaurus-plugin-content-docs/version-20-R7/Project/documentation.md b/i18n/es/docusaurus-plugin-content-docs/version-20-R7/Project/documentation.md index 56bf06eb732926..82f4cfad16caac 100644 --- a/i18n/es/docusaurus-plugin-content-docs/version-20-R7/Project/documentation.md +++ b/i18n/es/docusaurus-plugin-content-docs/version-20-R7/Project/documentation.md @@ -196,30 +196,30 @@ The [documentation](https://doc.4d.com) of the command .... En el archivo `WP SwitchToolbar.md`, puede escribir: ````md - + GetLogo (size) -> logo -| Parameter | Type | in/out | Description | -| --------- | ------ | ------ | ----------- | -| size | Integer | in | Logo style selector (1 to 5) | -| logo | Picture | out | Selected logo | +| Parámetro | Tipo | Entrada/Salida | Descripción | +| --------- | ------ | -------------- | ----------- | +| size | Integer | Entrada | Selector de estilo de logo (1 a 5) | +| logo | Picture | Salida | Logo seleccionado | -## Description +## Descripción -This method returns a logo of a specific size, depending on the value of the *size* parameter. -1 = smallest size, 5 = largest size. +Este método devuelve un logo de un tamaño específico, dependiendo del valor del parámetro *size*. +1 = tamaño más pequeño, 5 = tamaño más grande. -## Example +## Ejemplo ```4d C_PICTURE($logo) C_LONGINT($size) -//Get the largest logo +//Obtener el logo más grande $logo:=GetLogo(5) ``` ```` diff --git a/i18n/es/docusaurus-plugin-content-docs/version-20-R7/Project/overview.md b/i18n/es/docusaurus-plugin-content-docs/version-20-R7/Project/overview.md index 900ed94d1cee0e..926dfc34e2c139 100644 --- a/i18n/es/docusaurus-plugin-content-docs/version-20-R7/Project/overview.md +++ b/i18n/es/docusaurus-plugin-content-docs/version-20-R7/Project/overview.md @@ -7,7 +7,7 @@ Un proyecto 4D contiene todo el código fuente de una aplicación 4D, sin import ## Archivos del proyecto -Los archivos de proyecto 4D se abren y editan con las aplicaciones estándar de la plataforma 4D (4D o 4D Server). Con 4D, los editores completos están disponibles para gestionar los archivos, como un editor de estructuras, un editor de código, un editor de formularios, un editor de menú... +Los archivos de proyecto 4D se abren y editan con las aplicaciones estándar de la plataforma 4D (4D o 4D Server). With 4D, full-featured editors are available to manage files, including a structure editor, a [Code Editor](../code-editor/write-class-method.md), a [form editor](../FormEditor/formEditor.md), a menu editor... Como los proyectos se encuentran en archivos legibles, en texto plano (JSON, XML, etc.), pueden ser leídos o editados manualmente por los desarrolladores, utilizando cualquier editor de código. diff --git a/i18n/es/docusaurus-plugin-content-docs/version-20-R7/REST/$catalog.md b/i18n/es/docusaurus-plugin-content-docs/version-20-R7/REST/$catalog.md index 9c06c21649306e..78d8f428381d2c 100644 --- a/i18n/es/docusaurus-plugin-content-docs/version-20-R7/REST/$catalog.md +++ b/i18n/es/docusaurus-plugin-content-docs/version-20-R7/REST/$catalog.md @@ -16,7 +16,7 @@ El catálogo describe todas las clases de datos, atributos y [singletoneos inter ## $catalog -Returns [shared singletons](#singletons) (if any) and a list of the dataclasses in your project along with two URIs: one to access the information about its structure and one to retrieve the data in the dataclass +Devuelve [shared singletons](#singletons) (si existe) y una lista de las clases de datos de su proyecto junto con dos URIs: una para acceder a la información sobre su estructura y otra para recuperar los datos de la clase de datos ### Descripción diff --git a/i18n/es/docusaurus-plugin-content-docs/version-20-R7/REST/$singleton.md b/i18n/es/docusaurus-plugin-content-docs/version-20-R7/REST/$singleton.md index 63d56d32b345d6..66237548db835c 100644 --- a/i18n/es/docusaurus-plugin-content-docs/version-20-R7/REST/$singleton.md +++ b/i18n/es/docusaurus-plugin-content-docs/version-20-R7/REST/$singleton.md @@ -43,7 +43,7 @@ with data in the body of the POST request: `["myparam"]` :::note -The `SingletonClassFunction()` function must have been declared with the `onHttpGet` keyword to be callable with `GET` (see [Function configuration](ClassFunctions#function-configuration)). +La función `SingletonClassFunction()` debe haber sido declarada con la palabra clave `onHttpGet` para ser invocable con `GET` (ver [Configuración de funciones](ClassFunctions#function-configuration)). ::: diff --git a/i18n/es/docusaurus-plugin-content-docs/version-20-R7/REST/ClassFunctions.md b/i18n/es/docusaurus-plugin-content-docs/version-20-R7/REST/ClassFunctions.md index 4b39fabda21390..4fba26c461aaa7 100644 --- a/i18n/es/docusaurus-plugin-content-docs/version-20-R7/REST/ClassFunctions.md +++ b/i18n/es/docusaurus-plugin-content-docs/version-20-R7/REST/ClassFunctions.md @@ -3,14 +3,14 @@ id: classFunctions title: Llamando a funciones de clase --- -You can call [data model class functions](ORDA/ordaClasses.md) defined for the ORDA Data Model and [singleton class functions]($singleton.md) through REST requests, so that you can benefit from the exposed API of the targeted 4D application. +Puede llamar a [funciones clase modelo de datos](ORDA/ordaClasses.md) definidas para el modelo de datos ORDA y [funciones clase singleton]($singleton.md) a través de peticiones REST, para que pueda beneficiarse de la API expuesta de la aplicación 4D seleccionada. Functions can be called in two ways: - using **POST requests**, with data parameters passed in the body of the request. - using **GET requests**, with parameters directly passed in the URL. -POST requests provide a better security level because they avoid running sensitive code through an action as simple as clicking on a link. However, GET requests can be more compliant with user experience, allowing to call functions by entering an URL in a browser (note: the developer must ensure no sensitive action is done in such functions). +POST requests provide a better security level because they avoid running sensitive code through an action as simple as clicking on a link. Sin embargo, las peticiones GET pueden ser más compatibles con la experiencia del usuario, permitiendo llamar a las funciones introduciendo una URL en un navegador (nota: el desarrollador debe asegurarse de que no se hace ninguna acción sensible en dichas funciones). ## Llamadas de las funciones @@ -29,11 +29,11 @@ The following ORDA and singleton functions can be called in REST: :::note -`/rest/{dataClass}/Function` can be used to call either a dataclass or an entity selection function (`/rest/{dataClass}` returns all entities of the DataClass as an entity selection). La función se busca primero en la clase de selección de entidades. Si no se encuentra, se busca en la dataclass. En otras palabras, si una función con el mismo nombre se define tanto en la clase DataClass como en la clase EntitySelection, la función de clase de DataClass nunca se ejecutará. +`/rest/{dataClass}/Function` puede utilizarse para llamar a una clase de datos o a una función de selección de entidades (`/rest/{dataClass}` devuelve todas las entidades de la DataClass como una selección de entidades). La función se busca primero en la clase de selección de entidades. Si no se encuentra, se busca en la dataclass. En otras palabras, si una función con el mismo nombre se define tanto en la clase DataClass como en la clase EntitySelection, la función de clase de DataClass nunca se ejecutará. ::: -Functions are simply called on the appropriate ORDA interface or singleton class, without (). [Parameters](#parameters) are passed either in the body of the POST request (`POST` calls) or in the `params` collection in the URL (`GET` calls). +Las funciones se llaman simplemente en la interfaz ORDA o clase singleton apropiada, sin (). [Parámetros](#parameters) se pasan en el cuerpo de la petición POST (llamadas `POST`) o en la colección `params` de la URL (llamadas `GET`). Por ejemplo, si ha definido una función `getCity()` en la dataclass City, podría llamarla utilizando la siguiente petición: @@ -49,7 +49,7 @@ con los datos en el cuerpo de la petición POST: `["Aguada"]` :::note -The `getCity()` function must have been declared with the `onHttpGet` keyword (see [Function configuration](#function-configuration) below). +La función `getCity()` debe haber sido declarada con la palabra clave `onHttpGet` (ver [Configuración de la función](#function-configuration)). ::: @@ -63,7 +63,7 @@ $city:=ds.City.getCity("Aguada") ### `exposed` -All functions allowed to be called directly from HTTP REST requests (`POST` or `GET`) must be declared with the `exposed` keyword. Por ejemplo: +Todas las funciones permitidas para ser llamadas directamente desde peticiones HTTP REST (`POST` o `GET`) deben ser declaradas con la palabra clave `exposed`. Por ejemplo: ```4d exposed Function getSomeInfo() : 4D.OutgoingMessage diff --git a/i18n/es/docusaurus-plugin-content-docs/version-20-R7/REST/authUsers.md b/i18n/es/docusaurus-plugin-content-docs/version-20-R7/REST/authUsers.md index d042a365ee7017..48d7d412c13493 100644 --- a/i18n/es/docusaurus-plugin-content-docs/version-20-R7/REST/authUsers.md +++ b/i18n/es/docusaurus-plugin-content-docs/version-20-R7/REST/authUsers.md @@ -39,7 +39,7 @@ La secuencia de inicio de sesión del usuario es la siguiente: En la fase de inicio de sesión del usuario, el uso de la licencia está desconectado de las sesiones de usuario web. Sólo se requiere una licencia cuando se ejecuta el comando [`Session.setPrivileges()`](../API/SessionClass.md#setprivileges), lo que permite controlar el número de licencias utilizadas. -Todas las demás peticiones REST (manejando datos o ejecutando una función) sólo serán procesadas si son ejecutadas dentro de una sesión web con privilegios apropiados, de lo contrario devuelven un error. Sintaxis Sintaxis Sintaxis Sintaxis Ejecutar esta función activa el consumo de la licencia 4D. +Todas las demás peticiones REST (manejando datos o ejecutando una función) sólo serán procesadas si son ejecutadas dentro de una sesión web con privilegios apropiados, de lo contrario devuelven un error. Sintaxis Sintaxis Sintaxis Sintaxis Sintaxis Sintaxis Sintaxis Sintaxis Ejecutar esta función activa el consumo de la licencia 4D. ### Peticiones REST descriptivas diff --git a/i18n/es/docusaurus-plugin-content-docs/version-20-R7/ViewPro/commands/vp-resize-table.md b/i18n/es/docusaurus-plugin-content-docs/version-20-R7/ViewPro/commands/vp-resize-table.md index 6ffb5b49b597d9..e9f8717eea9589 100644 --- a/i18n/es/docusaurus-plugin-content-docs/version-20-R7/ViewPro/commands/vp-resize-table.md +++ b/i18n/es/docusaurus-plugin-content-docs/version-20-R7/ViewPro/commands/vp-resize-table.md @@ -29,7 +29,7 @@ El comando `VP RESIZE TABLE` cambi Se aplican las siguientes reglas: - Los encabezados deben permanecer en la misma línea y el rango de la tabla resultante debe superponerse al rango de la tabla original. -- If the row count of the resized table is inferior to the initial row count, values inside cropped rows or columns are kept if they were not bound to a [data context](vp-set-data-context.md), otherwise they are deleted. +- Si el conteo de líneas de la tabla redimensionada es inferior al conteo de líneas inicial, los valores dentro de las líneas o columnas recortadas se mantienen si no estaban vinculados a un [contexto de datos](vp-set-data-context.md), de lo contrario se eliminan. - Si la tabla se expande en las celdas que contienen datos: - si se añaden líneas, se eliminan datos, - si se añaden columnas, los datos se mantienen y se muestran en nuevas columnas. diff --git a/i18n/es/docusaurus-plugin-content-docs/version-20-R7/ViewPro/configuring.md b/i18n/es/docusaurus-plugin-content-docs/version-20-R7/ViewPro/configuring.md index 8bd86830f034ce..90c25e38cb9edf 100644 --- a/i18n/es/docusaurus-plugin-content-docs/version-20-R7/ViewPro/configuring.md +++ b/i18n/es/docusaurus-plugin-content-docs/version-20-R7/ViewPro/configuring.md @@ -126,7 +126,7 @@ La definición de un modelo de formato garantiza que el contenido de sus documen 4D View Pro tiene formatos integrados para números, fechas, horas y texto, pero también puede crear sus propios modelos para dar formato al contenido de las celdas utilizando caracteres y códigos especiales. -For example, when using the [VP SET VALUE](commands/vp-set-value.md) or [VP SET NUM VALUE](commands/vp-set-num-value.md) commands to enter amounts in an invoice, you may want the currency symbols ($, €, ¥, etc.) alinearse independientemente del espacio requerido por el número (es decir, si el importe es de 5,00 $ o de 5.000,00 $). Podría utilizar caracteres de formato y espectificar el patrón *($\* #,##0.00*) que mostraría los importes como se muestra: +Por ejemplo, al usar los comandos [VP SET VALUE](commands/vp-set-value.md) o [VP SET NUM VALUE](commands/vp-set-num-value.md) para introducir cantidades en una factura, puede que desee utilizar los símbolos de moneda ($, €, ¥, etc.) alinearse independientemente del espacio requerido por el número (es decir, si el importe es de 5,00 $ o de 5.000,00 $). Podría utilizar caracteres de formato y espectificar el patrón *($\* #,##0.00*) que mostraría los importes como se muestra: ![](../assets/en/ViewPro/apx_vpCellFormat1.PNG) diff --git a/i18n/es/docusaurus-plugin-content-docs/version-20-R7/WebServer/authentication.md b/i18n/es/docusaurus-plugin-content-docs/version-20-R7/WebServer/authentication.md index e91ef85c10c8d9..2ce024003b39f7 100644 --- a/i18n/es/docusaurus-plugin-content-docs/version-20-R7/WebServer/authentication.md +++ b/i18n/es/docusaurus-plugin-content-docs/version-20-R7/WebServer/authentication.md @@ -28,7 +28,7 @@ Básicamente, en este modo, depende del desarrollador definir cómo autenticar a Este modo de autenticación es el más flexible porque permite: - o bien, delegar la autenticación del usuario a una aplicación de terceros (por ejemplo, una red social, SSO); -- o bien, ofrecer una interfaz al usuario (por ejemplo, un formulario web) para que pueda crear su cuenta en su base de datos clientes; luego, puede autenticar a los usuarios con cualquier algoritmo personalizado (ver [este ejemplo](sessions.md#example) del Lo importante es que nunca guarde la contraseña en claro, utilizando ese código: Lo importante es que nunca guarde la contraseña en claro, utilizando ese código: Lo importante es que nunca guarde la contraseña en claro, utilizando ese código: Lo importante es que nunca guarde la contraseña en claro, utilizando ese código: Lo importante es que nunca guarde la contraseña en claro, utilizando ese código: +- o bien, ofrecer una interfaz al usuario (por ejemplo, un formulario web) para que pueda crear su cuenta en su base de datos clientes; luego, puede autenticar a los usuarios con cualquier algoritmo personalizado (ver [este ejemplo](sessions.md#example) del Lo importante es que nunca guarde la contraseña en claro, utilizando ese código: Lo importante es que nunca guarde la contraseña en claro, utilizando ese código: Lo importante es que nunca guarde la contraseña en claro, utilizando ese código: Lo importante es que nunca guarde la contraseña en claro, utilizando ese código: Lo importante es que nunca guarde la contraseña en claro, utilizando ese código: Lo importante es que nunca guarde la contraseña en claro, utilizando ese código: ```4d //... creación de cuenta de usuario @@ -102,13 +102,13 @@ Por tanto, NO se llama al método base `On Web Authentication`: Debe declarar estos parámetros de la siguiente manera: ```4d -// On Web Authentication database method +// Método base On Web Authentication #DECLARE ($url : Text; $content : Text; \ $IPClient : Text; $IPServer : Text; \ $user : Text; $password : Text) \ -> $accept : Boolean -//Code for the method +//Código del método ``` @@ -120,7 +120,7 @@ Todos los parámetros del método base `On Web Authentication` no están necesar #### $url - URL -The first parameter (`$url`) is the URL received by the server, from which the host address has been removed. +El primer parámetro (`$url`) es la URL recibida por el servidor, de la que se ha eliminado la dirección del host. Tomemos el ejemplo de una conexión a la Intranet. Supongamos que la dirección IP de su máquina 4D Web Server es 123.45.67.89. The following table shows the values of $urll depending on the URL entered in the Web browser: @@ -134,7 +134,7 @@ Tomemos el ejemplo de una conexión a la Intranet. Supongamos que la dirección #### $content - Header and Body of the HTTP request -The second parameter (`$content`) is the header and the body of the HTTP request sent by the web browser. Tenga en cuenta que esta información se pasa a su método base `On Web Authentication` tal cual. Su contenido variará en función de la naturaleza del navegador web que intenta la conexión. +El segundo parámetro (`$content`) es el encabezado y el cuerpo de la petición HTTP enviada por el navegador web. Tenga en cuenta que esta información se pasa a su método base `On Web Authentication` tal cual. Su contenido variará en función de la naturaleza del navegador web que intenta la conexión. Si su aplicación utiliza esta información, deberá analizar el encabezado y el cuerpo. Puede utilizar los comandos `WEB GET HTTP HEADER` y `WEB GET HTTP BODY`. @@ -152,9 +152,9 @@ The `$IPServer` parameter receives the IP address used to call the web server. 4 #### $user and $password - User Name and Password -Generalidades Generalidades Generalidades Generalidades Esta caja de diálogo aparece para cada conexión, si se selecciona la autenticación [basic](#basic-protocol) o [digest](#digest-protocol). +Generalidades Generalidades Generalidades Generalidades Generalidades Generalidades Generalidades Generalidades Esta caja de diálogo aparece para cada conexión, si se selecciona la autenticación [basic](#basic-protocol) o [digest](#digest-protocol). -> If the user name sent by the browser exists in 4D, the $password parameter (the user’s password) is not returned for security reasons. +> Si el nombre de usuario enviado por el navegador existe en 4D, el parámetro $password (la contraseña del usuario) no se devuelve por razones de seguridad. #### $accept - Retorno de función diff --git a/i18n/es/docusaurus-plugin-content-docs/version-20-R7/WebServer/httpRequests.md b/i18n/es/docusaurus-plugin-content-docs/version-20-R7/WebServer/httpRequests.md index c7d490a07cae3b..eeeb585b348fea 100644 --- a/i18n/es/docusaurus-plugin-content-docs/version-20-R7/WebServer/httpRequests.md +++ b/i18n/es/docusaurus-plugin-content-docs/version-20-R7/WebServer/httpRequests.md @@ -338,6 +338,6 @@ El servidor web de 4D ahora soporta archivos cargados con codificación chunked ## Método proyecto COMPILER_WEB -El método COMPILER\WEB, si existe, es llamado sistemáticamente cuando el servidor HTTP recibe una petición dinámica y llama al motor 4D. Este es el caso, por ejemplo, cuando el servidor web de 4D recibe un formulario publicado o una URL para procesar en [`On Web Connection`](#on-web-connection). Este método está destinado a contener directivas de digitación y/o inicialización de variables utilizadas durante los intercambios web. Es utilizado por el compilador cuando se compila la aplicación. El método COMPILER\WEB es común a todos los formularios web. Por defecto, el método COMPILER_WEB no existe. Debe crearlo explícitamente. +El método COMPILER\WEB, si existe, es llamado sistemáticamente cuando el servidor HTTP recibe una petición dinámica y llama al motor 4D. El método COMPILER\WEB, si existe, es llamado sistemáticamente cuando el servidor HTTP recibe una petición dinámica y llama al motor 4D. Este método está destinado a contener directivas de digitación y/o inicialización de variables utilizadas durante los intercambios web. Es utilizado por el compilador cuando se compila la aplicación. El método COMPILER\WEB es común a todos los formularios web. Por defecto, el método COMPILER_WEB no existe. Debe crearlo explícitamente. > También se llama al método proyecto COMPILER_WEB, si existe, para cada solicitud SOAP aceptada. diff --git a/i18n/es/docusaurus-plugin-content-docs/version-20-R7/WebServer/qodly-studio.md b/i18n/es/docusaurus-plugin-content-docs/version-20-R7/WebServer/qodly-studio.md index f448aa2bd83d9a..da67e5512b2113 100644 --- a/i18n/es/docusaurus-plugin-content-docs/version-20-R7/WebServer/qodly-studio.md +++ b/i18n/es/docusaurus-plugin-content-docs/version-20-R7/WebServer/qodly-studio.md @@ -84,7 +84,7 @@ De acuerdo con la gestión de proyectos 4D, sólo se admiten los siguientes usos :::warning -You can open Qodly Studio, [debug](#using-qodly-debugger-on-4d-server) and edit Qodly pages directly on a 4D Server machine when a project is running in interpreted mode. This feature is only provided for testing and debugging purposes, for example to evaluate the application flow with actual data, or in multi-user environment. It must NOT be considered as a regular way to develop applications since it does not provide any control over concurrent accesses. +Puede abrir Qodly Studio, [debug](#using-qodly-debugger-on-4d-server) y editar páginas Qodly directamente en una máquina 4D Server cuando un proyecto se está ejecutando en modo interpretado. This feature is only provided for testing and debugging purposes, for example to evaluate the application flow with actual data, or in multi-user environment. It must NOT be considered as a regular way to develop applications since it does not provide any control over concurrent accesses. ::: @@ -128,15 +128,15 @@ No existe compatibilidad directa entre las aplicaciones implementadas con 4D y l ### Comparación de funcionalidades -| | Qodly Studio en 4D | Qodly Studio in Qodly Cloud platform | -| -------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ----------------------------------------------------------------------------- | -| Ver y editar tablas (clases de datos), atributos y relaciones | Editor de estructura 4D(1) | Qodly Studio Model Editor | -| Páginas Qodly | Editor de páginas Qodly Studio | Editor de páginas Qodly Studio | -| Formularios de escritorio | 4D IDE | *not supported* | -| Lenguaje de programación | Lenguaje 4D con ORDA | [QodlyScript](https://developer.qodly.com/docs/category/qodlyscript) con ORDA | -| IDE de código | 4D IDE code editor *or* VS Code with [4D extension](https://github.com/4d/4D-Analyzer-VSCode)
    *4D Server only*: Qodly Studio code editor (see (2)) | Editor de código Qodly Studio | -| Debugger | 4D IDE debugger
    *4D Server only*: Qodly Studio debugger (see [this paragraph](#using-qodly-debugger-on-4d-server)) | Qodly Studio debugger | -| Roles y privilegios REST/Web | Edición directa de roles.json/Editor de roles y permisos Qodly Studio | Editor de roles y privilegios de Qodly Studio | +| | Qodly Studio en 4D | Qodly Studio in Qodly Cloud platform | +| -------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------- | +| Ver y editar tablas (clases de datos), atributos y relaciones | Editor de estructura 4D(1) | Qodly Studio Model Editor | +| Páginas Qodly | Editor de páginas Qodly Studio | Editor de páginas Qodly Studio | +| Formularios de escritorio | 4D IDE | *not supported* | +| Lenguaje de programación | Lenguaje 4D con ORDA | [QodlyScript](https://developer.qodly.com/docs/category/qodlyscript) con ORDA | +| IDE de código | 4D IDE code editor *or* VS Code with [4D-Analyzer extension](https://github.com/4d/4D-Analyzer-VSCode)
    *4D Server only*: Qodly Studio code editor (see (2)) | Editor de código Qodly Studio | +| Debugger | 4D IDE debugger
    *4D Server only*: Qodly Studio debugger (see [this paragraph](#using-qodly-debugger-on-4d-server)) | Qodly Studio debugger | +| Roles y privilegios REST/Web | Edición directa de roles.json/Editor de roles y permisos Qodly Studio | Editor de roles y privilegios de Qodly Studio | (1) If you click on the **Model** button in Qodly Studio, nothing happens.
    (2) In 4D Server, opening 4D code with the Qodly Studio code editor is supported **for testing and debugging purposes** (see [this paragraph](#development-and-deployment)). (1) The **Model** item is disabled in Qodly Studio.
    @@ -218,13 +218,13 @@ https://www.myWebSite.com/$lib/renderer/?w=welcome You can preview your Qodly application at any moment by selecting the **Preview Qodly Application...** command in the **Windows** menu (4D Server) or in the **Design** menu (4D single-user). -This command launches the Qodly renderer on a local address in your default browser and displays the **start page** [defined in the Application settings](https://developer.qodly.com/docs/studio/settings#start-page) of Qodly Studio. +Este comando lanza el renderizador de Qodly en una dirección local en su navegador por defecto y muestra la **página de inicio** [definida en la Configuración de la aplicación](https://developer.qodly.com/docs/studio/settings#start-page) de Qodly Studio. ### Using Qodly debugger on 4D Server When using Qodly pages in a deployed 4D Server application (interpreted mode), you might encounter some cases where you need to debug your pages on the server, for example when a specific user configuration is required. In this case, you can attach the [Qodly Studio debugger](https://developer.qodly.com/docs/studio/debugging) to the 4D Server and then, benefit from its features when executing your Qodly pages. -Note that in this case, the Qodly Studio debugger will display all the code executed on the server, in accordance with the [attached debugger rule on 4D Server](../Debugging/debugging-remote.md#attached-debugger). +Tenga en cuenta que en este caso, el depurador Qodly Studio mostrará todo el código ejecutado en el servidor, de acuerdo con la [regla del depurador adjunta en el servidor 4D](. /Debugging/debugging-remote.md#attached-debugger). Para adjuntar el depurador Qodly Studio a su aplicación 4D Server en ejecución: diff --git a/i18n/es/docusaurus-plugin-content-docs/version-20-R7/WebServer/sessions.md b/i18n/es/docusaurus-plugin-content-docs/version-20-R7/WebServer/sessions.md index 05e9a459bc4b45..d52e835495215d 100644 --- a/i18n/es/docusaurus-plugin-content-docs/version-20-R7/WebServer/sessions.md +++ b/i18n/es/docusaurus-plugin-content-docs/version-20-R7/WebServer/sessions.md @@ -38,7 +38,7 @@ En cualquier caso, la configuración es local para la máquina; por lo que puede ## Implementación de la sesión -Cuando [se habilitan las sesiones](#enabling-sessions), se implementan mecanismos automáticos, basados en una cookie privada establecida por el propio 4D: "4DSID_*AppName*", donde *AppName* es el nombre del proyecto de la aplicación. Esta cookie hace referencia a la sesión web actual de la aplicación. +Cuando [se habilitan las sesiones](#enabling-sessions), se implementan mecanismos automáticos, basados en una cookie privada establecida por el propio 4D: "4DSID__AppName_", donde *AppName* es el nombre del proyecto de la aplicación. Esta cookie hace referencia a la sesión web actual de la aplicación. :::info @@ -46,13 +46,13 @@ El nombre de la cookie se puede obtener utilizando la propiedad [`.sessionCookie ::: -1. En cada petición del cliente web, el servidor web comprueba la presencia y el valor de la cookie privada "4DSID_*AppName*". +1. En cada petición del cliente web, el servidor web comprueba la presencia y el valor de la cookie privada "4DSID__AppName_". 2. Si la cookie tiene un valor, 4D busca la sesión que creó esta cookie entre las sesiones existentes; si se encuentra esta sesión, se reutiliza para la llamada. 3. Si la solicitud del cliente no corresponde a una sesión ya abierta: -- se crea una nueva sesión con una cookie privada "4DSID_*AppName*" en el servidor web +- se crea una nueva sesión con una cookie privada "4DSID__AppName_" en el servidor web - se crea un nuevo objeto Guest `Session` dedicado a la sesión web escalable. :::note @@ -84,7 +84,7 @@ Una sesión web escalable se cierra cuando: La vida útil de una cookie inactiva es de 60 minutos por defecto, lo que significa que el servidor web cerrará automáticamente las sesiones inactivas después de 60 minutos. -This timeout can be set using the [`.idleTimeout`](API/SessionClass.md#idletimeout) property of the `Session` object (the timeout cannot be less than 60 minutes) or the *connectionInfo* parameter of the [`Open datastore`](../commands/open-datastore.md) command. +Este tiempo de espera puede establecerse utilizando la propiedad [`.idleTimeout`](API/SessionClass.md#idletimeout) del objeto `Session` (el tiempo de espera no puede ser inferior a 60 minutos) o el parámetro *connectionInfo* del comando [`Open datastore`](../commands/open-datastore.md). When a web session is closed, if the [`Session`](commands/session.md) command is called afterwards: @@ -100,7 +100,7 @@ Puede cerrar una sesión desde un formulario Qodly utilizando la función [**log ## Privilegios -Los privilegios pueden asociarse a sesiones de usuario web. En el servidor web, puede proporcionar un acceso o unas funcionalidades específicas en función de los privilegios de la sesión. +Fecha de caducidad de la sesión En el servidor web, puede proporcionar un acceso o unas funcionalidades específicas en función de los privilegios de la sesión. Puedes asignar privilegios utilizando la función [`.setPrivileges()`](API/SessionClass.md#setprivileges). En su código, puede comprobar los privilegios de la sesión para permitir o denegar el acceso utilizando la función [`.hasPrivilege()`](API/SessionClass.md#hasprivilege). Por defecto, las sesiones nuevas no tienen ningún privilegio: son sesiones **Invitadas** (la función [`.isGuest()`](API/SessionClass.md#isguest) devuelve true). diff --git a/i18n/es/docusaurus-plugin-content-docs/version-20-R7/WritePro/commands/command-index.md b/i18n/es/docusaurus-plugin-content-docs/version-20-R7/WritePro/commands/command-index.md index 427f8ba4e1eb49..cbedc6bf156515 100644 --- a/i18n/es/docusaurus-plugin-content-docs/version-20-R7/WritePro/commands/command-index.md +++ b/i18n/es/docusaurus-plugin-content-docs/version-20-R7/WritePro/commands/command-index.md @@ -23,9 +23,9 @@ title: Comandos 4D Write Pro [`WP DELETE FOOTER`](../commands-legacy/wp-delete-footer.md)
    [`WP DELETE HEADER`](../commands-legacy/wp-delete-header.md)
    [`WP DELETE PICTURE`](../commands-legacy/wp-delete-picture.md)
    -[`WP DELETE SECTION`](wp-delete-section.md) ***New 4D 20 R7***
    +[`WP DELETE SECTION`](wp-delete-section.md) ***Nuevo 4D 20 R7***
    [`WP DELETE STYLE SHEET`](../commands-legacy/wp-delete-style-sheet.md)
    -[`WP DELETE SUBSECTION`](wp-delete-subsection.md) ***Modified 4D 20 R7***
    +[`WP DELETE SUBSECTION`](wp-delete-subsection.md) ***Modificado 4D 20 R7***
    [`WP DELETE TEXT BOX`](../commands-legacy/wp-delete-text-box.md) E @@ -93,7 +93,7 @@ title: Comandos 4D Write Pro R -[`WP RESET ATTRIBUTES`](wp-reset-attributes.md) ***Modified 4D 20 R7*** +[`WP RESET ATTRIBUTES`](wp-reset-attributes.md) ***Modificado 4D 20 R7*** S diff --git a/i18n/es/docusaurus-plugin-content-docs/version-20-R7/WritePro/commands/wp-delete-subsection.md b/i18n/es/docusaurus-plugin-content-docs/version-20-R7/WritePro/commands/wp-delete-subsection.md index 48c2e8c2b8f8a0..300673257f3ed8 100644 --- a/i18n/es/docusaurus-plugin-content-docs/version-20-R7/WritePro/commands/wp-delete-subsection.md +++ b/i18n/es/docusaurus-plugin-content-docs/version-20-R7/WritePro/commands/wp-delete-subsection.md @@ -51,9 +51,9 @@ You want to delete the first page subsection of the first section: ```4d var $section;$subsection : Object - // get first section + // obtener la primera sección $section:=WP Get section(wpDoc;1) - // Delete the subsection + // Eliminar la subsección WP DELETE SUBSECTION($section;wk first page) ``` diff --git a/i18n/es/docusaurus-plugin-content-docs/version-20-R7/WritePro/commands/wp-reset-attributes.md b/i18n/es/docusaurus-plugin-content-docs/version-20-R7/WritePro/commands/wp-reset-attributes.md index 978de19c1f2ed7..e95acc59fe69e5 100644 --- a/i18n/es/docusaurus-plugin-content-docs/version-20-R7/WritePro/commands/wp-reset-attributes.md +++ b/i18n/es/docusaurus-plugin-content-docs/version-20-R7/WritePro/commands/wp-reset-attributes.md @@ -9,11 +9,11 @@ displayed_sidebar: docs -| Parámetros | Tipo | | Descripción | -| ------------------- | ------ | - | ------------------------------------------------- | -| targetObj | Object | → | Range or element or 4D Write Pro document | -| sectionOrSubsection | Object | → | Section or subsection of a 4D Write Pro document | -| attribName | Text | → | Name of attribute(s) to remove | +| Parámetros | Tipo | | Descripción | +| ------------------- | ------ | - | --------------------------------------------------- | +| targetObj | Object | → | Range or element or 4D Write Pro document | +| sectionOrSubsection | Object | → | Section or subsection of a 4D Write Pro document | +| attribName | Text | → | Nombre de atributo(s) a eliminar | @@ -24,7 +24,7 @@ The **WP RESET ATTRIBUTES** command builds and returns a new, [alterable](../ORDA/entities.md#shareable-or-alterable-entity-selections) entity selection related to the dataclass matching the given *dsTable*, according to the current selection of this table. -If the current selection is sorted, an [ordered](../ORDA/dsMapping.md#ordered-or-unordered-entity-selection) entity selection is created (the order of the current selection is kept). Si la selección actual no está ordenada, se crea una selección de entidades no ordenada. +Si la selección actual está ordenada, se crea una entity selection [ordenada](../ORDA/dsMapping.md#ordered-or-unordered-entity-selection) (se mantiene el orden de la selección actual). Si la selección actual no está ordenada, se crea una selección de entidades no ordenada. -If the *dsTable* is not exposed in [`ds`](ds.md), an error is returned. Este comando no puede utilizarse con un datastore remoto. +Si *dsTable* no está expuesto en [`ds`](ds.md), se devuelve un error. Este comando no puede utilizarse con un datastore remoto. En el parámetro opcional *settings*, puede pasar un objeto que contenga la siguiente propiedad: diff --git a/i18n/es/docusaurus-plugin-content-docs/version-20-R7/commands/cs.md b/i18n/es/docusaurus-plugin-content-docs/version-20-R7/commands/cs.md index b9c46513ee3bfa..c044fa9741f644 100644 --- a/i18n/es/docusaurus-plugin-content-docs/version-20-R7/commands/cs.md +++ b/i18n/es/docusaurus-plugin-content-docs/version-20-R7/commands/cs.md @@ -8,4 +8,4 @@ displayed_sidebar: docs | ---------- | ------ | - | ------------------------------------------------- | | classStore | Object | ← | Class store usuario para el proyecto o componente | -The **cs** keyword is described in the [**Concept page for Classes**](../Concepts/classes.md#cs). +La palabra clave **cs** se describe en la [**página Concepto para Clases**](../Concepts/classes.md#cs). diff --git a/i18n/es/docusaurus-plugin-content-docs/version-20-R7/commands/folder.md b/i18n/es/docusaurus-plugin-content-docs/version-20-R7/commands/folder.md index 2fd64113249ed3..c9767b90052884 100644 --- a/i18n/es/docusaurus-plugin-content-docs/version-20-R7/commands/folder.md +++ b/i18n/es/docusaurus-plugin-content-docs/version-20-R7/commands/folder.md @@ -29,7 +29,7 @@ displayed_sidebar: docs #### Descripción -El comando `Folder` crea y devuelve un nuevo objeto del tipo `4D.Folder`. El comando acepta dos sintaxis: +Comentario El comando acepta dos sintaxis: **Folder ( path { ; pathType } { ; \* } )** diff --git a/i18n/es/docusaurus-plugin-content-docs/version-20-R7/commands/form-event-code.md b/i18n/es/docusaurus-plugin-content-docs/version-20-R7/commands/form-event-code.md index 9a5260850bf18c..964f68c76d5704 100644 --- a/i18n/es/docusaurus-plugin-content-docs/version-20-R7/commands/form-event-code.md +++ b/i18n/es/docusaurus-plugin-content-docs/version-20-R7/commands/form-event-code.md @@ -1,7 +1,6 @@ --- id: form-event-code title: Form event code -slug: /commands/form-event-code displayed_sidebar: docs --- @@ -102,10 +101,10 @@ This example is a template for a form method. It shows each of the possible even #### Ejemplo 4 -This example shows the template of a form method that handles the events that can occur for a form displayed using the [DISPLAY SELECTION](display-selection.md) or [MODIFY SELECTION](modify-selection.md) commands. For didactic purposes, it displays the nature of the event in the title bar of the form window. +This example shows the template of a form method that handles the events that can occur for a form displayed using the [DISPLAY SELECTION](../commands-legacy/display-selection.md) or [MODIFY SELECTION](../commands-legacy/modify-selection.md) commands. For didactic purposes, it displays the nature of the event in the title bar of the form window. ```4d -  //A form method +  ////Método formulario  Case of     :(Form event code=On Load)        $vsTheEvent:="The form is about to be displayed" @@ -141,7 +140,7 @@ This example shows the template of a form method that handles the events that ca #### Ejemplo 5 -For examples on how to handle [`On Before Keystroke`](../Events/onBeforeKeystroke.md) and [`On After Keystroke`](../Events/onAfterKeystroke.md) events, see examples for the [Get edited text](get-edited-text.md), [Keystroke](keystroke.md) and [FILTER KEYSTROKE](filter-keystroke.md) commands. +For examples on how to handle [`On Before Keystroke`](../Events/onBeforeKeystroke.md) and [`On After Keystroke`](../Events/onAfterKeystroke.md) events, see examples for the [Get edited text](../commands-legacy/get-edited-text.md), [Keystroke](../commands-legacy/keystroke.md) and [FILTER KEYSTROKE](../commands-legacy/filter-keystroke.md) commands. #### Ejemplo 6 @@ -342,11 +341,11 @@ As a result, the red rectangle follows the scrolling of the list box: #### Ver también [Form Events](../Events/overview.md) -[CALL SUBFORM CONTAINER](call-subform-container.md)\ -[Current form table](current-form-table.md)\ -[FILTER KEYSTROKE](filter-keystroke.md)\ +[CALL SUBFORM CONTAINER](../commands-legacy/call-subform-container.md)\ +[Current form table](../commands-legacy/current-form-table.md)\ +[FILTER KEYSTROKE](../commands-legacy/filter-keystroke.md)\ [FORM Event](form-event.md)\ -[Get edited text](get-edited-text.md)\ -[Keystroke](keystroke.md)\ -[POST OUTSIDE CALL](post-outside-call.md)\ -[SET TIMER](set-timer.md) +[Get edited text](../commands-legacy/get-edited-text.md)\ +[Keystroke](../commands-legacy/keystroke.md)\ +[POST OUTSIDE CALL](../commands-legacy/post-outside-call.md)\ +[SET TIMER](../commands-legacy/set-timer.md) diff --git a/i18n/es/docusaurus-plugin-content-docs/version-20-R7/commands/form-event.md b/i18n/es/docusaurus-plugin-content-docs/version-20-R7/commands/form-event.md index b48a1c75f55fbc..946403a1ad4dc0 100644 --- a/i18n/es/docusaurus-plugin-content-docs/version-20-R7/commands/form-event.md +++ b/i18n/es/docusaurus-plugin-content-docs/version-20-R7/commands/form-event.md @@ -17,7 +17,7 @@ displayed_sidebar: docs #### Descripción -**FORM Event** returns an object containing information about the form event that has just occurred.**FORM Event** returns an object containing information about the form event that has just occurred.**FORM Event** returns an object containing information about the form event that has just occurred.**FORM Event** returns an object containing information about the form event that has just occurred. Usually, you will use **FORM Event** from within a form or object method. +**FORM Event** returns an object containing information about the form event that has just occurred.**FORM Event** returns an object containing information about the form event that has just occurred.**FORM Event** returns an object containing information about the form event that has just occurred.**FORM Event** returns an object containing information about the form event that has just occurred.**FORM Event** returns an object containing information about the form event that has just occurred. Usually, you will use **FORM Event** from within a form or object method. **Objeto devuelto** @@ -99,4 +99,4 @@ The resulting list box when rows are selected: #### Ver también [Form Events](../Events/overview.md) -[Form event code](form-event-code.md) +[Form event code](../commands/form-event-code.md) diff --git a/i18n/es/docusaurus-plugin-content-docs/version-20-R7/commands/pop3-new-transporter.md b/i18n/es/docusaurus-plugin-content-docs/version-20-R7/commands/pop3-new-transporter.md index 1ad320b5d093b3..335da459df3f01 100644 --- a/i18n/es/docusaurus-plugin-content-docs/version-20-R7/commands/pop3-new-transporter.md +++ b/i18n/es/docusaurus-plugin-content-docs/version-20-R7/commands/pop3-new-transporter.md @@ -29,21 +29,21 @@ The `POP3 New transporter` command ](../API/POP3TransporterClass.md#acceptunsecureconnection)
    | False | -| .**accessTokenOAuth2**: Text
    .**accessTokenOAuth2**: Object
    Cadena u objeto token que representa las credenciales de autorización OAuth2. Utilizado sólo con OAUTH2 `authationMode`. Si se utiliza `accessTokenOAuth2` pero se omite `authenticationMode`, se utiliza el protocolo OAuth 2 (si el servidor lo permite). Not returned in *[SMTP transporter](../API/POP3TransporterClass.md#smtptransporterobject)* object. | ninguno | -| [](../API/POP3TransporterClass.md#authenticationmode)
    | se utiliza el modo de autenticación más seguro soportado por el servidor | -| [](../API/POP3TransporterClass.md#connectiontimeout)
    | 30 | -| [](../API/POP3TransporterClass.md#host)
    | *obligatorio* | -| [](../API/POP3TransporterClass.md#logfile)
    | ninguno | -| **.password** : Text
    contraseña de usuario para la autenticación en el servidor. Not returned in *[SMTP transporter](../API/POP3TransporterClass.md#smtptransporterobject)* object. | ninguno | -| [](../API/POP3TransporterClass.md#port)
    | 995 | -| [](../API/POP3TransporterClass.md#user)
    | ninguno | +| *server* | Valor por defecto (si se omite) | +| ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------ | +| [](../API/POP3TransporterClass.md#acceptunsecureconnection)
    | False | +| .**accessTokenOAuth2**: Text
    .**accessTokenOAuth2**: Object
    Cadena u objeto token que representa las credenciales de autorización OAuth2. Utilizado sólo con OAUTH2 `authationMode`. Si se utiliza `accessTokenOAuth2` pero se omite `authenticationMode`, se utiliza el protocolo OAuth 2 (si el servidor lo permite). No se devuelve en el objeto *[SMTP transporter](../API/POP3TransporterClass.md#smtptransporterobject)*. | ninguno | +| [](../API/POP3TransporterClass.md#authenticationmode)
    | se utiliza el modo de autenticación más seguro soportado por el servidor | +| [](../API/POP3TransporterClass.md#connectiontimeout)
    | 30 | +| [](../API/POP3TransporterClass.md#host)
    | *obligatorio* | +| [](../API/POP3TransporterClass.md#logfile)
    | ninguno | +| **.password** : Text
    contraseña de usuario para la autenticación en el servidor. No se devuelve en el objeto *[SMTP transporter](../API/POP3TransporterClass.md#smtptransporterobject)*. | ninguno | +| [](../API/POP3TransporterClass.md#port)
    | 995 | +| [](../API/POP3TransporterClass.md#user)
    | ninguno | #### Result -The function returns a [**POP3 transporter object**](../API/POP3TransporterClass.md#pop3-transporter-object). Todas las propiedades devueltas son de sólo lectura\*\*. +La función devuelve un [**objeto POP3 transporter**](../API/POP3TransporterClass.md#pop3-transporter-object). Todas las propiedades devueltas son de sólo lectura\*\*. > La conexión POP3 se cierra automáticamente cuando se destruye el objeto transportador. diff --git a/i18n/es/docusaurus-plugin-content-docs/version-20-R7/commands/smtp-new-transporter.md b/i18n/es/docusaurus-plugin-content-docs/version-20-R7/commands/smtp-new-transporter.md index 257e18ca09fea8..11213d2f5fe731 100644 --- a/i18n/es/docusaurus-plugin-content-docs/version-20-R7/commands/smtp-new-transporter.md +++ b/i18n/es/docusaurus-plugin-content-docs/version-20-R7/commands/smtp-new-transporter.md @@ -11,7 +11,7 @@ displayed_sidebar: docs | Parámetros | Tipo | | Descripción | | ---------- | ---------------------------------- | - | --------------------------------------------------------------------------------- | | server | Object | → | Información del servidor de correo | -| Resultado | 4D.SMTPTransporter | ← | [SMTP transporter object](../API/SMTPTransporterClass.md#smtp-transporter-object) | +| Resultado | 4D.SMTPTransporter | ← | [Objeto SMTP transporter](../API/SMTPTransporterClass.md#smtp-transporter-object) | @@ -29,7 +29,7 @@ displayed_sidebar: docs The `SMTP New transporter` command configures a new SMTP connection according to the *server* parameter and returns a new [SMTP transporter object](../API/SMTPTransporterClass.md#smtp-transporter-object) object. El objeto transportador devuelto se utilizará normalmente para el envío de correos electrónicos. -> Este comando no abre ninguna conexión con el servidor SMTP. The SMTP connection is actually opened when the [`.send()`](../API/SMTPTransporterClass.md#send) function is executed. +> Este comando no abre ninguna conexión con el servidor SMTP. Este comando no abre ninguna conexión con el servidor SMTP. > > La conexión SMTP se cierra automáticamente: > diff --git a/i18n/es/docusaurus-plugin-content-docs/version-20-R7/commands/this.md b/i18n/es/docusaurus-plugin-content-docs/version-20-R7/commands/this.md index 87ea96fb715087..2795504a240e69 100644 --- a/i18n/es/docusaurus-plugin-content-docs/version-20-R7/commands/this.md +++ b/i18n/es/docusaurus-plugin-content-docs/version-20-R7/commands/this.md @@ -50,7 +50,7 @@ $val:=$o.a //42 En todos los casos, `This` se refiere al objeto sobre el que se ha llamado el método, como si el método fuera una función del objeto. ```4d -//Class: ob +//Clase: ob Function f() : Integer return This.a+This.b @@ -70,7 +70,7 @@ En este ejemplo, el objeto asignado a la variable $o no tiene su propia propieda #### Objeto fórmula -In the context of the execution of a formula object created by the [Formula](formula.md) or [Formula from string](formula-from-string.md) commands, `This` returns a reference to the object currently processed by the formula. +En el contexto de la ejecución de un objeto fórmula creado por los comandos [Formula](formula.md) o [Formula from string](formula-from-string.md), `This` devuelve una referencia al objeto actualmente procesado por la fórmula. For example, you want to use a project method as a formula encapsulated in an object: @@ -79,8 +79,8 @@ For example, you want to use a project method as a formula encapsulated in an ob $person.firstName:="John" $person.lastName:="Smith" $person.greeting:=Formula(Greeting) - $g:=$person.greeting("hello") // returns "hello John Smith" - $g:=$person.greeting("hi") // returns "hi John Smith" + $g:=$person.greeting("hello") // devuelve "hola John Smith" + $g:=$person.greeting("hi") // devuelve "hi John Smith" ``` With the *Greeting* project method: @@ -92,7 +92,7 @@ With the *Greeting* project method: #### List box -In the context of a list box associated to a collection or an entity selection, during the [`On Display Detail`](../Events/onDisplayDetail.md) or the [`On Data Change`](../Events/onDataChange.md) events, `This` returns a reference to the collection element or entity accessed by the list box to display the current row. +En el contexto de un list box asociado a una colección o una selección de entidades, durante los eventos [`On Display Detail`](../Events/onDisplayDetail.md) o [`On Data Change`](../Events/onDataChange.md), `This` devuelve una referencia al elemento de colección o entidad a la que accede el list box para mostrar la línea actual. :::note @@ -127,7 +127,7 @@ A collection of objects, each with this structure: ``` -In the list box, each column refers to one of the properties of the object, either directly (This.name), indirectly (This.employees.length), or through an expression (*getPicture*) in which can be used directly. The list box looks like: +En el list box, cada columna se refiere a una de las propiedades del objeto, ya sea directamente (This.name), indirectamente (This.employees.length), o a través de una expresión (*getPicture*) en la que se puede usar directamente. The list box looks like: ![](../assets/en/commands/pict3776706.en.png) @@ -160,13 +160,13 @@ You build a list box of the "Collection or entity selection" type with the follo Note que: - *This.ID*, *This.Title* and *This.Date* directly refers to the corresponding attributes in the ds.Event dataclass. -- *This.meetings* is a related attribute (based upon the One To Many relation name) that returns an entity selection of the ds.Meeting dataclass. +- *This.meetings* es un atributo relacionado (basado en el nombre de una relación de Uno a Muchos) que devuelve una selección de entidad de la base de datos ds.Meeting. - **Form.eventList** is the entity selection that is attached to the list box. The initialization code can be put in the on load form event: ```4d Case of :(Form event code=On Load) - Form.eventList:=ds.Event.all() //returns an entity selection with all entities + Form.eventList:=ds.Event.all() //devuelve una selección de entidad con todas las entidades End case ``` diff --git a/i18n/es/docusaurus-plugin-content-docs/version-20/API/CollectionClass.md b/i18n/es/docusaurus-plugin-content-docs/version-20/API/CollectionClass.md index f973a227b3eb7b..daa719fab2ffcc 100644 --- a/i18n/es/docusaurus-plugin-content-docs/version-20/API/CollectionClass.md +++ b/i18n/es/docusaurus-plugin-content-docs/version-20/API/CollectionClass.md @@ -268,13 +268,7 @@ La función devuelve Undefined si el *index* sobrepasa los límites de la colecc #### Ejemplo ```4d -var $col : Collection -$col:=New collection(10; 20; 30; 40; 50) -$element:=$col.at(0) // 10 -$element:=$col.at(1) // 20 -$element:=$col.at(-1) // 50 -$element:=$col.at(-2) // 40 -$element:=$col.at(10) // indefinido +Lanzamiento ``` diff --git a/i18n/es/docusaurus-plugin-content-docs/version-20/API/CryptoKeyClass.md b/i18n/es/docusaurus-plugin-content-docs/version-20/API/CryptoKeyClass.md index 1a1e06d4c91183..9fcd9681d98626 100644 --- a/i18n/es/docusaurus-plugin-content-docs/version-20/API/CryptoKeyClass.md +++ b/i18n/es/docusaurus-plugin-content-docs/version-20/API/CryptoKeyClass.md @@ -141,7 +141,7 @@ ASSERT($status.success) **.curve** : Text -Definido sólo para llaves ECDSA: el nombre de la curva normalizada de la llave. Generalmente "prime256v1" para ES256 (por defecto), "secp384r1" para ES384, "secp521r1" para ES512. +Definido sólo para llaves RSA: el tamaño de la llave en bits. . @@ -350,7 +350,7 @@ La función `.sign()` firma la representac **.size** : Integer -Definido sólo para llaves RSA: el tamaño de la llave en bits. . +Definido sólo para llaves ECDSA: el el tamaño de la llave en bits. . ## .type @@ -387,6 +387,7 @@ Contiene el nombre del tipo de llave - "RSA" **.verify**( *message* : Text ; *signature* : Text ; *options* : Object) : Object + | Parámetros | Tipo | | Descripción | | ---------- | ------ | -- | ---------------------------------------------------------------------------------------------------- | @@ -407,11 +408,11 @@ La `CryptoKey` debe contener una llave **pública** válida. | --------- | ------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | | hash | text | Algoritmo Digest a utilizar. Por ejemplo: "SHA256", "SHA384" o "SHA512". Cuando se utiliza para producir un JWT, el tamaño del hash debe coincidir con el tamaño del algoritmo PS@, ES@, RS@ o PS@ | | pss | boolean | Utilice el Probabilistic Signature Scheme (PSS). Se ignora si la llave no es una llave RSA. Pase `true` al verificar un JWT para el algoritmo PS@ | -| encoding | text | Encoding used to convert the binary encrypted message into the result string. Can be "Base64", or "Base64URL". Por defecto es "Base64". | +| encoding | text | Codificación utilizada para convertir el mensaje binario encriptado en la cadena de resultados. Puede ser "Base64", o "Base64URL". Por defecto es "Base64". | #### *Result* -La `CryptoKey` debe contener una llave **pública** válida. +La función devuelve un objeto de estado con la propiedad `success` definida como `true` si el `message` pudo ser verificado con éxito (es decir, la firma coincide). La función devuelve un objeto de estado con la propiedad `success` definida como `true` si el `message` pudo ser verificado con éxito (es decir, la firma coincide). diff --git a/i18n/es/docusaurus-plugin-content-docs/version-20/API/DataClassClass.md b/i18n/es/docusaurus-plugin-content-docs/version-20/API/DataClassClass.md index 455a52e65b0369..80d23e97819e62 100644 --- a/i18n/es/docusaurus-plugin-content-docs/version-20/API/DataClassClass.md +++ b/i18n/es/docusaurus-plugin-content-docs/version-20/API/DataClassClass.md @@ -904,7 +904,7 @@ donde: * **Text**: la cadena de fórmulas debe ir precedida de la declaración `eval( )`, para que el analizador de consultas evalúe la expresión correctamente. Por ejemplo: *"eval(length(This.lastname) >=30)"* * **Object**: el [objeto fórmula](FunctionClass.md) se pasa como un **marcador** (ver abajo). La fórmula debe haber sido creada utilizando los comandos [`Formula`](FunctionClass.md#formula) o [`Formula from string`](FunctionClass.md#formula-from-string). -> * > * Keep in mind that 4D formulas only support `&` and `|` symbols as logical operators. +> * > * > * > * > * Keep in mind that 4D formulas only support `&` and `|` symbols as logical operators. > * Si la fórmula no es el único criterio de búsqueda, el optimizador del motor de búsquedas podría procesar previamente otros criterios (por ejemplo, los atributos indexados) y, por tanto, la fórmula podría evaluarse sólo para un subconjunto de entidades. Las fórmulas en las consultas pueden recibir parámetros a través de $1. Este punto se detalla en el párrafo **Parámetro fórmula** más abajo. @@ -927,7 +927,7 @@ donde: | Incluído en | IN | Devuelve los datos iguales a al menos uno de los valores de una colección o de un conjunto de valores, admite el comodín (@) | | Contiene palabra clave | % | Las palabras claves pueden utilizarse en atributos de tipo texto o imagen | -* **value**: el valor a comparar con el valor actual de la propiedad de cada entidad en la selección de entidades o elemento en la colección. Puede ser un **marcador** (ver **Uso de marcadores** más adelante) o cualquier expresión que coincida con la propiedad de tipo de datos. Al utilizar un valor constante, deben respetarse las siguientes reglas: +* **value**: el valor a comparar con el valor actual de la propiedad de cada entidad en la selección de entidades o elemento en la colección. Puede ser un **marcador** (ver **Uso de marcadores** más adelante) o cualquier expresión que coincida con la propiedad de tipo de datos. Al utilizar un valor constante, deben respetarse las siguientes reglas: Note that, in case of type mismatch with scalar types (text, date, number...), 4D will try to convert the **value** type to the attribute data type whenever possible, for an easier handling of values coming from the Internet. For example, if the string "v20" is entered as **value** to compare with an integer attribute, it will be converted to 20. * La constante de tipo **texto** puede pasarse con o sin comillas simples (ver **Uso de comillas** más abajo). Para consultar una cadena dentro de otra cadena (una consulta de tipo "contiene"), utilice el símbolo de comodín (@) en el valor para aislar la cadena a buscar como se muestra en este ejemplo: "@Smith@". Las siguientes palabras claves están prohibidas para las constantes de texto: true, false. * Valores constantes de tipo **boolean**: **true** o **false** (Sensible a las mayúsculas y minúsculas). * Valores constantes de tipo **numérico**: los decimales se separan con un '.' @@ -1024,7 +1024,7 @@ Al buscar dentro de atributos de objetos dataclass que contengan colecciones, el ``` Entity 1: -ds.Class.name: "A" +ds. Class.name: "A" ds.Class.info: { "coll" : [ { "val":1, @@ -1032,7 +1032,7 @@ ds.Class.info: } ] } Entity 2: -ds.Class.name: "B" +ds. Class.name: "B" ds.Class.info: { "coll" : [ { "val":1, @@ -1040,7 +1040,7 @@ ds.Class.info: } ] } Entity 3: -ds.Class.name: "C" +ds. Class.name: "C" ds.Class.info: { "coll" : [ { "val":0, @@ -1081,7 +1081,7 @@ Esta funcionalidad sólo está disponible en las búsquedas en clases de datos y ::: -Al buscar dentro de los atributos de objetos de clases de datos que contengan colecciones utilizando varios argumentos de consulta unidos por el operador AND, es posible que desee asegurarse de que sólo se devuelvan entidades que contengan elementos que coincidan con todos los argumentos, y no entidades en las que los argumentos puedan encontrarse en elementos diferentes. Para ello, es necesario vincular los argumentos de la búsqueda a los elementos de colección, de modo que sólo se encuentren los elementos únicos que contengan argumentos vinculados. +Para ello, es necesario vincular los argumentos de la búsqueda a los elementos de colección, de modo que sólo se encuentren los elementos únicos que contengan argumentos vinculados. Al buscar dentro de los atributos de objetos de clases de datos que contengan colecciones utilizando varios argumentos de consulta unidos por el operador AND, es posible que desee asegurarse de que sólo se devuelvan entidades que contengan elementos que coincidan con todos los argumentos, y no entidades en las que los argumentos puedan encontrarse en elementos diferentes. Por ejemplo, con las dos entidades siguientes: @@ -1207,7 +1207,7 @@ En el parámetro *querySettings* se puede pasar un objeto que contenga opciones #### Sobre queryPlan y queryPath -La información registrada en `queryPlan`/`queryPath` incluye el tipo de búsqueda (indexada y secuencial) y cada subconsulta necesaria junto con los operadores de conjunción. Las rutas de acceso de las peticiones también contienen el número de entidades encontradas y el tiempo necesario para ejecutar cada criterio de búsqueda. Puede resultarle útil analizar esta información mientras desarrolla sus aplicaciones. Generalmente, la descripción del plan de consulta y su ruta de acceso son idénticas, pero pueden diferir porque 4D puede implementar optimizaciones dinámicas cuando se ejecuta una consulta para mejorar el rendimiento. Por ejemplo, el motor 4D puede convertir dinámicamente una consulta indexada en una secuencial si estima que es más rápida. Este caso concreto puede darse cuando el número de entidades que se buscan es bajo. +La información registrada en `queryPlan`/`queryPath` incluye el tipo de búsqueda (indexada y secuencial) y cada subconsulta necesaria junto con los operadores de conjunción. Las rutas de acceso de las peticiones también contienen el número de entidades encontradas y el tiempo necesario para ejecutar cada criterio de búsqueda. Las rutas de acceso de las peticiones también contienen el número de entidades encontradas y el tiempo necesario para ejecutar cada criterio de búsqueda. Generalmente, la descripción del plan de consulta y su ruta de acceso son idénticas, pero pueden diferir porque 4D puede implementar optimizaciones dinámicas cuando se ejecuta una consulta para mejorar el rendimiento. Por ejemplo, el motor 4D puede convertir dinámicamente una consulta indexada en una secuencial si estima que es más rápida. Este caso concreto puede darse cuando el número de entidades que se buscan es bajo. Por ejemplo, si ejecuta la siguiente búsqueda: diff --git a/i18n/es/docusaurus-plugin-content-docs/version-20/API/EntityClass.md b/i18n/es/docusaurus-plugin-content-docs/version-20/API/EntityClass.md index d482ef89d2cdd4..7e068ca38b18c3 100644 --- a/i18n/es/docusaurus-plugin-content-docs/version-20/API/EntityClass.md +++ b/i18n/es/docusaurus-plugin-content-docs/version-20/API/EntityClass.md @@ -92,8 +92,10 @@ El tipo de valor del atributo depende del tipo [kind](DataClassClass.md#attribut #### Descripción -La función `.clone()` crea en memoria una nueva entidad que hace referencia al mismo registro que la entidad original. Esta función permite actualizar las entidades por separado. -> Tenga en cuenta que toda modificación realizada a las entidades se guardará en el registro referenciado sólo cuando se ejecute la función [`.save( )`](#save). +La función `.clone()` crea en memoria una nueva entidad que hace referencia al mismo registro que la entidad original. + +This function allows you to update entities separately. Note however that, for performance reasons, the new entity shares the same reference of object attributes as the cloned entity. +> Keep in mind that any modifications done to entities will be saved in the referenced record only when the [`.save()`](#save) function is executed. Esta función sólo puede utilizarse con entidades ya guardadas en la base de datos. No se puede llamar a una entidad recién creada (para la que [`.isNew()`](#isnew) devuelve **True**). @@ -232,7 +234,7 @@ $diff2: vCompareResult3:=$e1.diff($e2;$e1.touchedAttributes()) ``` -vCompareResult1 (se devuelven todas las diferencias): +vCompareResult3 (sólo se devuelven las diferencias en atributos tocados $e1) ```4d [ @@ -281,7 +283,7 @@ vCompareResult2 (sólo se devuelven las diferencias en $attributesToInspect) ] ``` -vCompareResult3 (sólo se devuelven las diferencias en atributos tocados $e1) +vCompareResult1 (se devuelven todas las diferencias): ```4d [ @@ -565,7 +567,7 @@ También puede utilizar una entidad relacionada dada como objeto: #### Descripción -La función `.getDataClass()` devuelve la clase de datos de la entidad. Esta función es útil al escribir código genérico. +La función `.isNew()` devuelve True si la entidad a la que se aplica acaba de ser creada y aún no se ha guardado en el almacén de datos. . #### Ejemplo @@ -973,7 +975,7 @@ El objeto devuelto por `.lock( )` contiene las siguientes propiedades: | | component signature | text | firma del componente interno (por ejemplo, "dmbg" significa el componente de la base) | | | errCode | number | Código de error | -(\*) Los siguientes valores pueden ser devueltos en las propiedades *status* y *statusText* del objeto *Result* en caso de error: +(\*) Los siguientes valores pueden ser devueltos en las propiedadese *status* y *statusText* del objeto *Result* en caso de error: | Constante | Valor | Comentario | | ----------------------------------------- | ----- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | @@ -1137,7 +1139,7 @@ El objeto devuelto por `.reload( )` contiene las siguientes propiedades: | status(\*) | number | Código de error, ver abajo | | statusText(\*) | text | Descripción del error, ver abajo | -(\*) Los siguientes valores pueden ser devueltos en las propiedadese *status* y *statusText* del objeto *Result* en caso de error: +(\*) Los siguientes valores pueden ser devueltos en las propiedades *status* y *statusText* del objeto *Result* en caso de error: | Constante | Valor | Comentario | | ----------------------------------------- | ----- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | @@ -1371,7 +1373,7 @@ Sin parámetro de filtro: employeeObject:=employeeSelected.toObject() ``` -Ejemplo con el tipo `relatedEntity` con una forma simple: +Lanzamiento ```4d { @@ -1402,7 +1404,7 @@ Extraer la llave primaria y el sello: employeeObject:=employeeSelected.toObject("";dk with primary key+dk with stamp) ``` -Ejemplo con el tipo `relatedEntity` con una forma simple: +Lanzamiento ```4d { @@ -1504,7 +1506,7 @@ Extracción de algunas propiedades de `relatedEntities`: employeeObject:=employeeSelected.toObject("firstName, directReports.lastName") ``` -Ejemplo con el tipo `relatedEntity` con una forma simple: +Lanzamiento ```4d { @@ -1532,7 +1534,7 @@ Obtenga una `relatedEntity` en un formulario simple: employeeObject:=employeeSelected.toObject($coll) ``` -Ejemplo con el tipo `relatedEntity` con una forma simple: +Lanzamiento ```4d { @@ -1551,7 +1553,7 @@ Extracción de todas las propiedades de una `Entidad relacionada`: employeeObject:=employeeSelected.toObject("employer.*") ``` -Ejemplo con el tipo `relatedEntity` con una forma simple: +Devuelve: ```4d { @@ -1576,7 +1578,7 @@ Extracción de algunas propiedades de una `Entidad relacionada`: employeeObject:=employeeSelected.toObject($col) ``` -Ejemplo con el tipo `relatedEntity` con una forma simple: +Devuelve: ```4d { diff --git a/i18n/es/docusaurus-plugin-content-docs/version-20/API/EntitySelectionClass.md b/i18n/es/docusaurus-plugin-content-docs/version-20/API/EntitySelectionClass.md index 3c72030f002fa9..d772ffa5ca8b2e 100644 --- a/i18n/es/docusaurus-plugin-content-docs/version-20/API/EntitySelectionClass.md +++ b/i18n/es/docusaurus-plugin-content-docs/version-20/API/EntitySelectionClass.md @@ -1108,7 +1108,7 @@ Sin embargo, hay una diferencia entre ambas afirmaciones cuando la selección es #### Descripción -La función `.getDataClass()` The `.getDataClass()` function. +La función `.isNew()` The `.getDataClass()` function. Esta función es principalmente útil en el contexto del código genérico. diff --git a/i18n/es/docusaurus-plugin-content-docs/version-20/Concepts/classes.md b/i18n/es/docusaurus-plugin-content-docs/version-20/Concepts/classes.md index 72f7a13df502ca..ebea23775a5e2f 100644 --- a/i18n/es/docusaurus-plugin-content-docs/version-20/Concepts/classes.md +++ b/i18n/es/docusaurus-plugin-content-docs/version-20/Concepts/classes.md @@ -182,11 +182,11 @@ Function ({$parameterName : type; ...}){->$parameterName : type} :::note -There is no ending keyword for function code. The 4D language automatically detects the end of a function's code by the next `Function` keyword or the end of the class file. +There is no ending keyword for function code. There is no ending keyword for function code. ::: -Las funciones de clase son propiedades específicas de la clase. Son objetos de la clase [4D.Function](API/FunctionClass.md). +Las funciones de clase son propiedades específicas de la clase. Las funciones de clase son propiedades específicas de la clase. En el archivo de definición de clase, las declaraciones de función utilizan la palabra clave `Function`, y el nombre de la función. El nombre de la función debe cumplir con las [reglas de nomenclatura de las propiedades](Concepts/identifiers.md#object-properties). @@ -304,11 +304,15 @@ Function getRectArea($width : Integer; $height : Integer) : Integer Class Constructor({$parameterName : type; ...}) // code // code +// Class: +// Class: +// Class: +// Class: ``` :::note -There is no ending keyword for class constructor function code. The 4D language automatically detects the end of a function's code by the next `Function` keyword or the end of the class file. +There is no ending keyword for class constructor function code. There is no ending keyword for function code. ::: @@ -573,27 +577,31 @@ Super.doSomething(42) //llama a la función "doSomething" Este ejemplo ilustra el uso de `Super` en un class constructor. El comando es llamado para evitar duplicar las partes del constructor que son comunes entre las clases `Rectangle` y `Square`. ```4d -// Class: Rectangle -Class constructor($width : Integer; $height : Integer) - This.name:="Rectangle" - This.height:=$height - This.width:=$width +//Class: Square +Class extends Rectangle -Function sayName() - ALERT("Hi, I am a "+This.name+".") +Class constructor ($side : Integer) -// Function definition -Function getArea() - var $0 : Integer + // Llama al class constructor de la clase padre con longitudes + // proporcionadas para el ancho y alto del rectángulo + Super($side;$side) + // En las clases derivadas, Super debe ser llamado antes de que + // pueda utilizar 'This' + This. - $0:=(This.height)*(This.width) +//Class: Square -// Function definition -Function getArea() - var $0 : Integer +Class extends Rectangle + +Class constructor ($side : Integer) - $0:=(This.height)*(This.width) + // Llama al class constructor de la clase padre con longitudes + // proporcionadas para el ancho y alto del rectángulo + Super($side;$side) + // En las clases derivadas, Super debe ser llamado antes de que + // pueda utilizar 'This' + This. ``` ```4d diff --git a/i18n/es/docusaurus-plugin-content-docs/version-20/FormObjects/button_overview.md b/i18n/es/docusaurus-plugin-content-docs/version-20/FormObjects/button_overview.md index 2010491c3d91bf..7dc352a1f2917e 100644 --- a/i18n/es/docusaurus-plugin-content-docs/version-20/FormObjects/button_overview.md +++ b/i18n/es/docusaurus-plugin-content-docs/version-20/FormObjects/button_overview.md @@ -359,7 +359,7 @@ Todos los botones comparten el mismo conjunto de propiedades básicas: > (1) No compatible con el estilo [Ayuda](#help).
    (2) No compatible con los estilos [Ayuda](#help), [Plano](#flat) y [Normal](#regular). -Existen propiedades específicas adicionales, dependiendo del [estilo-de-botón](#button-styles): +Existen propiedades específicas adicionales, dependiendo del [estilo de botón](#button-styles): - Personalizar: [Ruta de fondo](properties_TextAndPicture.md#background-pathname) - [Margen horizontal](properties_TextAndPicture.md#horizontal-margin) - [Desplazamiento del icono](properties_TextAndPicture.md#icon-offset) - [Margen vertical](properties_TextAndPicture.md#vertical-margin) - Plano, Regular: [Botón por defecto](properties_Appearance.md#default-button) diff --git a/i18n/es/docusaurus-plugin-content-docs/version-20/FormObjects/dropdownList_Overview.md b/i18n/es/docusaurus-plugin-content-docs/version-20/FormObjects/dropdownList_Overview.md index 1c699067ae30a4..5e2b6c14a4e751 100644 --- a/i18n/es/docusaurus-plugin-content-docs/version-20/FormObjects/dropdownList_Overview.md +++ b/i18n/es/docusaurus-plugin-content-docs/version-20/FormObjects/dropdownList_Overview.md @@ -40,7 +40,7 @@ Si el objeto contiene otras propiedades, se ignoran. Para inicializar el objeto asociado a la lista desplegable, puede: -* Introduzca una lista de valores por defecto en las propiedades del objeto seleccionando `\<Lista Estática>` en el tema [Fuente de Datos](properties_DataSource.md) de la Lista de Propiedades. Los valores por defecto se cargan en un objeto automáticamente. +* Introduzca una lista de valores por defecto en las propiedades del objeto seleccionando `\<Static List>` en el tema [Fuente de Datos](properties_DataSource.md) de la Lista de Propiedades. Los valores por defecto se cargan en un objeto automáticamente. * Ejecutar código que crea el objeto y sus propiedades. Por ejemplo, si "myList" es la variable [](properties_Object.md#variable-or-expression) asociada a la lista desplegable, puede escribir en el evento de formulario [On Load](Events/onLoad.md): @@ -73,7 +73,7 @@ Un [array](Concepts/arrays.md) es una lista de valores en memoria a la que se ha Para inicializar el array asociado a la lista desplegable, puede: -* Introduzca una lista de valores por defecto en las propiedades del objeto seleccionando `\<Lista Estática>` en el tema [Fuente de Datos](properties_DataSource.md) de la Lista de Propiedades. Los valores por defecto se cargan en un array automáticamente. Puede referirse al array utilizando el nombre de la variable asociada al objeto. +* Introduzca una lista de valores por defecto en las propiedades del objeto seleccionando `\<Static List>` en el tema [Fuente de Datos](properties_DataSource.md) de la Lista de Propiedades. Los valores por defecto se cargan en un array automáticamente. Puede referirse al array utilizando el nombre de la variable asociada al objeto. * Antes de mostrar el objeto, ejecute el código que asigna valores a los elementos del array. Por ejemplo: @@ -124,7 +124,7 @@ Debe seleccionar cada evento que pruebe en sus sentencia Case. Los arrays siempr Si desea utilizar una lista desplegable para gestionar los valores de un área de entrada (campo listado o variable), 4D le permite hacer referencia al campo o variable directamente como [fuente de datos](properties_Object.md#variable-or-expression) de la lista desplegable. Esto facilita la gestión de los campos/variables listados. Por ejemplo, en el caso de un campo "Color" que sólo puede contener los valores "Blanco", "Azul", "Verde" o "Rojo", es posible crear una lista que contenga estos valores y asociarla a una lista desplegable que haga referencia al campo "Color" 4D. 4D se encarga entonces de gestionar automáticamente la entrada y la visualización del valor actual en el formulario. -> Si utiliza una lista jerárquica, sólo se muestra el primer nivel y se puede seleccionar. If you use a hierarchical list, only the first level is displayed and can be selected. +> Si utiliza una lista jerárquica, sólo se muestra el primer nivel y se puede seleccionar. Si quiere mostrar contenido jerárquico, necesita usar una [lista de selección jerárquica](#using-a-hierarchical-choice-list). Para asociar una lista desplegable a un campo o variable, introduzca directamente el nombre del campo o variable como campo [Variable o Expresión](properties_Object.md#variable-or-expression) de la lista desplegable en la Lista de propiedades. > No es posible utilizar esta funcionalidad con una lista desplegable de objetos o arrays. Si introduce un nombre de campo en el área "Variable o expresión", deberá utilizar una lista de selección. diff --git a/i18n/es/docusaurus-plugin-content-docs/version-20/FormObjects/properties_Object.md b/i18n/es/docusaurus-plugin-content-docs/version-20/FormObjects/properties_Object.md index 3a8ca8cfb848a8..21dd25cc9d811b 100644 --- a/i18n/es/docusaurus-plugin-content-docs/version-20/FormObjects/properties_Object.md +++ b/i18n/es/docusaurus-plugin-content-docs/version-20/FormObjects/properties_Object.md @@ -86,7 +86,7 @@ Las variables o expresiones se pueden introducir o no y pueden recibir datos de | Nombre | Tipos de datos | Valores posibles | | ---------- | ------------------------- | --------------------------------------------------------------------------- | -| dataSource | cadena o array de cadenas |
  • Variable, nombre de campo o cualquier expresión 4D.
  • Cadena vacía para [variables dinámicas](#variables-dinámicas).
  • Array de cadenas (colección de nombres de array) para una columna [hierarchical listbox](listbox_overview.md#hierarchical-list-boxes)]
  • | +| dataSource | cadena o array de cadenas |
  • Variable, nombre de campo o cualquier expresión 4D.
  • Cadena vacía para [variables dinámicas](#dynamic-variables).
  • Array de cadenas (colección de nombres de array) para una columna [hierarchical listbox](listbox_overview.md#hierarchical-list-boxes)]
  • | ### Expresiones @@ -184,7 +184,7 @@ La colección o la selección de entidades debe estar disponible para el formula - si ha utilizado una colección de objetos, puede llamar a **This** en la expresión de la fuente de datos para acceder a cada valor de propiedad, por ejemplo `This.`. - si ha utilizado una selección de entidades, puede llamar a **This** en la expresión de la fuente de datos para acceder a cada valor de atributo, por ejemplo `This.`. -> Si ha utilizado una colección de valores escalares (y no objetos), 4D le permite mostrar cada valor llamando a **This.value** en la expresión datasource. Sin embargo, en este caso no podrá modificar valores ni acceder al objeto actual (ver más adelante). +> > Si ha utilizado una colección de valores escalares (y no objetos), 4D le permite mostrar cada valor llamando a **This.value** en la expresión datasource. Sin embargo, en este caso no podrá modificar valores ni acceder al objeto actual (ver más adelante). #### Gramática JSON diff --git a/i18n/es/docusaurus-plugin-content-docs/version-20/FormObjects/properties_Scale.md b/i18n/es/docusaurus-plugin-content-docs/version-20/FormObjects/properties_Scale.md index f1db93cdbe617f..e1e8993da69725 100644 --- a/i18n/es/docusaurus-plugin-content-docs/version-20/FormObjects/properties_Scale.md +++ b/i18n/es/docusaurus-plugin-content-docs/version-20/FormObjects/properties_Scale.md @@ -31,7 +31,7 @@ Muestra/Oculta las graduaciones junto a las etiquetas. #### Objetos soportados -[Thermometer](progressIndicator.md#default-thermometer) - [Ruler](ruler.md) +[Termómetro](progressIndicator.md#default-thermometer) - [Regla](ruler.md) --- @@ -47,7 +47,7 @@ Medición de la visualización de la escala. #### Objetos soportados -[Thermometer](progressIndicator.md#default-thermometer) - [Ruler](ruler.md) +[Termómetro](progressIndicator.md#default-thermometer) - [Regla](ruler.md) --- @@ -67,7 +67,7 @@ Especifica la ubicación del texto mostrado de un objeto. #### Objetos soportados -[Thermometer](progressIndicator.md#default-thermometer) - [Ruler](ruler.md) +[Termómetro](progressIndicator.md#default-thermometer) - [Regla](ruler.md) --- @@ -86,7 +86,7 @@ Valor máximo de un indicador. #### Objetos soportados -[Thermometer](progressIndicator.md#default-thermometer) - [Ruler](ruler.md) - [Stepper](stepper.md) +[Termómetro](progressIndicator.md#default-thermometer) - [Regla](ruler.md) - [Paso a paso](stepper.md) --- @@ -103,7 +103,7 @@ Valor mínimo de un indicador. Para los steppers numéricos, esta propiedad repr #### Objetos soportados -[Thermometer](progressIndicator.md#default-thermometer) - [Ruler](ruler.md) - [Stepper](stepper.md) +[Termómetro](progressIndicator.md#default-thermometer) - [Regla](ruler.md) - [Paso a paso](stepper.md) --- @@ -119,4 +119,4 @@ Intervalo mínimo aceptado entre los valores durante el uso. Para los steppers n #### Objetos soportados -[Thermometer](progressIndicator.md#default-thermometer) - [Ruler](ruler.md) - [Stepper](stepper.md) +[Termómetro](progressIndicator.md#default-thermometer) - [Regla](ruler.md) - [Paso a paso](stepper.md) diff --git a/i18n/es/docusaurus-plugin-content-docs/version-20/FormObjects/properties_WebArea.md b/i18n/es/docusaurus-plugin-content-docs/version-20/FormObjects/properties_WebArea.md index 9080240f977596..b30525461f38d7 100644 --- a/i18n/es/docusaurus-plugin-content-docs/version-20/FormObjects/properties_WebArea.md +++ b/i18n/es/docusaurus-plugin-content-docs/version-20/FormObjects/properties_WebArea.md @@ -30,7 +30,7 @@ Cuando esta propiedad está activada, se instancia un objeto JavaScript especial Nombre de una variable de tipo Longint. Esta variable recibirá un valor entre 0 y 100, que representa el porcentaje de finalización de la carga de la página en el área web. Actualizado automáticamente por 4D, no puede ser modificado manualmente. -> As of 4D v19 R5, this variable is only updated on Windows if the Web area [uses the embedded Web rendering engine](properties_WebArea.md#use-embedded-web-rendering-engine). +> A partir de 4D v19 R5, esta variable solo se actualiza en Windows si el área Web [utiliza el motor de renderizado Web integrado](properties_WebArea.md#use-embedded-web-rendering-engine). #### Gramática JSON diff --git a/i18n/es/docusaurus-plugin-content-docs/version-20/Project/documentation.md b/i18n/es/docusaurus-plugin-content-docs/version-20/Project/documentation.md index 62ff6413f7d4ce..43c8e9b96819c0 100644 --- a/i18n/es/docusaurus-plugin-content-docs/version-20/Project/documentation.md +++ b/i18n/es/docusaurus-plugin-content-docs/version-20/Project/documentation.md @@ -161,6 +161,8 @@ _italic_ ```4d var $txt : Texto $txt:="¡Hola mundo!" +``` +``` ``` ```` - La etiqueta de la tabla es soportada: diff --git a/i18n/fr/docusaurus-plugin-content-docs/current/API/ClassClass.md b/i18n/fr/docusaurus-plugin-content-docs/current/API/ClassClass.md index 1458b9766d4cc4..7aaa3c3fc4c3ce 100644 --- a/i18n/fr/docusaurus-plugin-content-docs/current/API/ClassClass.md +++ b/i18n/fr/docusaurus-plugin-content-docs/current/API/ClassClass.md @@ -99,7 +99,7 @@ Cette propriété est en **lecture seule**. #### Description -Sommaire Si la classe singleton n'a jamais été instanciée au préalable, cette propriété appelle le constructeur de la classe sans paramètres et crée l'instance. Sinon, elle renvoie l'instance singleton existante. +Sommaire Sommaire Si la classe singleton n'a jamais été instanciée au préalable, cette propriété appelle le constructeur de la classe sans paramètres et crée l'instance. Sinon, elle renvoie l'instance singleton existante. Si `cs.className` n'est pas une [classe singleton](../Concepts/classes.md#singleton-classes), `.me` est **undefined** par défaut. diff --git a/i18n/fr/docusaurus-plugin-content-docs/current/API/DataClassClass.md b/i18n/fr/docusaurus-plugin-content-docs/current/API/DataClassClass.md index a681a91e3e5ed1..a22640fda231f5 100644 --- a/i18n/fr/docusaurus-plugin-content-docs/current/API/DataClassClass.md +++ b/i18n/fr/docusaurus-plugin-content-docs/current/API/DataClassClass.md @@ -275,7 +275,7 @@ Pour chaque objet de *objectCol* : - Si la clé primaire est fournie (telle quelle) et n'existe pas, l'entité est créée - Si la clé primaire n'est pas fournie, l'entité est créée et la clé primaire est assignée selon les règles en vigueur de la base de données. -> La propriété "\*\*KEY" contenant une valeur est prise en compte uniquement lorsque la propriété "\*\*NEW" est à **false** (ou est omise) et qu'une entité correspondante existe. Dans tous les autres cas, la valeur de la propriété "\*\_KEY" est ignorée, la valeur de la clé primaire doit être passée "telle quelle". +> La propriété "\*\*KEY" contenant une valeur est prise en compte uniquement lorsque la propriété "\*\*NEW" est à **false** (ou est omise) et qu'une entité correspondante existe. Dans tous les autres cas, la valeur de la propriété "\_\_KEY" est ignorée, la valeur de la clé primaire doit être passée "telle quelle". **Entités liées** @@ -937,7 +937,7 @@ Les formules contenues dans les requêtes peuvent recevoir des paramètres via $ | Inclus parmi | IN | Retourne les données égales à au moins une des valeurs d'une collection ou d'un ensemble de valeurs, prend en charge le joker de recherche (@) | | Contient mot-clé | % | Les mots-clés peuvent être utilisés avec les attributs de type texte ou image | -- Peut être un **placeholder** (voir **Utiliser des placeholders** ci-dessous) ou toute expression correspondant à la propriété du type de donnée. **value** : valeur à comparer à la valeur courante de la propriété pour chaque entité de l'entity selection. +- Peut être un **placeholder** (voir **Utiliser des placeholders** ci-dessous) ou toute expression correspondant à la propriété du type de donnée. **value** : valeur à comparer à la valeur courante de la propriété pour chaque entité de l'entity selection. Notez que, en cas de non-concordance avec les types scalaires (texte, date, numérique...), 4D tentera si possible de convertir le type de **value** dans le type de données de l'attribut pour une gestion plus facile des valeurs provenant d'Internet. Par exemple, si la chaîne "v20" est entrée en tant que **value** pour la comparer avec un attribut Integer, elle sera convertie en nombre 20. Lorsque vous utilisez une valeur constante, les règles suivantes doivent être respectées : - Les valeurs constantes de type **texte** peuvent être passées avec ou sans guillemets (voir **Utilisation des guillemets** ci-dessous). Pour rechercher une chaîne dans une chaîne (recherche de type "contient"), utilisez le symbole joker (@) dans valeur pour isoler la chaîne à chercher, comme dans cet exemple : "@Smith@". Les mots-clés suivants sont interdits pour des constantes de type texte : true, false. - Valeurs constantes de type**booléen**: **true** or **false** (sensible à la casse). diff --git a/i18n/fr/docusaurus-plugin-content-docs/current/API/EntityClass.md b/i18n/fr/docusaurus-plugin-content-docs/current/API/EntityClass.md index 38806d52b705a4..cc86e2bca36555 100644 --- a/i18n/fr/docusaurus-plugin-content-docs/current/API/EntityClass.md +++ b/i18n/fr/docusaurus-plugin-content-docs/current/API/EntityClass.md @@ -5,7 +5,7 @@ title: Entity Une [entity](ORDA/dsMapping.md#entity) est une instance d'une [Dataclass](ORDA/dsMapping.md#dataclass), tel un enregistrement de la table correspondant à la dataclass contenue dans son datastore associé. Elle contient les mêmes attributs que la dataclass ainsi que les valeurs des données et des propriétés et fonctions spécifiques. -### Sommaire +### Summary | | | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------- | @@ -95,9 +95,11 @@ $myEntity.save() //sauvegarder l'entity #### Description -La fonction `.clone()` crée en mémoire une nouvelle entité faisant référence au même enregistrement que l'entité d'origine. Cette fonction vous permet de mettre à jour des entités séparément. +La fonction `.clone()` crée en mémoire une nouvelle entité faisant référence au même enregistrement que l'entité d'origine. -> Gardez à l'esprit que toutes les modifications apportées aux entités seront enregistrées dans l'enregistrement référencé uniquement lorsque la fonction [`save()`](#save) est exécutée. +Cette fonction vous permet de mettre à jour des entités séparément. Notez cependant que, pour des raisons de performance, la nouvelle entité partage la même référence d'attributs d'objets que l'entité clonée. + +> Gardez à l'esprit que toutes les modifications apportées aux entités sont enregistrées dans l'enregistrement référencé uniquement lorsque la fonction [`save()`](#save) est exécutée. Cette fonction ne peut être utilisée qu'avec des entités déjà enregistrées dans la base de données. Elle ne peut pas être appelée sur une entité nouvellement créée (pour laquelle [`isNew()`](#isnew) retourne **True**). @@ -962,34 +964,34 @@ Sinon, vous pouvez passer l'option `dk reload if stamp changed` dans le paramèt L'objet retourné par `.lock()` contient les propriétés suivantes : -| Propriété | | Type | Description | -| --------------------------------- | ----------------------------------- | --------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -| success | | boolean | vrai si l'action de verrouillage a été effectuée avec succès (ou si l'entité est déjà verrouillée dans le process courant), sinon faux. | -| | | | ***Disponible uniquement si l'option `dk reload if stamp changed` a été utilisée*** | -| **wasReloaded** | | boolean | vrai si l'entité a été correctement rechargée, sinon faux. | -| | | | ***Disponible uniquement en cas d'erreur :*** | -| status(\*) | | number | Code d'erreur, voir ci-dessous | -| statusText(\*) | | text | Description de l'erreur, voir ci-dessous | -| | | | ***Disponible uniquement en cas d'erreur de verrouillage pessimiste :*** | -| lockKindText | | text | "Locked by record" si verrouillage par un process 4D, "Locked by session" si verrouillage par une session REST | -| lockInfo | | object | Information sur l'origine du verrouillage. Les propriétés retournées dépendent de l'origine du verrouillage (process 4D ou session REST). | -| | | | ***Disponible uniquement pour un verrouillage par process 4D :*** | -| | task_id | number | ID du process | -| | user_name | text | Nom d'utilisateur de la session sur la machine | -| | user4d_alias | text | Nom ou alias de l'utilisateur 4D | -| | user4d_id | number | Identifiant utilisateur dans le répertoire de la base 4D | -| | host_name | text | Nom de la machine | -| | task_name | text | Nom du process | -| | client_version | text | Version du client | -| | | | ***Disponible uniquement pour le verrouillage d'une session REST :*** | -| | host | text | \| URL ayant verrouillé l'entité (ex : "www.myserver.com") \| | -| | IPAddr | text | Adresse IP d'origine du verrouillage (ex. 127.0.0.1") | -| | userAgent | text | userAgent de l'origine du verouillage (ex : "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_3) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/96.0.4664.110 Safari/537.36") | -| | | | ***Disponible uniquement en cas d'erreur critique*** (clé primaire dupliquée, disque plein...) : | -| errors | | collection of objects | | -| | message | text | Message d'erreur | -| | component signature | text | signature du composant interne (e.g. "dmbg" pour le composant de base de données) | -| | errCode | number | Code d'erreur | +| Propriété | | Type | Description | +| --------------------------------- | ----------------------------------- | --------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| success | | boolean | vrai si l'action de verrouillage a été effectuée avec succès (ou si l'entité est déjà verrouillée dans le process courant), sinon faux. | +| | | | ***Disponible uniquement si l'option `dk reload if stamp changed` a été utilisée*** | +| **wasReloaded** | | boolean | vrai si l'entité a été correctement rechargée, sinon faux. | +| | | | ***Disponible uniquement en cas d'erreur :*** | +| status(\*) | | number | Code d'erreur, voir ci-dessous | +| statusText(\*) | | text | Description de l'erreur, voir ci-dessous | +| | | | ***Disponible uniquement en cas d'erreur de verrouillage pessimiste :*** | +| lockKindText | | text | "Locked by record" si verrouillage par un process 4D, "Locked by session" si verrouillage par une session REST | +| lockInfo | | object | Information sur l'origine du verrouillage. Les propriétés retournées dépendent de l'origine du verrouillage (process 4D ou session REST). | +| | | | ***Disponible uniquement pour un verrouillage par process 4D :*** | +| | task_id | number | ID du process | +| | user_name | text | Nom d'utilisateur de la session sur la machine | +| | user4d_alias | text | Nom ou alias de l'utilisateur 4D | +| | user4d_id | number | Identifiant utilisateur dans le répertoire de la base 4D | +| | host_name | text | Nom de la machine | +| | task_name | text | Nom du process | +| | client_version | text | Version du client | +| | | | ***Disponible uniquement pour le verrouillage d'une session REST :*** | +| | host | text | \| URL ayant verrouillé l'entité (ex : "www.myserver.com") \\ | +| | IPAddr | text | Adresse IP d'origine du verrouillage (ex. 127.0.0.1") | +| | userAgent | text | userAgent de l'origine du verouillage (ex : "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_3) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/96.0.4664.110 Safari/537.36") | +| | | | ***Disponible uniquement en cas d'erreur critique*** (clé primaire dupliquée, disque plein...) : | +| errors | | collection of objects | | +| | message | text | Message d'erreur | +| | component signature | text | signature du composant interne (e.g. "dmbg" pour le composant de base de données) | +| | errCode | number | Code d'erreur | (\*) Les valeurs suivantes peuvent être retournées dans les propriétés *status* et *statusText* de l'objet *Résultat* en cas d'erreur : diff --git a/i18n/fr/docusaurus-plugin-content-docs/current/API/EntitySelectionClass.md b/i18n/fr/docusaurus-plugin-content-docs/current/API/EntitySelectionClass.md index 1342677f7ece67..5ea04097006b1c 100644 --- a/i18n/fr/docusaurus-plugin-content-docs/current/API/EntitySelectionClass.md +++ b/i18n/fr/docusaurus-plugin-content-docs/current/API/EntitySelectionClass.md @@ -5,7 +5,7 @@ title: EntitySelection Une entity selection est un objet contenant une ou plusieurs référence(s) à des [entités](ORDA/dsMapping.md#entity) appartenant à la même [Dataclass](ORDA/dsMapping.md#dataclass). 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. -Les entity selections peuvent être créées à partir de sélections existantes en utilisant diverses fonctions de la classe [`DataClass`](DataClassClass.md) telles que [`.all()`](DataClassClass.md#all) ou [`.query()`](DataClassClass.md#query), ou des fonctions de la classe `EntityClass` elle-même, telles que [`.and()`](#and) ou [`orderBy()`](#orderby). You can also create blank entity selections using the [`dataClass.newSelection()`](DataClassClass.md#newselection) function or the [`Create entity selection`](../commands/create-entity-selection.md) command. +Les entity selections peuvent être créées à partir de sélections existantes en utilisant diverses fonctions de la classe [`DataClass`](DataClassClass.md) telles que [`.all()`](DataClassClass.md#all) ou [`.query()`](DataClassClass.md#query), ou des fonctions de la classe `EntityClass` elle-même, telles que [`.and()`](#and) ou [`orderBy()`](#orderby). Vous pouvez également créer des entity selections vierges à l'aide de la fonction [`dataClass.newSelection()`](DataClassClass.md#newselection) ou de la commande [`Create entity selection`](../commands/create-entity-selection.md). ### Sommaire @@ -210,7 +210,7 @@ La fonction `.add()` ajoute l'*e :::info attention -L'entity selection doit être *modifiable*, c'est-à-dire qu'elle a été créée par exemple par [`.newSelection()`](DataClassClass.md#newselection) ou `Create entity selection`, sinon `.add()` renverra une erreur. Les entity selections partageables n'acceptent pas l'ajout d'entités. Pour plus d'informations, reportez-vous au paragraphe [Entity selections partageables ou modifiables](ORDA/entities.md#shareable-or-alterable-entity-selections). +L'entity selection doit être *modifiable*, c'est-à-dire qu'elle a été créée par exemple par [`.newSelection()`](DataClassClass.md#newselection) ou `Create entity selection`, sinon `.add()` renverra une erreur. Les entity selections partageables n'acceptent pas l'ajout d'entités. Les entity selections partageables n'acceptent pas l'ajout d'entités. ::: @@ -674,7 +674,7 @@ La fonction `.distinct()` r La collection retournée est automatiquement triée. Les valeurs **Null** ne sont pas retournées. -Dans le paramètre *attributePath* passez l'attribut d'entité dont vous voulez obtenir les valeurs distinctes. Seules les valeurs scalaires (texte, nombre, booléen ou date) peuvent être gérées. Si *attributePath* mène à une propriété d'objet qui contient des valeurs de différents types, celles-ci sont d'abord regroupées par type et triées ensuite. Les types sont renvoyés dans l'ordre suivant : +Dans le paramètre *attributePath* passez l'attribut d'entité dont vous voulez obtenir les valeurs distinctes. Seules les valeurs scalaires (texte, nombre, booléen ou date) peuvent être gérées. Seules les valeurs scalaires (texte, nombre, booléen ou date) peuvent être gérées. Les types sont renvoyés dans l'ordre suivant : 1. booléens 2. chaînes diff --git a/i18n/fr/docusaurus-plugin-content-docs/current/API/FileClass.md b/i18n/fr/docusaurus-plugin-content-docs/current/API/FileClass.md index 33264990e5c6d9..9706f31f02467e 100644 --- a/i18n/fr/docusaurus-plugin-content-docs/current/API/FileClass.md +++ b/i18n/fr/docusaurus-plugin-content-docs/current/API/FileClass.md @@ -412,7 +412,7 @@ $myFile.moveTo($DocFolder.folder("Archives");"Infos_old.txt") #### Description -La fonction `.open()` crée et renvoie un nouvel objet [4D.FileHandle](FileHandleClass) sur le fichier, dans le *mode* spécifié ou avec les *options* spécifiées. Vous pouvez utiliser les fonctions et les propriétés de la classe [4D.FileHandle](FileHandleClass) pour écrire, lire ou ajouter du contenu au fichier. +Chemins d'accès Vous pouvez utiliser les fonctions et les propriétés de la classe [4D.FileHandle](FileHandleClass) pour écrire, lire ou ajouter du contenu au fichier. Si vous utilisez le paramètre *mode* (texte), passez le mode d'ouverture pour le file handle : diff --git a/i18n/fr/docusaurus-plugin-content-docs/current/API/FileHandleClass.md b/i18n/fr/docusaurus-plugin-content-docs/current/API/FileHandleClass.md index 9ac422a6530dd6..9a29e90c271108 100644 --- a/i18n/fr/docusaurus-plugin-content-docs/current/API/FileHandleClass.md +++ b/i18n/fr/docusaurus-plugin-content-docs/current/API/FileHandleClass.md @@ -275,7 +275,7 @@ Cette propriété est en **lecture/écriture**. :::caution -Lorsqu'un file handle est créé, la valeur `.offset` est un nombre d'octets. Cependant, l'unité de mesure du décalage diffère selon la fonction de lecture : avec [`readBlob()`](#readblob), `.offset` est un nombre d'octets, alors qu'avec [`readText()`](#readtext)/[`readLine()`](#readline), c'est un nombre de caractères. Selon le jeu de caractères du fichier, un caractère correspond à un ou plusieurs octets. Ainsi, si vous commencez la lecture avec `readBlob()` et que vous appelez ensuite `readText()`, la lecture du texte commencera à une position incohérente. Il est donc essentiel de définir vous-même la propriété `.offset` si vous passez de la lecture/écriture de blob à la lecture/écriture de texte dans le même filehandle. Par exemple : +Lorsqu'un file handle est créé, la valeur `.offset` est un nombre d'octets. Cependant, l'unité de mesure du décalage diffère selon la fonction de lecture : avec [`readBlob()`](#readblob), `.offset` est un nombre d'octets, alors qu'avec [`readText()`](#readtext)/[`readLine()`](#readline), c'est un nombre de caractères. Selon le jeu de caractères du fichier, un caractère correspond à un ou plusieurs octets. Selon le jeu de caractères du fichier, un caractère correspond à un ou plusieurs octets. Ainsi, si vous commencez la lecture avec `readBlob()` et que vous appelez ensuite `readText()`, la lecture du texte commencera à une position incohérente. Par exemple : ```4d // Ouvrir un fichier texte européen en utilisant l'encodage utf-16 (2 octets par caractère) diff --git a/i18n/fr/docusaurus-plugin-content-docs/current/API/FolderClass.md b/i18n/fr/docusaurus-plugin-content-docs/current/API/FolderClass.md index fc724508e1fa04..fb112fdd41f301 100644 --- a/i18n/fr/docusaurus-plugin-content-docs/current/API/FolderClass.md +++ b/i18n/fr/docusaurus-plugin-content-docs/current/API/FolderClass.md @@ -297,7 +297,7 @@ La fonction `.moveTo( )` déplace ou d Le *destinationFolder* doit exister sur disque, sinon une erreur est générée. -Par défaut, le dossier garde le même nom lorsqu'il est déplacé. Si vous souhaitez renommer le dossier déplacé, passez le nouveau nom complet dans le paramètre *newName*. Le nouveau nom doit être conforme aux règles de nommage (ex : il ne doit pas contenir de caractères tels que ":", "/", etc.), sinon une erreur est retournée. +Par défaut, le dossier garde le même nom lorsqu'il est déplacé. Par défaut, le dossier garde le même nom lorsqu'il est déplacé. Le nouveau nom doit être conforme aux règles de nommage (ex : il ne doit pas contenir de caractères tels que ":", "/", etc.), sinon une erreur est retournée. **Objet retourné** diff --git a/i18n/fr/docusaurus-plugin-content-docs/current/API/HTTPRequestClass.md b/i18n/fr/docusaurus-plugin-content-docs/current/API/HTTPRequestClass.md index 6a24ed33631cfb..16a577387dbca2 100644 --- a/i18n/fr/docusaurus-plugin-content-docs/current/API/HTTPRequestClass.md +++ b/i18n/fr/docusaurus-plugin-content-docs/current/API/HTTPRequestClass.md @@ -478,7 +478,7 @@ La propriété `.url` contient l'URL d ## .wait() -**.wait**( { *time* : Real } ) : HTTPRequestClass +**.wait**( { *time* : Real } ) : 4D.HTTPRequest @@ -499,6 +499,6 @@ Si un paramètre *time* est passé, la fonction attendra au maximum le nombre de Si la réponse du serveur est déjà arrivée, la fonction rend la main immédiatement. -During a `.wait()` execution, callback functions are executed, whether from other `HTTPRequest` or [`SystemWorker`](SystemWorkerClass.md) instances, or other [`CALL WORKER`](../commands-legacy/call-worker.md) calls. Vous pouvez sortir d'un `.wait()` en appelant [`terminate()`](#terminate) à partir d'une callback. +Lors d'une exécution `.wait()`, les fonctions de rappel sont exécutées, que ce soit à partir d'autres instances `HTTPRequest` ou [`SystemWorker`](SystemWorkerClass.md), ou d'autres appels [`CALL WORKER`](../commands-legacy/call-worker.md) . Vous pouvez sortir d'un `.wait()` en appelant [`terminate()`](#terminate) à partir d'une callback. diff --git a/i18n/fr/docusaurus-plugin-content-docs/current/API/IncomingMessageClass.md b/i18n/fr/docusaurus-plugin-content-docs/current/API/IncomingMessageClass.md new file mode 100644 index 00000000000000..d433bfe939c390 --- /dev/null +++ b/i18n/fr/docusaurus-plugin-content-docs/current/API/IncomingMessageClass.md @@ -0,0 +1,349 @@ +--- +id: IncomingMessageClass +title: IncomingMessage +--- + +The `4D.IncomingMessage` class allows you to handle the object received by a custom [**HTTP request handler**](../WebServer/http-request-handler.md). HTTP requests and their properties are automatically received as an instance of the `4D.IncomingMessage` class. Parameters given directly in the request with GET verb are handled by the [`.urlQuery`](#urlquery) property, while parameters passed in the body of the request are available through functions such as [`.getBlob()`](#getblob) or [`getText()`](#gettext). + +The HTTP request handler can return any value (or nothing). It usually returns an instance of the [`4D.OutgoingMessage`](OutgoingMessageClass.md) class. + +All properties of this class are read-only. They are automatically filled by the request handler. + +
    Historique + +| Release | Modifications | +| ------- | -------------- | +| 20 R8 | Classe ajoutée | + +
    + +### Exemple + +The following [**HTTPHandlers.json** file](../WebServer/http-request-handler.md) has been defined: + +```json +[ + { + "class": "GeneralHandling", + "method": "gettingStarted", + "pattern": "start", + "verbs": "get, post" + } +] +``` + +The `http://127.0.0.1/start/example?param=demo&name=4D` request is run with a `GET` verb in a browser. It is handled by the *gettingStarted* function of the following *GeneralHandling* singleton class: + +```4d +shared singleton Class constructor() + +Function gettingStarted($request : 4D.IncomingMessage) : 4D.OutgoingMessage + + var $result:=4D.OutgoingMessage.new() + var $body : Text + + $body:="Called URL: "+$request.url+"\n" + + $body+="The parameters are received as an object: \n"+JSON Stringify($request.urlQuery; *)+"\n" + + $body+="The verb is: "+$request.verb+"\n" + + $body+="There are "+String($request.urlPath.length)+" url parts - Url parts are: "\ + +$request.urlPath.join(" - ")+"\n\n" + + + $result.setBody($body) + $result.setHeader("Content-Type"; "text/plain") + + return $result + +``` + +The request is received on the server as *$request*, an object instance of the [4D.IncomingMessage class](../API/IncomingMessageClass.md). + +Here is the response: + +```json +Called URL: /start/example? param=demo&name=4D +The parameters are received as an object: +{ + "param": "demo", + "name": "4D" +} +The verb is: GET +There are 2 url parts - Url parts are: start - example +``` + +### IncomingMessage Object + +4D.IncomingMessage objects provide the following properties and functions: + +| | +| ----------------------------------------------------------------------------------------------------------------------------------------- | +| [](#getblob)
    | +| [](#getheader)
    | +| [](#getjson)
    | +| [](#getpicture)
    | +| [](#gettext)
    | +| [](#headers)
    | +| [](#url)
    | +| [](#urlPath)
    | +| [](#urlQuery)
    | +| [](#verb)
    | + +:::note + +A 4D.IncomingMessage object is a [non-sharable](../Concepts/shared.md) object. + +::: + + + +## .getBlob() + +**.getBlob**() : Blob + + + +| Paramètres | Type | | Description | +| ---------- | ---- | --------------------------- | ----------------------------- | +| Résultat | Blob | <- | Body of the request as a Blob | + + + +#### Description + +The `.getBlob()` function returns the body of the request as a Blob. + +If the body has not been given as a binary content, the function tries to convert the value but it can give unexpected results. + + + + + +## .getHeader() + +**.getHeader**( *key* : Text ) : Text + + + +| Paramètres | Type | | Description | +| ---------- | ---- | --------------------------- | ---------------------------- | +| key | Text | -> | Header property to get | +| Résultat | Text | <- | Value of the header property | + + + +#### Description + +The `.getHeader()` function returns the value of the *key* header. + +:::note + +The *key* parameter is not case sensitive. + +::: + +#### Exemple + +```4d +var $value : Text +var $request : 4D.IncomingMessage +$value := $request.getHeader("content-type") +``` + + + + + +## .getJSON() + +**.getJSON**() : Variant + + + +| Paramètres | Type | | Description | +| ---------- | ------- | --------------------------- | ------------------------------------------ | +| Résultat | Variant | <- | JSON resolution of the body of the request | + + + +#### Description + +The `.getJSON()` function returns the body of the request as a JSON resolution. + +If the body has not been given as JSON valid content, an error is raised. + + + + + +## .getPicture() + +**.getPicture**() : Picture + + + +| Paramètres | Type | | Description | +| ---------- | ------- | --------------------------- | ------------------------------ | +| Résultat | Picture | <- | Body of the request as picture | + + + +#### Description + +The `.getPicture()` function returns the body of the request as a picture (in case of a body sent as a picture). + +The content-type must be given in the headers to indicate that the body is a picture. + +:::note + +If the request is built using the [`HTTPRequest` class](HTTPRequestClass.md), the picture must be sent in the body as a Blob with the appropriate content-type. + +::: + +If the body is not received as a valid picture, the function returns null. + + + + + +## .getText() + +**.getText**() : Text + + + +| Paramètres | Type | | Description | +| ---------- | ---- | --------------------------- | --------------------------- | +| Résultat | Text | <- | Body of the request as text | + + + +#### Description + +The `.getText()` function returns the body of the request as a text value. + +If the body has not been given as a string value, the function tries to convert the value but it can give unexpected results. + + + + + +## .headers + +**headers** : Object + +#### Description + +The `.headers` property contains the current headers of the incoming message as key/value pairs (strings). + +The `.headers` property is read-only. + +Header names (keys) are lowercased. Note header names are case sensitive. + + + + + +## .url + +**url** : Text + +#### Description + +The `.url` property contains the URL of the request without the *IP:port* part and as a string. + +For example, if the request is addressed to: "http://127.0.0.1:80/docs/invoices/today", the `.url` property is "/docs/invoices/today". + +The `.url` property is read-only. + +:::note + +The "host" part of the request (*IP:port*) is provided by the [`host` header](#headers). + +::: + + + + + +## .urlPath + +**urlPath** : Collection + +#### Description + +The `.urlPath` property contains the URL of the request without the *IP:port* part and as a collection of strings. + +For example, if the request is addressed to: "http://127.0.0.1:80/docs/invoices/today", the `.urlPath` property is ["docs", "invoices" ,"today"]. + +The `.urlPath` property is read-only. + + + + + +## .urlQuery + +**urlQuery** : Object + +#### Description + +The `.urlQuery` property contains the parameters of the request when they have been given in the URL as key/value pairs. + +The `.urlQuery` property is read-only. + +Parameters can be passed in the URL of requests **directly** or **as JSON contents**. + +#### Direct parameters + +Example: `http://127.0.0.1:8044/myCall?firstname=Marie&id=2&isWoman=true` + +In this case, parameters are received as stringified values in the `urlQuery` property: `urlQuery = {"firstname":"Marie" ,"id":"2" ,"isWoman":"true"}` + +#### JSON contents parameters + +Example: `http://127.0.0.1:8044/myCall/?myparams='[{"firstname": "Marie","isWoman": true,"id": 3}]'`. + +Parameters are passed in JSON format and enclosed within a collection. + +In this case, parameters are received as JSON text in the `urlQuery` property and can be parsed using [`JSON Parse`](../commands-legacy/json-parse.md). + +```4d +//urlQuery.myparams: "[{"firstname": "Marie","isWoman": true,"id": 3}]" +$test:=Value type(JSON Parse($r.urlQuery.myparams))=Is collection) //true +``` + +Special characters such as simple quotes or carriage returns must be escaped. + +Example: `http://127.0.0.1:8044/syntax/?mdcode=%60%60%604d` + +````4d +//urlQuery.mdcode = ```4d +$test:=Length($r.urlQuery.mdcode) //5 +```` + +:::note + +Parameters given in the body of the request using POST or PUT verbs are handled through dedicated functions: [`getText()`](#gettext), [`getPicture()`](#getpicture), [`getBlob()`](#getblob), [`getJSON()`](#getjson). + +::: + + + + + +## .verb + +**verb** : Text + +#### Description + +The `.verb` property contains the verb used by the request. + +HTTP and HTTPS request verbs include for example "get", "post", "put", etc. + +The `.verb` property is read-only. + + diff --git a/i18n/fr/docusaurus-plugin-content-docs/current/API/OutGoingMessageClass.md b/i18n/fr/docusaurus-plugin-content-docs/current/API/OutGoingMessageClass.md index c5a2db7b95bfea..914580df7960cf 100644 --- a/i18n/fr/docusaurus-plugin-content-docs/current/API/OutGoingMessageClass.md +++ b/i18n/fr/docusaurus-plugin-content-docs/current/API/OutGoingMessageClass.md @@ -5,7 +5,7 @@ title: OutgoingMessage The `4D.OutgoingMessage` class allows you to build messages to be returned by your application functions in response to [REST requests](../REST/REST_requests.md). If the response is of type `4D.OutgoingMessage`, the REST server does not return an object but the object instance of the `OutgoingMessage` class. -Typically, this class can be used in functions declared with the [`onHttpGet`](../ORDA/ordaClasses.md#onhttpget-keyword) keyword and designed to handle HTTP GET requests. Such requests are used, for example, to implement features such as download file, generate and download picture as well as receiving any content-type via a browser. +Typically, this class can be used in custom [HTTP request handler functions](../WebServer/http-request-handler.md#function-configuration) or in functions declared with the [`onHttpGet`](../ORDA/ordaClasses.md#onhttpget-keyword) keyword and designed to handle HTTP GET requests. Such requests are used, for example, to implement features such as download file, generate and download picture as well as receiving any content-type via a browser. An instance of this class is built on 4D Server and can be sent to the browser by the [4D REST Server](../REST/gettingStarted.md) only. This class allows to use other technologies than HTTP (e.g. mobile). diff --git a/i18n/fr/docusaurus-plugin-content-docs/current/API/OutgoingMessageClass.md b/i18n/fr/docusaurus-plugin-content-docs/current/API/OutgoingMessageClass.md index c5a2db7b95bfea..914580df7960cf 100644 --- a/i18n/fr/docusaurus-plugin-content-docs/current/API/OutgoingMessageClass.md +++ b/i18n/fr/docusaurus-plugin-content-docs/current/API/OutgoingMessageClass.md @@ -5,7 +5,7 @@ title: OutgoingMessage The `4D.OutgoingMessage` class allows you to build messages to be returned by your application functions in response to [REST requests](../REST/REST_requests.md). If the response is of type `4D.OutgoingMessage`, the REST server does not return an object but the object instance of the `OutgoingMessage` class. -Typically, this class can be used in functions declared with the [`onHttpGet`](../ORDA/ordaClasses.md#onhttpget-keyword) keyword and designed to handle HTTP GET requests. Such requests are used, for example, to implement features such as download file, generate and download picture as well as receiving any content-type via a browser. +Typically, this class can be used in custom [HTTP request handler functions](../WebServer/http-request-handler.md#function-configuration) or in functions declared with the [`onHttpGet`](../ORDA/ordaClasses.md#onhttpget-keyword) keyword and designed to handle HTTP GET requests. Such requests are used, for example, to implement features such as download file, generate and download picture as well as receiving any content-type via a browser. An instance of this class is built on 4D Server and can be sent to the browser by the [4D REST Server](../REST/gettingStarted.md) only. This class allows to use other technologies than HTTP (e.g. mobile). diff --git a/i18n/fr/docusaurus-plugin-content-docs/current/API/SessionClass.md b/i18n/fr/docusaurus-plugin-content-docs/current/API/SessionClass.md index 242f3e3b2a3f5b..028bd3681de487 100644 --- a/i18n/fr/docusaurus-plugin-content-docs/current/API/SessionClass.md +++ b/i18n/fr/docusaurus-plugin-content-docs/current/API/SessionClass.md @@ -7,12 +7,12 @@ Les objets de session sont retournés par la commande [`Session`](../commands/se ### Types de sessions -The following types of sessions are supported by this class: +Les types de sessions suivants sont pris en charge par cette classe : - [**Session utilisateur Web**](WebServer/sessions.md) : Les sessions utilisateur Web sont disponibles lorsque [les sessions évolutives (scalable sessions) sont activées dans votre projet](WebServer/sessions.md#enabling-sessions). Elles sont utilisées pour les connexions Web et REST, et peuvent se voir attribuer des privilèges. - [**Session utilisateur client distant**](../Desktop/clientServer.md#remote-user-sessions) : Dans les applications client/serveur, les utilisateurs distants ont leurs propres sessions gérées sur le serveur. - [**Session des procédures stockées**](https://doc.4d.com/4Dv20R5/4D/20-R5/4D-Server-and-the-4D-Language.300-6932726.en.html) : Toutes les procédures stockées exécutées sur le serveur partagent la même session utilisateur virtuelle. -- [**Standalone session**](../Project/overview.md#development): Local session object returned in single-user application (useful in development and test phases of client/server applications). +- [**Session autonome**](../Project/overview.md#development) : objet session local retourné dans une application mono-utilisateur (utile dans les phases de développement et de test des applications client/serveur). :::note @@ -62,7 +62,7 @@ La disponibilité des propriétés et des fonctions de l'objet `Session` dépend :::note -This function does nothing and always returns **True** with remote client, stored procedure, and standalone sessions. +Cette fonction ne fait rien et retourne toujours **True** avec les sessions client distants, procédure stockée et autonomes. ::: @@ -142,7 +142,7 @@ $expiration:=Session.expirationDate //ex : "2021-11-05T17:10:42Z" La fonction `.getPrivileges()` renvoie une collection contenant tous les noms de privilèges associés à la session. -With remote client, stored procedure and standalone sessions, this function returns a collection only containing "WebAdmin". +Avec les sessions client distant, procédures stockées et autonomes, cette fonction retourne une collection contenant uniquement "WebAdmin". :::info @@ -238,7 +238,7 @@ $privileges := Session.getPrivileges() La fonction `.hasPrivilege()` renvoie True si le *privilege* est associé à la session, et False sinon. -With remote client, stored procedure and standalone sessions, this function always returns True, whatever the *privilege*. +Avec les sessions client distant, procédures stockées et autonomes, cette fonction retourne toujours True, quel que soit le *privilege*. #### Exemple @@ -271,11 +271,11 @@ End if #### Description -The `.id` property contains the unique identifier (UUID) of the user session. With 4D Server, this unique string is automatically assigned by the server for each session and allows you to identify its processes. +La propriété `.id` contient l'identifiant unique (UUID) de la session utilisateur. Avec 4D Server, cette chaîne unique est automatiquement assignée par le serveur à chaque session et vous permet d'identifier ses process. :::tip -You can use this property to get the [`.storage`](#storage) object of a session thanks to the [`Session storage`](../commands/session-storage.md) command. +Vous pouvez utiliser cette propriété pour obtenir l'objet [`.storage`](#storage) d'une session grâce à la commande [`Session storage`](../commands/session-storage.md) . ::: @@ -347,33 +347,33 @@ End if :::note -This property is only available with remote client, stored procedure, and standalone sessions. +Cette propriété est uniquement disponible avec les sessions clients distants, procédures stockées et autonomes. ::: -The `.info` property describes the remote client or stored procedure session on the server, or the standalone session. +La propriété `.info` décrit le client distant ou la session de procédure stockée sur le serveur, ou la session autonome. :::note -- The `.info` object is the same object as the one returned in the "session" property by the [`Process activity`](../commands/process-activity.md) command for remote client and stored procedure sessions. -- The `.info` object is the same object as the one returned by the [`Session info`](../commands/session-info.md) command for a standalone session. +- L'objet `.info` est le même objet que celui retourné dans la propriété "session" par la commande [`Process activity`](../commands/process-activity.md) pour les sessions de clients distants et procédures stockées. +- L'objet `.info` est le même objet que celui retourné par la commande [`Session info`](../commands/session-info.md) pour une session autonome. ::: L'objet `.info` contient les propriétés suivantes: -| Propriété | Type | Description | -| ---------------- | ------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -| type | Text | Session type: "remote", "storedProcedure", "standalone" | -| userName | Text | Nom d'utilisateur 4D (même valeur que [`.userName`](#username)) | -| machineName | Text | Sessions distantes : nom de la machine distante. Stored procedures session: name of the server machine. Standalone session: name of the machine | -| systemUserName | Text | Sessions distantes : nom de la session système ouverte sur la machine distante. | -| IPAddress | Text | Adresse IP de la machine distante | -| hostType | Text | Type d'hôte : "windows" ou "mac" | -| creationDateTime | Date ISO 8601 | Date and time of session creation. Standalone session: date and time of application startup | -| state | Text | État de la session : "active", "postponed", "sleeping" | -| ID | Text | UUID de session (même valeur que [`.id`](#id)) | -| persistentID | Text | Remote sessions: Session's persistent ID | +| Propriété | Type | Description | +| ---------------- | ------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | +| type | Text | Type de session : "remote", "storedProcedure", "standalone" | +| userName | Text | Nom d'utilisateur 4D (même valeur que [`.userName`](#username)) | +| machineName | Text | Sessions distantes : nom de la machine distante. Session procédures stockées : nom de la machine serveur. Session autonome : nom de la machine | +| systemUserName | Text | Sessions distantes : nom de la session système ouverte sur la machine distante. | +| IPAddress | Text | Adresse IP de la machine distante | +| hostType | Text | Type d'hôte : "windows" ou "mac" | +| creationDateTime | Date ISO 8601 | Date et heure de création de la session. Session autonome : date et heure de démarrage de l'application | +| state | Text | État de la session : "active", "postponed", "sleeping" | +| ID | Text | UUID de session (même valeur que [`.id`](#id)) | +| persistentID | Text | Sessions distantes : ID persistant de la session | :::note @@ -409,7 +409,7 @@ L'objet `.info` contient les propriétés suivantes: :::note -This function always returns **False** with remote client, stored procedure, and standalone sessions. +Cette fonction retourne toujours **False** avec les sessions clients distants, procédures stockées et autonomes. ::: @@ -457,7 +457,7 @@ End if :::note -This function does nothing and always returns **False** with remote client, stored procedure, and standalone sessions. +Cette fonction ne fait rien et retourne toujours **False** avec les sessions client distants, procédures stockées et autonomes. ::: @@ -538,7 +538,7 @@ Cette propriété est elle-même en **lecture seulement** mais elle retourne un :::tip -You can get the `.storage` property of a session using the [`Session storage`](../commands/session-storage.md) command. +Vous pouvez obtenir la propriété `.storage` d'une session en utilisant la commande [`Session storage`](../commands/session-storage.md). ::: @@ -586,8 +586,8 @@ End use La propriété `.userName` contient le nom d'utilisateur associé à la session. Vous pouvez vous en servir pour identifier l'utilisateur dans votre code. - Avec les sessions web, cette propriété est une chaîne vide par défaut. Elle peut être définie via la propriété `privileges` de la fonction [`setPrivileges()`](#setprivileges). -- With remote and stored procedure sessions, this property returns the same user name as the [`Current user`](../commands-legacy/current-user.md) command. -- With standalone sessions, this property contains "designer" or the name set with the [`SET USER ALIAS`](../commands-legacy/set-user-alias.md) command. +- Avec les sessions clients distants et procédures stockées, cette propriété retourne le même nom d'utilisateur que la commande [`Current user`](../commands-legacy/current-user.md). +- Avec les sessions autonomes, cette propriété contient "designer" ou le nom défini avec la commande [`SET USER ALIAS`](../commands-legacy/set-user-alias.md). Cette propriété est en **lecture seule**. diff --git a/i18n/fr/docusaurus-plugin-content-docs/current/Concepts/classes.md b/i18n/fr/docusaurus-plugin-content-docs/current/Concepts/classes.md index c7fd14caff2ef7..92a8c026e80fd7 100644 --- a/i18n/fr/docusaurus-plugin-content-docs/current/Concepts/classes.md +++ b/i18n/fr/docusaurus-plugin-content-docs/current/Concepts/classes.md @@ -7,7 +7,7 @@ title: Classes Le langage 4D prend en charge le concept de **classes**. Dans un langage de programmation, l'utilisation d'une classe vous permet de définir le comportement d'un objet avec des propriétés et des fonctions associées. -Une fois qu'une classe utilisateur est définie, vous pouvez **instancier des objets** de cette classe n'importe où dans votre code. Chaque objet est une instance de sa classe. Une classe peut [`étendre`](#class-extends-classname) une autre classe, et hérite ensuite de ses [fonctions](#function) et propriétés ([déclarées](#property) et [calculées](#function-get-and-function-set)). +Une fois qu'une classe utilisateur est définie, vous pouvez **instancier des objets** de cette classe n'importe où dans votre code. Chaque objet est une instance de sa classe. Chaque objet est une instance de sa classe. > Les modèles de classe 4D et JavaScript sont similaires, et basés sur une chaîne de prototypes. @@ -107,9 +107,9 @@ Les classes disponibles sont accessibles depuis leurs class stores. Il existe de -| Paramètres | Type | | Description | | -| ---------- | ------ | ------------------------------ | ------------------------------------------------------------------- | ---------------- | -| classStore | Object | &larr; | Class store utilisateur utilisateurs pour le projet ou le composant | | +| Paramètres | Type | | Description | | +| ---------- | ------ | - | ------------------------------------------------------------------- | ---------------- | +| classStore | Object | ← | Class store utilisateur utilisateurs pour le projet ou le composant | | La commande `cs` retourne le class store utilisateur pour le projet ou le composant courant. Elle retourne toutes les classes utilisateur [définies](#class-definition) dans le projet ou le composant ouvert. Par défaut, seules les [classes ORDA](ORDA/ordaClasses.md) du projet sont disponibles. @@ -127,9 +127,9 @@ $instance:=cs.myClass.new() -| Paramètres | Type | | Description | | -| ---------- | ------ | ------------------------------ | -------------- | ---------------- | -| classStore | Object | &larr; | Class store 4D | | +| Paramètres | Type | | Description | | +| ---------- | ------ | - | -------------- | ---------------- | +| classStore | Object | ← | Class store 4D | | La commande `4D` retourne le class store des classes 4D intégrées disponibles. Elle donne accès à des API spécifiques telles que [CryptoKey](API/CryptoKeyClass.md). @@ -199,7 +199,7 @@ There is no ending keyword for function code. The 4D language automatically dete Les fonctions de classe sont des propriétés spécifiques de la classe. Ce sont des objets de la classe [4D.Function](API/FunctionClass.md). Dans le fichier de définition de classe, les déclarations de fonction utilisent le mot-clé `Function` suivi du nom de la fonction. -Si la fonction est déclarée dans une [classe partagée](#shared-classes), vous pouvez utiliser le mot-clé `shared` pour que la fonction puisse être appelée sans [structure `Use. .End use`](shared.md#useend-use). Pour plus d'informations, consultez le paragraphe sur les [fonctions partagées](#shared-functions) ci-dessous. +Si les fonctions sont déclarées dans une [classe partagée](#constructeur-de-classe-partagee), vous pouvez utiliser le mot-clé `shared` avec elles afin qu'elles puissent être appelées sans la structure [`Use...End use`](shared.md#useend-use). Pour plus d'informations, consultez le paragraphe sur les [fonctions partagées](#shared-functions) ci-dessous. Le nom de la fonction doit être conforme aux [règles de nommage des objets](Concepts/identifiers.md#object-properties). @@ -341,7 +341,7 @@ Une fonction class constructor accepte des [paramètres](#parameters) facultatif Lorsque vous appelez la fonction [`new()`](API/ClassClass.md#new), le constructeur de classe est appelé avec les paramètres éventuellement passés à la fonction `new()`. -Il ne peut y avoir qu'une seule fonction constructor dans une classe (sinon une erreur est renvoyée). Un constructeur peut utiliser le mot-clé [`Super`](#super) pour appeler le constructeur de la superclass. +Il ne peut y avoir qu'une seule fonction constructor dans une classe (sinon une erreur est renvoyée). The [`Super`](../commands/super.md) command allows calls to the [`superclass`](../API/ClassClass#superclass), i.e. the parent class of the function. Vous pouvez créer et saisir des propriétés d'instance dans le constructeur (voir exemple). Alternativement, si les valeurs de vos propriétés d'instance ne dépendent pas des paramètres passés au constructeur, vous pouvez les définir en utilisant le mot-clé [`property`](#property). @@ -509,9 +509,9 @@ Dans le fichier de définition de la classe, les déclarations de propriétés c `Function get` retourne une valeur du type de la propriété et `Function set` prend un paramètre du type de la propriété. Les deux arguments doivent être conformes aux [paramètres de fonction](#parameters) standard. -Lorsque les deux fonctions sont définies, la propriété calculée est en **lecture-écriture**. Si seule une `Function get` est définie, la propriété calculée est en **lecture seule**. Dans ce cas, une erreur est retournée si le code tente de modifier la propriété. Si seule une `Function set` est définie, 4D retourne _undefined_ lorsque la propriété est lue. +Lorsque les deux fonctions sont définies, la propriété calculée est en **lecture-écriture**. Si seule une `Function get` est définie, la propriété calculée est en **lecture seule**. Dans ce cas, une erreur est retournée si le code tente de modifier la propriété. Dans ce cas, une erreur est retournée si le code tente de modifier la propriété. -Si les fonctions sont déclarées dans une [classe partagée](#constructeur-de-classe-partagee), vous pouvez utiliser le mot-clé `shared` avec elles afin qu'elles puissent être appelées sans la structure [`Use...End use`](shared.md#useend-use). Pour plus d'informations, consultez le paragraphe sur les [fonctions partagées](#shared-functions) ci-dessous. +Si la fonction est déclarée dans une [classe partagée](#shared-classes), vous pouvez utiliser le mot-clé `shared` pour que la fonction puisse être appelée sans [structure `Use. .End use`](shared.md#useend-use). Pour plus d'informations, consultez le paragraphe sur les [fonctions partagées](#shared-functions) ci-dessous. Le type de la propriété calculée est défini par la déclaration de type `$return` du _getter_. Il peut s'agir de n'importe quel [type de propriété valide](dt_object.md). @@ -612,7 +612,7 @@ The following commands have specific features when they are used within class fu ### `Super` -The [`Super`](../commands/super.md) command allows calls to the [`superclass`](../API/ClassClass#superclass), i.e. the parent class of the function. It can be called in the [class constructor](#class-constructor) or in a class function code. +The [`Super`](../commands/super.md) command allows calls to the [`superclass`](../API/ClassClass#superclass), i.e. the parent class of the function. Il ne peut y avoir qu'une seule fonction constructor dans une classe (sinon une erreur est renvoyée). For more details, see the [`Super`](../commands/super.md) command description. diff --git a/i18n/fr/docusaurus-plugin-content-docs/current/Debugging/debugger.md b/i18n/fr/docusaurus-plugin-content-docs/current/Debugging/debugger.md index 28cdff55341e60..b2b0ac4d3aad44 100644 --- a/i18n/fr/docusaurus-plugin-content-docs/current/Debugging/debugger.md +++ b/i18n/fr/docusaurus-plugin-content-docs/current/Debugging/debugger.md @@ -3,10 +3,16 @@ id: debugger title: Débogueur --- -Le débogueur est utile lorsque vous devez repérer des erreurs ou surveiller l'exécution de méthodes. Il vous permet d'avancer pas à pas dans le code et d'examiner les informations. Ce processus est appelé le "traçage". +The 4D debugger is useful when you need to spot errors or monitor the execution of methods. Il vous permet d'avancer pas à pas dans le code et d'examiner les informations. Ce processus est appelé le "traçage". ![debugger-window-local](../assets/en/Debugging/debugger-window-intro.png) +:::info + +If you are used to coding with **VS Code**, you can also use this editor to debug 4D code on 4D Server after installing the [4D-Debugger](https://github.com/4d/4D-Debugger-VSCode) extension. + +::: + ## Appeler le débogueur Il existe plusieurs façons d'afficher le débogueur : diff --git a/i18n/fr/docusaurus-plugin-content-docs/current/Debugging/debugging-remote.md b/i18n/fr/docusaurus-plugin-content-docs/current/Debugging/debugging-remote.md index a2139ce61ce959..6d3924989290ef 100644 --- a/i18n/fr/docusaurus-plugin-content-docs/current/Debugging/debugging-remote.md +++ b/i18n/fr/docusaurus-plugin-content-docs/current/Debugging/debugging-remote.md @@ -20,6 +20,9 @@ Un seul débogueur peut déboguer une application 4D Server à un moment donné. - le débogueur local de 4D Server (par défaut) - si le serveur ne tourne pas en mode headless. - le débogueur d'un client 4D distant - si la session distante a accès au mode Développement. - the [Qodly debugger](../WebServer/qodly-studio.md#using-qodly-debugger-on-4d-server) on 4D Server - if the server allows access to Qodly Studio. +- the VS Code debugger, provided you installed the [4D-Debugger](https://github.com/4d/4D-Debugger-VSCode) extension. + +::: Le débogueur associé est appelé chaque fois que 4D Server rencontre : diff --git a/i18n/fr/docusaurus-plugin-content-docs/current/Desktop/building.md b/i18n/fr/docusaurus-plugin-content-docs/current/Desktop/building.md index 358b69cd0e1ddb..0782d56c8cd7f1 100644 --- a/i18n/fr/docusaurus-plugin-content-docs/current/Desktop/building.md +++ b/i18n/fr/docusaurus-plugin-content-docs/current/Desktop/building.md @@ -20,7 +20,7 @@ Le générateur d'applications vous permet de : Générer un package de projet peut être réalisé à l'aide de : -- soit la commande [`BUILD APPLICATION`](https://doc.4d.com/4dv20/help/command/fr/page871.html), +- either the [`BUILD APPLICATION`](../commands-legacy/build-application.md) command, - soir la [Page Application](#application) ou la [Page Client/Serveur](#client-server) de boîte de dialogue du Générateur d'application. :::tip @@ -45,9 +45,9 @@ La génération ne peut s'effectuer qu'une fois le projet compilé. Si vous sél Chaque paramètre du générateur d'application est sauvegardé en tant que clé XML dans le fichier XML du projet d'application nommé `buildApp.4DSettings`, situé dans le [dossier `Settings` du projet](../Project/architecture.md#settings-1). -Des paramètres par défaut sont utilisés lors de la première utilisation de la boîte de dialogue du Générateur d'application. Le contenu du fichier est mis à jour, si nécessaire, lorsque vous cliquez sur **Construire** ou **Enregistrer les paramètres**. Vous pouvez définir plusieurs autres fichiers de paramètres XML pour le même projet et les utiliser à l'aide de la commande [BUILD APPLICATION](https://doc.4d.com/4dv19/help/command/en/page871.html). +Des paramètres par défaut sont utilisés lors de la première utilisation de la boîte de dialogue du Générateur d'application. Le contenu du fichier est mis à jour, si nécessaire, lorsque vous cliquez sur **Construire** ou **Enregistrer les paramètres**. You can define several other XML settings file for the same project and employ them using the [`BUILD APPLICATION`](../commands-legacy/build-application.md) command. -Les clés XML fournissent des options supplémentaires à celles affichées dans la boîte de dialogue du Générateur d'application. La description de ces clés est détaillée dans le manuel [4D XML Keys BuildApplication](https://doc.4d.com/4Dv19/4D/19/4D-XML-Keys-BuildApplication.100-5447429.en.html). +Les clés XML fournissent des options supplémentaires à celles affichées dans la boîte de dialogue du Générateur d'application. The description of these keys are detailed in the [4D XML Keys BuildApplication](https://doc.4d.com/4Dv20/4D/20/4D-XML-Keys-BuildApplication.100-6335734.en.html) manual. ### Fichier journal @@ -59,9 +59,9 @@ Lorsqu'une application est créée, 4D génère un fichier journal nommé _Build - Toutes les erreurs qui se sont produites, - Tout problème de signature (par exemple, un plug-in non signé). -La vérification de ce fichier peut vous aider à gagner du temps lors des prochaines étapes de déploiement, si vous avez l'intention, par exemple, de notariser votre application. +Checking this file may help you saving time during the subsequent deployment steps, for example if you intend to [notarize](#about-notarization) your application on macOS. -> Utilisez la commande `Get 4D file (Build application log file)` pour obtenir l'emplacement du fichier journal. +> Use the `Get 4D file(Build application log file)` statement to get the log file location. ## Nom de l'application et dossier de destination @@ -87,7 +87,7 @@ Cette fonctionnalité crée un fichier _.4dz_ dans un dossier `Compiled Database Un fichier .4dz est essentiellement une version compressée du dossier du projet. Les fichiers .4dz peuvent être utilisés par 4D Server, 4D Volume Desktop (applications fusionnées) et 4D. La taille compacte et optimisée des fichiers .4dz facilite le déploiement des packages de projet. -> Lors de la génération de fichiers .4dz, 4D utilise par défaut un format zip **standard**. L'avantage de ce format est qu'il est facilement lisible par tout outil de dézippage. Si vous ne voulez pas utiliser ce format standard, ajoutez la clé XML `UseStandardZipFormat` avec la valeur `False` dans votre fichier [`buildApp.4DSettings`](#build-application-settings) (pour plus d'informations, voir le manuel [4D XML Keys BuildApplication](https://doc.4d.com/4Dv19/4D/19/4D-XML-Keys-BuildApplication.100-5447429.fr.html)). +> Lors de la génération de fichiers .4dz, 4D utilise par défaut un format zip **standard**. L'avantage de ce format est qu'il est facilement lisible par tout outil de dézippage. If you do not want to use this standard format, add the `UseStandardZipFormat` XML key with value `False` in your [`buildApp.4DSettings`](#build-application-settings) file (for more information, see the [4D XML Keys BuildApplication](https://doc.4d.com/4Dv20/4D/20/4D-XML-Keys-BuildApplication.100-6335734.en.html) manual). #### Inclure les dossiers associés @@ -99,16 +99,20 @@ Génère un composant compilé à partir de la structure. Un [composant](../Extensions/develop-components.md) est un fichier de structure 4D standard dans lequel des fonctionnalités spécifiques ont été développées. Once the component has been configured and [installed in another 4D project](../Project/components.md#basics) (the host application project), its functionalities are accessible from the host project. -Si vous avez nommé votre application _MyComponent_, 4D créera un dossier _Component_ contenant le dossier _MyComponent.4dbase_ : +If you have named your application _MyComponent_, 4D will automatically create a _Components_ folder with the following structure: -`/Components/MyComponent.4dbase/MyComponent.4DZ`. +`/Components/MyComponent.4dbase/Contents/`. -Le dossier _MyComponent.4dbase_ contient : +The _MyComponent.4dbase_ folder is the [package folder of the compiled component](../Project/components.md#package-folder). -- _MyComponent.4DZ_ file -- Un dossier _Resources_ - toutes les ressources associées sont automatiquement copiées dans ce dossier. Les autres composants et/ou dossiers de plugins ne sont pas copiés (un composant ne peut pas utiliser de plug-ins ou d'autres composants). +The _Contents_ folder contains: -Le dossier _MyComponent.4dbase_ est le [dossier package du composant compilé](../Project/components.md). +- _MyComponent.4DZ_ file - the [compiled structure](#build-compiled-structure). +- Un dossier _Resources_ - toutes les ressources associées sont automatiquement copiées dans ce dossier. Les autres composants et/ou dossiers de plugins ne sont pas copiés (un composant ne peut pas utiliser de plug-ins ou d'autres composants). +- An _Info.plist_ file - this file is required to build [notarizeable and stapleable](#about-notarization) components for macOS (it is ignored on Windows). The following [Apple bundle keys](https://developer.apple.com/documentation/bundleresources/information-property-list) are prefilled: + - `CFBundleDisplayName` and `CFBundleName` for the application name, + - `NSHumanReadableCopyright`, can be [set using an XML key](https://doc.4d.com/4Dv20/4D/20/CommonCopyright.300-6335859.en.html). + - `CFBundleShortVersionString` and `CFBundleVersion` for the application version (x.x.x format, e.g. 1.0.5), can be [set using an XML key](https://doc.4d.com/4Dv20/4D/20/CommonVersion.300-6335858.en.html). ## Page Application @@ -174,7 +178,7 @@ Si vous avez nommé votre application "MyProject", vous trouverez les fichiers s Tous ces éléments doivent être conservés dans le même dossier afin que l’exécutable fonctionne. - _macOS_ - - Un progiciel (package) nommé MyProject.app contenant votre application et tous les éléments nécessaires à son fonctionnement, y compris les plug-ins, composants et licences. Pour plus d’informations sur l’intégration des composants et des plug-ins, reportez-vous à la section [Page Plugins et composants](#plugins-and-components). Pour plus d’informations sur l’intégration des licences, reportez-vous à la section [Page Licences & Certificat](#licenses-and-certificate). **Note** : Dans macOS, la commande [Application file](https://doc.4d.com/4Dv18R4/4D/18-R4/Application-file.301-4982855.en.html) du langage 4D renvoie le chemin du fichier ApplicationName (situé dans le dossier Contents:macOS du progiciel) et non celui du fichier .comp (dossier Contents:Resources du progiciel). + - Un progiciel (package) nommé MyProject.app contenant votre application et tous les éléments nécessaires à son fonctionnement, y compris les plug-ins, composants et licences. Pour plus d’informations sur l’intégration des composants et des plug-ins, reportez-vous à la section [Page Plugins et composants](#plugins-and-components). Pour plus d’informations sur l’intégration des licences, reportez-vous à la section [Page Licences & Certificat](#licenses-and-certificate). **Note**: In macOS, the [Application file](../commands-legacy/application-file.md) command of the 4D language returns the pathname of the ApplicationName file (located in the Contents:macOS folder of the software package) and not that of the .comp file (Contents:Resources folder of the software package). #### Personnaliser le dossier 4D Volume Desktop @@ -222,7 +226,7 @@ En outre, l’application client/serveur est personnalisée et son maniement est - Pour lancer la partie cliente, l’utilisateur double-clique simplement sur l’application cliente, qui se connecte directement à l’application serveur : il n’est pas nécessaire de choisir un serveur dans une boîte de dialogue de connexion. il n’est pas nécessaire de choisir un serveur dans une boîte de dialogue de connexion. Le client cible le serveur soit via son nom, lorsque client et serveur sont sur le même sous-réseau, soit via son adresse IP, à définir via la clé XML `IPAddress` dans le fichier buildapp.4DSettings. Si la connexion échoue, [des mécanismes alternatifs spécifiques peuvent être mis en place](#management-of-client-connections). Il est également possible de “forcer” l’affichage de la boîte de dialogue de connexion standard en maintenant la touche **Option** (macOS) ou **Alt** (Windows) enfoncée lors du lancement de l’application cliente. Seule la partie cliente peut se connecter à la partie serveur correspondante. Si un utilisateur tente de se connecter à la partie serveur à l’aide d’une application 4D standard, un message d’erreur est retourné et la connexion est impossible. - Une application client/serveur peut être paramétrée de telle sorte que la partie cliente [puisse être mise à jour automatiquement via le réseau](#copy-of-client-applications-in-the-server-application). Il vous suffit de créer et de distribuer une version initiale de l'application cliente, les mises à jour ultérieures sont gérées à l'aide du mécanisme de mise à jour automatique. -- Il est également possible d'automatiser la mise à jour de la partie serveur en utilisant une séquence de commandes de langage ([SET UPDATE FOLDER](https://doc.4d.com/4dv19/help/command/fr/page1291.html) et [RESTART 4D](https://doc.4d.com/4dv19/help/command/fr/page1292.html). +- It is also possible to automate the update of the server part through the use of a sequence of language commands ([SET UPDATE FOLDER](../commands-legacy/set-update-folder.md) and [RESTART 4D](../commands-legacy/restart-4d.md). ### Construire application serveur @@ -298,7 +302,7 @@ Désigne l'emplacement sur votre disque de l'application 4D Volume Desktop à ut Ce 4D Volume Desktop doit correspondre à la plate-forme courante (qui sera également la plate-forme de l’application cliente). Si vous souhaitez générer une version de l’application cliente pour la plate-forme “concurrente”, vous devez répéter l'opération en utilisant une application 4D tournant sur cette plate-forme. -Si vous souhaitez que l'application cliente se connecte au serveur via une adresse spécifique (autre que le nom du serveur publié sur le sous-réseau), vous devez utiliser la clé XML `IPAddress` dans le fichier buildapp.4DSettings. Pour plus d'informations sur ce fichier, veuillez vous référer à la description de la commande [`BUILD APPLICATION`](https://doc.4d.com/4dv19/help/command/fr/page871.html). Vous pouvez également mettre en place des mécanismes spécifiques en cas d'échec de la connexion. Les différents scénarios proposés sont décrits dans la section [Gestion de la connexion des applications clientes](#management-of-client-connections). +Si vous souhaitez que l'application cliente se connecte au serveur via une adresse spécifique (autre que le nom du serveur publié sur le sous-réseau), vous devez utiliser la clé XML `IPAddress` dans le fichier buildapp.4DSettings. For more information about this file, refer to the description of the [`BUILD APPLICATION`](../commands-legacy/build-application.md) command. Vous pouvez également mettre en place des mécanismes spécifiques en cas d'échec de la connexion. Les différents scénarios proposés sont décrits dans la section [Gestion de la connexion des applications clientes](#management-of-client-connections). #### Copie des applications clientes dans l'application serveur @@ -418,7 +422,7 @@ Le scénario standard est le suivant : - la clé `PublishName` n'est pas copiée dans le _info.plist_ du client fusionné - si l'application monoposte ne possède pas de dossier "Data" par défaut, le client fusionné sera exécuté sans données. -Les fonctionnalités 4D Server de mise à jour automatique (numéro [Current version](#current-version), commande `SET UPDATE FOLDER`...) fonctionnent avec une application monoposte comme avec une application distante standard. Lors de la connexion, l'application monoposte compare sa clé `CurrentVers` à la plage de version 4D Server. Si elle se trouve en dehors de plage, l'application cliente monoposte mise à jour est téléchargée depuis le serveur et l'Updater lance le processus de mise à jour locale. +Automatic update 4D Server features ([Current version](#current-version) number, [`SET UPDATE FOLDER`](../commands-legacy/set-update-folder.md) command...) fonctionnent avec une application monoposte comme avec une application distante standard. Lors de la connexion, l'application monoposte compare sa clé `CurrentVers` à la plage de version 4D Server. Si elle se trouve en dehors de plage, l'application cliente monoposte mise à jour est téléchargée depuis le serveur et l'Updater lance le processus de mise à jour locale. ### Personnalisation des noms de dossier de cache client et/ou serveur @@ -505,7 +509,7 @@ Cet onglet affiche la liste des licences de déploiement disponibles que vous po Pour ajouter ou supprimer des licences, utilisez les boutons **[+]** et **[-]** situés en bas de la fenêtre. -Lorsque vous cliquez sur le bouton \[+], une boîte de dialogue d’ouverture de document apparaît, affichant par défaut le contenu du dossier _[Licenses]_ de votre poste. Pour plus d'informations sur l'emplacement de ce dossier, reportez-vous à la commande [Get 4D folder](https://doc.4d.com/4Dv17R6/4D/17-R6/Get-4D-folder.301-4311294.en.html). +Lorsque vous cliquez sur le bouton \[+], une boîte de dialogue d’ouverture de document apparaît, affichant par défaut le contenu du dossier _[Licenses]_ de votre poste. For more information about the location of this folder, refer to the [Get 4D folder](../commands-legacy/get-4d-folder.md) command. Vous devez désigner les fichiers contenant votre licence Developer et ainsi que vos licences de déploiement. Ces fichiers ont été générés ou mis à jour au moment de l’acquisition de la licence _4D Developer Professional_ et des licences _4D Desktop Volume_. @@ -524,11 +528,11 @@ Vous pouvez désigner autant de fichiers valides que vous voulez. Lors de la gé A l’issue de la génération, un nouveau fichier de licence de déploiement est automatiquement inclus dans un dossier Licences placé à côté de l’application exécutable (Windows) ou dans le progiciel (macOS). -### Certification des applications sous OS X +### macOS signing certificate Le Générateur d’application permet de signer les applications 4D fusionnées sous macOS (applications monoposte, composants, 4D Server et parties clientes sous macOS). Signer une application permet d’autoriser son exécution par la fonctionnalité Gatekeeper de macOS lorsque l’option "Mac App Store et Développeurs identifiés" est sélectionnée (cf. "A propos de Gatekeeper" ci-dessous). -- Cochez l'option **Signer l’application** pour inclure la certification dans le processus de génération de l’application pour macOS : +- Check the **Sign application** option to include certification in the application builder procedure for macOS. 4D will check the availability of elements required for certification when the build occurs: ![](../assets/en/Admin/buildapposxcertProj.png) @@ -550,7 +554,7 @@ Pour obtenir un certificat de développeur auprès d’Apple, Inc., vous pouvez #### A propos de Gatekeeper -Gatekeeper est une fonction de sécurité d’OS X permettant de contrôler l’exécution des applications téléchargées depuis Internet. Si une application téléchargée ne provient pas de l’Apple Store ou n’est pas signée, elle est rejetée et ne peut être lancée. +Gatekeeper is a security feature of macOS that controls the execution of applications downloaded from the Internet. Si une application téléchargée ne provient pas de l’Apple Store ou n’est pas signée, elle est rejetée et ne peut être lancée. > Sur les machines Apple Silicon, les [composants](#components) 4D doivent être signés. Un composant non signé générera une erreur au démarrage de l'application ("lib4d-arm64.dylib can't be opened..."). @@ -560,10 +564,12 @@ L'option **Signer l'application** du Générateur d’application de 4D permet d La notarisation des applications est fortement recommandée par Apple à partir de macOS 10.14.5 (Mojave) et 10.15 (Catalina), car les applications non notariées déployées via Internet sont bloquées par défaut. -Les [fonctionnalités de signature intégrées](#os-x-signing-certificate) ont été mises à jour pour répondre à toutes les exigences d'Apple et permettre l'utilisation du service de notarisation d'Apple. La notarisation elle-même doit être réalisée par le développeur et est indépendante de 4D (à noter également qu'elle nécessite l'installation de Xcode). Veuillez vous référer à [ce post du blog 4D](https://blog.4d.com/how-to-notarize-your-merged-4d-application/) qui fournit une description, par étapes, du processus de notarisation. +The 4D [built-in signing features](#macos-signing-certificate) have been adapted to meet all of Apple's requirements to allow using the Apple notary service. La notarisation elle-même doit être réalisée par le développeur et est indépendante de 4D (à noter également qu'elle nécessite l'installation de Xcode). Veuillez vous référer à [ce post du blog 4D](https://blog.4d.com/how-to-notarize-your-merged-4d-application/) qui fournit une description, par étapes, du processus de notarisation. Pour plus d'informations sur le concept de notarisation, veuillez consulter [cette page sur le site Apple developer](https://developer.apple.com/documentation/xcode/notarizing_your_app_before_distribution/customizing_the_notarization_workflow). +For more information on the stapling concept, please read [this Apple forum post](https://forums.developer.apple.com/forums/thread/720093). + ## Personnaliser les icônes d’une application 4D associe une icône par défaut aux applications exécutables (monopostes et client-serveur). Vous pouvez cependant la personnaliser pour chaque application. @@ -578,7 +584,7 @@ Votre fichier d’icône doit avoir le même nom que le fichier du projet et com Votre fichier d’icône doit avoir le même nom que le fichier de structure interprété et comporter l’extension _.ico_. 4D prend automatiquement ce fichier en compte lors de la génération de l’application exécutable. -Vous pouvez également définir des [clés XML](https://doc.4d.com/4Dv17R6/4D/17-R6/4D-XML-Keys-BuildApplication.100-4465602.en.html) spécifiques dans le fichier buildApp.4DSettings pour désigner chaque icône devant être utilisée. Les clés suivantes sont disponibles : +You can also set specific [XML keys](https://doc.4d.com/4Dv20/4D/20/4D-XML-Keys-BuildApplication.100-6335734.en.html) in the buildApp.4DSettings file to designate each icon to use. Les clés suivantes sont disponibles : - RuntimeVLIconWinPath - RuntimeVLIconMacPath @@ -696,12 +702,12 @@ prefsUtilisateur:=Get 4D folder(Dossier 4D actif) Ce mécanisme permet de prendre en charge le cas où le serveur cible primaire est temporairement indisponible pour une raison quelconque (par exemple pour une opération de maintenance). Lorsque ce cas se produit pour la première fois, la boîte de dialogue de sélection de serveur est affichée (si elle est autorisée, cf. ci-dessous) et l'utilisateur peut manuellement sélectionner un serveur alternatif, dont le chemin est alors sauvegardé si la connexion est établie et validée. Toute indisponibilité ultérieure sera alors automatiquement prise en charge à l'aide des paramètres de connexion présents dans le fichier "lastServer.xml". -> - Lorsque les applications clientes ne peuvent pas bénéficier en permanence du service de découverte, par exemple en raison de la configuration réseau, il est recommandé que le développeur fournisse un nom d'hôte lors de la génération de l'application en utilisant la clé [IPAddress](https://doc.4d.com/4Dv17R6/4D/17-R6/IPAddress.300-4465710.en.html) dans le fichier "BuildApp.4DSettings". Le mécanisme de sauvegarde du chemin du dernier serveur est conçu pour les cas d'indisponibilité temporaire uniquement. +> - When client applications cannot permanently benefit from the discovery service, for example because of the network configuration, it is recommended that the developer provide a host name at build time using the [IPAddress](https://doc.4d.com/4Dv20/4D/20/IPAddress.300-6335763.en.html) key in the "BuildApp.4DSettings" file. Le mécanisme de sauvegarde du chemin du dernier serveur est conçu pour les cas d'indisponibilité temporaire uniquement. > - Dans tous les cas, il est possible de maintenir la touche **Alt/Option** au démarrage de l'application cliente afin d'afficher la boîte de dialogue de sélection du serveur. ### Accès à la boîte de dialogue de sélection de serveur en cas d'erreur -Vous pouvez choisir d'afficher ou non la boîte de dialogue standard de sélection de serveur sur les applications clientes fusionnées lorsque le serveur ne répond pas. La configuration dépend de la valeur de la clé XML [ServerSelectionAllowed](https://doc.4d.com/4Dv17R6/4D/17-R6/ServerSelectionAllowed.300-4465714.en.html) sur la machine où l'application a été créée : +Vous pouvez choisir d'afficher ou non la boîte de dialogue standard de sélection de serveur sur les applications clientes fusionnées lorsque le serveur ne répond pas. The configuration depends on the value of the [ServerSelectionAllowed](https://doc.4d.com/4Dv20/4D/20/ServerSelectionAllowed.300-6335767.en.html) XML key on the machine where the application was built: - **Affichage d'un message d'erreur sans accès possible à la boîte de dialogue de sélection de serveur**. Fonctionnement par défaut. L'application ne peut que quitter.\ `ServerSelectionAllowed`: **False** ou clé omise @@ -716,9 +722,9 @@ Vous pouvez choisir d'afficher ou non la boîte de dialogue standard de sélecti En principe, la mise à jour des applications serveur ou des applications mono-utilisateur fusionnées nécessite l'intervention de l'utilisateur (ou la programmation de routines système personnalisées) : chaque fois qu'une nouvelle version de l'application fusionnée est disponible, vous devez quitter l'application en production et remplacer manuellement les anciens fichiers par les nouveaux ; puis redémarrer l'application et sélectionner le fichier de données courant. -Vous pouvez automatiser cette procédure dans une large mesure en utilisant les commandes de langage suivantes : [`SET UPDATE FOLDER`](https://doc.4d.com/4dv19/help/command/fr/page1291.html), [`RESTART 4D`](https://doc.4d.com/4dv19/help/command/fr/page1292.html) et aussi [`Get last update log path`](https://doc.4d.com/4dv19/help/command/fr/page1301.html) pour surveiller les opérations. L'idée est d'implémenter une fonction dans votre application 4D déclenchant la séquence de mise à jour automatique décrite ci-dessous. Il peut s'agir d'une commande de menu ou d'un process s'exécutant en arrière-plan et vérifiant à intervalles réguliers la présence d'une archive sur un serveur. +You can automate this procedure to a large extent using the following language commands: [`SET UPDATE FOLDER`](../commands-legacy/set-update-folder.md), [`RESTART 4D`](../commands-legacy/restart-4d.md), and also [`Get last update log path`](../commands-legacy/get-last-update-log-path.md) for monitoring operations. L'idée est d'implémenter une fonction dans votre application 4D déclenchant la séquence de mise à jour automatique décrite ci-dessous. Il peut s'agir d'une commande de menu ou d'un process s'exécutant en arrière-plan et vérifiant à intervalles réguliers la présence d'une archive sur un serveur. -> Vous disposez également de clés XML pour élever les privilèges d'installation afin de pouvoir utiliser des fichiers protégés sous Windows (voir le manuel [4D XML Keys BuildApplication](https://doc.4d.com/4Dv19/4D/19/4D-XML-Keys-BuildApplication.100-5447429.fr.html)). +> You also have XML keys to elevate installation privileges so that you can use protected files under Windows (see the [4D XML Keys BuildApplication](https://doc.4d.com/4Dv20/4D/20/4D-XML-Keys-BuildApplication.100-6335734.en.html) manual). Voici le scénario pour la mise à jour d'un serveur ou d'une application mono-utilisateur fusionnée : @@ -734,4 +740,4 @@ La procédure d'installation produit un fichier journal détaillant les opérati Le journal de mise à jour est nommé `YYYY-MM-DD_HH-MM-SS_log_X.txt`, par exemple, `2021-08-25_14-23-00_log_1.txt` pour un fichier créé le 25 août 2021 à 14h23. -Ce fichier est créé dans le dossier de l'application "Updater", dans le dossier de l'utilisateur du système. Vous pouvez connaître l'emplacement de ce fichier à tout moment en utilisant la commande [`Get last update log path`](https://doc.4d.com/4dv19/help/command/fr/page1301.html). +Ce fichier est créé dans le dossier de l'application "Updater", dans le dossier de l'utilisateur du système. You can find out the location of this file at any time using the [`Get last update log path`](../commands-legacy/get-last-update-log-path.md) command. diff --git a/i18n/fr/docusaurus-plugin-content-docs/current/Notes/updates.md b/i18n/fr/docusaurus-plugin-content-docs/current/Notes/updates.md index e3af6a3d181c14..bd0a8e87df439c 100644 --- a/i18n/fr/docusaurus-plugin-content-docs/current/Notes/updates.md +++ b/i18n/fr/docusaurus-plugin-content-docs/current/Notes/updates.md @@ -9,13 +9,19 @@ Read [**What’s new in 4D 20 R8**](https://blog.4d.com/en-whats-new-in-4d-v20-R #### Points forts +- Implement your own [**HTTP request handlers**](../WebServer/http-request-handler.md) using the new [`4D.IncomingMessage`](../API/IncomingMessageClass.md) class. - Expressions used in [form object properties](../FormObjects/properties_Reference.md) now benefit from syntax checking in the [Property list](../FormEditor/formEditor.md#property-list) and in the [Compiler](../Project/compiler.md#check-syntax). - You can [associate a class to a form](../FormEditor/properties_FormProperties.md#form-class) to enable code type-ahead and automatic instantiation of form data when using the [`Form`](../commands/form.md) command. - Support of [standalone sessions](../API/SessionClass.md) to simplify local coding for client/server applications. +- [New built component architecture](../Desktop/building.md#build-component) for a better compliance with Apple notarization guidelines. - Langage 4D : - Modified commands: [`FORM EDIT`](../commands/form-edit.md) - [**Fixed bug list**](https://bugs.4d.fr/fixedbugslist?version=20_R8): list of all bugs that have been fixed in 4D 20 R8. +#### Changements de comportement + +- Because of their [new architecture](../Desktop/building.md#build-component), components built with 4D 20 R8 and higher cannot be installed in previous 4D releases. + ## 4D 20 R7 Lisez [**Les nouveautés de 4D 20 R7**](https://blog.4d.com/fr-whats-new-in-4d-20-R7/), l'article de blog qui liste toutes les nouvelles fonctionnalités et améliorations de 4D 20 R7. @@ -181,7 +187,7 @@ Voir [**Release Notes pour 4D 20.x LTS**](../../versioned_docs/version-20/Notes/ | Bibliothèque | Version courante | Mise à jour dans 4D | Commentaire | | ------------ | -------------------------------------- | ------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------- | | BoringSSL | 0aa300b | 20 R6 | Utilisé pour QUIC | -| CEF | 128 | **20 R7** | Chromium 6613 | +| CEF | 121 | 20 R5 | Chromium 6167 | | Hunspell | 1.7.2 | 20 | Utilisé pour la vérification orthographique dans les formulaires 4D et 4D Write Pro | | ICU | 73.2 | 20 | Cette mise à jour majeure entraîne une reconstruction automatique des index alphanumériques, texte et objets. | | libldap | 2.6.7 | 20 R6 | | diff --git a/i18n/fr/docusaurus-plugin-content-docs/current/Project/architecture.md b/i18n/fr/docusaurus-plugin-content-docs/current/Project/architecture.md index 3c5b9911932782..b1b079cc58237e 100644 --- a/i18n/fr/docusaurus-plugin-content-docs/current/Project/architecture.md +++ b/i18n/fr/docusaurus-plugin-content-docs/current/Project/architecture.md @@ -63,6 +63,7 @@ This text file can also contain configuration keys, in particular [`"tokenizedTe | lists.json | Listes définies | JSON | | filters.json | Filtres définis | JSON | | dependencies.json | Names of [components to load](components.md) in the project | JSON | +| HTTPHandlers.json | Custom [HTTP request handlers](../WebServer/http-request-handler.md) defined for the web server | JSON | | styleSheets.css | Feuilles de style CSS | CSS | | styleSheets_mac.css | Feuilles de style css sur Windows (à partir d'une base binaire convertie) | CSS | | styleSheets_windows.css | Feuilles de style css sur Mac (à partir d'une base binaire convertie) | CSS | diff --git a/i18n/fr/docusaurus-plugin-content-docs/current/Project/code-overview.md b/i18n/fr/docusaurus-plugin-content-docs/current/Project/code-overview.md index eeee50fbb9ea61..6f9f5f5bc69345 100644 --- a/i18n/fr/docusaurus-plugin-content-docs/current/Project/code-overview.md +++ b/i18n/fr/docusaurus-plugin-content-docs/current/Project/code-overview.md @@ -5,7 +5,7 @@ title: Methods and classes The 4D code used across your project is written in [methods](../Concepts/methods.md) and [classes](../Concepts/classes.md). -L'IDE de 4D vous offre diverses fonctionnalités pour créer, modifier, exporter ou supprimer votre code. You will usually use the 4D [code editor](../code-editor/write-class-method.md) to work with your code. +L'IDE de 4D vous offre diverses fonctionnalités pour créer, modifier, exporter ou supprimer votre code. You will usually use the included 4D [code editor](../code-editor/write-class-method.md) to work with your code. You can also use other editors such as **VS Code**, for which the [4D-Analyzer extension](https://github.com/4d/4D-Analyzer-VSCode) is available. ## Créer des méthodes diff --git a/i18n/fr/docusaurus-plugin-content-docs/current/Project/components.md b/i18n/fr/docusaurus-plugin-content-docs/current/Project/components.md index 0a35124bcdd06a..e4929368118b0a 100644 --- a/i18n/fr/docusaurus-plugin-content-docs/current/Project/components.md +++ b/i18n/fr/docusaurus-plugin-content-docs/current/Project/components.md @@ -11,12 +11,25 @@ When developing in 4D, the component files can be transparently stored in your c ## Interpreted and compiled components -Components can be interpreted or [compiled](../Desktop/building.md). The package folder of a component can contain: +Components can be interpreted or [compiled](../Desktop/building.md). -- either a Project folder (interpreted component) -- or a .4DZ file (compiled component) +- A 4D project running in interpreted mode can use either interpreted or compiled components. +- A 4D project running in compiled mode cannot use interpreted components. Dans ce cas, seuls les composants compilés peuvent être utilisés. -A 4D project running in interpreted mode can use either interpreted or compiled components. A 4D project running in compiled mode cannot use interpreted components. Dans ce cas, seuls les composants compilés peuvent être utilisés. +### Package folder + +The package folder of a component (_MyComponent.4dbase_ folder) can contain: + +- for **interpreted components**: a standard [Project folder](../Project/architecture.md) +- for **compiled components**: + - either a "Contents" folder containing a .4DZ file, a _Resources_ folder, an _Info.plist_ file (recommended architecture) + - or directly a .4DZ file with other folders such as _Resources_. + +:::note + +The "Contents" folder architecture is recommended for components if you want to [notarize](../Desktop/building.md#about-notarization) your applications on macOS. + +::: ## Loading components diff --git a/i18n/fr/docusaurus-plugin-content-docs/current/Project/overview.md b/i18n/fr/docusaurus-plugin-content-docs/current/Project/overview.md index 81570c1d16b04f..01828160a851c3 100644 --- a/i18n/fr/docusaurus-plugin-content-docs/current/Project/overview.md +++ b/i18n/fr/docusaurus-plugin-content-docs/current/Project/overview.md @@ -7,7 +7,7 @@ Un projet 4D contient l'intégralité du code source d'une application 4D, quel ## Fichiers du projet -Les fichiers de projet 4D sont ouverts et édités à l'aide d'applications standard de la plate-forme 4D (4D ou 4D Server). Avec 4D, des éditeurs complets sont disponibles pour gérer les fichiers, y compris un éditeur de structure, un éditeur de code, un éditeur de formulaire, un éditeur de menu, etc... +Les fichiers de projet 4D sont ouverts et édités à l'aide d'applications standard de la plate-forme 4D (4D ou 4D Server). With 4D, full-featured editors are available to manage files, including a structure editor, a [Code Editor](../code-editor/write-class-method.md), a [form editor](../FormEditor/formEditor.md), a menu editor... Les projets étant des fichiers lisibles, en texte brut (JSON, XML, etc.), ils peuvent être lus ou édités manuellement par les développeurs, à l’aide de n’importe quel éditeur de code. diff --git a/i18n/fr/docusaurus-plugin-content-docs/current/WebServer/authentication.md b/i18n/fr/docusaurus-plugin-content-docs/current/WebServer/authentication.md index a28c75c3d02026..ea7a578adfcfad 100644 --- a/i18n/fr/docusaurus-plugin-content-docs/current/WebServer/authentication.md +++ b/i18n/fr/docusaurus-plugin-content-docs/current/WebServer/authentication.md @@ -77,13 +77,14 @@ La méthode base `On Web Authentication` est donc appelée : - lorsque le serveur web reçoit une URL demandant une ressource qui n'existe pas - lorsque le serveur web reçoit une URL commençant par `4DACTION/`, `4DCGI/`... -- lorsque le serveur web reçoit une URL d'accès root et aucune page d'accueil n'a été définie dans les Paramètres ou à l'aide de la commande `WEB SET HOME PAGE` +- when the web server receives a root access URL and no home page has been set in the Settings or by means of the [`WEB SET HOME PAGE`](../commands-legacy/web-set-home-page.md) command - lorsque le serveur web traite une balise exécutant du code (par exemple `4DSCRIPT`) dans une page semi-dynamique. La méthode base `On Web Authentication` n'est PAS appelée : - lorsque le serveur web reçoit une URL demandant une page statique valide. - when the web server receives a URL beginning with `rest/` and the REST server is launched (in this case, the authentication is handled through the [`ds.authentify` function](../REST/authUsers#force-login-mode) or (deprecated) the [`On REST Authentication` database method](REST/configuration.md#using-the-on-rest-authentication-database-method) or [Structure settings](REST/configuration.md#using-the-structure-settings)). +- when the web server receives a URL with a pattern triggering a [custom HTTP Request Handler](http-request-handler.md). ### Syntaxe diff --git a/i18n/fr/docusaurus-plugin-content-docs/current/WebServer/http-request-handler.md b/i18n/fr/docusaurus-plugin-content-docs/current/WebServer/http-request-handler.md index 3a98212eac91d0..f981ed091baf83 100644 --- a/i18n/fr/docusaurus-plugin-content-docs/current/WebServer/http-request-handler.md +++ b/i18n/fr/docusaurus-plugin-content-docs/current/WebServer/http-request-handler.md @@ -66,10 +66,11 @@ The handler identifier is the couple [pattern + a verb among the verbs list]. URL patterns can be given as **prefixes** or using **regular expressions**. -- To declare a prefix pattern, use the "pattern" property name in the HTTPHandlers.json file. Prefixes are considered as regular expressions already containing starting and ending `/`.\ - Ex: `"pattern" : "docs"` or `"pattern" : "docs/invoices"` +- To declare a regular expression pattern, use the "regexPattern" property name in the HTTPHandlers.json file. Regular expressions patterns are handled directly.\ + Ex: `"regexPattern" : "/docs/**/index.html"` -- To declare a regular expression pattern, use the "regexPattern" property name in the HTTPHandlers.json file. Regular expressions patterns are handled directly. +- To declare a prefix pattern, use the "pattern" property name in the HTTPHandlers.json file. Regular expressions patterns are handled directly. + Regular expressions patterns are handled directly.\ Ex: `"regexPattern" : "/docs/**/index.html"` "Pattern" and "regexPattern" properties cannot be used in the same handler definition (in this case, only the "regexPattern" property is taken into account). @@ -251,7 +252,7 @@ Then, the request handler can use this information to trigger appropriate busine ### Output: an instance of the 4D.OutgoingMessage class -The request handler can return an object instance of the [4D.OutGoingMessage class](../API/OutGoingMessageClass.md), i.e. some full web content ready for a browser to handle, such as a file content. +The request handler can return an object instance of the [4D.OutGoingMessage class](../API/OutgoingMessageClass.md), i.e. some full web content ready for a browser to handle, such as a file content. ### Exemple diff --git a/i18n/fr/docusaurus-plugin-content-docs/current/WebServer/httpRequests.md b/i18n/fr/docusaurus-plugin-content-docs/current/WebServer/httpRequests.md index 76c330f6cddab9..858a1b4d8cf590 100644 --- a/i18n/fr/docusaurus-plugin-content-docs/current/WebServer/httpRequests.md +++ b/i18n/fr/docusaurus-plugin-content-docs/current/WebServer/httpRequests.md @@ -337,6 +337,6 @@ Le serveur web 4D prend en charge les fichiers envoyés en encodage de transfert ## Méthode projet COMPILER_WEB -La méthode COMPILER\_WEB, si elle existe, est systématiquement appelée lorsque le serveur HTTP reçoit une requête dynamique et appelle le moteur 4D. C'est le cas, par exemple, lorsque le serveur Web 4D reçoit un formulaire envoyé ou une URL à traiter dans [`On Web Connection`](#on-web-connection). Cette méthode est destinée à contenir des directives de typage et/ou d'initialisation de variables utilisées lors des échanges Web. Elle est utilisée par le compilateur lorsque l'application est compilée. La méthode COMPILER\_WEB est commune à tous les formulaires Web. Par défaut, la méthode COMPILER_WEB n'existe pas. Vous devez la créer explicitement. +La méthode COMPILER\_WEB, si elle existe, est systématiquement appelée lorsque le serveur HTTP reçoit une requête dynamique et appelle le moteur 4D. La méthode COMPILER\_WEB, si elle existe, est systématiquement appelée lorsque le serveur HTTP reçoit une requête dynamique et appelle le moteur 4D. Cette méthode est destinée à contenir des directives de typage et/ou d'initialisation de variables utilisées lors des échanges Web. Elle est utilisée par le compilateur lorsque l'application est compilée. La méthode COMPILER\_WEB est commune à tous les formulaires Web. Par défaut, la méthode COMPILER_WEB n'existe pas. Vous devez la créer explicitement. > La méthode projet COMPILER_WEB est également appelée, si elle existe, pour chaque requête SOAP acceptée. diff --git a/i18n/fr/docusaurus-plugin-content-docs/current/WebServer/qodly-studio.md b/i18n/fr/docusaurus-plugin-content-docs/current/WebServer/qodly-studio.md index 588319dad1eb90..95e21f58979df1 100644 --- a/i18n/fr/docusaurus-plugin-content-docs/current/WebServer/qodly-studio.md +++ b/i18n/fr/docusaurus-plugin-content-docs/current/WebServer/qodly-studio.md @@ -128,15 +128,15 @@ Il n'y a pas de compatibilité directe entre les applications implémentées ave ### Comparatif des fonctionnalités -| | Qodly Studio in 4D | Qodly Studio in Qodly Cloud platform | -| -------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------ | -| Afficher et modifier les tableaux (dataclasses), les attributs et les relations | Éditeur de structure 4D(1) | Éditeur de modèles de Qodly Studio | -| Qodly pages | Qodly Studio Page Editor | Qodly Studio Page Editor | -| Formulaires Desktop | 4D IDE | _non supporté_ | -| Langage de programmation | Langage 4D avec ORDA | [QodlyScript](https://developer.qodly.com/docs/category/qodlyscript) avec ORDA | -| IDE code | 4D IDE code editor _or_ VS Code with [4D extension](https://github.com/4d/4D-Analyzer-VSCode)
    _4D Server only_: Qodly Studio code editor (see (2)) | Éditeur de code Qodly Studio | -| Débogueur | 4D IDE debugger
    _4D Server only_: Qodly Studio debugger (see [this paragraph](#using-qodly-debugger-on-4d-server)) | Débogueur Qodly Studio | -| Rôles et privilèges REST/Web | Edition directe roles.json / Éditeur de rôles et privilèges de Qodly Studio | Éditeur de rôles et privilèges de Qodly Studio | +| | Qodly Studio in 4D | Qodly Studio in Qodly Cloud platform | +| -------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------ | +| Afficher et modifier les tableaux (dataclasses), les attributs et les relations | Éditeur de structure 4D(1) | Éditeur de modèles de Qodly Studio | +| Qodly pages | Qodly Studio Page Editor | Qodly Studio Page Editor | +| Formulaires Desktop | 4D IDE | _non supporté_ | +| Langage de programmation | Langage 4D avec ORDA | [QodlyScript](https://developer.qodly.com/docs/category/qodlyscript) avec ORDA | +| IDE code | 4D IDE code editor _or_ VS Code with [4D-Analyzer extension](https://github.com/4d/4D-Analyzer-VSCode)
    _4D Server only_: Qodly Studio code editor (see (2)) | Éditeur de code Qodly Studio | +| Débogueur | 4D IDE debugger
    _4D Server only_: Qodly Studio debugger (see [this paragraph](#using-qodly-debugger-on-4d-server)) | Débogueur Qodly Studio | +| Rôles et privilèges REST/Web | Edition directe roles.json / Éditeur de rôles et privilèges de Qodly Studio | Éditeur de rôles et privilèges de Qodly Studio | (1) The **Model** item is disabled in Qodly Studio.
    (2) In 4D Server, opening 4D code with the Qodly Studio code editor is supported **for testing and debugging purposes** (see [this paragraph](#development-and-deployment)). Note that in 4D single-user, if you open some 4D code with the Qodly Studio code editor, syntax coloring is not available and a "Lsp not loaded" warning is displayed. diff --git a/i18n/fr/docusaurus-plugin-content-docs/current/assets/en/Admin/buildapposxcertProj.png b/i18n/fr/docusaurus-plugin-content-docs/current/assets/en/Admin/buildapposxcertProj.png index de58a3d1eb1733..0afc8cd3cd6be1 100644 Binary files a/i18n/fr/docusaurus-plugin-content-docs/current/assets/en/Admin/buildapposxcertProj.png and b/i18n/fr/docusaurus-plugin-content-docs/current/assets/en/Admin/buildapposxcertProj.png differ diff --git a/i18n/fr/docusaurus-plugin-content-docs/current/code-editor/write-class-method.md b/i18n/fr/docusaurus-plugin-content-docs/current/code-editor/write-class-method.md index 38658dde151f61..0f896547a4f311 100644 --- a/i18n/fr/docusaurus-plugin-content-docs/current/code-editor/write-class-method.md +++ b/i18n/fr/docusaurus-plugin-content-docs/current/code-editor/write-class-method.md @@ -13,6 +13,12 @@ Vous pouvez faire défiler le contenu des méthodes, des classes et des fonction L'éditeur de code 4D fournit un contrôle de base des erreurs de syntaxe. Un contrôle d'erreur supplémentaire est effectué lors de l'exécution du code. Pour plus d'informations sur la gestion des erreurs, voir [Débogage](../Debugging/basics.md). +:::note + +If you are used to coding with **VS Code**, you can also use this editor with 4D code after installing the [4D-Analyzer](https://github.com/4d/4D-Analyzer-VSCode) extension. + +::: + ## Interface ### Toolbar (Barre d’outils) diff --git a/i18n/fr/docusaurus-plugin-content-docs/current/commands-legacy/array-text.md b/i18n/fr/docusaurus-plugin-content-docs/current/commands-legacy/array-text.md index 74db59b179f40f..cca38081865f11 100644 --- a/i18n/fr/docusaurus-plugin-content-docs/current/commands-legacy/array-text.md +++ b/i18n/fr/docusaurus-plugin-content-docs/current/commands-legacy/array-text.md @@ -54,7 +54,3 @@ Cet exemple crée un tableau interprocess de 50 éléments de type [Texte](# "Un     ◊tabTexte{$vElem}:="Elément n°"+String($vElem)  End for ``` - -#### Voir aussi - -*\_o\_ARRAY STRING* \ No newline at end of file diff --git a/i18n/fr/docusaurus-plugin-content-docs/current/commands-legacy/data-file.md b/i18n/fr/docusaurus-plugin-content-docs/current/commands-legacy/data-file.md index 94a437d09a0c46..2b760ffa61e7ba 100644 --- a/i18n/fr/docusaurus-plugin-content-docs/current/commands-legacy/data-file.md +++ b/i18n/fr/docusaurus-plugin-content-docs/current/commands-legacy/data-file.md @@ -30,6 +30,5 @@ Si, par exemple, vous travaillez avec la base MesCDs qui se trouve dans le dossi #### Voir aussi -*\_o\_DATA SEGMENT LIST* [Application file](application-file.md) [Structure file](structure-file.md) \ No newline at end of file diff --git a/i18n/fr/docusaurus-plugin-content-docs/current/commands-legacy/drop-position.md b/i18n/fr/docusaurus-plugin-content-docs/current/commands-legacy/drop-position.md index b329ca321a7c29..8c7fe13040641d 100644 --- a/i18n/fr/docusaurus-plugin-content-docs/current/commands-legacy/drop-position.md +++ b/i18n/fr/docusaurus-plugin-content-docs/current/commands-legacy/drop-position.md @@ -93,5 +93,4 @@ La méthode objet de la list box de gauche (destination) contient le code suivan #### Voir aussi -*\_o\_DRAG AND DROP PROPERTIES* *Présentation du Glisser-Déposer* \ No newline at end of file diff --git a/i18n/fr/docusaurus-plugin-content-docs/current/commands-legacy/filter-keystroke.md b/i18n/fr/docusaurus-plugin-content-docs/current/commands-legacy/filter-keystroke.md index cc70db823b33c3..779d94e78b6850 100644 --- a/i18n/fr/docusaurus-plugin-content-docs/current/commands-legacy/filter-keystroke.md +++ b/i18n/fr/docusaurus-plugin-content-docs/current/commands-legacy/filter-keystroke.md @@ -81,71 +81,68 @@ Vous disposez dans votre application de diverses zones de texte dans lesquelles Comme décrit ci-dessus, lorsque vous éditez une zone de texte, la valeur du champ ou de la variable de texte ne sera réellement modifiée que lorsque que vous l'aurez validée. Pour retrouver et insérer rapidement des entrées du glossaire dans une zone de texte alors qu'elle est en train d'être modifiée, vous devez donc créer une seconde zone "tampon" pour y placer les valeurs saisies. Vous pouvez effectuer cette opération à l'aide de la méthode projet décrite ci-dessous. Vous passez comme premiers paramètres des pointeurs vers la zone de saisie et vers la variable, puis la chaîne de caractère “interdits” comme troisième paramètre. Peu importe comment l'entrée clavier sera traitée, la méthode retourne la valeur saisie originale. Les caractères “interdits” sont les caractères que vous ne voulez pas insérer dans la zone saisissable et que vous voulez traiter en tant que caractères spéciaux. ```4d -  // Méthode projet Frappe clavier tampon -  // Frappe clavier tampon ( Pointeur ; Pointeur ; Alpha ) -> Alpha -  // Frappe clavier tampon ( -> zoneSource ; -> valeurCourante ; Filtre ) -> Ancien frappe clavier - C_STRING(1;$0) - var $1;$2 : Pointer - var $vtNouvValeur : Text - C_STRING(255;$3) -  // Retourne la frappe clavier originale - $0:=Keystroke -  // Obtenir la sélection de texte dans la zone saisissable - GET HIGHLIGHT($1->;$vlDébut;$vlFin) -  // Commencer à travailler sur la valeur courante - $vtNouvValeur:=$2-> -  // En fonction de la touche enfoncée ou du caractère saisi, effectuer les actions appropriées +  // Shadow keystroke project method +  // Shadow keystroke ( Pointer ; Pointer ; String ) -> String +  // Shadow keystroke ( -> srcArea ; -> curValue ; Filter ) -> Old keystroke +#DECLARE ($srcArea : Pointer ; $curVal : Pointer ; $filter : Text) -> $old : Text + var $vtNewValue : Text +  // Return the original keystroke + $old:=Keystroke +  // Get the text selection range within the enterable area + GET HIGHLIGHT($srcArea->;$vlStart;$vlEnd) +  // Start working with the current value + $vtNewValue:=$curVal-> +  // Depending on the key pressed or the character entered, +  // Perform the appropriate actions  Case of -  // La touche Retour arrière a été enfoncée -    :(Character code($0)=Backspace key) -  // Supprimer les caractères sélectionnés ou le caractère à gauche du curseur -       $vtNouvValeur:=Supprimer texte($vtNouvValeur;$vlDébut;$vlFin) -  // Une touche "flèche" a été appuyée -  // Ne faites rien sauf accepter la frappe clavier -    :(Character code($0)=Left arrow key) -    :(Character code($0)=Right arrow key) -    :(Character code($0)=Up arrow key) -    :(Character code($0)=Down arrow key) +  // The Backspace (Delete) key has been pressed +    :(Character code($old)=Backspace) +  // Delete the selected characters or the character at the left of the text cursor +       $vtNewValue:=Delete text($vtNewValue;$vlStart;$vlEnd) +  // An Arrow key has been pressed +  // Do nothing, but accept the keystroke +    :(Character code($old)=Left arrow key) +    :(Character code($old)=Right arrow key) +    :(Character code($old)=Up arrow key) +    :(Character code($old)=Down arrow key)   -  // Un caractère valide a été saisi -    :(Position($0;$3)=0) -       $vtNouvValeur:=Inserer texte($vtNouvValeur;$vlDébut;$vlFin;$0) +  // An acceptable character has been entered +    :(Position($old;$filter)=0) +       $vtNewValue:=Insert text($vtNewValue;$vlStart;$vlEnd;$0)     Else -  // Le caractère n'est pas accepté +  // The character is not accepted        FILTER KEYSTROKE("")  End case -  // Retourner la valeur pour la prochaine gestion de la frappe clavier - $2->:=$vtNouvValeur +  // Return the value for the next keystroke handling + $curVal->:=$vtNewValue ``` + Cette méthode utilise les sous-méthodes suivantes : ```4d -  // Méthode projet Supprimer texte -  // Supprimer texte ( Alpha ; Long ; Long ) -> Alpha -  // Supprimer texte ( -> Texte ; SelDébut ; SelFin ) -> Nouveau texte - var $0;$1 : Text - var $2;$3 : Integer - $0:=Substring($1;1;$2-1-Num($2=$3))+Substring($1;$3) +  // Delete text project method +  // Delete text ( String ; Long ; Long ) -> String +  // Delete text ( -> Text ; SelStart ; SelEnd ) -> New text +#DECLARE ($src : Text ; $start : Integer ; $end : Integer) -> $new : Text  + $new:=Substring($src;1;$start-1-Num($start=$end))+Substring($src;$end) ``` - -```4d -  // Méthode projet Inserer texte -  // Inserer texte ( Alpha ; Long ; Long ; Alpha ) -> Alpha -  // Inserer texte ( -> texteSource ; SelDébut ; SelFin ; Texte à insérer ) -> Nouveau texte - var $0;$1;$4 : Text - var $2;$3 : Integer - $0:=$1 - If($2#$3) -    $0:=Substring($0;1;$2-1)+$4+Substring($0;$3) +```4d  +  // Insert text project method +  // Insert text ( String ; Long ; Long ; String ) -> String +  // Insert text ( -> srcText ; SelStart ; SelEnd ; Text to insert ) -> New text +#DECLARE ($src : Text ; $start : Integer ; $end : Integer ; $toInsert : Text) -> $new : Text  + $new:=$src + If($start # $end) +    $new:=Substring($new;1;$start-1)+$toInsert+Substring($new;$end)  Else     Case of -       :($2<=1) -          $0:=$4+$0 -       :($2>Length($0)) -          $0:=$0+$4 +       :($start<=1) +          $new:=$toInsert+$new +       :($start>Length($new)) +          $new:=$new+$toInsert        Else -          $0:=Substring($0;1;$2-1)+$4+Substring($0;$2) +          $new:=Substring($new;1;$start-1)+$toInsert+Substring($new;$start)     End case  End if ``` @@ -153,21 +150,21 @@ Cette méthode utilise les sous-méthodes suivantes : Une fois que vous avez ajouté ces méthodes projet à votre base, vous pouvez les utiliser de la manière suivante : ```4d -  // Méthode objet de la zone saisissable vaDescription +  // vsDescription enterable area object method  Case of     :(FORM Event=On Load) -       vaDescription:="" -       vaDescriptionDouble:="" -  // Etablir la liste des caractères “interdits” à traiter comme des touches spéciales -  // (Dans cet exemple, seule la touche Aide est filtrée) -       vaTouchesSpéciales:=Char(Help key) +       vsDescription:="" +       vsShadowDescription:="" +  // Establish the list of the “forbidden” characters to be treated as special keys +  // ( here, in this example, only the Help Key is filtered) +       vsSpecialKeys:=Char(HelpKey)     :(FORM Event=On Before Keystroke) -       $vsKey:=Frappe clavier tampon(->vaDescription;->vaDescriptionDouble;vaTouchesSpéciales) +       $vsKey:=Shadow keystroke(->vsDescription;->vsShadowDescription;vsSpecialKeys)        Case of           :(Character code($vsKey)=Help key) -  // Faire quelque chose lorsque la touche Aide est enfoncée -  // Dans cet exemple, une saisie de glossaire doit être recherchée et insérée -             chercher_Glossaire(->vaDescription;->vaDescriptionDouble) +  // Do something when the Help key is pressed +  // Here, in this example, a Dictionary entry must be searched and inserted +             LOOKUP DICTIONARY(->vsDescription;->vsShadowDescription)        End case  End case ``` @@ -175,37 +172,41 @@ Une fois que vous avez ajouté ces méthodes projet à votre base, vous pouvez l La méthode projet chercher\_Glossaire est listée ci-dessous (le point principal est l'utilisation de la variable tampon pour réaffecter la zone saisissable à modifier) : ```4d -  // Méthode projet chercher_Glossaire -  // chercher_Glossaire ( Pointeur ; Pointeur ) -  // chercher_Glossaire ( -> zone saisissable ; ->variable double ) - var $1;$2 : Pointer - var $vlDébut;$vlFin : Integer -  // Obtenir la sélection de texte dans la zone saisissable - GET HIGHLIGHT($1->;$vlDébut;$vlFin) -  // Obtenir le texte sélectionné ou le mot situé à gauche du curseur $vtTexteSelectionne:=obtenirTexteSelectionne ($2->;$vlDébut;$vlFin) -  // Y a-t-il quelque chose à rechercher ? - If($vtTexteSelectionne#"") -  // Si la sélection de texte était le curseur, la sélection débute au mot situé après le curseur -    If($vlDébut=$vlFin) -       $vlDébut:=$vlDébut-Length($vtTexteSelectionne) +  // LOOKUP DICTIONARY project method +  // LOOKUP DICTIONARY ( Pointer ; Pointer ) +  // LOOKUP DICTIONARY ( -> Enterable Area ; ->ShadowVariable ) +  +#DECLARE ($area : Pointer ; $shadow : Pointer) + var $vlStart;$vlEnd : Integer +  +  // Get the text selection range within the enterable area + GET HIGHLIGHT($area->;$vlStart;$vlEnd) +  // Get the selected text or the word on the left of the text cursor + $vtHighlightedText:=Get highlighted text($shadow->;$vlStart;$vlEnd) +  // Is there something to look for? + If($vtHighlightedText#"") +  // If the text selection was the text cursor, +  // the selection now starts at the word preceeding the text cursor +    If($vlStart=$vlEnd) +       $vlStart:=$vlStart-Length($vtHighlightedText)     End if -  // Chercher la première entrée du glossaire disponible -    QUERY([Glossaire];[Glossaire]Saisie=$vtTexteSelectionne+"@") -  // Existe-t-elle ? -    If(Records in selection([Glossaire])>0) -  // Si oui, l'insérer dans la zone tampon -       $2->:=Inserer texte($2->;$vlDébut;$vlFin;[Glossaire]Saisie) -  // Copier le tampon dans la zone saisissable -       $1->:=$2-> -  // Fixer la sélection après avoir inséré l'entrée du glossaire -       $vlFin:=$vlDébut+Length([Dictionnaire]Saisie) -       HIGHLIGHT TEXT(vsComments;$vlFin;$vlFin) +  // Look for the first available dictionary entry +    QUERY([Dictionary];[Dictionary]Entry=$vtHighlightedText+"@") +  // Is there one? +    If(Records in selection([Dictionary])>0) +  // If so, insert it in the shadow text +       $shadow->:=Insert text($shadow->;$vlStart;$vlEnd;[Dictionary]Entry) +  // Copy the shadow text to the enterable being edited +       $area->:=$shadow-> +  // Set the selection just after the insert dictionary entry +       $vlEnd:=$vlStart+Length([Dictionary]Entry) +       HIGHLIGHT TEXT(vsComments;$vlEnd;$vlEnd)     Else -  // Il n'y a pas d'entrée qui correspond dans le glossaire +  // There is no corresponding entry in the Dictionary        BEEP     End if  Else -  // Il n'y a pas de texte sélectionné +  // There is no highlighted text     BEEP  End if ``` @@ -213,29 +214,29 @@ La méthode projet chercher\_Glossaire est listée ci-dessous (le point principa La méthode obtenirTexteSelectionne est la suivante : ```4d -  // Méthode objet obtenirTexteSelectionne -  // obtenirTexteSelectionne ( Alpha ; Entier long ; Entier long ) -> Alpha -  // obtenirTexteSelectionne ( Texte ; SelDébut ; SelFin ) -> texte sélectionné - var $0;$1 : Text - var $2;$3 : Integer - If($2<$3) -    $0:=Substring($1;$2;$3-$2) +  // Get highlighted text project method +  // Get highlighted text ( String ; Long ; Long ) -> String +  // Get highlighted text ( Text ; SelStart ; SelEnd ) -> highlighted text +#DECLARE ($text : Text ; $start : Integer ; $end : Integer) -> $highlight : Text + If($start<$end) +    $highlight:=Substring($text;$start;$end-$start)  Else -    $0:="" -    $2:=$2-1 +    $highlight:="" +    $start:=$start-1     Repeat -       If($2>0) -          If(Position($1[[$2]];"  ,.!?:;()-_–—")=0) -             $0:=$1[[$2]]+$0 -             $2:=$2-1 +       If($start>0) +          If(Position($text[[$start]];"  ,.!?:;()-_–—")=0) +             $highlight:=$text[[$start]]+$highlight +             $start:=$start-1           Else -             $2:=0 +             $start:=0           End if        End if -    Until($2=0) +    Until($start=0)  End if ``` + #### Voir aussi [Form event code](../commands/form-event-code.md) diff --git a/i18n/fr/docusaurus-plugin-content-docs/current/commands-legacy/font-list.md b/i18n/fr/docusaurus-plugin-content-docs/current/commands-legacy/font-list.md index b1376c9e1e9834..eefd0bed0a9e7d 100644 --- a/i18n/fr/docusaurus-plugin-content-docs/current/commands-legacy/font-list.md +++ b/i18n/fr/docusaurus-plugin-content-docs/current/commands-legacy/font-list.md @@ -67,7 +67,6 @@ Vous souhaitez obtenir la liste des polices récentes : #### Voir aussi -*\_o\_Font name* [FONT STYLE LIST](font-style-list.md) [OBJECT SET FONT](object-set-font.md) [SET RECENT FONTS](set-recent-fonts.md) diff --git a/i18n/fr/docusaurus-plugin-content-docs/current/commands-legacy/form-set-input.md b/i18n/fr/docusaurus-plugin-content-docs/current/commands-legacy/form-set-input.md index f42e6de55350cc..6654cb67beeb86 100644 --- a/i18n/fr/docusaurus-plugin-content-docs/current/commands-legacy/form-set-input.md +++ b/i18n/fr/docusaurus-plugin-content-docs/current/commands-legacy/form-set-input.md @@ -94,7 +94,6 @@ Résultat : #### Voir aussi -*\_o\_CREATE USER FORM* [ADD RECORD](add-record.md) [DISPLAY RECORD](display-record.md) [DISPLAY SELECTION](display-selection.md) diff --git a/i18n/fr/docusaurus-plugin-content-docs/current/commands-legacy/form-set-output.md b/i18n/fr/docusaurus-plugin-content-docs/current/commands-legacy/form-set-output.md index 00b345bbc2630b..6669cee41b318d 100644 --- a/i18n/fr/docusaurus-plugin-content-docs/current/commands-legacy/form-set-output.md +++ b/i18n/fr/docusaurus-plugin-content-docs/current/commands-legacy/form-set-output.md @@ -80,7 +80,6 @@ L'exemple suivant utilise un formulaire décrit dans un fichier .json : #### Voir aussi -*\_o\_CREATE USER FORM* [DISPLAY SELECTION](display-selection.md) [EXPORT DIF](export-dif.md) [EXPORT SYLK](export-sylk.md) diff --git a/i18n/fr/docusaurus-plugin-content-docs/current/commands-legacy/get-document-properties.md b/i18n/fr/docusaurus-plugin-content-docs/current/commands-legacy/get-document-properties.md index f613e1ed0819d0..4a1121a2ad2511 100644 --- a/i18n/fr/docusaurus-plugin-content-docs/current/commands-legacy/get-document-properties.md +++ b/i18n/fr/docusaurus-plugin-content-docs/current/commands-legacy/get-document-properties.md @@ -207,6 +207,4 @@ Une fois que cela est implémenté dans votre base, il suffit d'écrire la méth #### Voir aussi -*\_o\_Document creator* -*\_o\_Document type* [SET DOCUMENT PROPERTIES](set-document-properties.md) \ No newline at end of file diff --git a/i18n/fr/docusaurus-plugin-content-docs/current/commands-legacy/get-highlight.md b/i18n/fr/docusaurus-plugin-content-docs/current/commands-legacy/get-highlight.md index cf6c602a458662..834d0dcbff4269 100644 --- a/i18n/fr/docusaurus-plugin-content-docs/current/commands-legacy/get-highlight.md +++ b/i18n/fr/docusaurus-plugin-content-docs/current/commands-legacy/get-highlight.md @@ -41,8 +41,10 @@ Si l'objet désigné par le paramètre *objet* n'est pas trouvé dans le formula L'exemple suivant récupère le texte sélectionné dans le champ *\[Produits\]Notes* : ```4d - GET HIGHLIGHT([Produits]Notes;vPremier;vDernier) - If(vPremier +GET HIGHLIGHT([Products]Comments;vFirst;vLast) +If(vFirst < vlast) + ALERT("The selected text is:"+Substring([Products]Comments;vFirst;vLast-vFirst)) +End if ``` #### Exemple 2 diff --git a/i18n/fr/docusaurus-plugin-content-docs/current/commands-legacy/get-process-variable.md b/i18n/fr/docusaurus-plugin-content-docs/current/commands-legacy/get-process-variable.md index c091a3800179f8..4fd35f6ba770f7 100644 --- a/i18n/fr/docusaurus-plugin-content-docs/current/commands-legacy/get-process-variable.md +++ b/i18n/fr/docusaurus-plugin-content-docs/current/commands-legacy/get-process-variable.md @@ -114,7 +114,6 @@ Reportez-vous à l'exemple de la commande *\_o\_DRAG AND DROP PROPERTIES*. #### Voir aussi -*\_o\_DRAG AND DROP PROPERTIES* *Introduction aux process* [POST OUTSIDE CALL](post-outside-call.md) *Présentation du Glisser-Déposer* diff --git a/i18n/fr/docusaurus-plugin-content-docs/current/commands-legacy/in-break.md b/i18n/fr/docusaurus-plugin-content-docs/current/commands-legacy/in-break.md index 969ca4c39b03c3..3e29eca765370f 100644 --- a/i18n/fr/docusaurus-plugin-content-docs/current/commands-legacy/in-break.md +++ b/i18n/fr/docusaurus-plugin-content-docs/current/commands-legacy/in-break.md @@ -26,6 +26,5 @@ Si vous souhaitez que le cycle d'exécution **In break** soit généré, assurez #### Voir aussi -*\_o\_During* [In footer](in-footer.md) [In header](in-header.md) \ No newline at end of file diff --git a/i18n/fr/docusaurus-plugin-content-docs/current/commands-legacy/in-footer.md b/i18n/fr/docusaurus-plugin-content-docs/current/commands-legacy/in-footer.md index 63c8f60db3aff5..4b7f0e2adcb982 100644 --- a/i18n/fr/docusaurus-plugin-content-docs/current/commands-legacy/in-footer.md +++ b/i18n/fr/docusaurus-plugin-content-docs/current/commands-legacy/in-footer.md @@ -26,6 +26,5 @@ Si vous voulez que le cycle d'exécution **In footer** soit généré, vérifiez #### Voir aussi -*\_o\_During* [In break](in-break.md) [In header](in-header.md) \ No newline at end of file diff --git a/i18n/fr/docusaurus-plugin-content-docs/current/commands-legacy/in-header.md b/i18n/fr/docusaurus-plugin-content-docs/current/commands-legacy/in-header.md index 7fe1d12b8a7550..a83e5b3f3f11a8 100644 --- a/i18n/fr/docusaurus-plugin-content-docs/current/commands-legacy/in-header.md +++ b/i18n/fr/docusaurus-plugin-content-docs/current/commands-legacy/in-header.md @@ -26,6 +26,5 @@ Si vous souhaitez que le cycle d'exécution **In header** soit généré, assure #### Voir aussi -*\_o\_During* [In break](in-break.md) [In footer](in-footer.md) \ No newline at end of file diff --git a/i18n/fr/docusaurus-plugin-content-docs/current/commands-legacy/integrate-mirror-log-file.md b/i18n/fr/docusaurus-plugin-content-docs/current/commands-legacy/integrate-mirror-log-file.md index 180e691b6ca094..f95d997f726e3b 100644 --- a/i18n/fr/docusaurus-plugin-content-docs/current/commands-legacy/integrate-mirror-log-file.md +++ b/i18n/fr/docusaurus-plugin-content-docs/current/commands-legacy/integrate-mirror-log-file.md @@ -98,6 +98,4 @@ Si l'intégration s'effectue correctement, la variable système OK prend la vale #### Voir aussi - -*\_o\_INTEGRATE LOG FILE* [LOG FILE TO JSON](log-file-to-json.md) \ No newline at end of file diff --git a/i18n/fr/docusaurus-plugin-content-docs/current/commands-legacy/is-a-list.md b/i18n/fr/docusaurus-plugin-content-docs/current/commands-legacy/is-a-list.md index 5b77225464598c..98ea88db4d1f16 100644 --- a/i18n/fr/docusaurus-plugin-content-docs/current/commands-legacy/is-a-list.md +++ b/i18n/fr/docusaurus-plugin-content-docs/current/commands-legacy/is-a-list.md @@ -31,4 +31,3 @@ Reportez-vous aux exemples de la commande *\_o\_DRAG AND DROP PROPERTIES*. #### Voir aussi -*\_o\_DRAG AND DROP PROPERTIES* \ No newline at end of file diff --git a/i18n/fr/docusaurus-plugin-content-docs/current/commands-legacy/new-log-file.md b/i18n/fr/docusaurus-plugin-content-docs/current/commands-legacy/new-log-file.md index 9106671a38a0af..bdd2be543a37ba 100644 --- a/i18n/fr/docusaurus-plugin-content-docs/current/commands-legacy/new-log-file.md +++ b/i18n/fr/docusaurus-plugin-content-docs/current/commands-legacy/new-log-file.md @@ -30,6 +30,3 @@ Le fichier est renommé avec les numéros de sauvegarde courants de la base et d En cas d'anomalie, la commande génère une erreur que vous pouvez intercepter à l’aide de la commande [ON ERR CALL](on-err-call.md). -#### Voir aussi - -*\_o\_INTEGRATE LOG FILE* \ No newline at end of file diff --git a/i18n/fr/docusaurus-plugin-content-docs/current/commands-legacy/object-set-action.md b/i18n/fr/docusaurus-plugin-content-docs/current/commands-legacy/object-set-action.md index 3b46048c8ba863..88888715bec7d3 100644 --- a/i18n/fr/docusaurus-plugin-content-docs/current/commands-legacy/object-set-action.md +++ b/i18n/fr/docusaurus-plugin-content-docs/current/commands-legacy/object-set-action.md @@ -40,5 +40,4 @@ Vous souhaitez associer l’action standard de validation à un bouton : #### Voir aussi -*\_o\_OBJECT Get action* [OBJECT Get action](object-get-action.md) \ No newline at end of file diff --git a/i18n/fr/docusaurus-plugin-content-docs/current/commands-legacy/object-set-rgb-colors.md b/i18n/fr/docusaurus-plugin-content-docs/current/commands-legacy/object-set-rgb-colors.md index 07dd00039a550f..61da8be421f8db 100644 --- a/i18n/fr/docusaurus-plugin-content-docs/current/commands-legacy/object-set-rgb-colors.md +++ b/i18n/fr/docusaurus-plugin-content-docs/current/commands-legacy/object-set-rgb-colors.md @@ -105,6 +105,5 @@ Passage du fond en transparent avec couleur de police claire : #### Voir aussi -*\_o\_OBJECT SET COLOR* [OBJECT GET RGB COLORS](object-get-rgb-colors.md) [Select RGB Color](select-rgb-color.md) \ No newline at end of file diff --git a/i18n/fr/docusaurus-plugin-content-docs/current/commands-legacy/picture-to-blob.md b/i18n/fr/docusaurus-plugin-content-docs/current/commands-legacy/picture-to-blob.md index 179131e6ee0034..1e5d59f47d4cec 100644 --- a/i18n/fr/docusaurus-plugin-content-docs/current/commands-legacy/picture-to-blob.md +++ b/i18n/fr/docusaurus-plugin-content-docs/current/commands-legacy/picture-to-blob.md @@ -46,7 +46,6 @@ Vous voulez convertir une image depuis un format propriétaire vers le format GI #### Voir aussi -*\_o\_PICTURE TO GIF* [BLOB TO PICTURE](blob-to-picture.md) [PICTURE CODEC LIST](picture-codec-list.md) [WRITE PICTURE FILE](write-picture-file.md) \ No newline at end of file diff --git a/i18n/fr/docusaurus-plugin-content-docs/current/commands-legacy/print-selection.md b/i18n/fr/docusaurus-plugin-content-docs/current/commands-legacy/print-selection.md index 227bc9b193820e..2fe760ec612318 100644 --- a/i18n/fr/docusaurus-plugin-content-docs/current/commands-legacy/print-selection.md +++ b/i18n/fr/docusaurus-plugin-content-docs/current/commands-legacy/print-selection.md @@ -63,7 +63,6 @@ L'exemple suivant sélectionne la totalité des enregistrements de la table \[Pe #### Voir aussi -*\_o\_PAGE SETUP* [ACCUMULATE](accumulate.md) [BREAK LEVEL](break-level.md) [Level](level.md) diff --git a/i18n/fr/docusaurus-plugin-content-docs/current/commands-legacy/resolve-pointer.md b/i18n/fr/docusaurus-plugin-content-docs/current/commands-legacy/resolve-pointer.md index 7278cea844735d..bb4578ff63bce0 100644 --- a/i18n/fr/docusaurus-plugin-content-docs/current/commands-legacy/resolve-pointer.md +++ b/i18n/fr/docusaurus-plugin-content-docs/current/commands-legacy/resolve-pointer.md @@ -100,7 +100,6 @@ Voici un exemple de pointeur vers un tableau 2D : #### Voir aussi -*\_o\_DRAG AND DROP PROPERTIES* [Field](field.md) [Get pointer](get-pointer.md) [Is a variable](is-a-variable.md) diff --git a/i18n/fr/docusaurus-plugin-content-docs/current/commands-legacy/set-document-properties.md b/i18n/fr/docusaurus-plugin-content-docs/current/commands-legacy/set-document-properties.md index 6b3cf4ed8792b2..6211ff5209679e 100644 --- a/i18n/fr/docusaurus-plugin-content-docs/current/commands-legacy/set-document-properties.md +++ b/i18n/fr/docusaurus-plugin-content-docs/current/commands-legacy/set-document-properties.md @@ -34,6 +34,4 @@ L'heure et la date de création et de dernière modification sont gérées par l #### Voir aussi -*\_o\_SET DOCUMENT CREATOR* -*\_o\_SET DOCUMENT TYPE* [GET DOCUMENT PROPERTIES](get-document-properties.md) \ No newline at end of file diff --git a/i18n/fr/docusaurus-plugin-content-docs/current/commands-legacy/structure-file.md b/i18n/fr/docusaurus-plugin-content-docs/current/commands-legacy/structure-file.md index 586746810ee40a..c58ab1bcda4119 100644 --- a/i18n/fr/docusaurus-plugin-content-docs/current/commands-legacy/structure-file.md +++ b/i18n/fr/docusaurus-plugin-content-docs/current/commands-legacy/structure-file.md @@ -64,7 +64,6 @@ L’exemple suivant permet de savoir si la méthode est appelée depuis un compo #### Voir aussi -*\_o\_DATA SEGMENT LIST* [Application file](application-file.md) [COMPONENT LIST](component-list.md) [Data file](data-file.md) \ No newline at end of file diff --git a/i18n/fr/docusaurus-plugin-content-docs/current/commands-legacy/use-character-set.md b/i18n/fr/docusaurus-plugin-content-docs/current/commands-legacy/use-character-set.md index 84e0ddac41ef95..c39e2abe173813 100644 --- a/i18n/fr/docusaurus-plugin-content-docs/current/commands-legacy/use-character-set.md +++ b/i18n/fr/docusaurus-plugin-content-docs/current/commands-legacy/use-character-set.md @@ -40,8 +40,6 @@ La variable système OK prend la valeur 1 si le filtre est correctement chargé, #### Voir aussi -*\_o\_Mac to Win* -*\_o\_Win to Mac* [EXPORT DIF](export-dif.md) [EXPORT SYLK](export-sylk.md) [EXPORT TEXT](export-text.md) diff --git a/i18n/fr/docusaurus-plugin-content-docs/current/commands/compile-project.md b/i18n/fr/docusaurus-plugin-content-docs/current/commands/compile-project.md index d55880e899517a..0657997428d06c 100644 --- a/i18n/fr/docusaurus-plugin-content-docs/current/commands/compile-project.md +++ b/i18n/fr/docusaurus-plugin-content-docs/current/commands/compile-project.md @@ -118,20 +118,20 @@ For more information, see [Compilation tools](../Project/compiler.md#compilation The `code` property in `methods.code` and `errors.code` is an object with the following properties: -| **Property** | **Type** | **Description** | -| -------------- | ----------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | -| type | Text | "projectMethod", "formObjectMethod", "formMethod", "databaseMethod", "triggerMethod", "executeOnServer" (when calling a project method with the *Execute on Server attribute*), "executeFormula" (when executing a formula via [PROCESS 4D TAGS](process-4d-tags.md) or evaluation of a formula in a 4D Write Pro document), "class", "classFunction", "formObjectExpression" (for errors occuring in expressions associated to form objects) | -| path | Text | Method path (same format as [METHOD OPEN PATH](method-open-path.md)) | -| file | 4D.File | Method file | -| | | **Returned depending on the value of the `type` property:** | -| methodName | Text | Méthode | -| table | Number | Number of the table (returned for a trigger, a table form method or a table form object method) | -| formName | Text | Form name (returned for a form method) | -| objectName | Text | Form object name (returned for an object method) | -| propertyName | Text | Form object property name (returned for a form object expression) | -| className | Text | Class name | -| functionName | Text | Nom de la fonction de classe | -| databaseMethod | Number | Database method index | +| **Property** | **Type** | **Description** | +| -------------- | ----------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| type | Text | "projectMethod", "formObjectMethod", "formMethod", "databaseMethod", "triggerMethod", "executeOnServer" (when calling a project method with the *Execute on Server attribute*), "executeFormula" (when executing a formula via [PROCESS 4D TAGS](../commands-legacy/process-4d-tags.md) or evaluation of a formula in a 4D Write Pro document), "class", "classFunction", "formObjectExpression" (for errors occuring in expressions associated to form objects) | +| path | Text | Method path (same format as [METHOD OPEN PATH](../commands-legacy/method-open-path.md)) | +| file | 4D.File | Method file | +| | | **Returned depending on the value of the `type` property:** | +| methodName | Text | Méthode | +| table | Number | Number of the table (returned for a trigger, a table form method or a table form object method) | +| formName | Text | Form name (returned for a form method) | +| objectName | Text | Form object name (returned for an object method) | +| propertyName | Text | Form object property name (returned for a form object expression) | +| className | Text | Class name | +| functionName | Text | Nom de la fonction de classe | +| databaseMethod | Number | Database method index | #### Exemples @@ -191,4 +191,4 @@ var $result:=Compile project($options) #### Voir également -[BUILD APPLICATION](build-application.md) +[BUILD APPLICATION](../commands-legacy/build-application.md) diff --git a/i18n/fr/docusaurus-plugin-content-docs/current/commands/dialog.md b/i18n/fr/docusaurus-plugin-content-docs/current/commands/dialog.md index ebb80949c80618..3f27dc331c73e5 100644 --- a/i18n/fr/docusaurus-plugin-content-docs/current/commands/dialog.md +++ b/i18n/fr/docusaurus-plugin-content-docs/current/commands/dialog.md @@ -66,7 +66,7 @@ This form then reacts “normally” to user actions and is closed using a stand **Notes :** -- You can combine the use of the **DIALOG**(form;\*) syntax with the [CALL FORM](call-form.md) command to establish communication between the forms. +- You can combine the use of the **DIALOG**(form;\*) syntax with the [CALL FORM](../commands-legacy/call-form.md) command to establish communication between the forms. - You must create a window before calling the **DIALOG**(form;\*) statement. It is not possible to use the current dialog window in the process nor the window created by default for each process. Otherwise, error -9909 is generated. - When the *\** parameter is used, the window is closed automatically following a standard action or a call to the [CANCEL](../commands-legacy/cancel.md) or [ACCEPT](../commands-legacy/accept.md) command. You do not have to manage the closing of the window itself. @@ -169,7 +169,7 @@ After a call to **DIALOG**, if the dialog is accepted, OK is set to 1; if it is [ACCEPT](../commands-legacy/accept.md)\ [ADD RECORD](../commands-legacy/add-record.md)\ -[CALL FORM](call-form.md)\ +[CALL FORM](../commands-legacy/call-form.md)\ [CANCEL](../commands-legacy/cancel.md)\ [Form](form.md)\ [Open window](../commands-legacy/open-window.md) diff --git a/i18n/fr/docusaurus-plugin-content-docs/current/commands/form-event-code.md b/i18n/fr/docusaurus-plugin-content-docs/current/commands/form-event-code.md index 88c7bae7ca737d..bafc1c940dc638 100644 --- a/i18n/fr/docusaurus-plugin-content-docs/current/commands/form-event-code.md +++ b/i18n/fr/docusaurus-plugin-content-docs/current/commands/form-event-code.md @@ -102,7 +102,7 @@ This example is a template for a form method. It shows each of the possible even #### Exemple 4 -This example shows the template of a form method that handles the events that can occur for a form displayed using the [DISPLAY SELECTION](display-selection.md) or [MODIFY SELECTION](modify-selection.md) commands. For didactic purposes, it displays the nature of the event in the title bar of the form window. +This example shows the template of a form method that handles the events that can occur for a form displayed using the [DISPLAY SELECTION](../commands-legacy/display-selection.md) or [MODIFY SELECTION](../commands-legacy/modify-selection.md) commands. For didactic purposes, it displays the nature of the event in the title bar of the form window. ```4d   //A form method @@ -141,7 +141,7 @@ This example shows the template of a form method that handles the events that ca #### Exemple 5 -For examples on how to handle [`On Before Keystroke`](../Events/onBeforeKeystroke.md) and [`On After Keystroke`](../Events/onAfterKeystroke.md) events, see examples for the [Get edited text](get-edited-text.md), [Keystroke](keystroke.md) and [FILTER KEYSTROKE](filter-keystroke.md) commands. +For examples on how to handle [`On Before Keystroke`](../Events/onBeforeKeystroke.md) and [`On After Keystroke`](../Events/onAfterKeystroke.md) events, see examples for the [Get edited text](../commands-legacy/get-edited-text.md), [Keystroke](../commands-legacy/keystroke.md) and [FILTER KEYSTROKE](../commands-legacy/filter-keystroke.md) commands. #### Exemple 6 @@ -342,11 +342,11 @@ As a result, the red rectangle follows the scrolling of the list box: #### Voir également [Form Events](../Events/overview.md) -[CALL SUBFORM CONTAINER](call-subform-container.md)\ -[Current form table](current-form-table.md)\ -[FILTER KEYSTROKE](filter-keystroke.md)\ +[CALL SUBFORM CONTAINER](../commands-legacy/call-subform-container.md)\ +[Current form table](../commands-legacy/current-form-table.md)\ +[FILTER KEYSTROKE](../commands-legacy/filter-keystroke.md)\ [FORM Event](form-event.md)\ -[Get edited text](get-edited-text.md)\ -[Keystroke](keystroke.md)\ -[POST OUTSIDE CALL](post-outside-call.md)\ -[SET TIMER](set-timer.md) +[Get edited text](../commands-legacy/get-edited-text.md)\ +[Keystroke](../commands-legacy/keystroke.md)\ +[POST OUTSIDE CALL](../commands-legacy/post-outside-call.md)\ +[SET TIMER](../commands-legacy/set-timer.md) diff --git a/i18n/fr/docusaurus-plugin-content-docs/current/commands/session-info.md b/i18n/fr/docusaurus-plugin-content-docs/current/commands/session-info.md index 28ae43dbd0a7f7..a5d28625659ea0 100644 --- a/i18n/fr/docusaurus-plugin-content-docs/current/commands/session-info.md +++ b/i18n/fr/docusaurus-plugin-content-docs/current/commands/session-info.md @@ -30,18 +30,18 @@ The `Session info` command returns a L'objet retourné contient les propriétés suivantes : -| Propriété | Type | Description | -| ---------------- | ------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -| type | Text | Session type: "remote", "storedProcedure", "standalone" | -| userName | Text | 4D user name (same value as [`Session.userName`](../API/SessionClass.md#username)) | -| machineName | Text | Sessions distantes : nom de la machine distante. Stored procedures session: name of the server machine. Standalone session: name of the machine | -| systemUserName | Text | Sessions distantes : nom de la session système ouverte sur la machine distante. | -| IPAddress | Text | Adresse IP de la machine distante | -| hostType | Text | Type d'hôte : "windows" ou "mac" | -| creationDateTime | Date ISO 8601 | Date and time of session creation. Standalone session: date and time of application startup | -| state | Text | État de la session : "active", "postponed", "sleeping" | -| ID | Text | Session UUID (same value as [`Session.id`](../API/SessionClass.md#id)) | -| persistentID | Text | Remote sessions: Session's persistent ID | +| Propriété | Type | Description | +| ---------------- | ------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | +| type | Text | Type de session : "remote", "storedProcedure", "standalone" | +| userName | Text | 4D user name (same value as [`Session.userName`](../API/SessionClass.md#username)) | +| machineName | Text | Sessions distantes : nom de la machine distante. Session procédures stockées : nom de la machine serveur. Session autonome : nom de la machine | +| systemUserName | Text | Sessions distantes : nom de la session système ouverte sur la machine distante. | +| IPAddress | Text | Adresse IP de la machine distante | +| hostType | Text | Type d'hôte : "windows" ou "mac" | +| creationDateTime | Date ISO 8601 | Date et heure de création de la session. Session autonome : date et heure de démarrage de l'application | +| state | Text | État de la session : "active", "postponed", "sleeping" | +| ID | Text | Session UUID (same value as [`Session.id`](../API/SessionClass.md#id)) | +| persistentID | Text | Sessions distantes : ID persistant de la session | :::note diff --git a/i18n/fr/docusaurus-plugin-content-docs/version-19/API/DataClassClass.md b/i18n/fr/docusaurus-plugin-content-docs/version-19/API/DataClassClass.md index e8bfe1d9c14340..61a0ee17452811 100644 --- a/i18n/fr/docusaurus-plugin-content-docs/version-19/API/DataClassClass.md +++ b/i18n/fr/docusaurus-plugin-content-docs/version-19/API/DataClassClass.md @@ -723,7 +723,7 @@ où : | Condition Not appliquée à une assertion | NOT | Les parenthèses sont obligatoires lorsque NOT est utilisé devant une assertion contenant plusieurs opérateurs | | Contient mot-clé | % | Les mots-clés peuvent être utilisés avec les attributs de type texte ou image | -* **value** : valeur à comparer à la valeur courante de l'attribut de chaque entité de la sélection ou élément de la collection. Peut être un **placeholder** (voir **Utiliser des placeholders** ci-dessous) ou toute expression correspondant à la propriété du type de donnée. Lorsque vous utilisez une valeur constante, les règles suivantes doivent être respectées : +* **value** : valeur à comparer à la valeur courante de l'attribut de chaque entité de la sélection ou élément de la collection. Peut être un **placeholder** (voir **Utiliser des placeholders** ci-dessous) ou toute expression correspondant à la propriété du type de donnée. Note that, in case of type mismatch with scalar types (text, date, number...), 4D will try to convert the **value** type to the attribute data type whenever possible, for an easier handling of values coming from the Internet. For example, if the string "v20" is entered as **value** to compare with an integer attribute, it will be converted to 20. Lorsque vous utilisez une valeur constante, les règles suivantes doivent être respectées : * Les valeurs constantes de type **texte** peuvent être passées avec ou sans guillemets (voir **Utilisation des guillemets** ci-dessous). Pour rechercher une chaîne dans une chaîne (recherche de type "contient"), utilisez le symbole joker (@) dans valeur pour isoler la chaîne à chercher, comme dans cet exemple : "@Smith@". Les mots-clés suivants sont interdits pour des constantes de type texte : true, false. * Valeurs constantes de type**booléen**: **true** or **false** (sensible à la casse). * Valeurs constantes de type **numérique** : les décimales doivent être séparées par un '.' Valeurs constantes de type date: format "YYYY-MM-DD" diff --git a/i18n/fr/docusaurus-plugin-content-docs/version-19/API/EntityClass.md b/i18n/fr/docusaurus-plugin-content-docs/version-19/API/EntityClass.md index d019f1b8e3786c..1ac36b6930292d 100644 --- a/i18n/fr/docusaurus-plugin-content-docs/version-19/API/EntityClass.md +++ b/i18n/fr/docusaurus-plugin-content-docs/version-19/API/EntityClass.md @@ -92,8 +92,10 @@ $myEntity.save() //sauvegarder l'entity #### Description -La fonction `clone()` crée en mémoire une nouvelle entité référençant le même enregistrement que l'entité d'origine. Cette fonction vous permet de mettre à jour des entités séparément. -> A noter que toute modification apportée aux entités n'est stockée dans l'enregistrement référencé qu'au moment où la fonction [`.save( )`](#save) est exécutée. +La fonction `clone()` crée en mémoire une nouvelle entité référençant le même enregistrement que l'entité d'origine. + +This function allows you to update entities separately. Notez cependant que, pour des raisons de performance, la nouvelle entité partage la même référence d'attributs d'objets que l'entité clonée. +> Keep in mind that any modifications done to entities will be saved in the referenced record only when the [`.save()`](#save) function is executed. Cette fonction ne peut être utilisée qu'avec des entités déjà enregistrées dans la base de données. Elle ne peut pas être appelée sur une entité nouvellement créée (pour laquelle [`.isNew()`](#isnew) retourne **True**). @@ -233,7 +235,7 @@ $diff2: vCompareResult3:=$e1.diff($e2;$e1.touchedAttributes()) ``` -vCompareResult1 (toutes les différences sont retournées) : +vCompareResult3 (seules les différences sur les attributs touchés de $e1 sont retournées) ```4d [ @@ -443,7 +445,7 @@ Même exemple avec l'option `dk force drop if stamp changed` : La fonction `.first()` retourne une référence vers l'entité en première position dans l'entity selection à laquelle appartient l'entité. -Si l'entité n'appartient à aucune entity selection (i.e. [.getSelection( )](#getselection) retourne Null), la fonction renvoie une valeur Null. +| #### Exemple @@ -829,7 +831,7 @@ La fonction `.isNew()` renvoie Vrai si La fonction `.last()` retourne une référence vers l'entité en dernière position dans l'entity selection à laquelle appartient l'entité. -Si l'entité n'appartient à aucune entity selection (i.e. [.getSelection( )](#getselection) retourne Null), la fonction renvoie une valeur Null. +| #### Exemple @@ -977,7 +979,7 @@ Exemple avec option `dk reload if stamp changed` : La fonction `.next()` retourne une référence vers l'entité suivante dans l'entity selection à laquelle appartient l'entité. -Si l'entité n'appartient à aucune entity selection existante (i.e. [.getSelection()](#getselection) retourne Null), la fonction renvoie une valeur Null. +| S'il n'y a pas d'entité suivante valide dans l'entity selection (i.e. vous êtes sur la dernière entité de la sélection), la fonction retourne Null. Si l'entité suivante a été supprimée, la fonction renvoie l'entité valide suivante (et finalement Null). @@ -1019,9 +1021,9 @@ S'il n'y a pas d'entité suivante valide dans l'entity selection (i.e. vous ête La fonction `.previous()` retourne une référence vers l'entité précédente dans l'entity selection à laquelle appartient l'entité. -Si l'entité n'appartient à aucune entity selection existante (i.e. [.getSelection()](#getselection) retourne Null), la fonction renvoie une valeur Null. +| -S'il n'y a pas d'entité précédente valide dans l'entity selection (i.e. vous êtes sur la première entité de la sélection), la fonction retourne Null. Si l'entité précédente a été supprimée, la fonction retourne l'entité précédente valide (et finalement Null). +Si l'entité n'appartient à aucune entity selection (i.e. [.getSelection( )](#getselection) retourne Null), la fonction renvoie une valeur Null. #### Exemple @@ -1166,7 +1168,7 @@ Les valeurs suivantes peuvent être retournées dans les propriétés `status` e | Constante | Valeur | Commentaire | | ----------------------------------------- | ------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | -| `dk status automerge failed` | 6 | (Uniquement si l'option `dk auto merge` est utilisée) Echec du mécanisme de merge automatique lors de la sauvegarde de l'entité. **statusText associé **: "Auto merge failed". | +| `dk status automerge failed` | 6 | vrai si l'action de suppression a été effectuée avec succès, sinon Faux. | | `dk status entity does not exist anymore` | 5 | L'entité n'existe plus dans les données. Cette erreur peut se produire dans les cas suivants :
  • l'entité a été supprimée (le stamp est modifié et l'espace mémoire est libéré)
  • l'entité a été supprimée et remplacée par une autre avec une clé primaire différente (le stamp est modifié et une nouvelle entité occupe l'espace mémoire). Avec `.drop( )`, cette erreur peut être retournée lorsque l'option `dk force drop if stamp changed` est utilisée. Avec `.lock( )`, cette erreur peut être retournée lorsque l'option dk reload if stamp changed est utilisée.

  • **statusText associé** : "Entity does not exist anymore" | | `dk status locked` | 3 | L'entité est verrouillée par un verrou pessimiste.
    **statusText associé** : "Already locked" | | `dk status serious error` | 4 | Une erreur critique peut être une erreur de bas niveau de la base de données (ex. clé dupliquée), une erreur matérielle, etc.
    **statusText associé** : "Other error" | diff --git a/i18n/fr/docusaurus-plugin-content-docs/version-19/Concepts/classes.md b/i18n/fr/docusaurus-plugin-content-docs/version-19/Concepts/classes.md index 630e5484d9e010..50f3a8fcacd65f 100644 --- a/i18n/fr/docusaurus-plugin-content-docs/version-19/Concepts/classes.md +++ b/i18n/fr/docusaurus-plugin-content-docs/version-19/Concepts/classes.md @@ -172,7 +172,7 @@ Function ({$parameterName : type; ...}){->$parameterName : type} :::note -There is no ending keyword for function code. The 4D language automatically detects the end of a function's code by the next `Function` keyword or the end of the class file. +There is no ending keyword for function code. There is no ending keyword for function code. ::: @@ -278,11 +278,12 @@ $area:=$rect.getArea() //5000 // Class: MyClass Class Constructor({$parameterName : type; ...}) // code +// code ``` :::note -There is no ending keyword for class constructor function code. The 4D language automatically detects the end of a function's code by the next `Function` keyword or the end of the class file. +There is no ending keyword for class constructor function code. There is no ending keyword for function code. ::: @@ -410,6 +411,11 @@ Class constructor($width : Integer; $height : Integer) Function sayName() ALERT("Hi, I am a "+This.name+".") +// Function definition +Function getArea() + var $0 : Integer + $0:=(This.height)*(This.width) + // Function definition Function getArea() var $0 : Integer diff --git a/i18n/fr/docusaurus-plugin-content-docs/version-20-R6/API/ClassClass.md b/i18n/fr/docusaurus-plugin-content-docs/version-20-R6/API/ClassClass.md index d885ddaf025121..7513049a819d4c 100644 --- a/i18n/fr/docusaurus-plugin-content-docs/version-20-R6/API/ClassClass.md +++ b/i18n/fr/docusaurus-plugin-content-docs/version-20-R6/API/ClassClass.md @@ -76,7 +76,7 @@ Cette propriété est en **lecture seule**. #### Description -Sommaire Si la classe singleton n'a jamais été instanciée au préalable, cette propriété appelle le constructeur de la classe sans paramètres et crée l'instance. Sinon, elle renvoie l'instance singleton existante. +Sommaire Sommaire Si la classe singleton n'a jamais été instanciée au préalable, cette propriété appelle le constructeur de la classe sans paramètres et crée l'instance. Sinon, elle renvoie l'instance singleton existante. Si `cs.className` n'est pas une [classe singleton](../Concepts/classes.md#singleton-classes), `.me` est **undefined** par défaut. diff --git a/i18n/fr/docusaurus-plugin-content-docs/version-20-R6/API/DataClassClass.md b/i18n/fr/docusaurus-plugin-content-docs/version-20-R6/API/DataClassClass.md index 3fdc0328a464d3..5811bbf1c49580 100644 --- a/i18n/fr/docusaurus-plugin-content-docs/version-20-R6/API/DataClassClass.md +++ b/i18n/fr/docusaurus-plugin-content-docs/version-20-R6/API/DataClassClass.md @@ -223,7 +223,7 @@ $ds.Persons.clearRemoteCache() // Cache of the Persons dataclass = {timeout:30;maxEntries:30000;stamp:255;entries:[]} ``` -#### See also +Voir également [`entitySelection.refresh()`](EntitySelectionClass.md#refresh) @@ -275,7 +275,7 @@ Pour chaque objet de *objectCol* : - Si la clé primaire est fournie (telle quelle) et n'existe pas, l'entité est créée - Si la clé primaire n'est pas fournie, l'entité est créée et la clé primaire est assignée selon les règles en vigueur de la base de données. -> La propriété "\*\*KEY" contenant une valeur est prise en compte uniquement lorsque la propriété "\*\*NEW" est à **false** (ou est omise) et qu'une entité correspondante existe. Dans tous les autres cas, la valeur de la propriété "\*\_KEY" est ignorée, la valeur de la clé primaire doit être passée "telle quelle". +> La propriété "\*\*KEY" contenant une valeur est prise en compte uniquement lorsque la propriété "\*\*NEW" est à **false** (ou est omise) et qu'une entité correspondante existe. Dans tous les autres cas, la valeur de la propriété "\_\_KEY" est ignorée, la valeur de la clé primaire doit être passée "telle quelle". **Entités liées** @@ -937,7 +937,7 @@ Les formules contenues dans les requêtes peuvent recevoir des paramètres via $ | Inclus parmi | IN | Retourne les données égales à au moins une des valeurs d'une collection ou d'un ensemble de valeurs, prend en charge le joker de recherche (@) | | Contient mot-clé | % | Les mots-clés peuvent être utilisés avec les attributs de type texte ou image | -- Peut être un **placeholder** (voir **Utiliser des placeholders** ci-dessous) ou toute expression correspondant à la propriété du type de donnée. **value** : valeur à comparer à la valeur courante de la propriété pour chaque entité de l'entity selection. +- Peut être un **placeholder** (voir **Utiliser des placeholders** ci-dessous) ou toute expression correspondant à la propriété du type de donnée. **value** : valeur à comparer à la valeur courante de la propriété pour chaque entité de l'entity selection. Notez que, en cas de non-concordance avec les types scalaires (texte, date, numérique...), 4D tentera si possible de convertir le type de **value** dans le type de données de l'attribut pour une gestion plus facile des valeurs provenant d'Internet. Par exemple, si la chaîne "v20" est entrée en tant que **value** pour la comparer avec un attribut Integer, elle sera convertie en nombre 20. Lorsque vous utilisez une valeur constante, les règles suivantes doivent être respectées : - Les valeurs constantes de type **texte** peuvent être passées avec ou sans guillemets (voir **Utilisation des guillemets** ci-dessous). Pour rechercher une chaîne dans une chaîne (recherche de type "contient"), utilisez le symbole joker (@) dans valeur pour isoler la chaîne à chercher, comme dans cet exemple : "@Smith@". Les mots-clés suivants sont interdits pour des constantes de type texte : true, false. - Valeurs constantes de type**booléen**: **true** or **false** (sensible à la casse). diff --git a/i18n/fr/docusaurus-plugin-content-docs/version-20-R6/API/EntityClass.md b/i18n/fr/docusaurus-plugin-content-docs/version-20-R6/API/EntityClass.md index 38806d52b705a4..e2bb07a7454f34 100644 --- a/i18n/fr/docusaurus-plugin-content-docs/version-20-R6/API/EntityClass.md +++ b/i18n/fr/docusaurus-plugin-content-docs/version-20-R6/API/EntityClass.md @@ -95,9 +95,11 @@ $myEntity.save() //sauvegarder l'entity #### Description -La fonction `.clone()` crée en mémoire une nouvelle entité faisant référence au même enregistrement que l'entité d'origine. Cette fonction vous permet de mettre à jour des entités séparément. +La fonction `.clone()` crée en mémoire une nouvelle entité faisant référence au même enregistrement que l'entité d'origine. -> Gardez à l'esprit que toutes les modifications apportées aux entités seront enregistrées dans l'enregistrement référencé uniquement lorsque la fonction [`save()`](#save) est exécutée. +This function allows you to update entities separately. Notez cependant que, pour des raisons de performance, la nouvelle entité partage la même référence d'attributs d'objets que l'entité clonée. + +> Gardez à l'esprit que toutes les modifications apportées aux entités sont enregistrées dans l'enregistrement référencé uniquement lorsque la fonction [`save()`](#save) est exécutée. Cette fonction ne peut être utilisée qu'avec des entités déjà enregistrées dans la base de données. Elle ne peut pas être appelée sur une entité nouvellement créée (pour laquelle [`isNew()`](#isnew) retourne **True**). @@ -962,34 +964,34 @@ Sinon, vous pouvez passer l'option `dk reload if stamp changed` dans le paramèt L'objet retourné par `.lock()` contient les propriétés suivantes : -| Propriété | | Type | Description | -| --------------------------------- | ----------------------------------- | --------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -| success | | boolean | vrai si l'action de verrouillage a été effectuée avec succès (ou si l'entité est déjà verrouillée dans le process courant), sinon faux. | -| | | | ***Disponible uniquement si l'option `dk reload if stamp changed` a été utilisée*** | -| **wasReloaded** | | boolean | vrai si l'entité a été correctement rechargée, sinon faux. | -| | | | ***Disponible uniquement en cas d'erreur :*** | -| status(\*) | | number | Code d'erreur, voir ci-dessous | -| statusText(\*) | | text | Description de l'erreur, voir ci-dessous | -| | | | ***Disponible uniquement en cas d'erreur de verrouillage pessimiste :*** | -| lockKindText | | text | "Locked by record" si verrouillage par un process 4D, "Locked by session" si verrouillage par une session REST | -| lockInfo | | object | Information sur l'origine du verrouillage. Les propriétés retournées dépendent de l'origine du verrouillage (process 4D ou session REST). | -| | | | ***Disponible uniquement pour un verrouillage par process 4D :*** | -| | task_id | number | ID du process | -| | user_name | text | Nom d'utilisateur de la session sur la machine | -| | user4d_alias | text | Nom ou alias de l'utilisateur 4D | -| | user4d_id | number | Identifiant utilisateur dans le répertoire de la base 4D | -| | host_name | text | Nom de la machine | -| | task_name | text | Nom du process | -| | client_version | text | Version du client | -| | | | ***Disponible uniquement pour le verrouillage d'une session REST :*** | -| | host | text | \| URL ayant verrouillé l'entité (ex : "www.myserver.com") \| | -| | IPAddr | text | Adresse IP d'origine du verrouillage (ex. 127.0.0.1") | -| | userAgent | text | userAgent de l'origine du verouillage (ex : "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_3) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/96.0.4664.110 Safari/537.36") | -| | | | ***Disponible uniquement en cas d'erreur critique*** (clé primaire dupliquée, disque plein...) : | -| errors | | collection of objects | | -| | message | text | Message d'erreur | -| | component signature | text | signature du composant interne (e.g. "dmbg" pour le composant de base de données) | -| | errCode | number | Code d'erreur | +| Propriété | | Type | Description | +| --------------------------------- | ----------------------------------- | --------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| success | | boolean | vrai si l'action de verrouillage a été effectuée avec succès (ou si l'entité est déjà verrouillée dans le process courant), sinon faux. | +| | | | ***Disponible uniquement si l'option `dk reload if stamp changed` a été utilisée*** | +| **wasReloaded** | | boolean | vrai si l'entité a été correctement rechargée, sinon faux. | +| | | | ***Disponible uniquement en cas d'erreur :*** | +| status(\*) | | number | Code d'erreur, voir ci-dessous | +| statusText(\*) | | text | Description de l'erreur, voir ci-dessous | +| | | | ***Disponible uniquement en cas d'erreur de verrouillage pessimiste :*** | +| lockKindText | | text | "Locked by record" si verrouillage par un process 4D, "Locked by session" si verrouillage par une session REST | +| lockInfo | | object | Information sur l'origine du verrouillage. Les propriétés retournées dépendent de l'origine du verrouillage (process 4D ou session REST). | +| | | | ***Disponible uniquement pour un verrouillage par process 4D :*** | +| | task_id | number | ID du process | +| | user_name | text | Nom d'utilisateur de la session sur la machine | +| | user4d_alias | text | Nom ou alias de l'utilisateur 4D | +| | user4d_id | number | Identifiant utilisateur dans le répertoire de la base 4D | +| | host_name | text | Nom de la machine | +| | task_name | text | Nom du process | +| | client_version | text | Version du client | +| | | | ***Disponible uniquement pour le verrouillage d'une session REST :*** | +| | host | text | \| URL ayant verrouillé l'entité (ex : "www.myserver.com") \\ | +| | IPAddr | text | Adresse IP d'origine du verrouillage (ex. 127.0.0.1") | +| | userAgent | text | userAgent de l'origine du verouillage (ex : "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_3) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/96.0.4664.110 Safari/537.36") | +| | | | ***Disponible uniquement en cas d'erreur critique*** (clé primaire dupliquée, disque plein...) : | +| errors | | collection of objects | | +| | message | text | Message d'erreur | +| | component signature | text | signature du composant interne (e.g. "dmbg" pour le composant de base de données) | +| | errCode | number | Code d'erreur | (\*) Les valeurs suivantes peuvent être retournées dans les propriétés *status* et *statusText* de l'objet *Résultat* en cas d'erreur : diff --git a/i18n/fr/docusaurus-plugin-content-docs/version-20-R6/API/EntitySelectionClass.md b/i18n/fr/docusaurus-plugin-content-docs/version-20-R6/API/EntitySelectionClass.md index 337f7d07040ed8..3f3ff8ca98d23e 100644 --- a/i18n/fr/docusaurus-plugin-content-docs/version-20-R6/API/EntitySelectionClass.md +++ b/i18n/fr/docusaurus-plugin-content-docs/version-20-R6/API/EntitySelectionClass.md @@ -288,7 +288,7 @@ La fonction `.add()` ajoute l'*e :::info attention -L'entity selection doit être *modifiable*, c'est-à-dire qu'elle a été créée par exemple par [`.newSelection()`](DataClassClass.md#newselection) ou `Create entity selection`, sinon `.add()` renverra une erreur. Les entity selections partageables n'acceptent pas l'ajout d'entités. Pour plus d'informations, reportez-vous au paragraphe [Entity selections partageables ou modifiables](ORDA/entities.md#shareable-or-alterable-entity-selections). +L'entity selection doit être *modifiable*, c'est-à-dire qu'elle a été créée par exemple par [`.newSelection()`](DataClassClass.md#newselection) ou `Create entity selection`, sinon `.add()` renverra une erreur. Les entity selections partageables n'acceptent pas l'ajout d'entités. Les entity selections partageables n'acceptent pas l'ajout d'entités. ::: @@ -752,7 +752,7 @@ La fonction `.distinct()` r La collection retournée est automatiquement triée. Les valeurs **Null** ne sont pas retournées. -Dans le paramètre *attributePath* passez l'attribut d'entité dont vous voulez obtenir les valeurs distinctes. Seules les valeurs scalaires (texte, nombre, booléen ou date) peuvent être gérées. Si *attributePath* mène à une propriété d'objet qui contient des valeurs de différents types, celles-ci sont d'abord regroupées par type et triées ensuite. Les types sont renvoyés dans l'ordre suivant : +Dans le paramètre *attributePath* passez l'attribut d'entité dont vous voulez obtenir les valeurs distinctes. Seules les valeurs scalaires (texte, nombre, booléen ou date) peuvent être gérées. Seules les valeurs scalaires (texte, nombre, booléen ou date) peuvent être gérées. Les types sont renvoyés dans l'ordre suivant : 1. booléens 2. chaînes diff --git a/i18n/fr/docusaurus-plugin-content-docs/version-20-R6/API/FileClass.md b/i18n/fr/docusaurus-plugin-content-docs/version-20-R6/API/FileClass.md index 241b333c58e849..467cb23c58c33a 100644 --- a/i18n/fr/docusaurus-plugin-content-docs/version-20-R6/API/FileClass.md +++ b/i18n/fr/docusaurus-plugin-content-docs/version-20-R6/API/FileClass.md @@ -488,7 +488,7 @@ $myFile.moveTo($DocFolder.folder("Archives");"Infos_old.txt") #### Description -La fonction `.open()` crée et renvoie un nouvel objet [4D.FileHandle](FileHandleClass) sur le fichier, dans le *mode* spécifié ou avec les *options* spécifiées. Vous pouvez utiliser les fonctions et les propriétés de la classe [4D.FileHandle](FileHandleClass) pour écrire, lire ou ajouter du contenu au fichier. +Chemins d'accès Vous pouvez utiliser les fonctions et les propriétés de la classe [4D.FileHandle](FileHandleClass) pour écrire, lire ou ajouter du contenu au fichier. Si vous utilisez le paramètre *mode* (texte), passez le mode d'ouverture pour le file handle : diff --git a/i18n/fr/docusaurus-plugin-content-docs/version-20-R6/API/FileHandleClass.md b/i18n/fr/docusaurus-plugin-content-docs/version-20-R6/API/FileHandleClass.md index 0c134e8fdae718..a8b44ce78e2f5d 100644 --- a/i18n/fr/docusaurus-plugin-content-docs/version-20-R6/API/FileHandleClass.md +++ b/i18n/fr/docusaurus-plugin-content-docs/version-20-R6/API/FileHandleClass.md @@ -275,7 +275,7 @@ Cette propriété est en **lecture/écriture**. :::caution -Lorsqu'un file handle est créé, la valeur `.offset` est un nombre d'octets. Cependant, l'unité de mesure du décalage diffère selon la fonction de lecture : avec [`readBlob()`](#readblob), `.offset` est un nombre d'octets, alors qu'avec [`readText()`](#readtext)/[`readLine()`](#readline), c'est un nombre de caractères. Selon le jeu de caractères du fichier, un caractère correspond à un ou plusieurs octets. Ainsi, si vous commencez la lecture avec `readBlob()` et que vous appelez ensuite `readText()`, la lecture du texte commencera à une position incohérente. Il est donc essentiel de définir vous-même la propriété `.offset` si vous passez de la lecture/écriture de blob à la lecture/écriture de texte dans le même filehandle. Par exemple : +Lorsqu'un file handle est créé, la valeur `.offset` est un nombre d'octets. Cependant, l'unité de mesure du décalage diffère selon la fonction de lecture : avec [`readBlob()`](#readblob), `.offset` est un nombre d'octets, alors qu'avec [`readText()`](#readtext)/[`readLine()`](#readline), c'est un nombre de caractères. Selon le jeu de caractères du fichier, un caractère correspond à un ou plusieurs octets. Selon le jeu de caractères du fichier, un caractère correspond à un ou plusieurs octets. Ainsi, si vous commencez la lecture avec `readBlob()` et que vous appelez ensuite `readText()`, la lecture du texte commencera à une position incohérente. Par exemple : ```4d // Ouvrir un fichier texte européen en utilisant l'encodage utf-16 (2 octets par caractère) diff --git a/i18n/fr/docusaurus-plugin-content-docs/version-20-R6/API/FolderClass.md b/i18n/fr/docusaurus-plugin-content-docs/version-20-R6/API/FolderClass.md index 60a2a04bd70d75..22f4dd95c33276 100644 --- a/i18n/fr/docusaurus-plugin-content-docs/version-20-R6/API/FolderClass.md +++ b/i18n/fr/docusaurus-plugin-content-docs/version-20-R6/API/FolderClass.md @@ -364,7 +364,7 @@ La fonction `.moveTo( )` déplace ou d Le *destinationFolder* doit exister sur disque, sinon une erreur est générée. -Par défaut, le dossier garde le même nom lorsqu'il est déplacé. Si vous souhaitez renommer le dossier déplacé, passez le nouveau nom complet dans le paramètre *newName*. Le nouveau nom doit être conforme aux règles de nommage (ex : il ne doit pas contenir de caractères tels que ":", "/", etc.), sinon une erreur est retournée. +Par défaut, le dossier garde le même nom lorsqu'il est déplacé. Par défaut, le dossier garde le même nom lorsqu'il est déplacé. Le nouveau nom doit être conforme aux règles de nommage (ex : il ne doit pas contenir de caractères tels que ":", "/", etc.), sinon une erreur est retournée. **Objet retourné** diff --git a/i18n/fr/docusaurus-plugin-content-docs/version-20-R6/API/HTTPRequestClass.md b/i18n/fr/docusaurus-plugin-content-docs/version-20-R6/API/HTTPRequestClass.md index 87b3b5f07f8b5b..7103731293194f 100644 --- a/i18n/fr/docusaurus-plugin-content-docs/version-20-R6/API/HTTPRequestClass.md +++ b/i18n/fr/docusaurus-plugin-content-docs/version-20-R6/API/HTTPRequestClass.md @@ -478,7 +478,7 @@ La propriété `.url` contient l'URL d ## .wait() -**.wait**( { *time* : Real } ) : HTTPRequestClass +**.wait**( { *time* : Real } ) : 4D.HTTPRequest diff --git a/i18n/fr/docusaurus-plugin-content-docs/version-20-R6/Concepts/classes.md b/i18n/fr/docusaurus-plugin-content-docs/version-20-R6/Concepts/classes.md index f63210a27f2aa9..0950d8686b0df4 100644 --- a/i18n/fr/docusaurus-plugin-content-docs/version-20-R6/Concepts/classes.md +++ b/i18n/fr/docusaurus-plugin-content-docs/version-20-R6/Concepts/classes.md @@ -7,7 +7,7 @@ title: Classes Le langage 4D prend en charge le concept de **classes**. Dans un langage de programmation, l'utilisation d'une classe vous permet de définir le comportement d'un objet avec des propriétés et des fonctions associées. -Une fois qu'une classe utilisateur est définie, vous pouvez **instancier des objets** de cette classe n'importe où dans votre code. Chaque objet est une instance de sa classe. Une classe peut [`étendre`](#class-extends-classname) une autre classe, et hérite ensuite de ses [fonctions](#function) et propriétés ([déclarées](#property) et [calculées](#function-get-and-function-set)). +Une fois qu'une classe utilisateur est définie, vous pouvez **instancier des objets** de cette classe n'importe où dans votre code. Chaque objet est une instance de sa classe. Chaque objet est une instance de sa classe. > Les modèles de classe 4D et JavaScript sont similaires, et basés sur une chaîne de prototypes. @@ -189,7 +189,7 @@ There is no ending keyword for function code. The 4D language automatically dete Les fonctions de classe sont des propriétés spécifiques de la classe. Ce sont des objets de la classe [4D.Function](API/FunctionClass.md). Dans le fichier de définition de classe, les déclarations de fonction utilisent le mot-clé `Function` suivi du nom de la fonction. -Si la fonction est déclarée dans une [classe partagée](#shared-classes), vous pouvez utiliser le mot-clé `shared` pour que la fonction puisse être appelée sans [structure `Use. .End use`](shared.md#useend-use). Pour plus d'informations, consultez le paragraphe sur les [fonctions partagées](#shared-functions) ci-dessous. +Si les fonctions sont déclarées dans une [classe partagée](#constructeur-de-classe-partagee), vous pouvez utiliser le mot-clé `shared` avec elles afin qu'elles puissent être appelées sans la structure [`Use...End use`](shared.md#useend-use). Pour plus d'informations, consultez le paragraphe sur les [fonctions partagées](#shared-functions) ci-dessous. Le nom de la fonction doit être conforme aux [règles de nommage des objets](Concepts/identifiers.md#object-properties). @@ -331,7 +331,7 @@ Une fonction class constructor accepte des [paramètres](#parameters) facultatif Lorsque vous appelez la fonction [`new()`](API/ClassClass.md#new), le constructeur de classe est appelé avec les paramètres éventuellement passés à la fonction `new()`. -Il ne peut y avoir qu'une seule fonction constructor dans une classe (sinon une erreur est renvoyée). Un constructeur peut utiliser le mot-clé [`Super`](#super) pour appeler le constructeur de la superclass. +Il ne peut y avoir qu'une seule fonction constructor dans une classe (sinon une erreur est renvoyée). The [`Super`](../commands/super.md) command allows calls to the [`superclass`](../API/ClassClass#superclass), i.e. the parent class of the function. Vous pouvez créer et saisir des propriétés d'instance dans le constructeur (voir exemple). Alternativement, si les valeurs de vos propriétés d'instance ne dépendent pas des paramètres passés au constructeur, vous pouvez les définir en utilisant le mot-clé [`property`](#property). @@ -499,9 +499,9 @@ Dans le fichier de définition de la classe, les déclarations de propriétés c `Function get` retourne une valeur du type de la propriété et `Function set` prend un paramètre du type de la propriété. Les deux arguments doivent être conformes aux [paramètres de fonction](#parameters) standard. -Lorsque les deux fonctions sont définies, la propriété calculée est en **lecture-écriture**. Si seule une `Function get` est définie, la propriété calculée est en **lecture seule**. Dans ce cas, une erreur est retournée si le code tente de modifier la propriété. Si seule une `Function set` est définie, 4D retourne *undefined* lorsque la propriété est lue. +Lorsque les deux fonctions sont définies, la propriété calculée est en **lecture-écriture**. Si seule une `Function get` est définie, la propriété calculée est en **lecture seule**. Dans ce cas, une erreur est retournée si le code tente de modifier la propriété. Dans ce cas, une erreur est retournée si le code tente de modifier la propriété. -Si les fonctions sont déclarées dans une [classe partagée](#constructeur-de-classe-partagee), vous pouvez utiliser le mot-clé `shared` avec elles afin qu'elles puissent être appelées sans la structure [`Use...End use`](shared.md#useend-use). Pour plus d'informations, consultez le paragraphe sur les [fonctions partagées](#shared-functions) ci-dessous. +Si la fonction est déclarée dans une [classe partagée](#shared-classes), vous pouvez utiliser le mot-clé `shared` pour que la fonction puisse être appelée sans [structure `Use. .End use`](shared.md#useend-use). Pour plus d'informations, consultez le paragraphe sur les [fonctions partagées](#shared-functions) ci-dessous. Le type de la propriété calculée est défini par la déclaration de type `$return` du *getter*. Il peut s'agir de n'importe quel [type de propriété valide](dt_object.md). diff --git a/i18n/fr/docusaurus-plugin-content-docs/version-20-R6/WebServer/httpRequests.md b/i18n/fr/docusaurus-plugin-content-docs/version-20-R6/WebServer/httpRequests.md index 15db984f81a12a..1d73cc8a72e751 100644 --- a/i18n/fr/docusaurus-plugin-content-docs/version-20-R6/WebServer/httpRequests.md +++ b/i18n/fr/docusaurus-plugin-content-docs/version-20-R6/WebServer/httpRequests.md @@ -339,6 +339,6 @@ Le serveur web 4D prend en charge les fichiers envoyés en encodage de transfert ## Méthode projet COMPILER_WEB -La méthode COMPILER\_WEB, si elle existe, est systématiquement appelée lorsque le serveur HTTP reçoit une requête dynamique et appelle le moteur 4D. C'est le cas, par exemple, lorsque le serveur Web 4D reçoit un formulaire envoyé ou une URL à traiter dans [`On Web Connection`](#on-web-connection). Cette méthode est destinée à contenir des directives de typage et/ou d'initialisation de variables utilisées lors des échanges Web. Elle est utilisée par le compilateur lorsque l'application est compilée. La méthode COMPILER\_WEB est commune à tous les formulaires Web. Par défaut, la méthode COMPILER_WEB n'existe pas. Vous devez la créer explicitement. +La méthode COMPILER\_WEB, si elle existe, est systématiquement appelée lorsque le serveur HTTP reçoit une requête dynamique et appelle le moteur 4D. La méthode COMPILER\_WEB, si elle existe, est systématiquement appelée lorsque le serveur HTTP reçoit une requête dynamique et appelle le moteur 4D. Cette méthode est destinée à contenir des directives de typage et/ou d'initialisation de variables utilisées lors des échanges Web. Elle est utilisée par le compilateur lorsque l'application est compilée. La méthode COMPILER\_WEB est commune à tous les formulaires Web. Par défaut, la méthode COMPILER_WEB n'existe pas. Vous devez la créer explicitement. > La méthode projet COMPILER_WEB est également appelée, si elle existe, pour chaque requête SOAP acceptée. diff --git a/i18n/fr/docusaurus-plugin-content-docs/version-20-R7/API/ClassClass.md b/i18n/fr/docusaurus-plugin-content-docs/version-20-R7/API/ClassClass.md index 1458b9766d4cc4..7aaa3c3fc4c3ce 100644 --- a/i18n/fr/docusaurus-plugin-content-docs/version-20-R7/API/ClassClass.md +++ b/i18n/fr/docusaurus-plugin-content-docs/version-20-R7/API/ClassClass.md @@ -99,7 +99,7 @@ Cette propriété est en **lecture seule**. #### Description -Sommaire Si la classe singleton n'a jamais été instanciée au préalable, cette propriété appelle le constructeur de la classe sans paramètres et crée l'instance. Sinon, elle renvoie l'instance singleton existante. +Sommaire Sommaire Si la classe singleton n'a jamais été instanciée au préalable, cette propriété appelle le constructeur de la classe sans paramètres et crée l'instance. Sinon, elle renvoie l'instance singleton existante. Si `cs.className` n'est pas une [classe singleton](../Concepts/classes.md#singleton-classes), `.me` est **undefined** par défaut. diff --git a/i18n/fr/docusaurus-plugin-content-docs/version-20-R7/API/DataClassClass.md b/i18n/fr/docusaurus-plugin-content-docs/version-20-R7/API/DataClassClass.md index a681a91e3e5ed1..a22640fda231f5 100644 --- a/i18n/fr/docusaurus-plugin-content-docs/version-20-R7/API/DataClassClass.md +++ b/i18n/fr/docusaurus-plugin-content-docs/version-20-R7/API/DataClassClass.md @@ -275,7 +275,7 @@ Pour chaque objet de *objectCol* : - Si la clé primaire est fournie (telle quelle) et n'existe pas, l'entité est créée - Si la clé primaire n'est pas fournie, l'entité est créée et la clé primaire est assignée selon les règles en vigueur de la base de données. -> La propriété "\*\*KEY" contenant une valeur est prise en compte uniquement lorsque la propriété "\*\*NEW" est à **false** (ou est omise) et qu'une entité correspondante existe. Dans tous les autres cas, la valeur de la propriété "\*\_KEY" est ignorée, la valeur de la clé primaire doit être passée "telle quelle". +> La propriété "\*\*KEY" contenant une valeur est prise en compte uniquement lorsque la propriété "\*\*NEW" est à **false** (ou est omise) et qu'une entité correspondante existe. Dans tous les autres cas, la valeur de la propriété "\_\_KEY" est ignorée, la valeur de la clé primaire doit être passée "telle quelle". **Entités liées** @@ -937,7 +937,7 @@ Les formules contenues dans les requêtes peuvent recevoir des paramètres via $ | Inclus parmi | IN | Retourne les données égales à au moins une des valeurs d'une collection ou d'un ensemble de valeurs, prend en charge le joker de recherche (@) | | Contient mot-clé | % | Les mots-clés peuvent être utilisés avec les attributs de type texte ou image | -- Peut être un **placeholder** (voir **Utiliser des placeholders** ci-dessous) ou toute expression correspondant à la propriété du type de donnée. **value** : valeur à comparer à la valeur courante de la propriété pour chaque entité de l'entity selection. +- Peut être un **placeholder** (voir **Utiliser des placeholders** ci-dessous) ou toute expression correspondant à la propriété du type de donnée. **value** : valeur à comparer à la valeur courante de la propriété pour chaque entité de l'entity selection. Notez que, en cas de non-concordance avec les types scalaires (texte, date, numérique...), 4D tentera si possible de convertir le type de **value** dans le type de données de l'attribut pour une gestion plus facile des valeurs provenant d'Internet. Par exemple, si la chaîne "v20" est entrée en tant que **value** pour la comparer avec un attribut Integer, elle sera convertie en nombre 20. Lorsque vous utilisez une valeur constante, les règles suivantes doivent être respectées : - Les valeurs constantes de type **texte** peuvent être passées avec ou sans guillemets (voir **Utilisation des guillemets** ci-dessous). Pour rechercher une chaîne dans une chaîne (recherche de type "contient"), utilisez le symbole joker (@) dans valeur pour isoler la chaîne à chercher, comme dans cet exemple : "@Smith@". Les mots-clés suivants sont interdits pour des constantes de type texte : true, false. - Valeurs constantes de type**booléen**: **true** or **false** (sensible à la casse). diff --git a/i18n/fr/docusaurus-plugin-content-docs/version-20-R7/API/EntityClass.md b/i18n/fr/docusaurus-plugin-content-docs/version-20-R7/API/EntityClass.md index 38806d52b705a4..e2bb07a7454f34 100644 --- a/i18n/fr/docusaurus-plugin-content-docs/version-20-R7/API/EntityClass.md +++ b/i18n/fr/docusaurus-plugin-content-docs/version-20-R7/API/EntityClass.md @@ -95,9 +95,11 @@ $myEntity.save() //sauvegarder l'entity #### Description -La fonction `.clone()` crée en mémoire une nouvelle entité faisant référence au même enregistrement que l'entité d'origine. Cette fonction vous permet de mettre à jour des entités séparément. +La fonction `.clone()` crée en mémoire une nouvelle entité faisant référence au même enregistrement que l'entité d'origine. -> Gardez à l'esprit que toutes les modifications apportées aux entités seront enregistrées dans l'enregistrement référencé uniquement lorsque la fonction [`save()`](#save) est exécutée. +This function allows you to update entities separately. Notez cependant que, pour des raisons de performance, la nouvelle entité partage la même référence d'attributs d'objets que l'entité clonée. + +> Gardez à l'esprit que toutes les modifications apportées aux entités sont enregistrées dans l'enregistrement référencé uniquement lorsque la fonction [`save()`](#save) est exécutée. Cette fonction ne peut être utilisée qu'avec des entités déjà enregistrées dans la base de données. Elle ne peut pas être appelée sur une entité nouvellement créée (pour laquelle [`isNew()`](#isnew) retourne **True**). @@ -962,34 +964,34 @@ Sinon, vous pouvez passer l'option `dk reload if stamp changed` dans le paramèt L'objet retourné par `.lock()` contient les propriétés suivantes : -| Propriété | | Type | Description | -| --------------------------------- | ----------------------------------- | --------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -| success | | boolean | vrai si l'action de verrouillage a été effectuée avec succès (ou si l'entité est déjà verrouillée dans le process courant), sinon faux. | -| | | | ***Disponible uniquement si l'option `dk reload if stamp changed` a été utilisée*** | -| **wasReloaded** | | boolean | vrai si l'entité a été correctement rechargée, sinon faux. | -| | | | ***Disponible uniquement en cas d'erreur :*** | -| status(\*) | | number | Code d'erreur, voir ci-dessous | -| statusText(\*) | | text | Description de l'erreur, voir ci-dessous | -| | | | ***Disponible uniquement en cas d'erreur de verrouillage pessimiste :*** | -| lockKindText | | text | "Locked by record" si verrouillage par un process 4D, "Locked by session" si verrouillage par une session REST | -| lockInfo | | object | Information sur l'origine du verrouillage. Les propriétés retournées dépendent de l'origine du verrouillage (process 4D ou session REST). | -| | | | ***Disponible uniquement pour un verrouillage par process 4D :*** | -| | task_id | number | ID du process | -| | user_name | text | Nom d'utilisateur de la session sur la machine | -| | user4d_alias | text | Nom ou alias de l'utilisateur 4D | -| | user4d_id | number | Identifiant utilisateur dans le répertoire de la base 4D | -| | host_name | text | Nom de la machine | -| | task_name | text | Nom du process | -| | client_version | text | Version du client | -| | | | ***Disponible uniquement pour le verrouillage d'une session REST :*** | -| | host | text | \| URL ayant verrouillé l'entité (ex : "www.myserver.com") \| | -| | IPAddr | text | Adresse IP d'origine du verrouillage (ex. 127.0.0.1") | -| | userAgent | text | userAgent de l'origine du verouillage (ex : "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_3) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/96.0.4664.110 Safari/537.36") | -| | | | ***Disponible uniquement en cas d'erreur critique*** (clé primaire dupliquée, disque plein...) : | -| errors | | collection of objects | | -| | message | text | Message d'erreur | -| | component signature | text | signature du composant interne (e.g. "dmbg" pour le composant de base de données) | -| | errCode | number | Code d'erreur | +| Propriété | | Type | Description | +| --------------------------------- | ----------------------------------- | --------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| success | | boolean | vrai si l'action de verrouillage a été effectuée avec succès (ou si l'entité est déjà verrouillée dans le process courant), sinon faux. | +| | | | ***Disponible uniquement si l'option `dk reload if stamp changed` a été utilisée*** | +| **wasReloaded** | | boolean | vrai si l'entité a été correctement rechargée, sinon faux. | +| | | | ***Disponible uniquement en cas d'erreur :*** | +| status(\*) | | number | Code d'erreur, voir ci-dessous | +| statusText(\*) | | text | Description de l'erreur, voir ci-dessous | +| | | | ***Disponible uniquement en cas d'erreur de verrouillage pessimiste :*** | +| lockKindText | | text | "Locked by record" si verrouillage par un process 4D, "Locked by session" si verrouillage par une session REST | +| lockInfo | | object | Information sur l'origine du verrouillage. Les propriétés retournées dépendent de l'origine du verrouillage (process 4D ou session REST). | +| | | | ***Disponible uniquement pour un verrouillage par process 4D :*** | +| | task_id | number | ID du process | +| | user_name | text | Nom d'utilisateur de la session sur la machine | +| | user4d_alias | text | Nom ou alias de l'utilisateur 4D | +| | user4d_id | number | Identifiant utilisateur dans le répertoire de la base 4D | +| | host_name | text | Nom de la machine | +| | task_name | text | Nom du process | +| | client_version | text | Version du client | +| | | | ***Disponible uniquement pour le verrouillage d'une session REST :*** | +| | host | text | \| URL ayant verrouillé l'entité (ex : "www.myserver.com") \\ | +| | IPAddr | text | Adresse IP d'origine du verrouillage (ex. 127.0.0.1") | +| | userAgent | text | userAgent de l'origine du verouillage (ex : "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_3) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/96.0.4664.110 Safari/537.36") | +| | | | ***Disponible uniquement en cas d'erreur critique*** (clé primaire dupliquée, disque plein...) : | +| errors | | collection of objects | | +| | message | text | Message d'erreur | +| | component signature | text | signature du composant interne (e.g. "dmbg" pour le composant de base de données) | +| | errCode | number | Code d'erreur | (\*) Les valeurs suivantes peuvent être retournées dans les propriétés *status* et *statusText* de l'objet *Résultat* en cas d'erreur : diff --git a/i18n/fr/docusaurus-plugin-content-docs/version-20-R7/API/EntitySelectionClass.md b/i18n/fr/docusaurus-plugin-content-docs/version-20-R7/API/EntitySelectionClass.md index 1342677f7ece67..5ea04097006b1c 100644 --- a/i18n/fr/docusaurus-plugin-content-docs/version-20-R7/API/EntitySelectionClass.md +++ b/i18n/fr/docusaurus-plugin-content-docs/version-20-R7/API/EntitySelectionClass.md @@ -5,7 +5,7 @@ title: EntitySelection Une entity selection est un objet contenant une ou plusieurs référence(s) à des [entités](ORDA/dsMapping.md#entity) appartenant à la même [Dataclass](ORDA/dsMapping.md#dataclass). 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. -Les entity selections peuvent être créées à partir de sélections existantes en utilisant diverses fonctions de la classe [`DataClass`](DataClassClass.md) telles que [`.all()`](DataClassClass.md#all) ou [`.query()`](DataClassClass.md#query), ou des fonctions de la classe `EntityClass` elle-même, telles que [`.and()`](#and) ou [`orderBy()`](#orderby). You can also create blank entity selections using the [`dataClass.newSelection()`](DataClassClass.md#newselection) function or the [`Create entity selection`](../commands/create-entity-selection.md) command. +Les entity selections peuvent être créées à partir de sélections existantes en utilisant diverses fonctions de la classe [`DataClass`](DataClassClass.md) telles que [`.all()`](DataClassClass.md#all) ou [`.query()`](DataClassClass.md#query), ou des fonctions de la classe `EntityClass` elle-même, telles que [`.and()`](#and) ou [`orderBy()`](#orderby). Vous pouvez également créer des entity selections vierges à l'aide de la fonction [`dataClass.newSelection()`](DataClassClass.md#newselection) ou de la commande [`Create entity selection`](../commands/create-entity-selection.md). ### Sommaire @@ -210,7 +210,7 @@ La fonction `.add()` ajoute l'*e :::info attention -L'entity selection doit être *modifiable*, c'est-à-dire qu'elle a été créée par exemple par [`.newSelection()`](DataClassClass.md#newselection) ou `Create entity selection`, sinon `.add()` renverra une erreur. Les entity selections partageables n'acceptent pas l'ajout d'entités. Pour plus d'informations, reportez-vous au paragraphe [Entity selections partageables ou modifiables](ORDA/entities.md#shareable-or-alterable-entity-selections). +L'entity selection doit être *modifiable*, c'est-à-dire qu'elle a été créée par exemple par [`.newSelection()`](DataClassClass.md#newselection) ou `Create entity selection`, sinon `.add()` renverra une erreur. Les entity selections partageables n'acceptent pas l'ajout d'entités. Les entity selections partageables n'acceptent pas l'ajout d'entités. ::: @@ -674,7 +674,7 @@ La fonction `.distinct()` r La collection retournée est automatiquement triée. Les valeurs **Null** ne sont pas retournées. -Dans le paramètre *attributePath* passez l'attribut d'entité dont vous voulez obtenir les valeurs distinctes. Seules les valeurs scalaires (texte, nombre, booléen ou date) peuvent être gérées. Si *attributePath* mène à une propriété d'objet qui contient des valeurs de différents types, celles-ci sont d'abord regroupées par type et triées ensuite. Les types sont renvoyés dans l'ordre suivant : +Dans le paramètre *attributePath* passez l'attribut d'entité dont vous voulez obtenir les valeurs distinctes. Seules les valeurs scalaires (texte, nombre, booléen ou date) peuvent être gérées. Seules les valeurs scalaires (texte, nombre, booléen ou date) peuvent être gérées. Les types sont renvoyés dans l'ordre suivant : 1. booléens 2. chaînes diff --git a/i18n/fr/docusaurus-plugin-content-docs/version-20-R7/API/FileClass.md b/i18n/fr/docusaurus-plugin-content-docs/version-20-R7/API/FileClass.md index 33264990e5c6d9..9706f31f02467e 100644 --- a/i18n/fr/docusaurus-plugin-content-docs/version-20-R7/API/FileClass.md +++ b/i18n/fr/docusaurus-plugin-content-docs/version-20-R7/API/FileClass.md @@ -412,7 +412,7 @@ $myFile.moveTo($DocFolder.folder("Archives");"Infos_old.txt") #### Description -La fonction `.open()` crée et renvoie un nouvel objet [4D.FileHandle](FileHandleClass) sur le fichier, dans le *mode* spécifié ou avec les *options* spécifiées. Vous pouvez utiliser les fonctions et les propriétés de la classe [4D.FileHandle](FileHandleClass) pour écrire, lire ou ajouter du contenu au fichier. +Chemins d'accès Vous pouvez utiliser les fonctions et les propriétés de la classe [4D.FileHandle](FileHandleClass) pour écrire, lire ou ajouter du contenu au fichier. Si vous utilisez le paramètre *mode* (texte), passez le mode d'ouverture pour le file handle : diff --git a/i18n/fr/docusaurus-plugin-content-docs/version-20-R7/API/FileHandleClass.md b/i18n/fr/docusaurus-plugin-content-docs/version-20-R7/API/FileHandleClass.md index 0c134e8fdae718..a8b44ce78e2f5d 100644 --- a/i18n/fr/docusaurus-plugin-content-docs/version-20-R7/API/FileHandleClass.md +++ b/i18n/fr/docusaurus-plugin-content-docs/version-20-R7/API/FileHandleClass.md @@ -275,7 +275,7 @@ Cette propriété est en **lecture/écriture**. :::caution -Lorsqu'un file handle est créé, la valeur `.offset` est un nombre d'octets. Cependant, l'unité de mesure du décalage diffère selon la fonction de lecture : avec [`readBlob()`](#readblob), `.offset` est un nombre d'octets, alors qu'avec [`readText()`](#readtext)/[`readLine()`](#readline), c'est un nombre de caractères. Selon le jeu de caractères du fichier, un caractère correspond à un ou plusieurs octets. Ainsi, si vous commencez la lecture avec `readBlob()` et que vous appelez ensuite `readText()`, la lecture du texte commencera à une position incohérente. Il est donc essentiel de définir vous-même la propriété `.offset` si vous passez de la lecture/écriture de blob à la lecture/écriture de texte dans le même filehandle. Par exemple : +Lorsqu'un file handle est créé, la valeur `.offset` est un nombre d'octets. Cependant, l'unité de mesure du décalage diffère selon la fonction de lecture : avec [`readBlob()`](#readblob), `.offset` est un nombre d'octets, alors qu'avec [`readText()`](#readtext)/[`readLine()`](#readline), c'est un nombre de caractères. Selon le jeu de caractères du fichier, un caractère correspond à un ou plusieurs octets. Selon le jeu de caractères du fichier, un caractère correspond à un ou plusieurs octets. Ainsi, si vous commencez la lecture avec `readBlob()` et que vous appelez ensuite `readText()`, la lecture du texte commencera à une position incohérente. Par exemple : ```4d // Ouvrir un fichier texte européen en utilisant l'encodage utf-16 (2 octets par caractère) diff --git a/i18n/fr/docusaurus-plugin-content-docs/version-20-R7/API/FolderClass.md b/i18n/fr/docusaurus-plugin-content-docs/version-20-R7/API/FolderClass.md index fc724508e1fa04..fb112fdd41f301 100644 --- a/i18n/fr/docusaurus-plugin-content-docs/version-20-R7/API/FolderClass.md +++ b/i18n/fr/docusaurus-plugin-content-docs/version-20-R7/API/FolderClass.md @@ -297,7 +297,7 @@ La fonction `.moveTo( )` déplace ou d Le *destinationFolder* doit exister sur disque, sinon une erreur est générée. -Par défaut, le dossier garde le même nom lorsqu'il est déplacé. Si vous souhaitez renommer le dossier déplacé, passez le nouveau nom complet dans le paramètre *newName*. Le nouveau nom doit être conforme aux règles de nommage (ex : il ne doit pas contenir de caractères tels que ":", "/", etc.), sinon une erreur est retournée. +Par défaut, le dossier garde le même nom lorsqu'il est déplacé. Par défaut, le dossier garde le même nom lorsqu'il est déplacé. Le nouveau nom doit être conforme aux règles de nommage (ex : il ne doit pas contenir de caractères tels que ":", "/", etc.), sinon une erreur est retournée. **Objet retourné** diff --git a/i18n/fr/docusaurus-plugin-content-docs/version-20-R7/API/HTTPRequestClass.md b/i18n/fr/docusaurus-plugin-content-docs/version-20-R7/API/HTTPRequestClass.md index 6a24ed33631cfb..16a577387dbca2 100644 --- a/i18n/fr/docusaurus-plugin-content-docs/version-20-R7/API/HTTPRequestClass.md +++ b/i18n/fr/docusaurus-plugin-content-docs/version-20-R7/API/HTTPRequestClass.md @@ -478,7 +478,7 @@ La propriété `.url` contient l'URL d ## .wait() -**.wait**( { *time* : Real } ) : HTTPRequestClass +**.wait**( { *time* : Real } ) : 4D.HTTPRequest @@ -499,6 +499,6 @@ Si un paramètre *time* est passé, la fonction attendra au maximum le nombre de Si la réponse du serveur est déjà arrivée, la fonction rend la main immédiatement. -During a `.wait()` execution, callback functions are executed, whether from other `HTTPRequest` or [`SystemWorker`](SystemWorkerClass.md) instances, or other [`CALL WORKER`](../commands-legacy/call-worker.md) calls. Vous pouvez sortir d'un `.wait()` en appelant [`terminate()`](#terminate) à partir d'une callback. +Lors d'une exécution `.wait()`, les fonctions de rappel sont exécutées, que ce soit à partir d'autres instances `HTTPRequest` ou [`SystemWorker`](SystemWorkerClass.md), ou d'autres appels [`CALL WORKER`](../commands-legacy/call-worker.md) . Vous pouvez sortir d'un `.wait()` en appelant [`terminate()`](#terminate) à partir d'une callback. diff --git a/i18n/fr/docusaurus-plugin-content-docs/version-20-R7/API/SessionClass.md b/i18n/fr/docusaurus-plugin-content-docs/version-20-R7/API/SessionClass.md index ffefb4922ef7a1..781282c0554ca1 100644 --- a/i18n/fr/docusaurus-plugin-content-docs/version-20-R7/API/SessionClass.md +++ b/i18n/fr/docusaurus-plugin-content-docs/version-20-R7/API/SessionClass.md @@ -367,7 +367,7 @@ L'objet `.info` contient les propriétés suivantes: | creationDateTime | Date ISO 8601 | Date et heure de création de la session | | state | Text | État de la session : "active", "postponed", "sleeping" | | ID | Text | UUID de session (même valeur que [`.id`](#id)) | -| persistentID | Text | Remote sessions: Session's persistent ID | +| persistentID | Text | Sessions distantes : ID persistant de la session | :::note @@ -580,7 +580,7 @@ End use La propriété `.userName` contient le nom d'utilisateur associé à la session. Vous pouvez vous en servir pour identifier l'utilisateur dans votre code. - Avec les sessions web, cette propriété est une chaîne vide par défaut. Elle peut être définie via la propriété `privileges` de la fonction [`setPrivileges()`](#setprivileges). -- With remote and stored procedure sessions, this property returns the same user name as the [`Current user`](../commands-legacy/current-user.md) command. +- Avec les sessions clients distants et procédures stockées, cette propriété retourne le même nom d'utilisateur que la commande [`Current user`](../commands-legacy/current-user.md). Cette propriété est en **lecture seule**. diff --git a/i18n/fr/docusaurus-plugin-content-docs/version-20-R7/Concepts/classes.md b/i18n/fr/docusaurus-plugin-content-docs/version-20-R7/Concepts/classes.md index 285f92a5cad7dd..980e6244397eee 100644 --- a/i18n/fr/docusaurus-plugin-content-docs/version-20-R7/Concepts/classes.md +++ b/i18n/fr/docusaurus-plugin-content-docs/version-20-R7/Concepts/classes.md @@ -7,7 +7,7 @@ title: Classes Le langage 4D prend en charge le concept de **classes**. Dans un langage de programmation, l'utilisation d'une classe vous permet de définir le comportement d'un objet avec des propriétés et des fonctions associées. -Une fois qu'une classe utilisateur est définie, vous pouvez **instancier des objets** de cette classe n'importe où dans votre code. Chaque objet est une instance de sa classe. Une classe peut [`étendre`](#class-extends-classname) une autre classe, et hérite ensuite de ses [fonctions](#function) et propriétés ([déclarées](#property) et [calculées](#function-get-and-function-set)). +Une fois qu'une classe utilisateur est définie, vous pouvez **instancier des objets** de cette classe n'importe où dans votre code. Chaque objet est une instance de sa classe. Chaque objet est une instance de sa classe. > Les modèles de classe 4D et JavaScript sont similaires, et basés sur une chaîne de prototypes. @@ -107,9 +107,9 @@ Les classes disponibles sont accessibles depuis leurs class stores. Il existe de -| Paramètres | Type | | Description | | -| ---------- | ------ | ------------------------------ | ------------------------------------------------------------------- | ---------------- | -| classStore | Object | &larr; | Class store utilisateur utilisateurs pour le projet ou le composant | | +| Paramètres | Type | | Description | | +| ---------- | ------ | - | ------------------------------------------------------------------- | ---------------- | +| classStore | Object | ← | Class store utilisateur utilisateurs pour le projet ou le composant | | La commande `cs` retourne le class store utilisateur pour le projet ou le composant courant. Elle retourne toutes les classes utilisateur [définies](#class-definition) dans le projet ou le composant ouvert. Par défaut, seules les [classes ORDA](ORDA/ordaClasses.md) du projet sont disponibles. @@ -127,9 +127,9 @@ $instance:=cs.myClass.new() -| Paramètres | Type | | Description | | -| ---------- | ------ | ------------------------------ | -------------- | ---------------- | -| classStore | Object | &larr; | Class store 4D | | +| Paramètres | Type | | Description | | +| ---------- | ------ | - | -------------- | ---------------- | +| classStore | Object | ← | Class store 4D | | La commande `4D` retourne le class store des classes 4D intégrées disponibles. Elle donne accès à des API spécifiques telles que [CryptoKey](API/CryptoKeyClass.md). @@ -199,7 +199,7 @@ There is no ending keyword for function code. The 4D language automatically dete Les fonctions de classe sont des propriétés spécifiques de la classe. Ce sont des objets de la classe [4D.Function](API/FunctionClass.md). Dans le fichier de définition de classe, les déclarations de fonction utilisent le mot-clé `Function` suivi du nom de la fonction. -Si la fonction est déclarée dans une [classe partagée](#shared-classes), vous pouvez utiliser le mot-clé `shared` pour que la fonction puisse être appelée sans [structure `Use. .End use`](shared.md#useend-use). Pour plus d'informations, consultez le paragraphe sur les [fonctions partagées](#shared-functions) ci-dessous. +Si les fonctions sont déclarées dans une [classe partagée](#constructeur-de-classe-partagee), vous pouvez utiliser le mot-clé `shared` avec elles afin qu'elles puissent être appelées sans la structure [`Use...End use`](shared.md#useend-use). Pour plus d'informations, consultez le paragraphe sur les [fonctions partagées](#shared-functions) ci-dessous. Le nom de la fonction doit être conforme aux [règles de nommage des objets](Concepts/identifiers.md#object-properties). @@ -341,7 +341,7 @@ Une fonction class constructor accepte des [paramètres](#parameters) facultatif Lorsque vous appelez la fonction [`new()`](API/ClassClass.md#new), le constructeur de classe est appelé avec les paramètres éventuellement passés à la fonction `new()`. -Il ne peut y avoir qu'une seule fonction constructor dans une classe (sinon une erreur est renvoyée). Un constructeur peut utiliser le mot-clé [`Super`](#super) pour appeler le constructeur de la superclass. +Il ne peut y avoir qu'une seule fonction constructor dans une classe (sinon une erreur est renvoyée). The [`Super`](../commands/super.md) command allows calls to the [`superclass`](../API/ClassClass#superclass), i.e. the parent class of the function. Vous pouvez créer et saisir des propriétés d'instance dans le constructeur (voir exemple). Alternativement, si les valeurs de vos propriétés d'instance ne dépendent pas des paramètres passés au constructeur, vous pouvez les définir en utilisant le mot-clé [`property`](#property). @@ -509,9 +509,9 @@ Dans le fichier de définition de la classe, les déclarations de propriétés c `Function get` retourne une valeur du type de la propriété et `Function set` prend un paramètre du type de la propriété. Les deux arguments doivent être conformes aux [paramètres de fonction](#parameters) standard. -Lorsque les deux fonctions sont définies, la propriété calculée est en **lecture-écriture**. Si seule une `Function get` est définie, la propriété calculée est en **lecture seule**. Dans ce cas, une erreur est retournée si le code tente de modifier la propriété. Si seule une `Function set` est définie, 4D retourne *undefined* lorsque la propriété est lue. +Lorsque les deux fonctions sont définies, la propriété calculée est en **lecture-écriture**. Si seule une `Function get` est définie, la propriété calculée est en **lecture seule**. Dans ce cas, une erreur est retournée si le code tente de modifier la propriété. Dans ce cas, une erreur est retournée si le code tente de modifier la propriété. -Si les fonctions sont déclarées dans une [classe partagée](#constructeur-de-classe-partagee), vous pouvez utiliser le mot-clé `shared` avec elles afin qu'elles puissent être appelées sans la structure [`Use...End use`](shared.md#useend-use). Pour plus d'informations, consultez le paragraphe sur les [fonctions partagées](#shared-functions) ci-dessous. +Si la fonction est déclarée dans une [classe partagée](#shared-classes), vous pouvez utiliser le mot-clé `shared` pour que la fonction puisse être appelée sans [structure `Use. .End use`](shared.md#useend-use). Pour plus d'informations, consultez le paragraphe sur les [fonctions partagées](#shared-functions) ci-dessous. Le type de la propriété calculée est défini par la déclaration de type `$return` du *getter*. Il peut s'agir de n'importe quel [type de propriété valide](dt_object.md). @@ -612,7 +612,7 @@ The following commands have specific features when they are used within class fu ### `Super` -The [`Super`](../commands/super.md) command allows calls to the [`superclass`](../API/ClassClass#superclass), i.e. the parent class of the function. It can be called in the [class constructor](#class-constructor) or in a class function code. +The [`Super`](../commands/super.md) command allows calls to the [`superclass`](../API/ClassClass#superclass), i.e. the parent class of the function. Il ne peut y avoir qu'une seule fonction constructor dans une classe (sinon une erreur est renvoyée). For more details, see the [`Super`](../commands/super.md) command description. diff --git a/i18n/fr/docusaurus-plugin-content-docs/version-20-R7/Notes/updates.md b/i18n/fr/docusaurus-plugin-content-docs/version-20-R7/Notes/updates.md index b73954a82da782..f1c59c9a25a0e7 100644 --- a/i18n/fr/docusaurus-plugin-content-docs/version-20-R7/Notes/updates.md +++ b/i18n/fr/docusaurus-plugin-content-docs/version-20-R7/Notes/updates.md @@ -168,7 +168,7 @@ See [**Release Notes for 4D 20.x LTS**](../../version-20/Notes/updates.md). | Bibliothèque | Version courante | Mise à jour dans 4D | Commentaire | | ------------ | -------------------------------------- | ------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------- | | BoringSSL | 0aa300b | 20 R6 | Utilisé pour QUIC | -| CEF | 128 | **20 R7** | Chromium 6613 | +| CEF | 121 | 20 R5 | Chromium 6167 | | Hunspell | 1.7.2 | 20 | Utilisé pour la vérification orthographique dans les formulaires 4D et 4D Write Pro | | ICU | 73.2 | 20 | Cette mise à jour majeure entraîne une reconstruction automatique des index alphanumériques, texte et objets. | | libldap | 2.6.7 | 20 R6 | | diff --git a/i18n/fr/docusaurus-plugin-content-docs/version-20-R7/Project/code-overview.md b/i18n/fr/docusaurus-plugin-content-docs/version-20-R7/Project/code-overview.md index e76174a9bb43d9..13df62ee119d7c 100644 --- a/i18n/fr/docusaurus-plugin-content-docs/version-20-R7/Project/code-overview.md +++ b/i18n/fr/docusaurus-plugin-content-docs/version-20-R7/Project/code-overview.md @@ -5,7 +5,7 @@ title: Methods and classes The 4D code used across your project is written in [methods](../Concepts/methods.md) and [classes](../Concepts/classes.md). -L'IDE de 4D vous offre diverses fonctionnalités pour créer, modifier, exporter ou supprimer votre code. You will usually use the 4D [code editor](../code-editor/write-class-method.md) to work with your code. +L'IDE de 4D vous offre diverses fonctionnalités pour créer, modifier, exporter ou supprimer votre code. You will usually use the included 4D [code editor](../code-editor/write-class-method.md) to work with your code. You can also use other editors such as **VS Code**, for which the [4D-Analyzer extension](https://github.com/4d/4D-Analyzer-VSCode) is available. ## Créer des méthodes diff --git a/i18n/fr/docusaurus-plugin-content-docs/version-20-R7/Project/overview.md b/i18n/fr/docusaurus-plugin-content-docs/version-20-R7/Project/overview.md index 81570c1d16b04f..01828160a851c3 100644 --- a/i18n/fr/docusaurus-plugin-content-docs/version-20-R7/Project/overview.md +++ b/i18n/fr/docusaurus-plugin-content-docs/version-20-R7/Project/overview.md @@ -7,7 +7,7 @@ Un projet 4D contient l'intégralité du code source d'une application 4D, quel ## Fichiers du projet -Les fichiers de projet 4D sont ouverts et édités à l'aide d'applications standard de la plate-forme 4D (4D ou 4D Server). Avec 4D, des éditeurs complets sont disponibles pour gérer les fichiers, y compris un éditeur de structure, un éditeur de code, un éditeur de formulaire, un éditeur de menu, etc... +Les fichiers de projet 4D sont ouverts et édités à l'aide d'applications standard de la plate-forme 4D (4D ou 4D Server). With 4D, full-featured editors are available to manage files, including a structure editor, a [Code Editor](../code-editor/write-class-method.md), a [form editor](../FormEditor/formEditor.md), a menu editor... Les projets étant des fichiers lisibles, en texte brut (JSON, XML, etc.), ils peuvent être lus ou édités manuellement par les développeurs, à l’aide de n’importe quel éditeur de code. diff --git a/i18n/fr/docusaurus-plugin-content-docs/version-20-R7/WebServer/httpRequests.md b/i18n/fr/docusaurus-plugin-content-docs/version-20-R7/WebServer/httpRequests.md index 15db984f81a12a..1d73cc8a72e751 100644 --- a/i18n/fr/docusaurus-plugin-content-docs/version-20-R7/WebServer/httpRequests.md +++ b/i18n/fr/docusaurus-plugin-content-docs/version-20-R7/WebServer/httpRequests.md @@ -339,6 +339,6 @@ Le serveur web 4D prend en charge les fichiers envoyés en encodage de transfert ## Méthode projet COMPILER_WEB -La méthode COMPILER\_WEB, si elle existe, est systématiquement appelée lorsque le serveur HTTP reçoit une requête dynamique et appelle le moteur 4D. C'est le cas, par exemple, lorsque le serveur Web 4D reçoit un formulaire envoyé ou une URL à traiter dans [`On Web Connection`](#on-web-connection). Cette méthode est destinée à contenir des directives de typage et/ou d'initialisation de variables utilisées lors des échanges Web. Elle est utilisée par le compilateur lorsque l'application est compilée. La méthode COMPILER\_WEB est commune à tous les formulaires Web. Par défaut, la méthode COMPILER_WEB n'existe pas. Vous devez la créer explicitement. +La méthode COMPILER\_WEB, si elle existe, est systématiquement appelée lorsque le serveur HTTP reçoit une requête dynamique et appelle le moteur 4D. La méthode COMPILER\_WEB, si elle existe, est systématiquement appelée lorsque le serveur HTTP reçoit une requête dynamique et appelle le moteur 4D. Cette méthode est destinée à contenir des directives de typage et/ou d'initialisation de variables utilisées lors des échanges Web. Elle est utilisée par le compilateur lorsque l'application est compilée. La méthode COMPILER\_WEB est commune à tous les formulaires Web. Par défaut, la méthode COMPILER_WEB n'existe pas. Vous devez la créer explicitement. > La méthode projet COMPILER_WEB est également appelée, si elle existe, pour chaque requête SOAP acceptée. diff --git a/i18n/fr/docusaurus-plugin-content-docs/version-20-R7/WebServer/qodly-studio.md b/i18n/fr/docusaurus-plugin-content-docs/version-20-R7/WebServer/qodly-studio.md index 75d67437864a2c..d3e862bb011207 100644 --- a/i18n/fr/docusaurus-plugin-content-docs/version-20-R7/WebServer/qodly-studio.md +++ b/i18n/fr/docusaurus-plugin-content-docs/version-20-R7/WebServer/qodly-studio.md @@ -128,15 +128,15 @@ Il n'y a pas de compatibilité directe entre les applications implémentées ave ### Comparatif des fonctionnalités -| | Qodly Studio in 4D | Qodly Studio in Qodly Cloud platform | -| -------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------ | -| Afficher et modifier les tableaux (dataclasses), les attributs et les relations | Éditeur de structure 4D(1) | Éditeur de modèles de Qodly Studio | -| Qodly pages | Qodly Studio Page Editor | Qodly Studio Page Editor | -| Formulaires Desktop | 4D IDE | *non supporté* | -| Langage de programmation | Langage 4D avec ORDA | [QodlyScript](https://developer.qodly.com/docs/category/qodlyscript) avec ORDA | -| IDE code | 4D IDE code editor *or* VS Code with [4D extension](https://github.com/4d/4D-Analyzer-VSCode)
    *4D Server only*: Qodly Studio code editor (see (2)) | Éditeur de code Qodly Studio | -| Débogueur | 4D IDE debugger
    *4D Server only*: Qodly Studio debugger (see [this paragraph](#using-qodly-debugger-on-4d-server)) | Débogueur Qodly Studio | -| Rôles et privilèges REST/Web | Edition directe roles.json / Éditeur de rôles et privilèges de Qodly Studio | Éditeur de rôles et privilèges de Qodly Studio | +| | Qodly Studio in 4D | Qodly Studio in Qodly Cloud platform | +| -------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------ | +| Afficher et modifier les tableaux (dataclasses), les attributs et les relations | Éditeur de structure 4D(1) | Éditeur de modèles de Qodly Studio | +| Qodly pages | Qodly Studio Page Editor | Qodly Studio Page Editor | +| Formulaires Desktop | 4D IDE | *non supporté* | +| Langage de programmation | Langage 4D avec ORDA | [QodlyScript](https://developer.qodly.com/docs/category/qodlyscript) avec ORDA | +| IDE code | 4D IDE code editor *or* VS Code with [4D-Analyzer extension](https://github.com/4d/4D-Analyzer-VSCode)
    *4D Server only*: Qodly Studio code editor (see (2)) | Éditeur de code Qodly Studio | +| Débogueur | 4D IDE debugger
    *4D Server only*: Qodly Studio debugger (see [this paragraph](#using-qodly-debugger-on-4d-server)) | Débogueur Qodly Studio | +| Rôles et privilèges REST/Web | Edition directe roles.json / Éditeur de rôles et privilèges de Qodly Studio | Éditeur de rôles et privilèges de Qodly Studio | (1) If you click on the **Model** button in Qodly Studio, nothing happens.
    (2) In 4D Server, opening 4D code with the Qodly Studio code editor is supported **for testing and debugging purposes** (see [this paragraph](#development-and-deployment)). Note that in 4D single-user, if you open some 4D code with the Qodly Studio code editor, syntax coloring is not available and a "Lsp not loaded" warning is displayed. diff --git a/i18n/fr/docusaurus-plugin-content-docs/version-20-R7/code-editor/write-class-method.md b/i18n/fr/docusaurus-plugin-content-docs/version-20-R7/code-editor/write-class-method.md index fa6a69fc5acd4a..f24b1fe50c15d0 100644 --- a/i18n/fr/docusaurus-plugin-content-docs/version-20-R7/code-editor/write-class-method.md +++ b/i18n/fr/docusaurus-plugin-content-docs/version-20-R7/code-editor/write-class-method.md @@ -13,6 +13,12 @@ Vous pouvez faire défiler le contenu des méthodes, des classes et des fonction L'éditeur de code 4D fournit un contrôle de base des erreurs de syntaxe. Un contrôle d'erreur supplémentaire est effectué lors de l'exécution du code. Pour plus d'informations sur la gestion des erreurs, voir [Débogage](../Debugging/basics.md). +:::note + +If you are used to coding with **VS Code**, you can also use this editor with 4D code after installing the [4D-Analyzer](https://github.com/4d/4D-Analyzer-VSCode) extension. + +::: + ## Interface ### Toolbar (Barre d’outils) diff --git a/i18n/fr/docusaurus-plugin-content-docs/version-20-R7/commands-legacy/array-text.md b/i18n/fr/docusaurus-plugin-content-docs/version-20-R7/commands-legacy/array-text.md index 74db59b179f40f..ac669203c4c8d0 100644 --- a/i18n/fr/docusaurus-plugin-content-docs/version-20-R7/commands-legacy/array-text.md +++ b/i18n/fr/docusaurus-plugin-content-docs/version-20-R7/commands-legacy/array-text.md @@ -55,6 +55,3 @@ Cet exemple crée un tableau interprocess de 50 éléments de type [Texte](# "Un  End for ``` -#### Voir aussi - -*\_o\_ARRAY STRING* \ No newline at end of file diff --git a/i18n/fr/docusaurus-plugin-content-docs/version-20-R7/commands-legacy/data-file.md b/i18n/fr/docusaurus-plugin-content-docs/version-20-R7/commands-legacy/data-file.md index 94a437d09a0c46..2b760ffa61e7ba 100644 --- a/i18n/fr/docusaurus-plugin-content-docs/version-20-R7/commands-legacy/data-file.md +++ b/i18n/fr/docusaurus-plugin-content-docs/version-20-R7/commands-legacy/data-file.md @@ -30,6 +30,5 @@ Si, par exemple, vous travaillez avec la base MesCDs qui se trouve dans le dossi #### Voir aussi -*\_o\_DATA SEGMENT LIST* [Application file](application-file.md) [Structure file](structure-file.md) \ No newline at end of file diff --git a/i18n/fr/docusaurus-plugin-content-docs/version-20-R7/commands-legacy/drop-position.md b/i18n/fr/docusaurus-plugin-content-docs/version-20-R7/commands-legacy/drop-position.md index b329ca321a7c29..8c7fe13040641d 100644 --- a/i18n/fr/docusaurus-plugin-content-docs/version-20-R7/commands-legacy/drop-position.md +++ b/i18n/fr/docusaurus-plugin-content-docs/version-20-R7/commands-legacy/drop-position.md @@ -93,5 +93,4 @@ La méthode objet de la list box de gauche (destination) contient le code suivan #### Voir aussi -*\_o\_DRAG AND DROP PROPERTIES* *Présentation du Glisser-Déposer* \ No newline at end of file diff --git a/i18n/fr/docusaurus-plugin-content-docs/version-20-R7/commands-legacy/filter-keystroke.md b/i18n/fr/docusaurus-plugin-content-docs/version-20-R7/commands-legacy/filter-keystroke.md index 4e61bcec799417..779d94e78b6850 100644 --- a/i18n/fr/docusaurus-plugin-content-docs/version-20-R7/commands-legacy/filter-keystroke.md +++ b/i18n/fr/docusaurus-plugin-content-docs/version-20-R7/commands-legacy/filter-keystroke.md @@ -22,7 +22,7 @@ displayed_sidebar: docs Si vous passez une chaîne vide, le filtrage clavier en cours est annulé. -Vous appelez généralement **FILTER KEYSTROKE** dans une méthode formulaire ou objet lorsque vous gérez l'événement formulaire On Before Keystroke . Pour détecter les événements de frappe clavier, utilisez la commande [Form event code](form-event-code.md). Pour récupérer les caractères saisis au clavier, utilisez les fonctions [Keystroke](keystroke.md) ou [Get edited text](get-edited-text.md). +Vous appelez généralement **FILTER KEYSTROKE** dans une méthode formulaire ou objet lorsque vous gérez l'événement formulaire On Before Keystroke . Pour détecter les événements de frappe clavier, utilisez la commande [Form event code](../commands/form-event-code.md). Pour récupérer les caractères saisis au clavier, utilisez les fonctions [Keystroke](keystroke.md) ou [Get edited text](get-edited-text.md). **IMPORTANT :** Si vous voulez effectuer des opérations “à la volée” en fonction de la valeur courante de la zone saisissable en cours de modification ainsi que du caractère à saisir, rappelez-vous que le texte affiché à l'écran n'est pas encore la valeur du champ ou de la variable. La valeur saisie dans une variable ou un champ ne lui est affectée que lorsque la zone est validée (lorsque l'utilisateur appuie sur la touche **Tabulation**, clique sur un bouton, etc.). En conséquence, pensez à placer les valeurs saisies dans une variable temporaire et à travailler avec celle-ci, puis à assigner cette variable à la zone de saisie (reportez-vous à l'exemple ci-dessous). Vous pouvez également utiliser la fonction [Get edited text](get-edited-text.md). @@ -81,71 +81,68 @@ Vous disposez dans votre application de diverses zones de texte dans lesquelles Comme décrit ci-dessus, lorsque vous éditez une zone de texte, la valeur du champ ou de la variable de texte ne sera réellement modifiée que lorsque que vous l'aurez validée. Pour retrouver et insérer rapidement des entrées du glossaire dans une zone de texte alors qu'elle est en train d'être modifiée, vous devez donc créer une seconde zone "tampon" pour y placer les valeurs saisies. Vous pouvez effectuer cette opération à l'aide de la méthode projet décrite ci-dessous. Vous passez comme premiers paramètres des pointeurs vers la zone de saisie et vers la variable, puis la chaîne de caractère “interdits” comme troisième paramètre. Peu importe comment l'entrée clavier sera traitée, la méthode retourne la valeur saisie originale. Les caractères “interdits” sont les caractères que vous ne voulez pas insérer dans la zone saisissable et que vous voulez traiter en tant que caractères spéciaux. ```4d -  // Méthode projet Frappe clavier tampon -  // Frappe clavier tampon ( Pointeur ; Pointeur ; Alpha ) -> Alpha -  // Frappe clavier tampon ( -> zoneSource ; -> valeurCourante ; Filtre ) -> Ancien frappe clavier - C_STRING(1;$0) - var $1;$2 : Pointer - var $vtNouvValeur : Text - C_STRING(255;$3) -  // Retourne la frappe clavier originale - $0:=Keystroke -  // Obtenir la sélection de texte dans la zone saisissable - GET HIGHLIGHT($1->;$vlDébut;$vlFin) -  // Commencer à travailler sur la valeur courante - $vtNouvValeur:=$2-> -  // En fonction de la touche enfoncée ou du caractère saisi, effectuer les actions appropriées +  // Shadow keystroke project method +  // Shadow keystroke ( Pointer ; Pointer ; String ) -> String +  // Shadow keystroke ( -> srcArea ; -> curValue ; Filter ) -> Old keystroke +#DECLARE ($srcArea : Pointer ; $curVal : Pointer ; $filter : Text) -> $old : Text + var $vtNewValue : Text +  // Return the original keystroke + $old:=Keystroke +  // Get the text selection range within the enterable area + GET HIGHLIGHT($srcArea->;$vlStart;$vlEnd) +  // Start working with the current value + $vtNewValue:=$curVal-> +  // Depending on the key pressed or the character entered, +  // Perform the appropriate actions  Case of -  // La touche Retour arrière a été enfoncée -    :(Character code($0)=Backspace key) -  // Supprimer les caractères sélectionnés ou le caractère à gauche du curseur -       $vtNouvValeur:=Supprimer texte($vtNouvValeur;$vlDébut;$vlFin) -  // Une touche "flèche" a été appuyée -  // Ne faites rien sauf accepter la frappe clavier -    :(Character code($0)=Left arrow key) -    :(Character code($0)=Right arrow key) -    :(Character code($0)=Up arrow key) -    :(Character code($0)=Down arrow key) +  // The Backspace (Delete) key has been pressed +    :(Character code($old)=Backspace) +  // Delete the selected characters or the character at the left of the text cursor +       $vtNewValue:=Delete text($vtNewValue;$vlStart;$vlEnd) +  // An Arrow key has been pressed +  // Do nothing, but accept the keystroke +    :(Character code($old)=Left arrow key) +    :(Character code($old)=Right arrow key) +    :(Character code($old)=Up arrow key) +    :(Character code($old)=Down arrow key)   -  // Un caractère valide a été saisi -    :(Position($0;$3)=0) -       $vtNouvValeur:=Inserer texte($vtNouvValeur;$vlDébut;$vlFin;$0) +  // An acceptable character has been entered +    :(Position($old;$filter)=0) +       $vtNewValue:=Insert text($vtNewValue;$vlStart;$vlEnd;$0)     Else -  // Le caractère n'est pas accepté +  // The character is not accepted        FILTER KEYSTROKE("")  End case -  // Retourner la valeur pour la prochaine gestion de la frappe clavier - $2->:=$vtNouvValeur +  // Return the value for the next keystroke handling + $curVal->:=$vtNewValue ``` + Cette méthode utilise les sous-méthodes suivantes : ```4d -  // Méthode projet Supprimer texte -  // Supprimer texte ( Alpha ; Long ; Long ) -> Alpha -  // Supprimer texte ( -> Texte ; SelDébut ; SelFin ) -> Nouveau texte - var $0;$1 : Text - var $2;$3 : Integer - $0:=Substring($1;1;$2-1-Num($2=$3))+Substring($1;$3) +  // Delete text project method +  // Delete text ( String ; Long ; Long ) -> String +  // Delete text ( -> Text ; SelStart ; SelEnd ) -> New text +#DECLARE ($src : Text ; $start : Integer ; $end : Integer) -> $new : Text  + $new:=Substring($src;1;$start-1-Num($start=$end))+Substring($src;$end) ``` - -```4d -  // Méthode projet Inserer texte -  // Inserer texte ( Alpha ; Long ; Long ; Alpha ) -> Alpha -  // Inserer texte ( -> texteSource ; SelDébut ; SelFin ; Texte à insérer ) -> Nouveau texte - var $0;$1;$4 : Text - var $2;$3 : Integer - $0:=$1 - If($2#$3) -    $0:=Substring($0;1;$2-1)+$4+Substring($0;$3) +```4d  +  // Insert text project method +  // Insert text ( String ; Long ; Long ; String ) -> String +  // Insert text ( -> srcText ; SelStart ; SelEnd ; Text to insert ) -> New text +#DECLARE ($src : Text ; $start : Integer ; $end : Integer ; $toInsert : Text) -> $new : Text  + $new:=$src + If($start # $end) +    $new:=Substring($new;1;$start-1)+$toInsert+Substring($new;$end)  Else     Case of -       :($2<=1) -          $0:=$4+$0 -       :($2>Length($0)) -          $0:=$0+$4 +       :($start<=1) +          $new:=$toInsert+$new +       :($start>Length($new)) +          $new:=$new+$toInsert        Else -          $0:=Substring($0;1;$2-1)+$4+Substring($0;$2) +          $new:=Substring($new;1;$start-1)+$toInsert+Substring($new;$start)     End case  End if ``` @@ -153,21 +150,21 @@ Cette méthode utilise les sous-méthodes suivantes : Une fois que vous avez ajouté ces méthodes projet à votre base, vous pouvez les utiliser de la manière suivante : ```4d -  // Méthode objet de la zone saisissable vaDescription +  // vsDescription enterable area object method  Case of     :(FORM Event=On Load) -       vaDescription:="" -       vaDescriptionDouble:="" -  // Etablir la liste des caractères “interdits” à traiter comme des touches spéciales -  // (Dans cet exemple, seule la touche Aide est filtrée) -       vaTouchesSpéciales:=Char(Help key) +       vsDescription:="" +       vsShadowDescription:="" +  // Establish the list of the “forbidden” characters to be treated as special keys +  // ( here, in this example, only the Help Key is filtered) +       vsSpecialKeys:=Char(HelpKey)     :(FORM Event=On Before Keystroke) -       $vsKey:=Frappe clavier tampon(->vaDescription;->vaDescriptionDouble;vaTouchesSpéciales) +       $vsKey:=Shadow keystroke(->vsDescription;->vsShadowDescription;vsSpecialKeys)        Case of           :(Character code($vsKey)=Help key) -  // Faire quelque chose lorsque la touche Aide est enfoncée -  // Dans cet exemple, une saisie de glossaire doit être recherchée et insérée -             chercher_Glossaire(->vaDescription;->vaDescriptionDouble) +  // Do something when the Help key is pressed +  // Here, in this example, a Dictionary entry must be searched and inserted +             LOOKUP DICTIONARY(->vsDescription;->vsShadowDescription)        End case  End case ``` @@ -175,37 +172,41 @@ Une fois que vous avez ajouté ces méthodes projet à votre base, vous pouvez l La méthode projet chercher\_Glossaire est listée ci-dessous (le point principal est l'utilisation de la variable tampon pour réaffecter la zone saisissable à modifier) : ```4d -  // Méthode projet chercher_Glossaire -  // chercher_Glossaire ( Pointeur ; Pointeur ) -  // chercher_Glossaire ( -> zone saisissable ; ->variable double ) - var $1;$2 : Pointer - var $vlDébut;$vlFin : Integer -  // Obtenir la sélection de texte dans la zone saisissable - GET HIGHLIGHT($1->;$vlDébut;$vlFin) -  // Obtenir le texte sélectionné ou le mot situé à gauche du curseur $vtTexteSelectionne:=obtenirTexteSelectionne ($2->;$vlDébut;$vlFin) -  // Y a-t-il quelque chose à rechercher ? - If($vtTexteSelectionne#"") -  // Si la sélection de texte était le curseur, la sélection débute au mot situé après le curseur -    If($vlDébut=$vlFin) -       $vlDébut:=$vlDébut-Length($vtTexteSelectionne) +  // LOOKUP DICTIONARY project method +  // LOOKUP DICTIONARY ( Pointer ; Pointer ) +  // LOOKUP DICTIONARY ( -> Enterable Area ; ->ShadowVariable ) +  +#DECLARE ($area : Pointer ; $shadow : Pointer) + var $vlStart;$vlEnd : Integer +  +  // Get the text selection range within the enterable area + GET HIGHLIGHT($area->;$vlStart;$vlEnd) +  // Get the selected text or the word on the left of the text cursor + $vtHighlightedText:=Get highlighted text($shadow->;$vlStart;$vlEnd) +  // Is there something to look for? + If($vtHighlightedText#"") +  // If the text selection was the text cursor, +  // the selection now starts at the word preceeding the text cursor +    If($vlStart=$vlEnd) +       $vlStart:=$vlStart-Length($vtHighlightedText)     End if -  // Chercher la première entrée du glossaire disponible -    QUERY([Glossaire];[Glossaire]Saisie=$vtTexteSelectionne+"@") -  // Existe-t-elle ? -    If(Records in selection([Glossaire])>0) -  // Si oui, l'insérer dans la zone tampon -       $2->:=Inserer texte($2->;$vlDébut;$vlFin;[Glossaire]Saisie) -  // Copier le tampon dans la zone saisissable -       $1->:=$2-> -  // Fixer la sélection après avoir inséré l'entrée du glossaire -       $vlFin:=$vlDébut+Length([Dictionnaire]Saisie) -       HIGHLIGHT TEXT(vsComments;$vlFin;$vlFin) +  // Look for the first available dictionary entry +    QUERY([Dictionary];[Dictionary]Entry=$vtHighlightedText+"@") +  // Is there one? +    If(Records in selection([Dictionary])>0) +  // If so, insert it in the shadow text +       $shadow->:=Insert text($shadow->;$vlStart;$vlEnd;[Dictionary]Entry) +  // Copy the shadow text to the enterable being edited +       $area->:=$shadow-> +  // Set the selection just after the insert dictionary entry +       $vlEnd:=$vlStart+Length([Dictionary]Entry) +       HIGHLIGHT TEXT(vsComments;$vlEnd;$vlEnd)     Else -  // Il n'y a pas d'entrée qui correspond dans le glossaire +  // There is no corresponding entry in the Dictionary        BEEP     End if  Else -  // Il n'y a pas de texte sélectionné +  // There is no highlighted text     BEEP  End if ``` @@ -213,32 +214,32 @@ La méthode projet chercher\_Glossaire est listée ci-dessous (le point principa La méthode obtenirTexteSelectionne est la suivante : ```4d -  // Méthode objet obtenirTexteSelectionne -  // obtenirTexteSelectionne ( Alpha ; Entier long ; Entier long ) -> Alpha -  // obtenirTexteSelectionne ( Texte ; SelDébut ; SelFin ) -> texte sélectionné - var $0;$1 : Text - var $2;$3 : Integer - If($2<$3) -    $0:=Substring($1;$2;$3-$2) +  // Get highlighted text project method +  // Get highlighted text ( String ; Long ; Long ) -> String +  // Get highlighted text ( Text ; SelStart ; SelEnd ) -> highlighted text +#DECLARE ($text : Text ; $start : Integer ; $end : Integer) -> $highlight : Text + If($start<$end) +    $highlight:=Substring($text;$start;$end-$start)  Else -    $0:="" -    $2:=$2-1 +    $highlight:="" +    $start:=$start-1     Repeat -       If($2>0) -          If(Position($1[[$2]];"  ,.!?:;()-_–—")=0) -             $0:=$1[[$2]]+$0 -             $2:=$2-1 +       If($start>0) +          If(Position($text[[$start]];"  ,.!?:;()-_–—")=0) +             $highlight:=$text[[$start]]+$highlight +             $start:=$start-1           Else -             $2:=0 +             $start:=0           End if        End if -    Until($2=0) +    Until($start=0)  End if ``` + #### Voir aussi -[Form event code](form-event-code.md) +[Form event code](../commands/form-event-code.md) [Get edited text](get-edited-text.md) [Is editing text](is-editing-text.md) [Keystroke](keystroke.md) \ No newline at end of file diff --git a/i18n/fr/docusaurus-plugin-content-docs/version-20-R7/commands-legacy/font-list.md b/i18n/fr/docusaurus-plugin-content-docs/version-20-R7/commands-legacy/font-list.md index b1376c9e1e9834..eefd0bed0a9e7d 100644 --- a/i18n/fr/docusaurus-plugin-content-docs/version-20-R7/commands-legacy/font-list.md +++ b/i18n/fr/docusaurus-plugin-content-docs/version-20-R7/commands-legacy/font-list.md @@ -67,7 +67,6 @@ Vous souhaitez obtenir la liste des polices récentes : #### Voir aussi -*\_o\_Font name* [FONT STYLE LIST](font-style-list.md) [OBJECT SET FONT](object-set-font.md) [SET RECENT FONTS](set-recent-fonts.md) diff --git a/i18n/fr/docusaurus-plugin-content-docs/version-20-R7/commands-legacy/form-event-code.md b/i18n/fr/docusaurus-plugin-content-docs/version-20-R7/commands-legacy/form-event-code.md index b4dc4499eaf685..1fb102af630d76 100644 --- a/i18n/fr/docusaurus-plugin-content-docs/version-20-R7/commands-legacy/form-event-code.md +++ b/i18n/fr/docusaurus-plugin-content-docs/version-20-R7/commands-legacy/form-event-code.md @@ -819,7 +819,6 @@ En résultat, le rectangle rouge suit bien le défilement de la list box : #### Voir aussi -*\_o\_DRAG AND DROP PROPERTIES* [CALL SUBFORM CONTAINER](call-subform-container.md) [Current form table](current-form-table.md) [FILTER KEYSTROKE](filter-keystroke.md) diff --git a/i18n/fr/docusaurus-plugin-content-docs/version-20-R7/commands-legacy/form-set-input.md b/i18n/fr/docusaurus-plugin-content-docs/version-20-R7/commands-legacy/form-set-input.md index f42e6de55350cc..6654cb67beeb86 100644 --- a/i18n/fr/docusaurus-plugin-content-docs/version-20-R7/commands-legacy/form-set-input.md +++ b/i18n/fr/docusaurus-plugin-content-docs/version-20-R7/commands-legacy/form-set-input.md @@ -94,7 +94,6 @@ Résultat : #### Voir aussi -*\_o\_CREATE USER FORM* [ADD RECORD](add-record.md) [DISPLAY RECORD](display-record.md) [DISPLAY SELECTION](display-selection.md) diff --git a/i18n/fr/docusaurus-plugin-content-docs/version-20-R7/commands-legacy/form-set-output.md b/i18n/fr/docusaurus-plugin-content-docs/version-20-R7/commands-legacy/form-set-output.md index 00b345bbc2630b..6669cee41b318d 100644 --- a/i18n/fr/docusaurus-plugin-content-docs/version-20-R7/commands-legacy/form-set-output.md +++ b/i18n/fr/docusaurus-plugin-content-docs/version-20-R7/commands-legacy/form-set-output.md @@ -80,7 +80,6 @@ L'exemple suivant utilise un formulaire décrit dans un fichier .json : #### Voir aussi -*\_o\_CREATE USER FORM* [DISPLAY SELECTION](display-selection.md) [EXPORT DIF](export-dif.md) [EXPORT SYLK](export-sylk.md) diff --git a/i18n/fr/docusaurus-plugin-content-docs/version-20-R7/commands-legacy/get-document-properties.md b/i18n/fr/docusaurus-plugin-content-docs/version-20-R7/commands-legacy/get-document-properties.md index f613e1ed0819d0..4a1121a2ad2511 100644 --- a/i18n/fr/docusaurus-plugin-content-docs/version-20-R7/commands-legacy/get-document-properties.md +++ b/i18n/fr/docusaurus-plugin-content-docs/version-20-R7/commands-legacy/get-document-properties.md @@ -207,6 +207,4 @@ Une fois que cela est implémenté dans votre base, il suffit d'écrire la méth #### Voir aussi -*\_o\_Document creator* -*\_o\_Document type* [SET DOCUMENT PROPERTIES](set-document-properties.md) \ No newline at end of file diff --git a/i18n/fr/docusaurus-plugin-content-docs/version-20-R7/commands-legacy/get-highlight.md b/i18n/fr/docusaurus-plugin-content-docs/version-20-R7/commands-legacy/get-highlight.md index cf6c602a458662..834d0dcbff4269 100644 --- a/i18n/fr/docusaurus-plugin-content-docs/version-20-R7/commands-legacy/get-highlight.md +++ b/i18n/fr/docusaurus-plugin-content-docs/version-20-R7/commands-legacy/get-highlight.md @@ -41,8 +41,10 @@ Si l'objet désigné par le paramètre *objet* n'est pas trouvé dans le formula L'exemple suivant récupère le texte sélectionné dans le champ *\[Produits\]Notes* : ```4d - GET HIGHLIGHT([Produits]Notes;vPremier;vDernier) - If(vPremier +GET HIGHLIGHT([Products]Comments;vFirst;vLast) +If(vFirst < vlast) + ALERT("The selected text is:"+Substring([Products]Comments;vFirst;vLast-vFirst)) +End if ``` #### Exemple 2 diff --git a/i18n/fr/docusaurus-plugin-content-docs/version-20-R7/commands-legacy/get-process-variable.md b/i18n/fr/docusaurus-plugin-content-docs/version-20-R7/commands-legacy/get-process-variable.md index c091a3800179f8..4fd35f6ba770f7 100644 --- a/i18n/fr/docusaurus-plugin-content-docs/version-20-R7/commands-legacy/get-process-variable.md +++ b/i18n/fr/docusaurus-plugin-content-docs/version-20-R7/commands-legacy/get-process-variable.md @@ -114,7 +114,6 @@ Reportez-vous à l'exemple de la commande *\_o\_DRAG AND DROP PROPERTIES*. #### Voir aussi -*\_o\_DRAG AND DROP PROPERTIES* *Introduction aux process* [POST OUTSIDE CALL](post-outside-call.md) *Présentation du Glisser-Déposer* diff --git a/i18n/fr/docusaurus-plugin-content-docs/version-20-R7/commands-legacy/in-break.md b/i18n/fr/docusaurus-plugin-content-docs/version-20-R7/commands-legacy/in-break.md index 98f70a12837124..4dff31fce7e52e 100644 --- a/i18n/fr/docusaurus-plugin-content-docs/version-20-R7/commands-legacy/in-break.md +++ b/i18n/fr/docusaurus-plugin-content-docs/version-20-R7/commands-legacy/in-break.md @@ -26,6 +26,5 @@ Si vous souhaitez que le cycle d'exécution **In break** soit généré, assurez #### Voir aussi -*\_o\_During* [In footer](in-footer.md) [In header](in-header.md) \ No newline at end of file diff --git a/i18n/fr/docusaurus-plugin-content-docs/version-20-R7/commands-legacy/in-footer.md b/i18n/fr/docusaurus-plugin-content-docs/version-20-R7/commands-legacy/in-footer.md index 261cbdaf9414f4..35bc758c8ddbc5 100644 --- a/i18n/fr/docusaurus-plugin-content-docs/version-20-R7/commands-legacy/in-footer.md +++ b/i18n/fr/docusaurus-plugin-content-docs/version-20-R7/commands-legacy/in-footer.md @@ -26,6 +26,5 @@ Si vous voulez que le cycle d'exécution **In footer** soit généré, vérifiez #### Voir aussi -*\_o\_During* [In break](in-break.md) [In header](in-header.md) \ No newline at end of file diff --git a/i18n/fr/docusaurus-plugin-content-docs/version-20-R7/commands-legacy/in-header.md b/i18n/fr/docusaurus-plugin-content-docs/version-20-R7/commands-legacy/in-header.md index af006b329f184f..29774e283a2c57 100644 --- a/i18n/fr/docusaurus-plugin-content-docs/version-20-R7/commands-legacy/in-header.md +++ b/i18n/fr/docusaurus-plugin-content-docs/version-20-R7/commands-legacy/in-header.md @@ -26,6 +26,5 @@ Si vous souhaitez que le cycle d'exécution **In header** soit généré, assure #### Voir aussi -*\_o\_During* [In break](in-break.md) [In footer](in-footer.md) \ No newline at end of file diff --git a/i18n/fr/docusaurus-plugin-content-docs/version-20-R7/commands-legacy/integrate-mirror-log-file.md b/i18n/fr/docusaurus-plugin-content-docs/version-20-R7/commands-legacy/integrate-mirror-log-file.md index 180e691b6ca094..f95d997f726e3b 100644 --- a/i18n/fr/docusaurus-plugin-content-docs/version-20-R7/commands-legacy/integrate-mirror-log-file.md +++ b/i18n/fr/docusaurus-plugin-content-docs/version-20-R7/commands-legacy/integrate-mirror-log-file.md @@ -98,6 +98,4 @@ Si l'intégration s'effectue correctement, la variable système OK prend la vale #### Voir aussi - -*\_o\_INTEGRATE LOG FILE* [LOG FILE TO JSON](log-file-to-json.md) \ No newline at end of file diff --git a/i18n/fr/docusaurus-plugin-content-docs/version-20-R7/commands-legacy/is-a-list.md b/i18n/fr/docusaurus-plugin-content-docs/version-20-R7/commands-legacy/is-a-list.md index 5b77225464598c..8a0841584cabff 100644 --- a/i18n/fr/docusaurus-plugin-content-docs/version-20-R7/commands-legacy/is-a-list.md +++ b/i18n/fr/docusaurus-plugin-content-docs/version-20-R7/commands-legacy/is-a-list.md @@ -21,14 +21,7 @@ displayed_sidebar: docs La fonction **Is a list** retourne VRAI si la valeur passée dans le paramètre *liste* est une référence valide à une liste hiérarchique. Dans les autres cas, elle retourne FAUX. -#### Exemple 1 +#### Exemple Reportez-vous à l'exemple de la commande [CLEAR LIST](clear-list.md). -#### Exemple 2 - -Reportez-vous aux exemples de la commande *\_o\_DRAG AND DROP PROPERTIES*. - -#### Voir aussi - -*\_o\_DRAG AND DROP PROPERTIES* \ No newline at end of file diff --git a/i18n/fr/docusaurus-plugin-content-docs/version-20-R7/commands-legacy/new-log-file.md b/i18n/fr/docusaurus-plugin-content-docs/version-20-R7/commands-legacy/new-log-file.md index 9106671a38a0af..bdd2be543a37ba 100644 --- a/i18n/fr/docusaurus-plugin-content-docs/version-20-R7/commands-legacy/new-log-file.md +++ b/i18n/fr/docusaurus-plugin-content-docs/version-20-R7/commands-legacy/new-log-file.md @@ -30,6 +30,3 @@ Le fichier est renommé avec les numéros de sauvegarde courants de la base et d En cas d'anomalie, la commande génère une erreur que vous pouvez intercepter à l’aide de la commande [ON ERR CALL](on-err-call.md). -#### Voir aussi - -*\_o\_INTEGRATE LOG FILE* \ No newline at end of file diff --git a/i18n/fr/docusaurus-plugin-content-docs/version-20-R7/commands-legacy/object-set-action.md b/i18n/fr/docusaurus-plugin-content-docs/version-20-R7/commands-legacy/object-set-action.md index 3b46048c8ba863..88888715bec7d3 100644 --- a/i18n/fr/docusaurus-plugin-content-docs/version-20-R7/commands-legacy/object-set-action.md +++ b/i18n/fr/docusaurus-plugin-content-docs/version-20-R7/commands-legacy/object-set-action.md @@ -40,5 +40,4 @@ Vous souhaitez associer l’action standard de validation à un bouton : #### Voir aussi -*\_o\_OBJECT Get action* [OBJECT Get action](object-get-action.md) \ No newline at end of file diff --git a/i18n/fr/docusaurus-plugin-content-docs/version-20-R7/commands-legacy/object-set-rgb-colors.md b/i18n/fr/docusaurus-plugin-content-docs/version-20-R7/commands-legacy/object-set-rgb-colors.md index 07dd00039a550f..61da8be421f8db 100644 --- a/i18n/fr/docusaurus-plugin-content-docs/version-20-R7/commands-legacy/object-set-rgb-colors.md +++ b/i18n/fr/docusaurus-plugin-content-docs/version-20-R7/commands-legacy/object-set-rgb-colors.md @@ -105,6 +105,5 @@ Passage du fond en transparent avec couleur de police claire : #### Voir aussi -*\_o\_OBJECT SET COLOR* [OBJECT GET RGB COLORS](object-get-rgb-colors.md) [Select RGB Color](select-rgb-color.md) \ No newline at end of file diff --git a/i18n/fr/docusaurus-plugin-content-docs/version-20-R7/commands-legacy/picture-to-blob.md b/i18n/fr/docusaurus-plugin-content-docs/version-20-R7/commands-legacy/picture-to-blob.md index 179131e6ee0034..1e5d59f47d4cec 100644 --- a/i18n/fr/docusaurus-plugin-content-docs/version-20-R7/commands-legacy/picture-to-blob.md +++ b/i18n/fr/docusaurus-plugin-content-docs/version-20-R7/commands-legacy/picture-to-blob.md @@ -46,7 +46,6 @@ Vous voulez convertir une image depuis un format propriétaire vers le format GI #### Voir aussi -*\_o\_PICTURE TO GIF* [BLOB TO PICTURE](blob-to-picture.md) [PICTURE CODEC LIST](picture-codec-list.md) [WRITE PICTURE FILE](write-picture-file.md) \ No newline at end of file diff --git a/i18n/fr/docusaurus-plugin-content-docs/version-20-R7/commands-legacy/print-selection.md b/i18n/fr/docusaurus-plugin-content-docs/version-20-R7/commands-legacy/print-selection.md index b73286aeb7e8bf..dc1f2e053bbd6a 100644 --- a/i18n/fr/docusaurus-plugin-content-docs/version-20-R7/commands-legacy/print-selection.md +++ b/i18n/fr/docusaurus-plugin-content-docs/version-20-R7/commands-legacy/print-selection.md @@ -63,7 +63,6 @@ L'exemple suivant sélectionne la totalité des enregistrements de la table \[Pe #### Voir aussi -*\_o\_PAGE SETUP* [ACCUMULATE](accumulate.md) [BREAK LEVEL](break-level.md) [Level](level.md) diff --git a/i18n/fr/docusaurus-plugin-content-docs/version-20-R7/commands-legacy/resolve-pointer.md b/i18n/fr/docusaurus-plugin-content-docs/version-20-R7/commands-legacy/resolve-pointer.md index 7278cea844735d..bb4578ff63bce0 100644 --- a/i18n/fr/docusaurus-plugin-content-docs/version-20-R7/commands-legacy/resolve-pointer.md +++ b/i18n/fr/docusaurus-plugin-content-docs/version-20-R7/commands-legacy/resolve-pointer.md @@ -100,7 +100,6 @@ Voici un exemple de pointeur vers un tableau 2D : #### Voir aussi -*\_o\_DRAG AND DROP PROPERTIES* [Field](field.md) [Get pointer](get-pointer.md) [Is a variable](is-a-variable.md) diff --git a/i18n/fr/docusaurus-plugin-content-docs/version-20-R7/commands-legacy/set-document-properties.md b/i18n/fr/docusaurus-plugin-content-docs/version-20-R7/commands-legacy/set-document-properties.md index 6b3cf4ed8792b2..6211ff5209679e 100644 --- a/i18n/fr/docusaurus-plugin-content-docs/version-20-R7/commands-legacy/set-document-properties.md +++ b/i18n/fr/docusaurus-plugin-content-docs/version-20-R7/commands-legacy/set-document-properties.md @@ -34,6 +34,4 @@ L'heure et la date de création et de dernière modification sont gérées par l #### Voir aussi -*\_o\_SET DOCUMENT CREATOR* -*\_o\_SET DOCUMENT TYPE* [GET DOCUMENT PROPERTIES](get-document-properties.md) \ No newline at end of file diff --git a/i18n/fr/docusaurus-plugin-content-docs/version-20-R7/commands-legacy/structure-file.md b/i18n/fr/docusaurus-plugin-content-docs/version-20-R7/commands-legacy/structure-file.md index 586746810ee40a..c58ab1bcda4119 100644 --- a/i18n/fr/docusaurus-plugin-content-docs/version-20-R7/commands-legacy/structure-file.md +++ b/i18n/fr/docusaurus-plugin-content-docs/version-20-R7/commands-legacy/structure-file.md @@ -64,7 +64,6 @@ L’exemple suivant permet de savoir si la méthode est appelée depuis un compo #### Voir aussi -*\_o\_DATA SEGMENT LIST* [Application file](application-file.md) [COMPONENT LIST](component-list.md) [Data file](data-file.md) \ No newline at end of file diff --git a/i18n/fr/docusaurus-plugin-content-docs/version-20-R7/commands-legacy/use-character-set.md b/i18n/fr/docusaurus-plugin-content-docs/version-20-R7/commands-legacy/use-character-set.md index 84e0ddac41ef95..c39e2abe173813 100644 --- a/i18n/fr/docusaurus-plugin-content-docs/version-20-R7/commands-legacy/use-character-set.md +++ b/i18n/fr/docusaurus-plugin-content-docs/version-20-R7/commands-legacy/use-character-set.md @@ -40,8 +40,6 @@ La variable système OK prend la valeur 1 si le filtre est correctement chargé, #### Voir aussi -*\_o\_Mac to Win* -*\_o\_Win to Mac* [EXPORT DIF](export-dif.md) [EXPORT SYLK](export-sylk.md) [EXPORT TEXT](export-text.md) diff --git a/i18n/fr/docusaurus-plugin-content-docs/version-20-R7/commands/command-index.md b/i18n/fr/docusaurus-plugin-content-docs/version-20-R7/commands/command-index.md index f97e3c41d46696..9468076ab54a63 100644 --- a/i18n/fr/docusaurus-plugin-content-docs/version-20-R7/commands/command-index.md +++ b/i18n/fr/docusaurus-plugin-content-docs/version-20-R7/commands/command-index.md @@ -315,8 +315,8 @@ title: Index [`Form`](../commands-legacy/form.md)
    [`FORM Convert to dynamic`](../commands-legacy/form-convert-to-dynamic.md)
    [`FORM EDIT`](../commands-legacy/form-edit.md)
    -[`FORM Event`](../commands-legacy/form-event.md)
    -[`Form event code`](../commands-legacy/form-event-code.md)
    +[`FORM Event`](../commands/form-event.md)
    +[`Form event code`](../commands/form-event-code.md)
    [`FORM FIRST PAGE`](../commands-legacy/form-first-page.md)
    [`FORM Get color scheme`](../commands-legacy/form-get-color-scheme.md)
    [`FORM Get current page`](../commands-legacy/form-get-current-page.md)
    diff --git a/i18n/fr/docusaurus-plugin-content-docs/version-20-R7/commands/form-event-code.md b/i18n/fr/docusaurus-plugin-content-docs/version-20-R7/commands/form-event-code.md index 88c7bae7ca737d..6f1ebbef1db4f5 100644 --- a/i18n/fr/docusaurus-plugin-content-docs/version-20-R7/commands/form-event-code.md +++ b/i18n/fr/docusaurus-plugin-content-docs/version-20-R7/commands/form-event-code.md @@ -1,7 +1,6 @@ --- id: form-event-code title: Form event code -slug: /commands/form-event-code displayed_sidebar: docs --- @@ -102,7 +101,7 @@ This example is a template for a form method. It shows each of the possible even #### Exemple 4 -This example shows the template of a form method that handles the events that can occur for a form displayed using the [DISPLAY SELECTION](display-selection.md) or [MODIFY SELECTION](modify-selection.md) commands. For didactic purposes, it displays the nature of the event in the title bar of the form window. +This example shows the template of a form method that handles the events that can occur for a form displayed using the [DISPLAY SELECTION](../commands-legacy/display-selection.md) or [MODIFY SELECTION](../commands-legacy/modify-selection.md) commands. For didactic purposes, it displays the nature of the event in the title bar of the form window. ```4d   //A form method @@ -141,7 +140,7 @@ This example shows the template of a form method that handles the events that ca #### Exemple 5 -For examples on how to handle [`On Before Keystroke`](../Events/onBeforeKeystroke.md) and [`On After Keystroke`](../Events/onAfterKeystroke.md) events, see examples for the [Get edited text](get-edited-text.md), [Keystroke](keystroke.md) and [FILTER KEYSTROKE](filter-keystroke.md) commands. +For examples on how to handle [`On Before Keystroke`](../Events/onBeforeKeystroke.md) and [`On After Keystroke`](../Events/onAfterKeystroke.md) events, see examples for the [Get edited text](../commands-legacy/get-edited-text.md), [Keystroke](../commands-legacy/keystroke.md) and [FILTER KEYSTROKE](../commands-legacy/filter-keystroke.md) commands. #### Exemple 6 @@ -342,11 +341,11 @@ As a result, the red rectangle follows the scrolling of the list box: #### Voir également [Form Events](../Events/overview.md) -[CALL SUBFORM CONTAINER](call-subform-container.md)\ -[Current form table](current-form-table.md)\ -[FILTER KEYSTROKE](filter-keystroke.md)\ +[CALL SUBFORM CONTAINER](../commands-legacy/call-subform-container.md)\ +[Current form table](../commands-legacy/current-form-table.md)\ +[FILTER KEYSTROKE](../commands-legacy/filter-keystroke.md)\ [FORM Event](form-event.md)\ -[Get edited text](get-edited-text.md)\ -[Keystroke](keystroke.md)\ -[POST OUTSIDE CALL](post-outside-call.md)\ -[SET TIMER](set-timer.md) +[Get edited text](../commands-legacy/get-edited-text.md)\ +[Keystroke](../commands-legacy/keystroke.md)\ +[POST OUTSIDE CALL](../commands-legacy/post-outside-call.md)\ +[SET TIMER](../commands-legacy/set-timer.md) diff --git a/i18n/fr/docusaurus-plugin-content-docs/version-20-R7/commands/form-event.md b/i18n/fr/docusaurus-plugin-content-docs/version-20-R7/commands/form-event.md index 887460886e4f56..4169194a560fee 100644 --- a/i18n/fr/docusaurus-plugin-content-docs/version-20-R7/commands/form-event.md +++ b/i18n/fr/docusaurus-plugin-content-docs/version-20-R7/commands/form-event.md @@ -17,7 +17,7 @@ displayed_sidebar: docs #### Description -**FORM Event** returns an object containing information about the form event that has just occurred.**FORM Event** returns an object containing information about the form event that has just occurred. Usually, you will use **FORM Event** from within a form or object method. +**FORM Event** returns an object containing information about the form event that has just occurred.**FORM Event** returns an object containing information about the form event that has just occurred.**FORM Event** returns an object containing information about the form event that has just occurred. Usually, you will use **FORM Event** from within a form or object method. **Objet retourné** @@ -99,4 +99,4 @@ The resulting list box when rows are selected: #### Voir également [Form Events](../Events/overview.md) -[Form event code](form-event-code.md) +[Form event code](../commands/form-event-code.md) diff --git a/i18n/fr/docusaurus-plugin-content-docs/version-20/API/DataClassClass.md b/i18n/fr/docusaurus-plugin-content-docs/version-20/API/DataClassClass.md index 55dfeda68bde9f..845e9f37831a4b 100644 --- a/i18n/fr/docusaurus-plugin-content-docs/version-20/API/DataClassClass.md +++ b/i18n/fr/docusaurus-plugin-content-docs/version-20/API/DataClassClass.md @@ -927,7 +927,7 @@ où : | Inclus parmi | IN | Retourne les données égales à au moins une des valeurs d'une collection ou d'un ensemble de valeurs, prend en charge le joker de recherche (@) | | Contient mot-clé | % | Les mots-clés peuvent être utilisés avec les attributs de type texte ou image | -* **value** : valeur à comparer à la valeur courante de l'attribut de chaque entité de la sélection ou élément de la collection. Peut être un **placeholder** (voir **Utiliser des placeholders** ci-dessous) ou toute expression correspondant à la propriété du type de donnée. Lorsque vous utilisez une valeur constante, les règles suivantes doivent être respectées : +* **value** : valeur à comparer à la valeur courante de l'attribut de chaque entité de la sélection ou élément de la collection. Peut être un **placeholder** (voir **Utiliser des placeholders** ci-dessous) ou toute expression correspondant à la propriété du type de donnée. Note that, in case of type mismatch with scalar types (text, date, number...), 4D will try to convert the **value** type to the attribute data type whenever possible, for an easier handling of values coming from the Internet. For example, if the string "v20" is entered as **value** to compare with an integer attribute, it will be converted to 20. Lorsque vous utilisez une valeur constante, les règles suivantes doivent être respectées : * Les valeurs constantes de type **texte** peuvent être passées avec ou sans guillemets (voir **Utilisation des guillemets** ci-dessous). Pour rechercher une chaîne dans une chaîne (recherche de type "contient"), utilisez le symbole joker (@) dans valeur pour isoler la chaîne à chercher, comme dans cet exemple : "@Smith@". Les mots-clés suivants sont interdits pour des constantes de type texte : true, false. * Valeurs constantes de type**booléen**: **true** or **false** (sensible à la casse). * Valeurs constantes de type **numérique** : les décimales doivent être séparées par un '.' diff --git a/i18n/fr/docusaurus-plugin-content-docs/version-20/API/EntityClass.md b/i18n/fr/docusaurus-plugin-content-docs/version-20/API/EntityClass.md index e45efb37f88504..43b88e3318a88c 100644 --- a/i18n/fr/docusaurus-plugin-content-docs/version-20/API/EntityClass.md +++ b/i18n/fr/docusaurus-plugin-content-docs/version-20/API/EntityClass.md @@ -92,8 +92,10 @@ $myEntity.save() //sauvegarder l'entity #### Description -La fonction `clone()` crée en mémoire une nouvelle entité référençant le même enregistrement que l'entité d'origine. Cette fonction vous permet de mettre à jour des entités séparément. -> A noter que toute modification apportée aux entités n'est stockée dans l'enregistrement référencé qu'au moment où la fonction [`.save( )`](#save) est exécutée. +La fonction `clone()` crée en mémoire une nouvelle entité référençant le même enregistrement que l'entité d'origine. + +This function allows you to update entities separately. Notez cependant que, pour des raisons de performance, la nouvelle entité partage la même référence d'attributs d'objets que l'entité clonée. +> Keep in mind that any modifications done to entities will be saved in the referenced record only when the [`.save()`](#save) function is executed. Cette fonction ne peut être utilisée qu'avec des entités déjà enregistrées dans la base de données. Elle ne peut pas être appelée sur une entité nouvellement créée (pour laquelle [`.isNew()`](#isnew) retourne **True**). @@ -232,7 +234,7 @@ $diff2: vCompareResult3:=$e1.diff($e2;$e1.touchedAttributes()) ``` -vCompareResult1 (toutes les différences sont retournées) : +vCompareResult3 (seules les différences sur les attributs touchés de $e1 sont retournées) ```4d [ @@ -281,7 +283,7 @@ vCompareResult2 (seules les différences sur $attributesToInspect sont retourné ] ``` -vCompareResult3 (seules les différences sur les attributs touchés de $e1 sont retournées) +vCompareResult1 (toutes les différences sont retournées) : ```4d [ @@ -443,7 +445,7 @@ Même exemple avec l'option `dk force drop if stamp changed` : La fonction `.first()` retourne une référence vers l'entité en première position dans l'entity selection à laquelle appartient l'entité. -Si l'entité n'appartient à aucune entity selection (i.e. [.getSelection( )](#getselection) retourne Null), la fonction renvoie une valeur Null. +| #### Exemple @@ -887,7 +889,7 @@ La fonction `.isNew()` renvoie Vrai si La fonction `.last()` retourne une référence vers l'entité en dernière position dans l'entity selection à laquelle appartient l'entité. -Si l'entité n'appartient à aucune entity selection (i.e. [.getSelection( )](#getselection) retourne Null), la fonction renvoie une valeur Null. +Pour plus d'informations, veuillez consulter la section [Verrouillage d'une entité](ORDA/entities.md#verrouillage-d-une-entite). #### Exemple @@ -1043,7 +1045,7 @@ Exemple avec option `dk reload if stamp changed` : La fonction `.next()` retourne une référence vers l'entité suivante dans l'entity selection à laquelle appartient l'entité. -Si l'entité n'appartient à aucune entity selection existante (i.e. [.getSelection()](#getselection) retourne Null), la fonction renvoie une valeur Null. +| S'il n'y a pas d'entité suivante valide dans l'entity selection (i.e. vous êtes sur la dernière entité de la sélection), la fonction retourne Null. Si l'entité suivante a été supprimée, la fonction renvoie l'entité valide suivante (et finalement Null). @@ -1085,9 +1087,9 @@ S'il n'y a pas d'entité suivante valide dans l'entity selection (i.e. vous ête La fonction `.previous()` retourne une référence vers l'entité précédente dans l'entity selection à laquelle appartient l'entité. -Si l'entité n'appartient à aucune entity selection existante (i.e. [.getSelection()](#getselection) retourne Null), la fonction renvoie une valeur Null. +| -S'il n'y a pas d'entité précédente valide dans l'entity selection (i.e. vous êtes sur la première entité de la sélection), la fonction retourne Null. Si l'entité précédente a été supprimée, la fonction retourne l'entité précédente valide (et finalement Null). +Si l'entité n'appartient à aucune entity selection (i.e. [.getSelection( )](#getselection) retourne Null), la fonction renvoie une valeur Null. #### Exemple @@ -1232,7 +1234,7 @@ Les valeurs suivantes peuvent être retournées dans les propriétés `status` e | Constante | Valeur | Commentaire | | ----------------------------------------- | ------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | -| `dk status automerge failed` | 6 | (Uniquement si l'option `dk auto merge` est utilisée) Echec du mécanisme de merge automatique lors de la sauvegarde de l'entité. **statusText associé **: "Auto merge failed". | +| `dk status automerge failed` | 6 | vrai si l'action de suppression a été effectuée avec succès, sinon Faux. | | `dk status entity does not exist anymore` | 5 | L'entité n'existe plus dans les données. Cette erreur peut se produire dans les cas suivants :
  • l'entité a été supprimée (le stamp est modifié et l'espace mémoire est libéré)
  • l'entité a été supprimée et remplacée par une autre avec une clé primaire différente (le stamp est modifié et une nouvelle entité occupe l'espace mémoire). Avec `.drop( )`, cette erreur peut être retournée lorsque l'option `dk force drop if stamp changed` est utilisée. Avec `.lock( )`, cette erreur peut être retournée lorsque l'option dk reload if stamp changed est utilisée.

  • **statusText associé** : "Entity does not exist anymore" | | `dk status locked` | 3 | L'entité est verrouillée par un verrou pessimiste.
    **statusText associé** : "Already locked" | | `dk status serious error` | 4 | Une erreur critique peut être une erreur de bas niveau de la base de données (ex. clé dupliquée), une erreur matérielle, etc.
    **statusText associé** : "Other error" | diff --git a/i18n/fr/docusaurus-plugin-content-docs/version-20/Concepts/classes.md b/i18n/fr/docusaurus-plugin-content-docs/version-20/Concepts/classes.md index c319c133a8f973..6a2704822de87a 100644 --- a/i18n/fr/docusaurus-plugin-content-docs/version-20/Concepts/classes.md +++ b/i18n/fr/docusaurus-plugin-content-docs/version-20/Concepts/classes.md @@ -182,11 +182,11 @@ Function ({$parameterName : type; ...}){->$parameterName : type} :::note -There is no ending keyword for function code. The 4D language automatically detects the end of a function's code by the next `Function` keyword or the end of the class file. +There is no ending keyword for function code. There is no ending keyword for function code. ::: -Les fonctions de classe sont des propriétés spécifiques de la classe. Ce sont des objets de la classe [4D.Function](API/FunctionClass.md). +Les fonctions de classe sont des propriétés spécifiques de la classe. Les fonctions de classe sont des propriétés spécifiques de la classe. Dans le fichier de définition de classe, les déclarations de fonction utilisent le mot-clé `Function`, et le nom de la fonction. Le nom de la fonction doit être conforme aux [règles de nommage des propriétés](Concepts/identifiers.md#object-properties). @@ -303,11 +303,12 @@ Function getRectArea($width : Integer; $height : Integer) : Integer // Class: MyClass Class Constructor({$parameterName : type; ...}) // code +// code ``` :::note -There is no ending keyword for class constructor function code. The 4D language automatically detects the end of a function's code by the next `Function` keyword or the end of the class file. +There is no ending keyword for class constructor function code. There is no ending keyword for function code. ::: @@ -576,6 +577,11 @@ Class constructor($width : Integer; $height : Integer) Function sayName() ALERT("Hi, I am a "+This.name+".") +// Function definition +Function getArea() + var $0 : Integer + $0:=(This.height)*(This.width) + // Function definition Function getArea() var $0 : Integer diff --git a/i18n/ja/docusaurus-plugin-content-docs/current/API/DataClassClass.md b/i18n/ja/docusaurus-plugin-content-docs/current/API/DataClassClass.md index 0ce2196ab21ccb..63217c023f155d 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/current/API/DataClassClass.md +++ b/i18n/ja/docusaurus-plugin-content-docs/current/API/DataClassClass.md @@ -943,7 +943,7 @@ attributePath|formula 比較演算子 値 | 含まれる | IN | コレクション、あるいは複数の値のうち、どれか一つの値と等しいデータを取得します。ワイルドカード (@) をサポートします。 | | キーワードを含む | % | キーワードは、文字列あるいはピクチャー型の属性内で使用されるものが対象です。 | -- **値** (value): エンティティコレクションの各エンティティの属性のカレント値に対して比較する値。 **プレースホルダー** (後述の **プレースホルダーの使用** 参照) か、あるいはデータ型プロパティと同じ型の式を使用することができます。 +- **値** (value): エンティティコレクションの各エンティティの属性のカレント値に対して比較する値。 **プレースホルダー** (後述の **プレースホルダーの使用** 参照) か、あるいはデータ型プロパティと同じ型の式を使用することができます。 Note that, in case of type mismatch with scalar types (text, date, number...), 4D will try to convert the **value** type to the attribute data type whenever possible, for an easier handling of values coming from the Internet. For example, if the string "v20" is entered as **value** to compare with an integer attribute, it will be converted to 20. 定数値を使用する場合、以下の原則に従う必要があります: - **テキスト** テキスト型の定数値の場合は単一引用符つき、あるいはなしでも渡すことができます(後述の **引用符を使用する** 参照)。 文字列中の文字列を検索する ("含まれる" クエリ) には、ワイルドカード記号 (@) を使用して検索文字列を指定します (例: "@Smith@")。 また以下のキーワードはテキスト定数においては使用できません: true, false。 - **ブール** 型の定数値: **true** または **false** (文字の大小を区別します) diff --git a/i18n/ja/docusaurus-plugin-content-docs/current/API/EntityClass.md b/i18n/ja/docusaurus-plugin-content-docs/current/API/EntityClass.md index 972b4e7ecd5511..0cd5281a47d50f 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/current/API/EntityClass.md +++ b/i18n/ja/docusaurus-plugin-content-docs/current/API/EntityClass.md @@ -58,7 +58,7 @@ title: Entity - *attributeName* で指定した属性がストレージ型の場合: `.attributeName` は *attributeName* と同じ型の値を返します。 - *attributeName* で指定した属性がリレートエンティティ型の場合: - `.attributeName` はリレートエンティティを返します。 リレートエンティティの値は、ドット記法でプロパティを繋げることでアクセス可能です。例: "myEntity.employer.employees[0].lastname" + `.attributeName` はリレートエンティティを返します。 リレート先のエンティティそのものが変更された場合 (外部キーの変更)、リレーションの名称とそのプライマリーキー名が attributeName プロパティに返されます (リレーション名についての value および otherValue は空になります)。 - *attributeName* で指定した属性がリレートエンティティズ型の場合: `.attributeName` はリレートエンティティの新しいエンティティセレクションを返します。 重複しているエンティティは取り除かれます (返されるのは順列なしのエンティティセレクションです)。 @@ -98,9 +98,11 @@ title: Entity #### 説明 -`.clone()` 関数は、対象エンティティと同じレコードを参照する新規エンティティをメモリ内に作成します。 このメソッドを使用するとエンティティを個別に更新することができます。 +The `.clone()` function creates in memory a new entity referencing the same record as the original entity. -> エンティティに対して何らかの変更をおこなった場合、それらは [`.save( )`](#save) 関数が実行されたときのみ、参照先のレコードに保存されるという点に注意してください。 +This function allows you to update entities separately. Note however that, for performance reasons, the new entity shares the same reference of object attributes as the cloned entity. + +> Keep in mind that any modifications done to entities will be saved in the referenced record only when the [`.save()`](#save) function is executed. この関数は、すでにデータベースに保存されているエンティティに対してのみ使用可能です。 新規に作成されたエンティティ([`.isNew()`](#isnew) が **true** を返すもの) に対して呼び出すことはできません。 @@ -289,7 +291,7 @@ vCompareResult2 ($attributesToInspect についての差異のみ返されます ] ``` -vCompareResult3 ($e1 において更新された (touch された) 属性のみが返されます) +vCompareResult1 (すべての差異が返されています): ```4d [ @@ -344,7 +346,7 @@ vCompareResult3 ($e1 において更新された (touch された) 属性のみ #### 説明 -`.drop()` 関数は、データクラスに対応するテーブルにおいて、データストアのエンティティに格納されているデータを削除します。 エンティティそのものはメモリ内に残るという点に注意してください。 +`.drop()` 関数は、データクラスに対応するテーブルにおいて、データストアのエンティティに格納されているデータを削除します。 データクラスに対応するテーブルからエンティティが削除される一方、 エンティティそのものはメモリ内に残るという点に注意してください。 マルチユーザー、あるいはマルチプロセスアプリケーションにおいて、`.drop()` 関数は ["オプティミスティック・ロック"](ORDA/entities.md#entity-locking) 機構のもとで実行されます。これはレコードが保存されるたびに内部的なロックスタンプが自動的に増分していくという機構です。 @@ -1354,7 +1356,7 @@ $info:=$address.getRemoteContextAttributes() #### 説明 -`.toObject()` 関数は、エンティティからビルトされたオブジェクトを返します。 オブジェクト内部のプロパティ名はエンティティの属性名と合致します。 +`.toObject()` 関数は、エンティティからビルトされたオブジェクトを返します。 エンティティの属性値を格納します *filterString* 引数が空の文字列、あるいは "\*" の場合、以下のいずれかが返されます: @@ -1768,7 +1770,7 @@ employeeObject:=employeeSelected.toObject("directReports.*") ロックしているプロセス内のどのエンティティからもレコードが参照されなくなった場合、自動的にレコードロックが解除されます (たとえば、エンティティのローカル参照に対してのみロックがかかっていた場合、プロセスが終了すればエンティティおよびレコードのロックは解除されます)。 -> レコードがロックされている場合、ロックしているプロセスから、ロックされたエンティティ参照に対してロックを解除する必要があります: 例: +> レコードがロックされている場合、ロックしているプロセスから、ロックされたエンティティ参照に対してロックを解除する必要があります: 例: 例: ```4d $e1:=ds.Emp.all()[0] diff --git a/i18n/ja/docusaurus-plugin-content-docs/current/API/HTTPRequestClass.md b/i18n/ja/docusaurus-plugin-content-docs/current/API/HTTPRequestClass.md index 0adc752306188e..7187b8073c7187 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/current/API/HTTPRequestClass.md +++ b/i18n/ja/docusaurus-plugin-content-docs/current/API/HTTPRequestClass.md @@ -478,7 +478,7 @@ var $parsedMessage : Object:=HTTP Parse message($message) ## .wait() -**.wait**( { *time* : Real } ) : HTTPRequestClass +**.wait**( { *time* : Real } ) : 4D.HTTPRequest diff --git a/i18n/ja/docusaurus-plugin-content-docs/current/API/IncomingMessageClass.md b/i18n/ja/docusaurus-plugin-content-docs/current/API/IncomingMessageClass.md new file mode 100644 index 00000000000000..48352d5d1705c2 --- /dev/null +++ b/i18n/ja/docusaurus-plugin-content-docs/current/API/IncomingMessageClass.md @@ -0,0 +1,349 @@ +--- +id: IncomingMessageClass +title: IncomingMessage +--- + +The `4D.IncomingMessage` class allows you to handle the object received by a custom [**HTTP request handler**](../WebServer/http-request-handler.md). HTTP requests and their properties are automatically received as an instance of the `4D.IncomingMessage` class. Parameters given directly in the request with GET verb are handled by the [`.urlQuery`](#urlquery) property, while parameters passed in the body of the request are available through functions such as [`.getBlob()`](#getblob) or [`getText()`](#gettext). + +The HTTP request handler can return any value (or nothing). It usually returns an instance of the [`4D.OutgoingMessage`](OutgoingMessageClass.md) class. + +All properties of this class are read-only. They are automatically filled by the request handler. + +
    履歴 + +| リリース | 内容 | +| ----- | ------ | +| 20 R8 | クラスを追加 | + +
    + +### 例題 + +The following [**HTTPHandlers.json** file](../WebServer/http-request-handler.md) has been defined: + +```json +[ + { + "class": "GeneralHandling", + "method": "gettingStarted", + "pattern": "start", + "verbs": "get, post" + } +] +``` + +The `http://127.0.0.1/start/example?param=demo&name=4D` request is run with a `GET` verb in a browser. It is handled by the *gettingStarted* function of the following *GeneralHandling* singleton class: + +```4d +shared singleton Class constructor() + +Function gettingStarted($request : 4D.IncomingMessage) : 4D.OutgoingMessage + + var $result:=4D.OutgoingMessage.new() + var $body : Text + + $body:="Called URL: "+$request.url+"\n" + + $body+="The parameters are received as an object: \n"+JSON Stringify($request.urlQuery; *)+"\n" + + $body+="The verb is: "+$request.verb+"\n" + + $body+="There are "+String($request.urlPath.length)+" url parts - Url parts are: "\ + +$request.urlPath.join(" - ")+"\n\n" + + + $result.setBody($body) + $result.setHeader("Content-Type"; "text/plain") + + return $result + +``` + +The request is received on the server as *$request*, an object instance of the [4D.IncomingMessage class](../API/IncomingMessageClass.md). + +Here is the response: + +```json +Called URL: /start/example? param=demo&name=4D +The parameters are received as an object: +{ + "param": "demo", + "name": "4D" +} +The verb is: GET +There are 2 url parts - Url parts are: start - example +``` + +### IncomingMessage Object + +4D.IncomingMessage objects provide the following properties and functions: + +| | +| ----------------------------------------------------------------------------------------------------------------------------------------- | +| [](#getblob)
    | +| [](#getheader)
    | +| [](#getjson)
    | +| [](#getpicture)
    | +| [](#gettext)
    | +| [](#headers)
    | +| [](#url)
    | +| [](#urlPath)
    | +| [](#urlQuery)
    | +| [](#verb)
    | + +:::note + +A 4D.IncomingMessage object is a [non-sharable](../Concepts/shared.md) object. + +::: + + + +## .getBlob() + +**.getBlob**() : Blob + + + +| 引数 | 型 | | 説明 | +| --- | ---- | --------------------------- | ----------------------------- | +| 戻り値 | BLOB | <- | Body of the request as a Blob | + + + +#### 説明 + +The `.getBlob()` function returns the body of the request as a Blob. + +If the body has not been given as a binary content, the function tries to convert the value but it can give unexpected results. + + + + + +## .getHeader() + +**.getHeader**( *key* : Text ) : Text + + + +| 引数 | 型 | | 説明 | +| --- | ---- | --------------------------- | ---------------------------- | +| key | Text | -> | Header property to get | +| 戻り値 | Text | <- | Value of the header property | + + + +#### 説明 + +The `.getHeader()` function returns the value of the *key* header. + +:::note + +The *key* parameter is not case sensitive. + +::: + +#### 例題 + +```4d +var $value : Text +var $request : 4D.IncomingMessage +$value := $request.getHeader("content-type") +``` + + + + + +## .getJSON() + +**.getJSON**() : Variant + + + +| 引数 | 型 | | 説明 | +| --- | ------- | --------------------------- | ------------------------------------------ | +| 戻り値 | Variant | <- | JSON resolution of the body of the request | + + + +#### 説明 + +The `.getJSON()` function returns the body of the request as a JSON resolution. + +If the body has not been given as JSON valid content, an error is raised. + + + + + +## .getPicture() + +**.getPicture**() : Picture + + + +| 引数 | 型 | | 説明 | +| --- | ------- | --------------------------- | ------------------------------ | +| 戻り値 | Picture | <- | Body of the request as picture | + + + +#### 説明 + +The `.getPicture()` function returns the body of the request as a picture (in case of a body sent as a picture). + +The content-type must be given in the headers to indicate that the body is a picture. + +:::note + +If the request is built using the [`HTTPRequest` class](HTTPRequestClass.md), the picture must be sent in the body as a Blob with the appropriate content-type. + +::: + +If the body is not received as a valid picture, the function returns null. + + + + + +## .getText() + +**.getText**() : Text + + + +| 引数 | 型 | | 説明 | +| --- | ---- | --------------------------- | --------------------------- | +| 戻り値 | Text | <- | Body of the request as text | + + + +#### 説明 + +The `.getText()` function returns the body of the request as a text value. + +If the body has not been given as a string value, the function tries to convert the value but it can give unexpected results. + + + + + +## .headers + +**headers** : Object + +#### 説明 + +The `.headers` property contains the current headers of the incoming message as key/value pairs (strings). + +The `.headers` property is read-only. + +Header names (keys) are lowercased. Note header names are case sensitive. + + + + + +## .url + +**url** : Text + +#### 説明 + +The `.url` property contains the URL of the request without the *IP:port* part and as a string. + +For example, if the request is addressed to: "http://127.0.0.1:80/docs/invoices/today", the `.url` property is "/docs/invoices/today". + +The `.url` property is read-only. + +:::note + +The "host" part of the request (*IP:port*) is provided by the [`host` header](#headers). + +::: + + + + + +## .urlPath + +**urlPath** : Collection + +#### 説明 + +The `.urlPath` property contains the URL of the request without the *IP:port* part and as a collection of strings. + +For example, if the request is addressed to: "http://127.0.0.1:80/docs/invoices/today", the `.urlPath` property is ["docs", "invoices" ,"today"]. + +The `.urlPath` property is read-only. + + + + + +## .urlQuery + +**urlQuery** : Object + +#### 説明 + +The `.urlQuery` property contains the parameters of the request when they have been given in the URL as key/value pairs. + +The `.urlQuery` property is read-only. + +Parameters can be passed in the URL of requests **directly** or **as JSON contents**. + +#### Direct parameters + +Example: `http://127.0.0.1:8044/myCall?firstname=Marie&id=2&isWoman=true` + +In this case, parameters are received as stringified values in the `urlQuery` property: `urlQuery = {"firstname":"Marie" ,"id":"2" ,"isWoman":"true"}` + +#### JSON contents parameters + +Example: `http://127.0.0.1:8044/myCall/?myparams='[{"firstname": "Marie","isWoman": true,"id": 3}]'`. + +Parameters are passed in JSON format and enclosed within a collection. + +In this case, parameters are received as JSON text in the `urlQuery` property and can be parsed using [`JSON Parse`](../commands-legacy/json-parse.md). + +```4d +//urlQuery.myparams: "[{"firstname": "Marie","isWoman": true,"id": 3}]" +$test:=Value type(JSON Parse($r.urlQuery.myparams))=Is collection) //true +``` + +Special characters such as simple quotes or carriage returns must be escaped. + +Example: `http://127.0.0.1:8044/syntax/?mdcode=%60%60%604d` + +````4d +//urlQuery.mdcode = ```4d +$test:=Length($r.urlQuery.mdcode) //5 +```` + +:::note + +Parameters given in the body of the request using POST or PUT verbs are handled through dedicated functions: [`getText()`](#gettext), [`getPicture()`](#getpicture), [`getBlob()`](#getblob), [`getJSON()`](#getjson). + +::: + + + + + +## .verb + +**verb** : Text + +#### 説明 + +The `.verb` property contains the verb used by the request. + +HTTP and HTTPS request verbs include for example "get", "post", "put", etc. + +The `.verb` property is read-only. + + diff --git a/i18n/ja/docusaurus-plugin-content-docs/current/API/OutGoingMessageClass.md b/i18n/ja/docusaurus-plugin-content-docs/current/API/OutGoingMessageClass.md deleted file mode 100644 index 2d6c3d8e8f89ce..00000000000000 --- a/i18n/ja/docusaurus-plugin-content-docs/current/API/OutGoingMessageClass.md +++ /dev/null @@ -1,190 +0,0 @@ ---- -id: OutgoingMessageClass -title: OutgoingMessage ---- - -The `4D.OutgoingMessage` class allows you to build messages to be returned by your application functions in response to [REST requests](../REST/REST_requests.md). If the response is of type `4D.OutgoingMessage`, the REST server does not return an object but the object instance of the `OutgoingMessage` class. - -一般的に、このクラスは、[`onHttpGet`](../ORDA/ordaClasses.md#onhttpget-keyword) キーワードで宣言され、HTTP GET リクエストを処理するように設計された関数の中で使用することができます。 このようなリクエストは、例えば、ファイルのダウンロード、画像の生成、ダウンロードなどの機能を実装するためや、ブラウザを介して任意のコンテンツタイプを受信するために使用されます。 - -このクラアスのインスタンスは4D Server 上にビルドされ、[4D REST サーバー](../REST/gettingStarted.md) によってのみブラウザに送信することができます。 このクラスを使用することで、HTTP 以外のテクノロジー(例: モバイルなど)を使用することができます。 - -
    履歴 - -| リリース | 内容 | -| ----- | ------ | -| 20 R7 | クラスを追加 | - -
    - -### 例題 - -この例題では、`getFile()` 関数は[Datastore クラス](../ORDA/ordaClasses.md#datastore-class) に実装されており、REST リクエストによって[呼び出すことができます](../ORDA/ordaClasses.md#onhttpget-keyword)。 ここでの目的は、**testFile.pdf** ファイルをリクエストへのレスポンスとして返すことです: - -```4d -Class extends DataStoreImplementation - -exposed onHTTPGet Function getFile() : 4D.OutgoingMessage - - var $result:=4D.OutgoingMessage.new() - var $file:=File("/RESOURCES/testFile.pdf") - - $result.setBody($file.getContent()) // これはバイナリーのコンテンツ - $result.setHeader("Content-Type"; "application/pdf") - return $result -``` - -### OutgoingMessage Object - -4D.OutgoingMessage objects provide the following properties and functions: - -| | -| -------------------------------------------------------------------------------------------------------------------------------------- | -| [](#body)
    | -| [](#headers)
    | -| [](#setbody)
    | -| [](#setheader)
    | -| [](#setstatus)
    | -| [](#status)
    | - -:::note - -A 4D.OutgoingMessage object is a [non-sharable](../Concepts/shared.md) object. - -::: - - - -## .body - -**body** : any - -#### 説明 - -The `.body` property contains the outgoing message body. `.body` プロパティでは以下のデータ型がサポートされます: - -- text -- blob -- object -- image - -`.body` プロパティは読み書き可能です。 - -`.body` プロパティはまた、[`setBody()`](#setbody) 関数を使用しても設定することができます。この場合、`content-type` ヘッダーは自動的に設定されます。 - - - - - -## .headers - -**headers** : Object - -#### 説明 - -The `.headers` property contains the current headers of the outgoing message as key/value pairs. - -The `.headers` property is read-only. To set a header, use the [`setHeader()`](#setheader) function. - - - - - -## .setBody() - -**.setBody**( *body* : any ) - - - -| 引数 | 型 | | 説明 | -| ---- | --- | -- | ---------------------------- | -| body | any | -> | Body of the outgoing message | - - - -#### 説明 - -The `.setBody()` function sets the outgoing message *body*. - -The following data types are supported in the *body*: - -- Text -- BLOB -- Object -- ピクチャー - -When this function is used, the content-type header is automatically set depending on the *body* type: - -- Content-Type:text/plain if the body is a Text -- Content-Type:application/octet-stream if body is a Blob -- Content-Type:application/json if body is an Object -- Content-Type:image/jpeg, image/gif... if body is an Image - -If *body* is not of a supported value type, an error is returned. - - - - - -## .setHeader() - -**.setHeader**( *key* : Text ; *value* : Text ) - - - -| 引数 | 型 | | 説明 | -| ----- | ---- | -- | ---------------------------- | -| key | Text | -> | Header property to set | -| value | Text | -> | Value of the header property | - - - -#### 説明 - -The `.setHeader()` function sets the outgoing message header *key* with the provided *value*. If both parameters are not Text values, an error is raised. - -When returning a 4D.OutgoingMessage object instance, 4D automatically sets some headers (e.g. `Set-Cookie` with `WASID4D=...` and `4DSID__ProjectName_=....`). - -:::note - -If you set a *value* for the "Content-Type" header *key*, make sure you call this function after the call to [`setBody()`](#setbody), because `setBody()` automatically fills this header. For a list of "Content-Type" header values, please refer to the [`WEB SEND BLOB`](../commands-legacy/web-send-blob.md) documentation. - -::: - - - - - -## .setStatus() - -**.setStatus**( *status* : Integer ) - - - -| 引数 | 型 | | 説明 | -| ------ | ------- | -- | ------------- | -| status | Integer | -> | Status to set | - - - -#### 説明 - -The `.setStatus()` function sets the `status` property with the given *status*. - -If *status* is not an integer value, an error is raised. - -For a list of HTTP status codes, please refer the [HTTP status code list on Wikipedia](https://en.wikipedia.org/wiki/List_of_HTTP_status_codes). - - - - - -## .status - -**status** : Integer - -#### 説明 - -The `.status` property contains the current status of the outgoing message. This property can be set using the [`setStatus()`](setstatus) function. - - diff --git a/i18n/ja/docusaurus-plugin-content-docs/current/API/OutgoingMessageClass.md b/i18n/ja/docusaurus-plugin-content-docs/current/API/OutgoingMessageClass.md index 2d6c3d8e8f89ce..5901378f784208 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/current/API/OutgoingMessageClass.md +++ b/i18n/ja/docusaurus-plugin-content-docs/current/API/OutgoingMessageClass.md @@ -5,9 +5,9 @@ title: OutgoingMessage The `4D.OutgoingMessage` class allows you to build messages to be returned by your application functions in response to [REST requests](../REST/REST_requests.md). If the response is of type `4D.OutgoingMessage`, the REST server does not return an object but the object instance of the `OutgoingMessage` class. -一般的に、このクラスは、[`onHttpGet`](../ORDA/ordaClasses.md#onhttpget-keyword) キーワードで宣言され、HTTP GET リクエストを処理するように設計された関数の中で使用することができます。 このようなリクエストは、例えば、ファイルのダウンロード、画像の生成、ダウンロードなどの機能を実装するためや、ブラウザを介して任意のコンテンツタイプを受信するために使用されます。 +Typically, this class can be used in custom [HTTP request handler functions](../WebServer/http-request-handler.md#function-configuration) or in functions declared with the [`onHttpGet`](../ORDA/ordaClasses.md#onhttpget-keyword) keyword and designed to handle HTTP GET requests. このようなリクエストは、例えば、ファイルのダウンロード、画像の生成、ダウンロードなどの機能を実装するためや、ブラウザを介して任意のコンテンツタイプを受信するために使用されます。 -このクラアスのインスタンスは4D Server 上にビルドされ、[4D REST サーバー](../REST/gettingStarted.md) によってのみブラウザに送信することができます。 このクラスを使用することで、HTTP 以外のテクノロジー(例: モバイルなど)を使用することができます。 +このクラアスのインスタンスは4D Server 上にビルドされ、[4D REST サーバー](../REST/gettingStarted.md) によってのみブラウザに送信することができます。 このクラスを使用することで、HTTP 以外のテクノロジー(例: モバイルなど)を使用することができます。 このクラスを使用することで、HTTP 以外のテクノロジー(例: モバイルなど)を使用することができます。
    履歴 @@ -19,7 +19,7 @@ The `4D.OutgoingMessage` class allows you to build messages to be returned by yo ### 例題 -この例題では、`getFile()` 関数は[Datastore クラス](../ORDA/ordaClasses.md#datastore-class) に実装されており、REST リクエストによって[呼び出すことができます](../ORDA/ordaClasses.md#onhttpget-keyword)。 ここでの目的は、**testFile.pdf** ファイルをリクエストへのレスポンスとして返すことです: +この例題では、`getFile()` 関数は[Datastore クラス](../ORDA/ordaClasses.md#datastore-class) に実装されており、REST リクエストによって[呼び出すことができます](../ORDA/ordaClasses.md#onhttpget-keyword)。 ここでの目的は、**testFile.pdf** ファイルをリクエストへのレスポンスとして返すことです: ここでの目的は、**testFile.pdf** ファイルをリクエストへのレスポンスとして返すことです: ```4d Class extends DataStoreImplementation diff --git a/i18n/ja/docusaurus-plugin-content-docs/current/Concepts/classes.md b/i18n/ja/docusaurus-plugin-content-docs/current/Concepts/classes.md index 6c670594abb75c..8a72e5c840d32c 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/current/Concepts/classes.md +++ b/i18n/ja/docusaurus-plugin-content-docs/current/Concepts/classes.md @@ -5,9 +5,9 @@ title: クラス ## 概要 -4D ランゲージでは **クラス** の概念がサポートされています。 プログラミング言語では、クラスを利用することによって、属性やメソッドなどを持つ特定のオブジェクト種を定義することができます。 +4D ランゲージでは **クラス** の概念がサポートされています。 プログラミング言語では、クラスを利用することによって、属性やメソッドなどを持つ特定のオブジェクト種を定義することができます。 プログラミング言語では、クラスを利用することによって、属性やメソッドなどを持つ特定のオブジェクト種を定義することができます。 プログラミング言語では、クラスを利用することによって、属性やメソッドなどを持つ特定のオブジェクト種を定義することができます。 -ユーザークラスが定義されていれば、そのクラスのオブジェクトをコード内で **インスタンス化** することができます。 各オブジェクトは、それ自身が属するクラスのインスタンスです。 クラスは、別のクラスを [継承](#class-extends-classname) することで、その [関数](#function) と、([宣言された](#property) および [計算された](#function-get-と-function-set)) プロパティを受け継ぐことができます。 +ユーザークラスが定義されていれば、そのクラスのオブジェクトをコード内で **インスタンス化** することができます。 各オブジェクトは、それ自身が属するクラスのインスタンスです。 ユーザークラスが定義されていれば、そのクラスのオブジェクトをコード内で **インスタンス化** することができます。 各オブジェクトは、それ自身が属するクラスのインスタンスです。 クラスは、別のクラスを [継承](#class-extends-classname) することで、その [関数](#function) と、([宣言された](#property) および [計算された](#function-get-と-function-set)) プロパティを受け継ぐことができます。 各オブジェクトは、それ自身が属するクラスのインスタンスです。 ユーザークラスが定義されていれば、そのクラスのオブジェクトをコード内で **インスタンス化** することができます。 各オブジェクトは、それ自身が属するクラスのインスタンスです。 クラスは、別のクラスを [継承](#class-extends-classname) することで、その [関数](#function) と、([宣言された](#property) および [計算された](#function-get-と-function-set)) プロパティを受け継ぐことができます。 > 4D におけるクラスモデルは JavaScript のクラスに類似しており、プロトタイプチェーンに基づきます。 @@ -41,7 +41,7 @@ $hello:=$person.sayHello() // "Hello John Doe" ### クラス定義 -4D においてユーザークラスとは、`/Project/Sources/Classes/` フォルダーに保存された専用の [メソッド](methods.md) ファイル (.4dm) によって定義されます。 ファイル名がクラス名になります。 +4D においてユーザークラスとは、`/Project/Sources/Classes/` フォルダーに保存された専用の [メソッド](methods.md) ファイル (.4dm) によって定義されます。 ファイル名がクラス名になります。 ファイル名がクラス名になります。 ファイル名がクラス名になります。 クラスを命名する際には、次のルールに留意してください: @@ -81,6 +81,8 @@ Project フォルダー Project Sources Classes Polygon.4dm - **クラス** カテゴリを選択し、![](../assets/en/Users/PlussNew.png) ボタンをクリックします。 - エクスプローラーウィンドウの下部にあるアクションメニュー、またはクラスグループのコンテキストメニューから **新規クラス...** を選択します。 ![](../assets/en/Concepts/newClass.png) + ![](../assets/en/Concepts/newClass.png) + ![](../assets/en/Concepts/newClass.png) - エクスプローラーのホームページのコンテキストメニューより **新規** > **クラス...** を選択します。 #### クラスのコードサポート @@ -96,7 +98,7 @@ Project フォルダー Project Sources Classes Polygon.4dm ## クラスストア -定義されたクラスには、クラスストアよりアクセスすることができます。 クラスストアには次の二つが存在します: +定義されたクラスには、クラスストアよりアクセスすることができます。 定義されたクラスには、クラスストアよりアクセスすることができます。 クラスストアには次の二つが存在します: - [`cs`](../commands/cs.md) - ユーザークラスストア - [`4D`](../commands/4d.md) - ビルトインクラスストア @@ -107,11 +109,11 @@ Project フォルダー Project Sources Classes Polygon.4dm -| 引数 | 型 | | 説明 | | -| ---------- | ------ | ------------------------------ | --------------------------- | ---------------- | -| classStore | Object | &larr; | プロジェクトまたはコンポーネントのユーザークラスストア | | +| 引数 | 型 | | 説明 | | +| ---------- | ------ | - | --------------------------- | ---------------- | +| classStore | Object | ← | プロジェクトまたはコンポーネントのユーザークラスストア | | -`cs` コマンドは、カレントプロジェクトまたはコンポーネントのユーザークラスストアを返します。 これには、プロジェクトまたはコンポーネントにて [定義](#クラス定義) されている、すべてのユーザークラスが含まれます。 デフォルトでは、 [ORDAクラス](ORDA/ordaClasses.md) のみ利用可能です。 +`cs` コマンドは、カレントプロジェクトまたはコンポーネントのユーザークラスストアを返します。 これには、プロジェクトまたはコンポーネントにて [定義](#クラス定義) されている、すべてのユーザークラスが含まれます。 デフォルトでは、 [ORDAクラス](ORDA/ordaClasses.md) のみ利用可能です。 これには、プロジェクトまたはコンポーネントにて [定義](#クラス定義) されている、すべてのユーザークラスが含まれます。 デフォルトでは、 [ORDAクラス](ORDA/ordaClasses.md) のみ利用可能です。 これには、プロジェクトまたはコンポーネントにて [定義](#クラス定義) されている、すべてのユーザークラスが含まれます。 デフォルトでは、 [ORDAクラス](ORDA/ordaClasses.md) のみ利用可能です。 #### 例題 @@ -127,11 +129,11 @@ $instance:=cs.myClass.new() -| 引数 | 型 | | 説明 | | -| ---------- | ------ | ------------------------------ | -------- | ---------------- | -| classStore | Object | &larr; | 4Dクラスストア | | +| 引数 | 型 | | 説明 | | +| ---------- | ------ | - | -------- | ---------------- | +| classStore | Object | ← | 4Dクラスストア | | -`4D` コマンドは、ビルトイン 4Dクラスのクラスストアを返します。 [CryptoKey](API/CryptoKeyClass.md) などの専用 API へのアクセスを提供します。 +`4D` コマンドは、ビルトイン 4Dクラスのクラスストアを返します。 [CryptoKey](API/CryptoKeyClass.md) などの専用 API へのアクセスを提供します。 [CryptoKey](API/CryptoKeyClass.md) などの専用 API へのアクセスを提供します。 [CryptoKey](API/CryptoKeyClass.md) などの専用 API へのアクセスを提供します。 #### 例題 @@ -151,7 +153,7 @@ $key:=4D.CryptoKey.new(New object("type";"ECDSA";"curve";"prime256v1")) ## Class オブジェクト -プロジェクトにおいてクラスが [定義](#クラス定義) されていれば、それは 4Dランゲージ環境に読み込まれます。 クラスとは、それ自身が ["Class" クラス](API/ClassClass.md) のオブジェクトです。 Class オブジェクトは次のプロパティや関数を持ちます: +プロジェクトにおいてクラスが [定義](#クラス定義) されていれば、それは 4Dランゲージ環境に読み込まれます。 クラスとは、それ自身が ["Class" クラス](API/ClassClass.md) のオブジェクトです。 Class オブジェクトは次のプロパティや関数を持ちます: クラスとは、それ自身が ["Class" クラス](API/ClassClass.md) のオブジェクトです。 Class オブジェクトは次のプロパティや関数を持ちます: クラスとは、それ自身が ["Class" クラス](API/ClassClass.md) のオブジェクトです。 Class オブジェクトは次のプロパティや関数を持ちます: - [`name`](API/ClassClass.md#name) 文字列 - [`superclass`](API/ClassClass.md#superclass) オブジェクト (無い場合は null) @@ -197,9 +199,9 @@ There is no ending keyword for function code. The 4D language automatically dete ::: -クラス関数とは、当該クラスのプロパティです。 クラス関数は [`4D.Function`](API/FunctionClass.md) クラスのオブジェクトです。 クラス定義ファイルでは、`Function` キーワードに続けて関数名を指定して宣言をおこないます。 +クラス関数とは、当該クラスのプロパティです。 クラス関数とは、当該クラスのプロパティです。 クラス関数は [`4D.Function`](API/FunctionClass.md) クラスのオブジェクトです。 クラス定義ファイルでは、`Function` キーワードに続けて関数名を指定して宣言をおこないます。 クラス関数とは、当該クラスのプロパティです。 クラス関数とは、当該クラスのプロパティです。 クラス関数は [`4D.Function`](API/FunctionClass.md) クラスのオブジェクトです。 クラス定義ファイルでは、`Function` キーワードに続けて関数名を指定して宣言をおこないます。 クラス定義ファイルでは、`Function` キーワードに続けて関数名を指定して宣言をおこないます。 -[共有クラス](#共有クラス) 内で関数が宣言されている場合は、`shared` キーワードを使用することによって、[`Use...End use` structure](shared.md#useend-use) 構文なしで関数を呼び出せるようにできます。 詳細については、後述の [共有関数](#共有関数) の項目を参照ください。 +[共有クラス](#共有クラス) 内で関数が宣言されている場合は、`shared` キーワードを使用することによって、[`Use...End use` 構文](shared.md#useend-use)なしで関数を呼び出せるようにできます。 詳細については、後述の [共有関数](#共有関数) の項目を参照ください。 詳細については、後述の [共有関数](#共有関数) の項目を参照ください。 関数名は [プロパティ名の命名規則](Concepts/identifiers.md#オブジェクトプロパティ) に準拠している必要があります。 @@ -211,17 +213,17 @@ There is no ending keyword for function code. The 4D language automatically dete :::tip -アンダースコア ("_") 文字で関数名を開始すると、その関数は 4Dコードエディターの自動補完機能から除外されます。 たとえば、`MyClass` に `Function _myPrivateFunction` を宣言した場合、コードエディターにおいて `"cs.MyClass."` とタイプしても、この関数は候補として提示されません 。 +アンダースコア ("_") 文字で関数名を開始すると、その関数は 4Dコードエディターの自動補完機能から除外されます。 たとえば、`MyClass` に `Function _myPrivateFunction` を宣言した場合、コードエディターにおいて `"cs.MyClass."` とタイプしても、この関数は候補として提示されません 。 たとえば、`MyClass` に `Function _myPrivateFunction` を宣言した場合、コードエディターにおいて `"cs.MyClass."` とタイプしても、この関数は候補として提示されません 。 ::: -関数名のすぐ後に、名前とデータ型を指定して [引数](#引数) を宣言します (戻り値の宣言も可)。 例: +関数名のすぐ後に、名前とデータ型を指定して [引数](#引数) を宣言します (戻り値の宣言も可)。 例: 例: 例: ```4d Function computeArea($width : Integer; $height : Integer)->$area : Integer ``` -クラスメソッド内でオブジェクトインスタンスを参照するには `This` コマンドを使います。 例: +クラスメソッド内でオブジェクトインスタンスを参照するには `This` コマンドを使います。 例: 例: 例: ```4d Function setFullname($firstname : Text; $lastname : Text) @@ -234,9 +236,9 @@ Function getFullname()->$fullname : Text クラス関数の場合には、`Current method name` コマンドは次を返します: `.` (例: "MyClass.myFunction")。 -アプリケーションのコード内では、クラス関数はオブジェクトインスタンスのメンバーメソッドとして呼び出され、[引数](#引数) を受け取ることができます。 以下のシンタックスがサポートされています: +アプリケーションのコード内では、クラス関数はオブジェクトインスタンスのメンバーメソッドとして呼び出され、[引数](#引数) を受け取ることができます。 以下のシンタックスがサポートされています: 以下のシンタックスがサポートされています: 以下のシンタックスがサポートされています: -- `()` 演算子の使用。 例: `myObject.methodName("hello")` +- `()` 演算子の使用。 `()` 演算子の使用。 `()` 演算子の使用。 例: `myObject.methodName("hello")` - "4D.Function" クラスメンバーメソッドの使用: - [`apply()`](API/FunctionClass.md#apply) - [`call()`](API/FunctionClass.md#call) @@ -266,14 +268,14 @@ Function add($x; $y : Variant; $z : Integer; $xy : Object) #### 戻り値 -関数の戻り値を宣言するには (任意)、入力パラメーターリストに矢印 (`->`) と戻り値の定義を追加します。 例: +関数の戻り値を宣言するには (任意)、入力パラメーターリストに矢印 (`->`) と戻り値の定義を追加します。 例: 例: 例: ```4d Function add($x : Variant; $y : Integer)->$result : Integer $result:=$x+$y ``` -コロン (`:`) 記号の後に戻り値のデータ型だけを指定し、そのうえで [`return 文`](parameters.md#return-expression) を使って戻り値を返すこともできます (これは関数の実行を終了します)。 例: +コロン (`:`) 記号の後に戻り値のデータ型だけを指定し、そのうえで [`return 文`](parameters.md#return-expression) を使って戻り値を返すこともできます (これは関数の実行を終了します)。 例: 例: 例: ```4d Function add($x : Variant; $y : Integer): Integer @@ -341,13 +343,13 @@ There is no ending keyword for class constructor function code. The 4D language クラスコンストラクターが定義されていると、[`new()`](API/ClassClass.md#new) 関数を呼び出したときに、当該コンストラクターが呼び出されます (コンストラクターで引数を指定している場合は `new()` 関数に渡します)。 -コンストラクター関数は、1つのクラスに 1つしか存在できません (そうでない場合はエラーが返されます)。 [`Super`](#super) キーワードを使用することで、コンストラクターはスーパークラス (親クラス) のコンストラクターを呼び出すことができます。 +コンストラクター関数は、1つのクラスに 1つしか存在できません (そうでない場合はエラーが返されます)。 The [`Super`](../commands/super.md) command allows calls to the [`superclass`](../API/ClassClass#superclass), i.e. the parent class of the function. The [`Super`](../commands/super.md) command allows calls to the [`superclass`](../API/ClassClass#superclass), i.e. the parent class of the function. -コンストラクター内でインスタンスのプロパティを作成し、型宣言することができます (例題参照)。 また、インスタンスプロパティの値が、コンストラクターに渡される引数に依存しない場合は、[`property`](#property) キーワードを使用して定義することができます。 +コンストラクター内でインスタンスのプロパティを作成し、型宣言することができます (例題参照)。 コンストラクター内でインスタンスのプロパティを作成し、型宣言することができます (例題参照)。 コンストラクター内でインスタンスのプロパティを作成し、型宣言することができます (例題参照)。 また、インスタンスプロパティの値が、コンストラクターに渡される引数に依存しない場合は、[`property`](#property) キーワードを使用して定義することができます。 -`shared` キーワードを使うと **共有クラス** が作成されます。共有クラスは、共有オブジェクトのインスタンス化にのみ使われます。 詳細については、後述の [共有クラス](#共有クラス) の項目を参照ください。 +`shared` キーワードを使うと **共有クラス** が作成されます。共有クラスは、共有オブジェクトのインスタンス化にのみ使われます。 詳細については、後述の [共有クラス](#共有クラス) の項目を参照ください。 詳細については、後述の [共有クラス](#共有クラス) の項目を参照ください。 詳細については、後述の [共有クラス](#共有クラス) の項目を参照ください。 -`singleton` キーワードを使うと **シングルトン** が作成されます。シングルトンクラスは、クラスインスタンスを一つに限定する場合に使われます。 `session singleton` キーワードを使うと、セッションごとに 1つのインスタンスを作成します。 詳細については、後述の [シングルトンクラス](#シングルトンクラス) の項目を参照ください。 +`singleton` キーワードを使うと **シングルトン** が作成されます。シングルトンクラスは、クラスインスタンスを一つに限定する場合に使われます。 `session singleton` キーワードを使うと、セッションごとに 1つのインスタンスを作成します。 詳細については、後述の [シングルトンクラス](#シングルトンクラス) の項目を参照ください。 `session singleton` キーワードを使うと、セッションごとに 1つのインスタンスを作成します。 詳細については、後述の [シングルトンクラス](#シングルトンクラス) の項目を参照ください。 `session singleton` キーワードを使うと、セッションごとに 1つのインスタンスを作成します。 詳細については、後述の [シングルトンクラス](#シングルトンクラス) の項目を参照ください。 #### 例題 @@ -373,7 +375,7 @@ $o:=cs.MyClass.new("John";42) `property {; ;...}{ : }` -`property` キーワードを使用して、ユーザークラス内のプロパティを宣言することができます。 クラスプロパティには、名前と型があります。 +`property` キーワードを使用して、ユーザークラス内のプロパティを宣言することができます。 クラスプロパティには、名前と型があります。 クラスプロパティには、名前と型があります。 クラスプロパティには、名前と型があります。 クラスプロパティを宣言することで、コードエディターの自動補完機能とエラー検出機能を強化します。 @@ -433,7 +435,7 @@ $o:=cs.MyClass.new("John";42) ::: -宣言の際には型を省略することができます。その場合、可能な限り型は推論されます。 例: +宣言の際には型を省略することができます。その場合、可能な限り型は推論されます。 例: 例: 例: ```4d // クラス: MyClass @@ -496,7 +498,7 @@ $o.age:="Smith" // シンタックスチェックでエラー // コード ``` -`Function get` と `Function set` は、クラスの **計算プロパティ** を定義するアクセサーです。 計算プロパティとは、計算をマスクするデータ型を持つ命名プロパティです。 計算プロパティの値にアクセスすると、4D は対応するアクセサーのコードを実行します: +`Function get` と `Function set` は、クラスの **計算プロパティ** を定義するアクセサーです。 計算プロパティとは、計算をマスクするデータ型を持つ命名プロパティです。 計算プロパティの値にアクセスすると、4D は対応するアクセサーのコードを実行します: 計算プロパティとは、計算をマスクするデータ型を持つ命名プロパティです。 計算プロパティの値にアクセスすると、4D は対応するアクセサーのコードを実行します: 計算プロパティとは、計算をマスクするデータ型を持つ命名プロパティです。 計算プロパティの値にアクセスすると、4D は対応するアクセサーのコードを実行します: - プロパティを読み取るときには `Function get` が実行されます。 - プロパティに書き込むときには `Function set` が実行されます。 @@ -505,17 +507,17 @@ $o.age:="Smith" // シンタックスチェックでエラー 計算プロパティは、メモリ上に保持する必要のないデータを処理するために設計されています。 計算プロパティは通常、永続的なプロパティに基づいています。 たとえば、クラスオブジェクトの永続的なプロパティとして、_税込価格_ と _消費税率_ が含まれている場合、_税抜価格_ は計算プロパティで処理することができます。 -クラス定義ファイルでは、計算プロパティの宣言には、`Function get` (_ゲッター_) と `Function set` (_セッター_) のキーワードを使い、その後にプロパティ名を記述します。 名称は [プロパティ名の命名規則](Concepts/identifiers.md#オブジェクトプロパティ) に準拠している必要があります。 +クラス定義ファイルでは、計算プロパティの宣言には、`Function get` (_ゲッター_) と `Function set` (_セッター_) のキーワードを使い、その後にプロパティ名を記述します。 名称は [プロパティ名の命名規則](Concepts/identifiers.md#オブジェクトプロパティ) に準拠している必要があります。 名称は [プロパティ名の命名規則](Concepts/identifiers.md#オブジェクトプロパティ) に準拠している必要があります。 名称は [プロパティ名の命名規則](Concepts/identifiers.md#オブジェクトプロパティ) に準拠している必要があります。 -`Function get` はプロパティの型の値を返し、`Function set` はプロパティの型の引数を受け取ります。 どちらも、標準的な [関数の引数](#引数) のルールに準拠する必要があります。 +`Function get` はプロパティの型の値を返し、`Function set` はプロパティの型の引数を受け取ります。 どちらも、標準的な [関数の引数](#引数) のルールに準拠する必要があります。 どちらも、標準的な [関数の引数](#引数) のルールに準拠する必要があります。 どちらも、標準的な [関数の引数](#引数) のルールに準拠する必要があります。 -両方の関数が定義されている場合、計算プロパティは **read-write** となります。 `Function get` のみが定義されている場合、計算プロパティは **read-only** です。 この場合、コードがプロパティを変更しようとするとエラーが返されます。 `Function set` のみが定義されている場合、4D はプロパティの読み取り時に _undefined_ を返します。 +両方の関数が定義されている場合、計算プロパティは **read-write** となります。 両方の関数が定義されている場合、計算プロパティは **read-write** となります。 `Function get` のみが定義されている場合、計算プロパティは **read-only** です。 この場合、コードがプロパティを変更しようとするとエラーが返されます。 `Function set` のみが定義されている場合、4D はプロパティの読み取り時に _undefined_ を返します。 この場合、コードがプロパティを変更しようとするとエラーが返されます。 `Function set` のみが定義されている場合、4D はプロパティの読み取り時に _undefined_ を返します。 両方の関数が定義されている場合、計算プロパティは **read-write** となります。 `Function get` のみが定義されている場合、計算プロパティは **read-only** です。 この場合、コードがプロパティを変更しようとするとエラーが返されます。 `Function set` のみが定義されている場合、4D はプロパティの読み取り時に _undefined_ を返します。 この場合、コードがプロパティを変更しようとするとエラーが返されます。 `Function set` のみが定義されている場合、4D はプロパティの読み取り時に _undefined_ を返します。 [共有クラス](#共有クラス) 内で関数が宣言されている場合は、`shared` キーワードを使用することによって、[`Use...End use` 構文](shared.md#useend-use)なしで関数を呼び出せるようにできます。 詳細については、後述の [共有関数](#共有関数) の項目を参照ください。 -計算プロパティの型は、_ゲッター_ の `$return` の型宣言によって定義されます。 [有効なプロパティタイプ](dt_object.md) であれば、いずれも使用可能です。 +計算プロパティの型は、_ゲッター_ の `$return` の型宣言によって定義されます。 [有効なプロパティタイプ](dt_object.md) であれば、いずれも使用可能です。 [有効なプロパティタイプ](dt_object.md) であれば、いずれも使用可能です。 -> オブジェクトプロパティに _undefined_ を代入すると、型を保持したまま値がクリアされます。 このためには、まず `Function get` を呼び出して値の型を取得し、次にその型の空の値で `Function set` を呼び出します。 +> オブジェクトプロパティに _undefined_ を代入すると、型を保持したまま値がクリアされます。 オブジェクトプロパティに _undefined_ を代入すると、型を保持したまま値がクリアされます。 オブジェクトプロパティに _undefined_ を代入すると、型を保持したまま値がクリアされます。 このためには、まず `Function get` を呼び出して値の型を取得し、次にその型の空の値で `Function set` を呼び出します。 #### 例題 1 @@ -566,7 +568,7 @@ Function get fullAddress()->$result : Object Class extends ``` -クラス宣言において `Class extends` キーワードを使うと、別のユーザークラスの子ユーザークラスを作成することができます。 この子クラスは、親クラスのすべての機能を継承します。 +クラス宣言において `Class extends` キーワードを使うと、別のユーザークラスの子ユーザークラスを作成することができます。 この子クラスは、親クラスのすべての機能を継承します。 この子クラスは、親クラスのすべての機能を継承します。 この子クラスは、親クラスのすべての機能を継承します。 クラス継承は次のルールに沿っている必要があります: @@ -659,7 +661,7 @@ For more details, see the [`This`](../commands/this.md) command description. ## 共有クラス -**共有クラス** を作成することができます。 共有クラスとは、クラスの [`new()`](../API/ClassClass.md#new) 関数が呼び出されたときに、[共有オブジェクト](shared.md) をインスタンス化するユーザークラスのことを指します。 共有クラスは共有オブジェクトしか作れません。 +**共有クラス** を作成することができます。 **共有クラス** を作成することができます。 共有クラスとは、クラスの [`new()`](../API/ClassClass.md#new) 関数が呼び出されたときに、[共有オブジェクト](shared.md) をインスタンス化するユーザークラスのことを指します。 共有クラスは共有オブジェクトしか作れません。 **共有クラス** を作成することができます。 **共有クラス** を作成することができます。 共有クラスとは、クラスの [`new()`](../API/ClassClass.md#new) 関数が呼び出されたときに、[共有オブジェクト](shared.md) をインスタンス化するユーザークラスのことを指します。 共有クラスは共有オブジェクトしか作れません。 共有クラスは共有オブジェクトしか作れません。 共有クラスは **共有関数** をサポートしています。共有関数は、[`Use...End use`](shared.md#useend-use) 構文なしで呼び出すことができます。 @@ -674,7 +676,7 @@ For more details, see the [`This`](../commands/this.md) command description. ### 共有クラスの作成 -共有クラスを作成するには、[Class Constructor](#class-constructor) の前に `shared` キーワードを追加します。 例: +共有クラスを作成するには、[Class Constructor](#class-constructor) の前に `shared` キーワードを追加します。 例: 例: 例: ```4d // 共有クラス: Person @@ -693,9 +695,9 @@ cs.Person.isShared // true ### 共有関数 -共有クラス内で定義された関数が、そのクラスのオブジェクトを変更する場合には、共有オブジェクトへのアクセスを保護するために、[`Use...End use`](shared.md#useend-use) 構文を呼び出す必要があります。 しかし、**shared** として関数を定義することで、実行時には内部的な `Use...End use` を自動でトリガーするようにし、コードを簡略化することができます。 +共有クラス内で定義された関数が、そのクラスのオブジェクトを変更する場合には、共有オブジェクトへのアクセスを保護するために、[`Use...End use`](shared.md#useend-use) 構文を呼び出す必要があります。 しかし、**shared** として関数を定義することで、実行時には内部的な `Use...End use` を自動でトリガーするようにし、コードを簡略化することができます。 しかし、**shared** として関数を定義することで、実行時には内部的な `Use...End use` を自動でトリガーするようにし、コードを簡略化することができます。 しかし、**shared** として関数を定義することで、実行時には内部的な `Use...End use` を自動でトリガーするようにし、コードを簡略化することができます。 -共有クラス内で共有関数を作成するには、[Function](#function) キーワードの前に `shared` キーワードを追加します。 例: +共有クラス内で共有関数を作成するには、[Function](#function) キーワードの前に `shared` キーワードを追加します。 例: 例: 例: ```4d // 共有クラス Foo @@ -714,7 +716,7 @@ shared Function Bar($value : Integer) ## シングルトンクラス -**シングルトンクラス** とは、インスタンスを一つのみ作成するユーザークラスです。 シングルトンのコンセプトに関する詳細については、[シングルトンに関する Wikipedia のページ](https://ja.wikipedia.org/wiki/Singleton_%E3%83%91%E3%82%BF%E3%83%BC%E3%83%B3) を参照ください。 +**シングルトンクラス** とは、インスタンスを一つのみ作成するユーザークラスです。 シングルトンのコンセプトに関する詳細については、[シングルトンに関する Wikipedia のページ](https://ja.wikipedia.org/wiki/Singleton_%E3%83%91%E3%82%BF%E3%83%BC%E3%83%B3) を参照ください。 シングルトンのコンセプトに関する詳細については、[シングルトンに関する Wikipedia のページ](https://ja.wikipedia.org/wiki/Singleton_%E3%83%91%E3%82%BF%E3%83%BC%E3%83%B3) を参照ください。 シングルトンのコンセプトに関する詳細については、[シングルトンに関する Wikipedia のページ](https://ja.wikipedia.org/wiki/Singleton_%E3%83%91%E3%82%BF%E3%83%BC%E3%83%B3) を参照ください。 ### シングルトンの種類 @@ -722,7 +724,7 @@ shared Function Bar($value : Integer) - **プロセスシングルトン** は、自身がインスタンス化されたプロセス内において、インスタンスを一つのみ持つことができます。 - **共有シングルトン** は、マシン上のすべてのプロセスにおいて、共通のインスタンスを一つのみ持つことができます。 -- **セッションシングルトン** も共有シングルトンですが、特定の [セッション](../API/SessionClass.md) 内のすべてのプロセスにおいて、共通のインスタンスを一つのみ持つことができます。 セッションシングルトンは、セッション内で全体的に共有されますが、セッションごとに異なります。 クライアントサーバーまたは Webアプリケーションのコンテキストで セッションシングルトンを使用すると、各セッションごと (つまり各ユーザーごと) に異なるインスタンスを作成して使用することができます。 +- **セッションシングルトン** も共有シングルトンですが、特定の [セッション](../API/SessionClass.md) 内のすべてのプロセスにおいて、共通のインスタンスを一つのみ持つことができます。 セッションシングルトンは、セッション内で全体的に共有されますが、セッションごとに異なります。 クライアントサーバーまたは Webアプリケーションのコンテキストで セッションシングルトンを使用すると、各セッションごと (つまり各ユーザーごと) に異なるインスタンスを作成して使用することができます。 セッションシングルトンは、セッション内で全体的に共有されますが、セッションごとに異なります。 クライアントサーバーまたは Webアプリケーションのコンテキストで セッションシングルトンを使用すると、各セッションごと (つまり各ユーザーごと) に異なるインスタンスを作成して使用することができます。 セッションシングルトンは、セッション内で全体的に共有されますが、セッションごとに異なります。 クライアントサーバーまたは Webアプリケーションのコンテキストで セッションシングルトンを使用すると、各セッションごと (つまり各ユーザーごと) に異なるインスタンスを作成して使用することができます。 アプリケーションやセッション、プロセス内のどこからでも利用可能な値を定義するのにシングルトンは便利です。 @@ -757,9 +759,9 @@ shared Function Bar($value : Integer) ::: -クラスのシングルトンは、初回の [`cs..me`](../API/ClassClass.md#me) プロパティの呼び出し時にインスタンス化されます。 インスタンス化されたクラスのシングルトンはその後、[`me`](../API/ClassClass.md#me) プロパティの使用により常に返されます。 +クラスのシングルトンは、初回の [`cs..me`](../API/ClassClass.md#me) プロパティの呼び出し時にインスタンス化されます。 インスタンス化されたクラスのシングルトンはその後、[`me`](../API/ClassClass.md#me) プロパティの使用により常に返されます。 インスタンス化されたクラスのシングルトンはその後、[`me`](../API/ClassClass.md#me) プロパティの使用により常に返されます。 インスタンス化されたクラスのシングルトンはその後、[`me`](../API/ClassClass.md#me) プロパティの使用により常に返されます。 -シングルトンを引数付きでインスタンス化する必要がある場合には、[`new()`](../API/ClassClass.md#new) 関数を呼び出すこともできます。 この場合、アプリケーションの起動時に実行されるコードでシングルトンをインスタンス化することが推奨されます。 +シングルトンを引数付きでインスタンス化する必要がある場合には、[`new()`](../API/ClassClass.md#new) 関数を呼び出すこともできます。 この場合、アプリケーションの起動時に実行されるコードでシングルトンをインスタンス化することが推奨されます。 この場合、アプリケーションの起動時に実行されるコードでシングルトンをインスタンス化することが推奨されます。 この場合、アプリケーションの起動時に実行されるコードでシングルトンをインスタンス化することが推奨されます。 クラスがシングルトンクラスかどうかは、Classオブジェクトの .[`.isSingleton`](../API/ClassClass.md#issingleton)プロパティで確認できます。 @@ -846,7 +848,7 @@ shared function addItem($item:object) This.itemList.push($item) ``` -ItemInventorクラスをセッションシングルトンとして定義することで、各セッションと各ユーザーが独自の在庫を持つことができます。 ユーザー在庫へのアクセスは以下のように簡単です: +ItemInventorクラスをセッションシングルトンとして定義することで、各セッションと各ユーザーが独自の在庫を持つことができます。 ユーザー在庫へのアクセスは以下のように簡単です: ユーザー在庫へのアクセスは以下のように簡単です: ユーザー在庫へのアクセスは以下のように簡単です: ```4d // ユーザーセッションにおいて diff --git a/i18n/ja/docusaurus-plugin-content-docs/current/Debugging/debugger.md b/i18n/ja/docusaurus-plugin-content-docs/current/Debugging/debugger.md index 74dfdbd90efd25..c246ce67e1f20c 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/current/Debugging/debugger.md +++ b/i18n/ja/docusaurus-plugin-content-docs/current/Debugging/debugger.md @@ -3,10 +3,16 @@ id: debugger title: デバッガー --- -デバッガーは、エラーを発見したり、メソッドの実行を監視する必要がある場合に便利です。 デバッガーを使って、コードをステップごとにゆっくり確認して情報を検証することができます。 このようにメソッドをステップごとに確認する処理はトレースと呼ばれます。 +The 4D debugger is useful when you need to spot errors or monitor the execution of methods. デバッガーを使って、コードをステップごとにゆっくり確認して情報を検証することができます。 このようにメソッドをステップごとに確認する処理はトレースと呼ばれます。 ![debugger-window-local](../assets/en/Debugging/debugger-window-intro.png) +:::info + +If you are used to coding with **VS Code**, you can also use this editor to debug 4D code on 4D Server after installing the [4D-Debugger](https://github.com/4d/4D-Debugger-VSCode) extension. + +::: + ## デバッガーの呼び出し デバッガーを開くには、次のような方法があります: diff --git a/i18n/ja/docusaurus-plugin-content-docs/current/Debugging/debugging-remote.md b/i18n/ja/docusaurus-plugin-content-docs/current/Debugging/debugging-remote.md index e5d8e175b2efc2..0a6bc294afb97f 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/current/Debugging/debugging-remote.md +++ b/i18n/ja/docusaurus-plugin-content-docs/current/Debugging/debugging-remote.md @@ -20,6 +20,9 @@ title: リモートマシンからのデバッグ - ローカルの 4D Serverデバッガー (デフォルト) - サーバーがヘッドレス実行されていない場合 - リモート4Dクライアントのデバッガー - リモートセッションがデザインモードにアクセス可能な場合 - 4D Server 上の [Qodly デバッガー](../WebServer/qodly-studio.md#4d-server-で-qodlyデバッガーを使用する) - Qodly Studio へのアクセスがサーバーで許可されている場合。 +- the VS Code debugger, provided you installed the [4D-Debugger](https://github.com/4d/4D-Debugger-VSCode) extension. + +::: 有効化済デバッガーは、4D Server が次のいずれかに遭遇した場合に呼び出されます: diff --git a/i18n/ja/docusaurus-plugin-content-docs/current/Desktop/building.md b/i18n/ja/docusaurus-plugin-content-docs/current/Desktop/building.md index 93d6db9bccd0f2..97c15208e9be82 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/current/Desktop/building.md +++ b/i18n/ja/docusaurus-plugin-content-docs/current/Desktop/building.md @@ -20,7 +20,7 @@ title: アプリケーションビルド プロジェクトパッケージをビルドするには次の方法があります: -- [`BUILD APPLICATION`](https://doc.4d.com/4dv20/help/command/ja/page871.html) コマンドを使う +- either the [`BUILD APPLICATION`](../commands-legacy/build-application.md) command, - [アプリケーションビルド](#application-builder) ダイアログを使う :::tip @@ -45,9 +45,9 @@ title: アプリケーションビルド アプリケーションビルドに関わる各パラメーター設定は XML キーの形で、`buildApp.4DSettings` という名称のアプリケーションプロジェクトファイルに保存されます。 この XML ファイルはプロジェクトの [`Settings` フォルダー](../Project/architecture.md#settings-1) に配置されます。 -アプリケーションビルドダイアログが初めて表示されるときにはデフォルトパラメーターが使用されます。 **ビルド** ボタンや **設定保存** ボタンをクリックすると、このプロジェクトファイルの内容が更新されます。 同じデータベースについて内容の異なる複数の XML ファイルを定義し、[BUILD APPLICATION](https://doc.4d.com/4Dv19/4D/19/BUILD-APPLICATION.301-5392523.ja.html) コマンドでそれらを使い分けることができます。 +アプリケーションビルドダイアログが初めて表示されるときにはデフォルトパラメーターが使用されます。 **ビルド** ボタンや **設定保存** ボタンをクリックすると、このプロジェクトファイルの内容が更新されます。 You can define several other XML settings file for the same project and employ them using the [`BUILD APPLICATION`](../commands-legacy/build-application.md) command. -また、XML キーを使用すれば、アプリケーションビルドダイアログには表示されない追加の設定をおこなうことができます。 詳細はドキュメント [アプリケーションビルド設定ファイル](https://doc.4d.com/4Dv19/4D/19/4D-XML-Keys-BuildApplication.100-5447429.ja.html) を参照ください。 +また、XML キーを使用すれば、アプリケーションビルドダイアログには表示されない追加の設定をおこなうことができます。 The description of these keys are detailed in the [4D XML Keys BuildApplication](https://doc.4d.com/4Dv20/4D/20/4D-XML-Keys-BuildApplication.100-6335734.en.html) manual. ### ログファイル @@ -59,9 +59,9 @@ title: アプリケーションビルド - 発生したエラー - 署名の問題 (例: 署名されていないプラグイン) -アプリケーションを公証する場合などは、このファイルを確認することで、後の運用手順で時間を節約できることがあります。 +Checking this file may help you saving time during the subsequent deployment steps, for example if you intend to [notarize](#about-notarization) your application on macOS. -> `Get 4D file(Build application log file)` コマンドを使って、ログファイルの場所を取得します。 +> Use the `Get 4D file(Build application log file)` statement to get the log file location. ## アプリケーション名と保存先フォルダー @@ -87,7 +87,7 @@ title: アプリケーションビルド .4dz ファイルは ZIP 圧縮されたプロジェクトフォルダーです (注: バイナリデータベースの場合に生成される .4DC ファイルと同義ではないことに注意が必要です)。 .4dz ファイルを開けるのは 4D Server、4D Volume ライセンス (組み込みアプリケーション)、および 4D です。 圧縮・最適化された .4dz ファイルによってプロジェクトパッケージの展開が容易になります。 -> .4dz ファイルを生成する際、4D はデフォルトで **標準的な** zip形式を使用します。 このフォーマットの利点は、あらゆる解凍ツールで簡単に読み取ることができることです。 この標準形式を使用したくない場合は、値を `False` に設定した `UseStandardZipFormat` XMLキーを [buildApp.4DSettings](#アプリケーションビルド設定) ファイルに追加します (詳細については、[アプリケーションビルド設定ファイル](https://doc.4d.com/4Dv19/4D/19/4D-XML-Keys-BuildApplication.100-5447429.ja.html) マニュアルを参照ください)。 +> .4dz ファイルを生成する際、4D はデフォルトで **標準的な** zip形式を使用します。 このフォーマットの利点は、あらゆる解凍ツールで簡単に読み取ることができることです。 If you do not want to use this standard format, add the `UseStandardZipFormat` XML key with value `False` in your [`buildApp.4DSettings`](#build-application-settings) file (for more information, see the [4D XML Keys BuildApplication](https://doc.4d.com/4Dv20/4D/20/4D-XML-Keys-BuildApplication.100-6335734.en.html) manual). #### 関連するフォルダーを含む @@ -99,16 +99,20 @@ title: アプリケーションビルド [コンポーネント](../Extensions/develop-components.md) は特定の機能を実装した標準の 4D プロジェクトです。 ビルドされたコンポーネントを [他の 4Dプロジェクト (ホストアプリケーションプロジェクト) にインストール](../Project/components.md#basics) すると、ホストプロジェクトはその機能を利用できるようになります。 -アプリケーション名を _MyComponent_ に指定した場合、4D は _Components_ フォルダーを作成し、その中に _MyComponent.4dbase_ フォルダーを生成します: +If you have named your application _MyComponent_, 4D will automatically create a _Components_ folder with the following structure: -`/Components/MyComponent.4dbase/MyComponent.4DZ` +`/Components/MyComponent.4dbase/Contents/`. -_MyComponent.4dbase_ フォルダーには次のファイルが含まれます: +The _MyComponent.4dbase_ folder is the [package folder of the compiled component](../Project/components.md#package-folder). -- _MyComponent.4DZ_ ファイル -- _Resources_ フォルダー: 関連リソースは自動的にこのフォルダーにコピーされます。 コンポーネントは、他のコンポーネントやプラグインを使用できないため、その他の "Components" や "Plugins" フォルダーはコピーされません。 +The _Contents_ folder contains: -_MyComponent.4dbase_フォルダーは、[コンパイルされたコンポーネントのパッケージフォルダー](../Project/components.md) です。 +- _MyComponent.4DZ_ file - the [compiled structure](#build-compiled-structure). +- _Resources_ フォルダー: 関連リソースは自動的にこのフォルダーにコピーされます。 コンポーネントは、他のコンポーネントやプラグインを使用できないため、その他の "Components" や "Plugins" フォルダーはコピーされません。 +- An _Info.plist_ file - this file is required to build [notarizeable and stapleable](#about-notarization) components for macOS (it is ignored on Windows). The following [Apple bundle keys](https://developer.apple.com/documentation/bundleresources/information-property-list) are prefilled: + - `CFBundleDisplayName` and `CFBundleName` for the application name, + - `NSHumanReadableCopyright`, can be [set using an XML key](https://doc.4d.com/4Dv20/4D/20/CommonCopyright.300-6335859.en.html). + - `CFBundleShortVersionString` and `CFBundleVersion` for the application version (x.x.x format, e.g. 1.0.5), can be [set using an XML key](https://doc.4d.com/4Dv20/4D/20/CommonVersion.300-6335858.en.html). ## アプリケーションページ @@ -174,7 +178,7 @@ Windows においては、.exe 拡張子のついた実行ファイルが作成 実行ファイルの動作には、これらすべての項目が同じフォルダー内に必要です。 - _macOS_ - - MyProject.app という名称のソフトウェアパッケージに、プラグインやコンポーネント、ライセンスなど必要な項目がすべて格納されます。 プラグインやコンポーネントの統合に関する詳細は [プラグイン&コンポーネントページ](#プラグイン&コンポーネントページ) を参照してください。 ライセンスの統合に関しては [ライセンス&証明書ページ](#ライセンス&証明書ページ) を参照してください。 **注**: macOSでは、4D ランゲージの [Application file](https://doc.4d.com/4Dv18R4/4D/18-R4/Application-file.301-4982855.ja.html) コマンドが返すのは、ソフトウェアパッケージ内の "Contents:macOS" フォルダー内にコピーされる ApplicationName ファイルのパス名です (ソフトウェアパッケージの "Contents:Resources" フォルダー内の .comp ファイルのパスではありません)。 + - MyProject.app という名称のソフトウェアパッケージに、プラグインやコンポーネント、ライセンスなど必要な項目がすべて格納されます。 プラグインやコンポーネントの統合に関する詳細は [プラグイン&コンポーネントページ](#プラグイン&コンポーネントページ) を参照してください。 ライセンスの統合に関しては [ライセンス&証明書ページ](#ライセンス&証明書ページ) を参照してください。 **Note**: In macOS, the [Application file](../commands-legacy/application-file.md) command of the 4D language returns the pathname of the ApplicationName file (located in the Contents:macOS folder of the software package) and not that of the .comp file (Contents:Resources folder of the software package). #### 4D Volume Desktop フォルダーのカスタマイズ @@ -222,7 +226,7 @@ Windows においては、.exe 拡張子のついた実行ファイルが作成 - クライアントを起動するにも、同様にクライアントアプリケーションをダブルクリックします。すると、サーバーアプリケーションへの接続が直接おこなわれるため、 接続ダイアログでサーバーを選択する必要はありません。 クライアントは接続対象のサーバーを名称 (サーバーが同じサブネットワーク上にある場合)、あるいはIPアドレスによって認識します。IPアドレスの指定は buildapp.4DSettings ファイル内の `IPAddress` XMLキーを使用して設定されます。 接続が失敗した場合のために、代替機構を実装することができます。これについては [クライアント接続の管理](#クライアント接続の管理) の章で説明されています。 また、**Option** (macOS) や **Alt** (Windows) キーを押しながらクライアントアプリケーション起動すると、標準の接続ダイアログを強制的に表示させることもできます。 サーバーアプリケーションには、対応するクライアントアプリケーションのみが接続できます。 標準の 4Dアプリケーションを使用してサーバーアプリケーションに接続を試みると、接続は拒否されエラーが返されます。 - クライアント側を [ネットワーク越しに自動更新](#サーバーアプリケーション内部のクライアントアプリケーションのコピー) するようにクライアント/サーバーアプリケーションを設定することも可能です。 クライアントアプリケーションは最初のバージョンのみビルドして配布する必要があります。以降のアップデートは、自動アップデート機構を利用することで管理します。 -- また、ランゲージコマンド ([SET UPDATE FOLDER](https://doc.4d.com/4dv19/help/command/ja/page1291.html) および [RESTART 4D](https://doc.4d.com/4dv19/help/command/ja/page1292.html)) を使用して、サーバーアプリケーションの更新を自動化することも可能です。 +- It is also possible to automate the update of the server part through the use of a sequence of language commands ([SET UPDATE FOLDER](../commands-legacy/set-update-folder.md) and [RESTART 4D](../commands-legacy/restart-4d.md). ### サーバーアプリケーションをビルド @@ -298,7 +302,7 @@ Windows用サーバーアプリケーションのビルドに使用される App この 4D Volume Desktop はビルドをおこなうプラットフォームに対応していなければなりません。 異なるプラットフォーム用のクライアントアプリケーションをビルドするには、そのプラットフォームで 4D アプリケーションを実行し、追加のビルド処理をしなければなりません。 -クライアントアプリから特定のアドレスを使用して (サブネットワーク上にサーバー名が公開されていない) サーバーに接続したい場合、buildapp.4DSettings ファイル内の `IPAddress` XML キーを使用する必要があります。 詳細は [`BUILD APPLICATION`](https://doc.4d.com/4dv19/help/command/ja/page871.html) コマンドの説明を参照してください。 接続失敗時の特定の機構を実装することもできます。 詳細は [クライアント接続の管理](#クライアント接続の管理) で説明されています。 +クライアントアプリから特定のアドレスを使用して (サブネットワーク上にサーバー名が公開されていない) サーバーに接続したい場合、buildapp.4DSettings ファイル内の `IPAddress` XML キーを使用する必要があります。 For more information about this file, refer to the description of the [`BUILD APPLICATION`](../commands-legacy/build-application.md) command. 接続失敗時の特定の機構を実装することもできます。 詳細は [クライアント接続の管理](#クライアント接続の管理) で説明されています。 #### サーバーアプリケーション内部のクライアントアプリケーションのコピー @@ -418,7 +422,7 @@ Windows用サーバーアプリケーションのビルドに使用される App - `PublishName` キーは、組み込みクライアントの _info.plist_ にコピーされません。 - シングルユーザーデータベースに "Default Data" フォルダーがない場合、組み込みクライアントはデータなしで実行されます。 -4D Server の自動アップデート機能 ([現在のバージョン](#現在のバージョン) 番号、`SET UPDATE FOLDER` コマンドなど...) は、シングルユーザーアプリケーションにおいても標準のリモートアプリケーションと同様に動きます。 接続時、シングルユーザーアプリケーションは `CurrentVers` キーを 4D Server バージョンレンジと比較します。 レンジ外だった場合、アップデートされているシングルユーザーアプリケーションがサーバーからダウンロードされ、アップデーターがローカルアップデートプロセスを実行します。 +Automatic update 4D Server features ([Current version](#current-version) number, [`SET UPDATE FOLDER`](../commands-legacy/set-update-folder.md) command...) は、シングルユーザーアプリケーションにおいても標準のリモートアプリケーションと同様に動きます。 接続時、シングルユーザーアプリケーションは `CurrentVers` キーを 4D Server バージョンレンジと比較します。 レンジ外だった場合、アップデートされているシングルユーザーアプリケーションがサーバーからダウンロードされ、アップデーターがローカルアップデートプロセスを実行します。 ### クライアントおよびサーバーキャッシュフォルダー名のカスタマイズ @@ -505,7 +509,7 @@ Windows用サーバーアプリケーションのビルドに使用される App ライセンスを追加または取り除くにはウィンドウ下部の **[+]** または **[-]** ボタンをクリックします。 -\[+] ボタンをクリックすると、ファイルを開くダイアログが表示され、マシンの _Licenses_ フォルダーの内容が表示されます。 このフォルダーの場所については 詳しくは [Get 4D folder](https://doc.4d.com/4Dv18/4D/18/Get-4D-folder.301-4505365.ja.html) コマンドの説明を参照してください。 +\[+] ボタンをクリックすると、ファイルを開くダイアログが表示され、マシンの _Licenses_ フォルダーの内容が表示されます。 For more information about the location of this folder, refer to the [Get 4D folder](../commands-legacy/get-4d-folder.md) command. 開発ライセンスとそれに対応した配布ライセンスを選択します。 これらのファイルは _4D Developer Professional_ ライセンスや _4D Desktop Volume_ ライセンスをアクティベーションした際、この場所にコピーされます。 @@ -524,11 +528,11 @@ Windows用サーバーアプリケーションのビルドに使用される App アプリケーションビルド後、配布ライセンスファイルは実行可能ファイルと同階層 (Windows) やパッケージ内 (macOS) に自動でコピーされます。 -### OS X 署名に使用する証明書 +### macOS signing certificate アプリケーションビルダーは、macOS 環境下において組み込み4Dアプリに署名をする機能を備えています (macOS のシングルユーザーアプリ、コンポーネント、サーバーおよびクライアントアプリ)。 アプリケーションを署名することにより、 macOS において「Mac App Store と確認済みの開発元からのアプリケーションを許可」のオプションが選択されているときに Gatekeeper の機能を使用してアプリケーションを実行することが可能になります (後述の "Gatekeeper について" を参照ください)。 -- **アプリケーションに署名** オプションにチェックをすると、macOS のアプリケーションビルド処理に認証が含まれます。4D はビルドの際に、認証に必要な要素の有無をチェックします: +- Check the **Sign application** option to include certification in the application builder procedure for macOS. 4D will check the availability of elements required for certification when the build occurs: ![](../assets/en/Admin/buildapposxcertProj.png) @@ -550,7 +554,7 @@ Apple からデベロッパー認証を取得するためには、キーチェ #### Gatekeeper について -Gatekeeper とは macOS のセキュリティ機能で、インターネットからダウンロードしてきたアプリケーションの実行を管理するものです。 もしダウンロードしたアプリケーションが Apple Store からダウンロードしたものではない、または署名されていない場合には実行が拒否されます。 +Gatekeeper is a security feature of macOS that controls the execution of applications downloaded from the Internet. もしダウンロードしたアプリケーションが Apple Store からダウンロードしたものではない、または署名されていない場合には実行が拒否されます。 > Apple Silicon マシンでは、4D [コンポーネント](components.md) は実際に署名されている必要があります。 署名されていないコンポーネントの場合、アプリケーション起動時にエラー ("lib4d-arm64.dylib を開けません...") が発生します。 @@ -560,10 +564,12 @@ Gatekeeper とは macOS のセキュリティ機能で、インターネット macOS 10.14.5 (Mojave) および 10.15 (Catalina) において、アプリケーションのノータリゼーション (公証) が Apple より強く推奨されています。公証を得ていないアプリケーションをインターネットからダウンロードした場合、デフォルトでブロックされます。 -Apple の公証サービスを利用するのに必要な条件を満たすため、4D の [ビルトインの署名機能](#os-x-署名に使用する証明書) が適合されました。 公証自体はデベロッパーによっておこなわなくてはいけないもので、4D とは直接関係ありません。なお、Xcode のインストールが必須である点に注意してください。 公証についての詳細は [4D ブログ記事 (英語)](https://blog.4d.com/how-to-notarize-your-merged-4d-application/) や関連の [テクニカルノート (日本語)](https://4d-jp.github.io/tech_notes/20-02-25-notarization/) を参照ください。 +The 4D [built-in signing features](#macos-signing-certificate) have been adapted to meet all of Apple's requirements to allow using the Apple notary service. 公証自体はデベロッパーによっておこなわなくてはいけないもので、4D とは直接関係ありません。なお、Xcode のインストールが必須である点に注意してください。 公証についての詳細は [4D ブログ記事 (英語)](https://blog.4d.com/how-to-notarize-your-merged-4d-application/) や関連の [テクニカルノート (日本語)](https://4d-jp.github.io/tech_notes/20-02-25-notarization/) を参照ください。 公証についての詳細は、[Apple のデベロッパー Web サイト](https://developer.apple.com/documentation/xcode/notarizing_your_app_before_distribution/customizing_the_notarization_workflow) を参照ください。 +For more information on the stapling concept, please read [this Apple forum post](https://forums.developer.apple.com/forums/thread/720093). + ## アプリケーションアイコンのカスタマイズ 4Dは、ダブルクリックで実行可能なアプリケーションにデフォルトアイコンを割り当てますが、アプリケーションごとにこのアイコンをカスタマイズできます。 @@ -578,7 +584,7 @@ Apple の公証サービスを利用するのに必要な条件を満たすた アイコンファイルの名前は、プロジェクトファイル名 + "_.ico_" 拡張子でなければなりません。 4Dは自動でこのファイルを認識し、アイコンとして使用します。 -また、buildApp.4DSettings ファイルにて、使用すべきアイコンを [XML keys](https://doc.4d.com/4Dv18/4D/18/4D-XML-Keys-BuildApplication.100-4670981.ja.html) (SourcesFiles の項参照)によって指定することも可能です。 次のキーが利用できます: +You can also set specific [XML keys](https://doc.4d.com/4Dv20/4D/20/4D-XML-Keys-BuildApplication.100-6335734.en.html) in the buildApp.4DSettings file to designate each icon to use. 次のキーが利用できます: - RuntimeVLIconWinPath - RuntimeVLIconMacPath @@ -695,12 +701,12 @@ userPrefs:=Get 4D folder(Active 4D Folder) このメカニズムは、最初に指定したサーバーが何らかの理由 (例えばメンテナンスモードなど) で一時的に使用できないケースに対応します。 こういった状態が初めて起こったときにはサーバー選択ダイアログボックスが表示され (ただし許可されていた場合に限ります、後述参照)、ほかのサーバーをユーザーが手動で選択すると、その接続が成功した場合にはそのパスが保存されます。 それ以降に接続ができなかった場合には、"lastServer.xml" のパス情報によって自動的に対処されます。 -> - ネットワークの設定などの影響で、クライアントアプリが恒久的に検索サービスを使ったサーバー接続ができない場合には、ビルド時にあらかじめ "BuildApp.4DSettings" ファイル内の [IPAddress](https://doc.4d.com/4Dv17R6/4D/17-R6/IPAddress.300-4465710.ja.html) キーでホスト名を指定しておくことが推奨されます。 このメカニズムはあくまで一時的な接続不可状態の場合を想定しています。 +> - When client applications cannot permanently benefit from the discovery service, for example because of the network configuration, it is recommended that the developer provide a host name at build time using the [IPAddress](https://doc.4d.com/4Dv20/4D/20/IPAddress.300-6335763.en.html) key in the "BuildApp.4DSettings" file. このメカニズムはあくまで一時的な接続不可状態の場合を想定しています。 > - スタートアップ時に **Alt/Option** キーを押しながら起動してサーバー接続ダイアログボックスを表示する方法は、すべての場合において可能です。 ### エラー時のサーバー選択ダイアログボックス使用の可・不可 -組み込みクライアントアプリがサーバーに接続できない場合、標準のサーバー選択ダイアログボックスを表示するかどうかは設定しておくことができます。 この設定は、アプリケーションをビルドするマシン上の [ServerSelectionAllowedXML](https://doc.4d.com/4Dv18/4D/18/ServerSelectionAllowed.300-4671093.ja.html) キーの値によって制御されます: +組み込みクライアントアプリがサーバーに接続できない場合、標準のサーバー選択ダイアログボックスを表示するかどうかは設定しておくことができます。 The configuration depends on the value of the [ServerSelectionAllowed](https://doc.4d.com/4Dv20/4D/20/ServerSelectionAllowed.300-6335767.en.html) XML key on the machine where the application was built: - **エラーメッセージを表示し、サーバー選択ダイアログボックスを表示させない**。 デフォルトの挙動です。 アプリケーションは終了する以外の選択肢がありません。\ `ServerSelectionAllowed`: **False** 値、またはキーを省略 @@ -715,9 +721,9 @@ userPrefs:=Get 4D folder(Active 4D Folder) 原則的に、サーバーアプリケーションや組み込みのシングルユーザーアプリケーションを更新するには、ユーザーの介入 (またはカスタムのシステムルーチンのプログラミング) が必要です。組み込みアプリケーションの新しいバージョンが利用可能になるたびに、運用中のアプリケーションを終了して、古いファイルを新しいファイルに手動で置き換え、その後アプリケーションを再起動してカレントのデータファイルを選択しなければなりません。 -この手順は、次のランゲージコマンドを使って大部分を自動化することができます: [`SET UPDATE FOLDER`](https://doc.4d.com/4dv19/help/command/ja/page1291.html)、[`RESTART 4D`](https://doc.4d.com/4dv19/help/command/ja/page1292.html)、そして [`Get last update log path`](https://doc.4d.com/4dv19/help/command/ja/page1301.html) (モニタリング操作用)。 これらのコマンドを使い、4Dアプリケーションに、以下に説明する自動更新手順をトリガーする機能を実装します。 具体的には、メニューコマンドや、バックグラウンドで動作するプロセスなどを実装し、サーバーにアーカイブがあるかどうかを定期的にチェックします。 +You can automate this procedure to a large extent using the following language commands: [`SET UPDATE FOLDER`](../commands-legacy/set-update-folder.md), [`RESTART 4D`](../commands-legacy/restart-4d.md), and also [`Get last update log path`](../commands-legacy/get-last-update-log-path.md) for monitoring operations. これらのコマンドを使い、4Dアプリケーションに、以下に説明する自動更新手順をトリガーする機能を実装します。 具体的には、メニューコマンドや、バックグラウンドで動作するプロセスなどを実装し、サーバーにアーカイブがあるかどうかを定期的にチェックします。 -> また、Windows で保護されたファイルを使用できるように、インストール権限を昇格させる XMLキーもあります ([アプリケーションビルド設定ファイル](https://doc.4d.com/4Dv19/4D/19/4D-XML-Keys-BuildApplication.100-5447429.ja.html) のマニュアルを参照ください)。 +> You also have XML keys to elevate installation privileges so that you can use protected files under Windows (see the [4D XML Keys BuildApplication](https://doc.4d.com/4Dv20/4D/20/4D-XML-Keys-BuildApplication.100-6335734.en.html) manual). 以下に、サーバーや組み込みシングルユーザーアプリケーションをアップデートする場合のシナリオを説明します: @@ -733,4 +739,4 @@ userPrefs:=Get 4D folder(Active 4D Folder) アップデートログは、`YYYY-MM-DD_HH-MM-SS_log_X.txt` という名前で、たとえば、2021年 8月 25日の 14:23 に作成されたファイルに対しては `2021-08-25_14-23-00_log_1.txt` という名前になります。 -このファイルは、システムユーザーフォルダー内の "Updater" アプリケーションフォルダー内に作成されます。 このファイルの場所は、[`Get last update log path`](https://doc.4d.com/4dv19/help/command/ja/page1301.html) コマンドでいつでも確認することができます。 +このファイルは、システムユーザーフォルダー内の "Updater" アプリケーションフォルダー内に作成されます。 You can find out the location of this file at any time using the [`Get last update log path`](../commands-legacy/get-last-update-log-path.md) command. diff --git a/i18n/ja/docusaurus-plugin-content-docs/current/Notes/updates.md b/i18n/ja/docusaurus-plugin-content-docs/current/Notes/updates.md index 482f25bd819b69..71e1e328f11874 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/current/Notes/updates.md +++ b/i18n/ja/docusaurus-plugin-content-docs/current/Notes/updates.md @@ -9,13 +9,19 @@ Read [**What’s new in 4D 20 R8**](https://blog.4d.com/en-whats-new-in-4d-v20-R #### ハイライト +- Implement your own [**HTTP request handlers**](../WebServer/http-request-handler.md) using the new [`4D.IncomingMessage`](../API/IncomingMessageClass.md) class. - Expressions used in [form object properties](../FormObjects/properties_Reference.md) now benefit from syntax checking in the [Property list](../FormEditor/formEditor.md#property-list) and in the [Compiler](../Project/compiler.md#check-syntax). - You can [associate a class to a form](../FormEditor/properties_FormProperties.md#form-class) to enable code type-ahead and automatic instantiation of form data when using the [`Form`](../commands/form.md) command. - Support of [standalone sessions](../API/SessionClass.md) to simplify local coding for client/server applications. +- [New built component architecture](../Desktop/building.md#build-component) for a better compliance with Apple notarization guidelines. - 4D Language: - Modified commands: [`FORM EDIT`](../commands/form-edit.md) - [**Fixed bug list**](https://bugs.4d.fr/fixedbugslist?version=20_R8): list of all bugs that have been fixed in 4D 20 R8. +#### 動作の変更 + +- Because of their [new architecture](../Desktop/building.md#build-component), components built with 4D 20 R8 and higher cannot be installed in previous 4D releases. + ## 4D 20 R7 [**4D 20 R7 の新機能**](https://blog.4d.com/ja-whats-new-in-4d-v20-R7/): 4D 20 R7 の新機能と拡張機能をすべてリストアップしたブログ記事です。 @@ -182,7 +188,7 @@ See [**Release Notes for 4D 20.x LTS**](../../versioned_docs/version-20/Notes/up | ライブラリ | 現在のバージョン | 更新された 4D バージョン | 説明 | | --------- | -------------------------------------- | -------------- | ----------------------------------------------------------------------------------------- | | BoringSSL | 0aa300b | 20 R6 | QUIC に使用 | -| CEF | 128 | **20 R7** | Chromium 6613 | +| CEF | 121 | 20 R5 | Chromium 6167 | | Hunspell | 1.7.2 | 20 | 4D フォームと 4D Write Pro でスペルチェックに使用されます。 | | ICU | 73.2 | 20 | このアップグレードにより、英数字とテキスト、オブジェクトのインデックスが自動的に再構築されます。 | | libldap | 2.6.7 | 20 R6 | | diff --git a/i18n/ja/docusaurus-plugin-content-docs/current/Project/architecture.md b/i18n/ja/docusaurus-plugin-content-docs/current/Project/architecture.md index 5e60575f7bdc1b..28e77a45a53032 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/current/Project/architecture.md +++ b/i18n/ja/docusaurus-plugin-content-docs/current/Project/architecture.md @@ -63,6 +63,7 @@ title: プロジェクトのアーキテクチャー | lists.json | 定義されたリスト | JSON | | filters.json | 定義されたフィルター | JSON | | dependencies.json | プロジェクトに [ロードするコンポーネント](components.md) の名前 | JSON | +| HTTPHandlers.json | Custom [HTTP request handlers](../WebServer/http-request-handler.md) defined for the web server | JSON | | styleSheets.css | CSS スタイルシート | CSS | | styleSheets_mac.css | Mac用 CSS スタイルシート (変換されたバイナリデータベースより) | CSS | | styleSheets_windows.css | Windows用 CSS スタイルシート (変換されたバイナリデータベースより) | CSS | diff --git a/i18n/ja/docusaurus-plugin-content-docs/current/Project/code-overview.md b/i18n/ja/docusaurus-plugin-content-docs/current/Project/code-overview.md index 22f46fb287c5b3..7a374c173ef39e 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/current/Project/code-overview.md +++ b/i18n/ja/docusaurus-plugin-content-docs/current/Project/code-overview.md @@ -5,7 +5,7 @@ title: メソッドとクラス プロジェクトで使用される 4D コードは、 [メソッド](../Concepts/methods.md) および [クラス](../Concepts/classes.md) に記述されます。 -4D IDE には、コードを作成・編集・エクスポート・削除するためのさまざまな機能があります。 通常は、4D の [コードエディター](../code-editor/write-class-method.md) を使用して、コードを管理します。 +4D IDE には、コードを作成・編集・エクスポート・削除するためのさまざまな機能があります。 You will usually use the included 4D [code editor](../code-editor/write-class-method.md) to work with your code. You can also use other editors such as **VS Code**, for which the [4D-Analyzer extension](https://github.com/4d/4D-Analyzer-VSCode) is available. ## メソッドの作成 diff --git a/i18n/ja/docusaurus-plugin-content-docs/current/Project/compiler.md b/i18n/ja/docusaurus-plugin-content-docs/current/Project/compiler.md index 75733413d44b69..d66f37c39e0599 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/current/Project/compiler.md +++ b/i18n/ja/docusaurus-plugin-content-docs/current/Project/compiler.md @@ -9,7 +9,7 @@ title: コンパイル コンパイル処理はすべて 4Dアプリケーションにより自動的でおこなわれます。 -> macOS上でコンパイルするには、`Xcode` をインストールする必要があります。 このことについての詳細は [Apple Silicon用コンパイラー](#apple-silicon用コンパイラー) を参照ください。 +> macOS上でコンパイルするには、`Xcode` をインストールする必要があります。 このことについての詳細は [Apple Silicon用コンパイラー](#apple-silicon用コンパイラー) を参照ください。 このことについての詳細は [Apple Silicon用コンパイラー](#apple-silicon用コンパイラー) を参照ください。 1. コンパイラーウィンドウを表示するには、**デザイン** メニューの **コンパイラー...** を選択するか、またはツールバーにある **コンパイラー** ボタンをクリックします。 @@ -41,9 +41,9 @@ title: コンパイル ## コンパイル済み実行 -プロジェクトがコンパイルされると、[インタープリターモードとコンパイル済みモード](Concepts/interpreted.md) を切り替えて実行できるようになります。この際、4Dアプリケーションを終了する必要はありません (インタープリターコードを削除している場合は除きます)。 切り替えには、**実行** メニューの **インタープリター再起動** や **コンパイル済み再起動** コマンドを使用します。 [プロジェクトを開くダイアログボックス](GettingStarted/creating.md#オプション) でも、起動時にインタープリターモードとコンパイル済みモードから選択することができます。 +プロジェクトがコンパイルされると、[インタープリターモードとコンパイル済みモード](Concepts/interpreted.md) を切り替えて実行できるようになります。この際、4Dアプリケーションを終了する必要はありません (インタープリターコードを削除している場合は除きます)。 切り替えには、**実行** メニューの **インタープリター再起動** や **コンパイル済み再起動** コマンドを使用します。 [プロジェクトを開くダイアログボックス](GettingStarted/creating.md#オプション) でも、起動時にインタープリターモードとコンパイル済みモードから選択することができます。 切り替えには、**実行** メニューの **インタープリター再起動** や **コンパイル済み再起動** コマンドを使用します。 [プロジェクトを開くダイアログボックス](GettingStarted/creating.md#オプション) でも、起動時にインタープリターモードとコンパイル済みモードから選択することができます。 -モードを変更すると、4D は現在のモードを閉じ、新しいモードを開きます。 つまり、アプリケーションが閉じられ、再び開かれます。 モードを切り替えるたびに、4D は 2つのデータベースメソッド (定義されていれば) を次の順番に実行します: `On Exit` -> `On Startup`。 +モードを変更すると、4D は現在のモードを閉じ、新しいモードを開きます。 つまり、アプリケーションが閉じられ、再び開かれます。 モードを変更すると、4D は現在のモードを閉じ、新しいモードを開きます。 つまり、アプリケーションが閉じられ、再び開かれます。 モードを切り替えるたびに、4D は 2つのデータベースメソッド (定義されていれば) を次の順番に実行します: `On Exit` -> `On Startup`。 インタープリターモードでプロジェクトを編集したら、それをコンパイルコードに反映させるには再コンパイルしなければなりません。 @@ -61,13 +61,13 @@ title: コンパイル :::info 互換性 -このボタンは、変換されたプロジェクトで、[コンパイルパスオプション](#直接型指定の有効化) に **自動変数定義は行わない (直接型指定)** が選択されていない場合にのみ表示されます。 このボタンに関する情報については、[以前の 4Dリリースのドキュメント](https://developer.4d.com/docs/20/Project/compiler#型宣言を生成する) を参照ください。 +このボタンは、変換されたプロジェクトで、[コンパイルパスオプション](#直接型指定の有効化) に **自動変数定義は行わない (直接型指定)** が選択されていない場合にのみ表示されます。 このボタンは、変換されたプロジェクトで、[コンパイルパスオプション](#直接型指定の有効化) に **自動変数定義は行わない (直接型指定)** が選択されていない場合にのみ表示されます。 このボタンに関する情報については、[以前の 4Dリリースのドキュメント](https://developer.4d.com/docs/20/Project/compiler#型宣言を生成する) を参照ください。 ::: ### コンパイルコードを削除 -**コンパイルコードを削除** ボタンを使用すると、プロジェクトのコンパイル済みコードが削除されます。 ボタンをクリックすると、[コンパイル時に生成されたコード](#クラシックコンパイラー) がすべて削除されます。**実行** メニューの **コンパイル済み再起動** コマンドが無効になり、開始時の "開く: コンパイルモード済みデータベース" オプションはグレー表示されます。 +**コンパイルコードを削除** ボタンを使用すると、プロジェクトのコンパイル済みコードが削除されます。 **コンパイルコードを削除** ボタンを使用すると、プロジェクトのコンパイル済みコードが削除されます。 ボタンをクリックすると、[コンパイル時に生成されたコード](#クラシックコンパイラー) がすべて削除されます。**実行** メニューの **コンパイル済み再起動** コマンドが無効になり、開始時の "開く: コンパイルモード済みデータベース" オプションはグレー表示されます。 ### 警告を表示/隠す @@ -83,7 +83,7 @@ title: コンパイル ## コンパイラー設定 -ストラクチャー設定ダイアログボックスの "コンパイラー" タブでは、プロジェクトのコンパイルに関連するパラメーターを設定できます。 [コンパイラーウィンドウ](#コンパイラーウィンドウ) の **コンパイラー設定** ボタンをクリックすると、コンパイラーページを直接開くことができます。 +ストラクチャー設定ダイアログボックスの "コンパイラー" タブでは、プロジェクトのコンパイルに関連するパラメーターを設定できます。 [コンパイラーウィンドウ](#コンパイラーウィンドウ) の **コンパイラー設定** ボタンをクリックすると、コンパイラーページを直接開くことができます。 [コンパイラーウィンドウ](#コンパイラーウィンドウ) の **コンパイラー設定** ボタンをクリックすると、コンパイラーページを直接開くことができます。 ![](../assets/en/Project/compilerWin6.png) @@ -93,11 +93,11 @@ title: コンパイル #### Symbolファイルを生成 -Symbolファイルを生成するのに使用します ([Symbolファイル](#symbolファイル) 参照)。 Symbolファイルは、プロジェクトの [Logs フォルダー](Project/architecture.md#logs) 内に `ProjectName_symbols.txt` という名前で作成されます。 +Symbolファイルを生成するのに使用します ([Symbolファイル](#symbolファイル) 参照)。 Symbolファイルを生成するのに使用します ([Symbolファイル](#symbolファイル) 参照)。 Symbolファイルは、プロジェクトの [Logs フォルダー](Project/architecture.md#logs) 内に `ProjectName_symbols.txt` という名前で作成されます。 #### エラーファイルを生成 -シンタックスチェック時にエラーファイルを生成するのに使用します ([エラーファイル](#エラーファイル) 参照)。 エラーファイルは、プロジェクトの [Logs フォルダー](Project/architecture.md#logs) 内に `ProjectName_error.xml` という名前で作成されます。 +シンタックスチェック時にエラーファイルを生成するのに使用します ([エラーファイル](#エラーファイル) 参照)。 シンタックスチェック時にエラーファイルを生成するのに使用します ([エラーファイル](#エラーファイル) 参照)。 エラーファイルは、プロジェクトの [Logs フォルダー](Project/architecture.md#logs) 内に `ProjectName_error.xml` という名前で作成されます。 #### コンパイル対象CPU @@ -121,7 +121,7 @@ Symbolファイルを生成するのに使用します ([Symbolファイル](#sy | **全てのプロセッサ (Intel/AMD および Apple Silicon)** | Intel/AMD 用コードのみ
    _Windows上で Apple Silicon 用のコードは生成できません_ | Apple Silicon + Intel/AMD 用コード
    _2種類のコンパイルコードが生成されます_ | Apple Silicon + Intel/AMD 用コード
    _2種類のコンパイルコードが生成されます_ | | **自分のプロセッサ (プロセッサー名)** | Intel/AMD 用コード | Intel/AMD 用コード | Apple Silicon 用コード | -> Apple Silicon 用にコンパイルするには、マシンに **Clang** アプリケーションをインストールする必要があります。 Clang は最新バージョンの Xcode に含まれています。 詳細については [Apple Silicon用コンパイルの要件](#要件) を参照ください。 +> Apple Silicon 用にコンパイルするには、マシンに **Clang** アプリケーションをインストールする必要があります。 Clang は最新バージョンの Xcode に含まれています。 詳細については [Apple Silicon用コンパイルの要件](#要件) を参照ください。 Clang は最新バージョンの Xcode に含まれています。 詳細については [Apple Silicon用コンパイルの要件](#要件) を参照ください。 ### 追加のオプション (互換性) @@ -146,21 +146,21 @@ Symbolファイルを生成するのに使用します ([Symbolファイル](#sy ::: -直接型指定モードを有効化するには、**コンパイルパス** メニューで **自動変数定義は行わない (直接型指定)** オプションを選択します。 このオプションが選択されると、他の互換性オプションは使用できなくなり、表示されなくなります。 +直接型指定モードを有効化するには、**コンパイルパス** メニューで **自動変数定義は行わない (直接型指定)** オプションを選択します。 このオプションが選択されると、他の互換性オプションは使用できなくなり、表示されなくなります。 このオプションが選択されると、他の互換性オプションは使用できなくなり、表示されなくなります。 -柔軟性と効率性を提供するため、このオプションを使用することが推奨されます。 直接型指定の概念は、すべての要素がコード内の定義されている場所で直接宣言されることを前提としています。 すべての変数が [`var` シンタックス](../Concepts/variables.md#変数の宣言) で宣言されていることと、メソッドや関数のパラメーターが [プロトタイプで](../Concepts/parameters.md) 宣言されていることを確認する必要があります (不足している、または無効な宣言を検出するのに [シンタックスチェック](#シンタックスチェック) 機能が役立ちます)。 +柔軟性と効率性を提供するため、このオプションを使用することが推奨されます。 直接型指定の概念は、すべての要素がコード内の定義されている場所で直接宣言されることを前提としています。 柔軟性と効率性を提供するため、このオプションを使用することが推奨されます。 直接型指定の概念は、すべての要素がコード内の定義されている場所で直接宣言されることを前提としています。 すべての変数が [`var` シンタックス](../Concepts/variables.md#変数の宣言) で宣言されていることと、メソッドや関数のパラメーターが [プロトタイプで](../Concepts/parameters.md) 宣言されていることを確認する必要があります (不足している、または無効な宣言を検出するのに [シンタックスチェック](#シンタックスチェック) 機能が役立ちます)。 ## 警告 警告は、コンパイラーがシンタックスチェックをおこなう際に生成するとメッセージです。 これらのメッセージの目的は、実行時エラーを引き起こす可能性のあるステートメントに注意を向けることです。 警告によりコンパイルが中断されることはありません。 -状況や使用されるプログラミングスタイルによって、警告の重要性は変化します。 コンパイラーダイアログおよびコードエディター (4Dコードエディターまたは VS Code) にて、警告を有効/無効にすることができます。[警告タブ](#警告タブ) を使えばグローバルに、または [`//%W`](#ローカルに警告を無効化-有効化する) を使用することでローカルに設定できます。 +状況や使用されるプログラミングスタイルによって、警告の重要性は変化します。 状況や使用されるプログラミングスタイルによって、警告の重要性は変化します。 コンパイラーダイアログおよびコードエディター (4Dコードエディターまたは VS Code) にて、警告を有効/無効にすることができます。[警告タブ](#警告タブ) を使えばグローバルに、または [`//%W`](#ローカルに警告を無効化-有効化する) を使用することでローカルに設定できます。 ### 警告タブ ![](../assets/en/Project/warnings-tab.png) -このタブでは、どの警告をグローバルに表示するかを定義できます。 警告のリストはコード順で並べられ、ローカライズされたラベルを確認することができます。 +このタブでは、どの警告をグローバルに表示するかを定義できます。 警告のリストはコード順で並べられ、ローカライズされたラベルを確認することができます。 警告のリストはコード順で並べられ、ローカライズされたラベルを確認することができます。 リストを絞り込むには、**コードとラベルを検索** テキストボックスを使用して、警告ラベルやコードを検索します。 @@ -221,7 +221,7 @@ _1: 変数 $a の再定義 (550.10)_ ### Symbolファイル -コンパイラー設定の [**Symbolファイルを生成**](#symbolファイルを生成) オプションを選択してコンパイルすると、プロジェクトの [Logs フォルダー](Project/architecture.md#logs) 内に `ProjectName_symbols.txt` という名称の Symbolファイルが作成されます。 このドキュメントはいくつかの部分に分かれています: +コンパイラー設定の [**Symbolファイルを生成**](#symbolファイルを生成) オプションを選択してコンパイルすると、プロジェクトの [Logs フォルダー](Project/architecture.md#logs) 内に `ProjectName_symbols.txt` という名称の Symbolファイルが作成されます。 このドキュメントはいくつかの部分に分かれています: このドキュメントはいくつかの部分に分かれています: #### プロセスおよびインタープロセス変数のリスト @@ -268,7 +268,7 @@ _1: 変数 $a の再定義 (550.10)_ ### エラーファイル -コンパイラー設定の [**エラーファイルを生成**](#エラーファイルを生成) オプションを使用して、コンパイル時にエラーファイルを生成するかどうかを選択することができます。 エラーファイルは、プロジェクトの [Logsフォルダー](Project/architecture.md#logs)内に `ProjectName_errors.txt` という名前で作成されます。 +コンパイラー設定の [**エラーファイルを生成**](#エラーファイルを生成) オプションを使用して、コンパイル時にエラーファイルを生成するかどうかを選択することができます。 エラーファイルは、プロジェクトの [Logsフォルダー](Project/architecture.md#logs)内に `ProjectName_errors.txt` という名前で作成されます。 エラーファイルは、プロジェクトの [Logsフォルダー](Project/architecture.md#logs)内に `ProjectName_errors.txt` という名前で作成されます。 [コンパイラーウインドウ](#コンパイラーウインドウ) からエラーに直接アクセスすることができますが、マシンからマシンへ送信できるエラーファイルがあると便利な場合があります。 エラーファイルは、その内容を自動的に解析しやすいように XMLフォーマットで生成されます。 これを利用して、エラー表示用に独自のインターフェースを作成することもできます。 @@ -288,7 +288,7 @@ _1: 変数 $a の再定義 (550.10)_ - **特定の行に関連するエラー**: これらのエラーは、コンテキスト (エラーが見つかった行) 内に説明とともに表示されます。 コンパイラーは、データ型やシンタックスに関する矛盾を含む式で見つけると、このタイプのエラーをレポートします。 コンパイラーウィンドウでは、検出された各エラーをダブルクリックすると、該当するメソッドが直接 4Dのコードエディターで開かれ、エラーを含む行が反転表示されます。 -- **全般的なエラー**: これらのエラーは、プロジェクトのコンパイルを不可能にします。 コンパイラーが全般的なエラーを生成するケースは、次の 2つです: +- **全般的なエラー**: これらのエラーは、プロジェクトのコンパイルを不可能にします。 コンパイラーが全般的なエラーを生成するケースは、次の 2つです: コンパイラーが全般的なエラーを生成するケースは、次の 2つです: - プロセス変数のデータ型が決定できなかった。 - 異なる 2つのオブジェクトが同じ名称である。 @@ -302,7 +302,7 @@ _1: 変数 $a の再定義 (550.10)_ コード内で間違いがないと思われる箇所に対して範囲チェックを適用したくないときもあります。 具体的には、かなりの回数繰り返されるループに関し、旧式のマシン上でコンパイル済みデータベースを実行すると、範囲チェックにより処理速度が著しく低下するおそれがあります。 関連するコードに誤りがなく、システムエラーを引き起こさないことが確実であれば、範囲チェックをローカル上で無効にすることができます。 -これをおこなうには、範囲チェックから外すコードを特殊なコメントである `//%R-` と `//%R+` で囲みます。 `//%R-` コメントは範囲チェックを無効にし、`//%R+` はそれを再び有効にします: +これをおこなうには、範囲チェックから外すコードを特殊なコメントである `//%R-` と `//%R+` で囲みます。 これをおこなうには、範囲チェックから外すコードを特殊なコメントである `//%R-` と `//%R+` で囲みます。 `//%R-` コメントは範囲チェックを無効にし、`//%R+` はそれを再び有効にします: ```4d // %R- 範囲チェックを無効化 @@ -346,11 +346,11 @@ Apple Silicon用コンパイラーは _Apple M1_ などの Apple Silicon プロ - **macOS マシン**: Apple Silicon用コンパイラーは Apple のマシン上でのみ実行可能です。 - **4D プロジェクトアーキテクチャー**: Apple Silicon用コンパイラーは [プロジェクトアーキテクチャー](architecture.md) を使った 4D開発でのみ利用できます。 -- **Xcode または Developer Tools**: コンパイルの [2つ目のステップ](#インクリメンタルコンパイルラー) において、プロジェクトを C++ コードからコンパイルするために、Apple Silicon用コンパイラーはオープンソース macOS コンパイラー **Clang** を呼び出します。 _Clang_ は Apple ネイティブライブラリを必要とします。これらは **Xcode** または **Developer Tools** パッケージより提供されています。 +- **Xcode または Developer Tools**: コンパイルの [2つ目のステップ](#インクリメンタルコンパイルラー) において、プロジェクトを C++ コードからコンパイルするために、Apple Silicon用コンパイラーはオープンソース macOS コンパイラー **Clang** を呼び出します。 _Clang_ は Apple ネイティブライブラリを必要とします。これらは **Xcode** または **Developer Tools** パッケージより提供されています。 _Clang_ は Apple ネイティブライブラリを必要とします。これらは **Xcode** または **Developer Tools** パッケージより提供されています。 - Xcode や Developer Tools をマシン上でインストールされた状態で **すでに持っている場合**、それらのバージョンが 4D の要件と合っていることを確認します。 - マシンにインストールされた状態でこれらのツールを **持っていない場合**、Apple Developer の Webサイトからいずれかをダウンロードする必要があります。 -> インストール手順が簡単なため **Xcode** のインストールを推奨しています。 よりコンパクトな **Developer Tools** をインストールしても問題ありませんが、こちらはインストール手順がやや複雑です。 +> インストール手順が簡単なため **Xcode** のインストールを推奨しています。 よりコンパクトな **Developer Tools** をインストールしても問題ありませんが、こちらはインストール手順がやや複雑です。 よりコンパクトな **Developer Tools** をインストールしても問題ありませんが、こちらはインストール手順がやや複雑です。 いずれにせよ、要件が満たされていない場合には、4D の Apple Silicon用コンパイラーが警告を発します。 @@ -358,5 +358,5 @@ Apple Silicon用コンパイラーは _Apple M1_ などの Apple Silicon プロ Apple Silicon用コンパイラーはインクリメンタルコンパイラーです: -- 初めてのコンパイルにおいては、**すべての 4Dメソッド** がコンパイルされます。 これには時間がかかる可能性がありますが、 一度きりです。 +- 初めてのコンパイルにおいては、**すべての 4Dメソッド** がコンパイルされます。 これには時間がかかる可能性がありますが、 一度きりです。 これには時間がかかる可能性がありますが、 一度きりです。 - 以降のコンパイルにおいては、**新規または編集されたメソッド** のみが処理され、コンパイル時間を大幅に短縮します。 diff --git a/i18n/ja/docusaurus-plugin-content-docs/current/Project/components.md b/i18n/ja/docusaurus-plugin-content-docs/current/Project/components.md index a5522ba34fd5bd..9f5c75a489d96d 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/current/Project/components.md +++ b/i18n/ja/docusaurus-plugin-content-docs/current/Project/components.md @@ -11,12 +11,25 @@ title: コンポーネント ## インタープリターとコンパイル済みコンポーネント -コンポーネントは、インタープリターまたは [コンパイル済み](../Desktop/building.md) のものが使えます。 コンポーネントのパッケージフォルダーには以下のいずれかが含まれます: +Components can be interpreted or [compiled](../Desktop/building.md). -- プロジェクトフォルダー (インタープリターのコンポーネント) -- または .4DZ ファイル (コンパイル済みコンポーネント) +- インタープリターモードで動作する 4Dプロジェクトは、インタープリターまたはコンパイル済みどちらのコンポーネントも使用できます。 +- コンパイルモードで実行される 4Dプロジェクトでは、インタープリターのコンポーネントを使用できません。 この場合、コンパイル済みコンポーネントのみが利用可能です。 -インタープリターモードで動作する 4Dプロジェクトは、インタープリターまたはコンパイル済みどちらのコンポーネントも使用できます。 コンパイルモードで実行される 4Dプロジェクトでは、インタープリターのコンポーネントを使用できません。 この場合、コンパイル済みコンポーネントのみが利用可能です。 +### Package folder + +The package folder of a component (_MyComponent.4dbase_ folder) can contain: + +- for **interpreted components**: a standard [Project folder](../Project/architecture.md) +- for **compiled components**: + - either a "Contents" folder containing a .4DZ file, a _Resources_ folder, an _Info.plist_ file (recommended architecture) + - or directly a .4DZ file with other folders such as _Resources_. + +:::note + +The "Contents" folder architecture is recommended for components if you want to [notarize](../Desktop/building.md#about-notarization) your applications on macOS. + +::: ## コンポーネントの読み込み diff --git a/i18n/ja/docusaurus-plugin-content-docs/current/Project/overview.md b/i18n/ja/docusaurus-plugin-content-docs/current/Project/overview.md index 65211c04ad119b..fd770e1453e82c 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/current/Project/overview.md +++ b/i18n/ja/docusaurus-plugin-content-docs/current/Project/overview.md @@ -7,7 +7,7 @@ Web やモバイル、デスクトップの運用形態に関わらず、デー ## プロジェクトファイル -4D プロジェクトファイルは 4D または 4D Server で開いて編集します。 4D では、ストラクチャーエディター、コードエディター、フォームエディター、メニューエディターなど、機能の充実したエディターを使ってファイルを扱うことができます。 +4D プロジェクトファイルは 4D または 4D Server で開いて編集します。 With 4D, full-featured editors are available to manage files, including a structure editor, a [Code Editor](../code-editor/write-class-method.md), a [form editor](../FormEditor/formEditor.md), a menu editor... また、人間にも解読可能なテキストファイル (JSON、XML等) 形式で提供されているため、プロジェクトの読み書きは任意のコードエディターでおこなうことも可能です。 diff --git a/i18n/ja/docusaurus-plugin-content-docs/current/WebServer/authentication.md b/i18n/ja/docusaurus-plugin-content-docs/current/WebServer/authentication.md index 012a11cb3e1a21..e978e5fa7d90b5 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/current/WebServer/authentication.md +++ b/i18n/ja/docusaurus-plugin-content-docs/current/WebServer/authentication.md @@ -77,13 +77,14 @@ BASICモードと同様に、ユーザーは接続時に自分の名前とパス - Webサーバーが、存在しないリソースを要求する URL を受信した場合 - Webサーバーが `4DACTION/`, `4DCGI/` ... で始まる URL を受信した場合 -- Webサーバーがルートアクセス URL を受信したが、ストラクチャー設定または `WEB SET HOME PAGE` コマンドでホームページが設定されていないとき +- when the web server receives a root access URL and no home page has been set in the Settings or by means of the [`WEB SET HOME PAGE`](../commands-legacy/web-set-home-page.md) command - Webサーバーが、セミダイナミックページ内でコードを実行するタグ (`4DSCRIPT`など) を処理した場合。 次の場合には、`On Web Authentication` データベースメソッドは呼び出されません: - Webサーバーが有効な静的ページを要求する URL を受信したとき。 - when the web server receives a URL beginning with `rest/` and the REST server is launched (in this case, the authentication is handled through the [`ds.authentify` function](../REST/authUsers#force-login-mode) or (deprecated) the [`On REST Authentication` database method](REST/configuration.md#using-the-on-rest-authentication-database-method) or [Structure settings](REST/configuration.md#using-the-structure-settings)). +- when the web server receives a URL with a pattern triggering a [custom HTTP Request Handler](http-request-handler.md). ### シンタックス diff --git a/i18n/ja/docusaurus-plugin-content-docs/current/WebServer/http-request-handler.md b/i18n/ja/docusaurus-plugin-content-docs/current/WebServer/http-request-handler.md index ff577a9b7e401b..c046936e1a7855 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/current/WebServer/http-request-handler.md +++ b/i18n/ja/docusaurus-plugin-content-docs/current/WebServer/http-request-handler.md @@ -66,10 +66,11 @@ The handler identifier is the couple [pattern + a verb among the verbs list]. URL patterns can be given as **prefixes** or using **regular expressions**. -- To declare a prefix pattern, use the "pattern" property name in the HTTPHandlers.json file. Prefixes are considered as regular expressions already containing starting and ending `/`.\ - Ex: `"pattern" : "docs"` or `"pattern" : "docs/invoices"` +- To declare a regular expression pattern, use the "regexPattern" property name in the HTTPHandlers.json file. Regular expressions patterns are handled directly.\ + Ex: `"regexPattern" : "/docs/**/index.html"` -- To declare a regular expression pattern, use the "regexPattern" property name in the HTTPHandlers.json file. Regular expressions patterns are handled directly. +- To declare a prefix pattern, use the "pattern" property name in the HTTPHandlers.json file. Regular expressions patterns are handled directly. + Regular expressions patterns are handled directly.\ Ex: `"regexPattern" : "/docs/**/index.html"` "Pattern" and "regexPattern" properties cannot be used in the same handler definition (in this case, only the "regexPattern" property is taken into account). @@ -251,7 +252,7 @@ Then, the request handler can use this information to trigger appropriate busine ### Output: an instance of the 4D.OutgoingMessage class -The request handler can return an object instance of the [4D.OutGoingMessage class](../API/OutGoingMessageClass.md), i.e. some full web content ready for a browser to handle, such as a file content. +The request handler can return an object instance of the [4D.OutGoingMessage class](../API/OutgoingMessageClass.md), i.e. some full web content ready for a browser to handle, such as a file content. ### 例題 diff --git a/i18n/ja/docusaurus-plugin-content-docs/current/WebServer/httpRequests.md b/i18n/ja/docusaurus-plugin-content-docs/current/WebServer/httpRequests.md index 98bcf7e6d63c2f..f92d3dd05e553c 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/current/WebServer/httpRequests.md +++ b/i18n/ja/docusaurus-plugin-content-docs/current/WebServer/httpRequests.md @@ -55,13 +55,13 @@ You must declare these parameters: ``` -> インターフェース要素 を表示する 4Dコマンド (`DIALOG`、`ALERT` など) の呼び出しは許可されず、メソッドの処理を終了します。 +> インターフェース要素 を表示する 4Dコマンド (`DIALOG`、`ALERT` など) の呼び出しは許可されず、メソッドの処理を終了します。 の呼び出しは許可されず、メソッドの処理を終了します。 ### $url - URL extra data The first parameter ($url) is the URL entered by users in the address area of their web browser, without the host address. -イントラネット接続の場合を見てみましょう。 4D Webサーバーマシンの IPアドレスを 123.4.567.89 とします。 The following table shows the values of $url depending on the URL entered in the web browser: +イントラネット接続の場合を見てみましょう。 4D Webサーバーマシンの IPアドレスを 123.4.567.89 とします。 イントラネット接続の場合を見てみましょう。 4D Webサーバーマシンの IPアドレスを 123.4.567.89 とします。 The following table shows the values of $url depending on the URL entered in the web browser: | Webブラウザーに入力された値 | Value of parameter $url | | ------------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------- | @@ -75,7 +75,7 @@ The first parameter ($url) is the URL entered by users in the address area of th ### $header - Header and Body of the HTTP request -The second parameter ($header) is the header and the body of the HTTP request sent by the web browser. この情報は `On Web Connection` データベースメソッドに "そのまま" 渡されることに留意してください。 その内容は、接続を試みた Webブラウザーの仕様により異なります。 +The second parameter ($header) is the header and the body of the HTTP request sent by the web browser. この情報は `On Web Connection` データベースメソッドに "そのまま" 渡されることに留意してください。 その内容は、接続を試みた Webブラウザーの仕様により異なります。 その内容は、接続を試みた Webブラウザーの仕様により異なります。 アプリケーションでこの情報を使用するには、開発者がヘッダーとボディを解析しなければなりません。 `WEB GET HTTP HEADER` や `WEB GET HTTP BODY` コマンドを使うことができます。 @@ -109,9 +109,9 @@ The $user and $password parameters receive the user name and password entered by **利用法**: URL またはフォームアクション -この URL を使用して、任意の _Param_ テキスト引数とともに _MethodName_ に指定した 4Dプロジェクトメソッドを呼び出すことができます。 The method will receive this parameter. +この URL を使用して、任意の _Param_ テキスト引数とともに _MethodName_ に指定した 4Dプロジェクトメソッドを呼び出すことができます。 The method will receive this parameter. The method will receive this parameter. -- 4Dプロジェクトメソッドは、[Webリクエスト用に許可](allowProject.md)されていなければなりません。メソッドのプロパティで "公開オプション: 4DタグとURL(4DACTION...)" 属性がチェックされている必要があります。 属性がチェックされていない場合、Webリクエストは拒否されます。 +- 4Dプロジェクトメソッドは、[Webリクエスト用に許可](allowProject.md)されていなければなりません。メソッドのプロパティで "公開オプション: 4DタグとURL(4DACTION...)" 属性がチェックされていない場合、Webリクエストは拒否されます。 - `/4DACTION/MyMethod/Param` リクエストを受け取ると、4D は `On Web Authentication` データベースメソッド (あれば) を呼び出します。 `4DACTION/` は、スタティックな Webページの URL に割り当てることもできます: @@ -120,13 +120,13 @@ The $user and $password parameters receive the user name and password entered by Do Something ``` -`MyMethod` プロジェクトメソッドは通常レスポンスを返すべきです (`WEB SEND FILE` や `WEB SEND BLOB` で HTMLページを送信するなど)。 ブラウザーをブロックしないように、処理は可能な限り短時間でおこなわれるようにします。 +`MyMethod` プロジェクトメソッドは通常レスポンスを返すべきです (`WEB SEND FILE` や `WEB SEND BLOB` で HTMLページを送信するなど)。 ブラウザーをブロックしないように、処理は可能な限り短時間でおこなわれるようにします。 ブラウザーをブロックしないように、処理は可能な限り短時間でおこなわれるようにします。 > `4DACTION/` から呼び出されるメソッドは、インタフェース要素 (`DIALOG`, `ALERT` など) を呼び出してはいけません。 #### 例題 -この例題は、HTMLピクチャーオブジェクトに `/4DACTION/` URL を割り当て、ページ上でピクチャーを動的に表示する方法を説明しています。 スタティック HTMLページに以下のコードを記述します: +この例題は、HTMLピクチャーオブジェクトに `/4DACTION/` URL を割り当て、ページ上でピクチャーを動的に表示する方法を説明しています。 スタティック HTMLページに以下のコードを記述します: スタティック HTMLページに以下のコードを記述します: ```html @@ -181,7 +181,7 @@ Webアプリケーションにおいて、スタティックなHTMLページを ``` -データ入力エリアに "ABCD" とタイプし、"Whole word (句として検索)" オプションをチェックして **Search** (検索) ボタンをクリックします。 Webサーバーに送信されるリクエスト内部は以下の通りです: +データ入力エリアに "ABCD" とタイプし、"Whole word (句として検索)" オプションをチェックして **Search** (検索) ボタンをクリックします。 Webサーバーに送信されるリクエスト内部は以下の通りです: Webサーバーに送信されるリクエスト内部は以下の通りです: ``` vName="ABCD" @@ -276,9 +276,10 @@ return false このページの主な特徴は: - 送信のための **Submit** ボタンが 3つあります: `vsbLogOn`, `vsbRegister` そして `vsbInformation`。 -- **Log On** をクリックすると、フォームからの送信はまず初めに JavaScript関数 `LogOn` によって処理されます。 名前が入力されていない場合、フォームは 4Dに送信すらされず、JavaScript による警告が表示されます。 +- **Log On** をクリックすると、フォームからの送信はまず初めに JavaScript関数 `LogOn` によって処理されます。 名前が入力されていない場合、フォームは 4Dに送信すらされず、JavaScript による警告が表示されます。 名前が入力されていない場合、フォームは 4Dに送信すらされず、JavaScript による警告が表示されます。 - フォームは POST 4Dメソッドに加えて、ブラウザープロパティを _vtNav_App_ から始まる名称の 4つの隠しオブジェクトへとコピーする投稿スクリプト (_GetBrowserInformation_) を持っています。 また、このページには `vtUserName` オブジェクトも含まれます。 + また、このページには `vtUserName` オブジェクトも含まれます。 ユーザーが HTMLフォーム上のボタンのどれかをクリックした際に呼び出される `WWW_STD_FORM_POST` という 4Dメソッドを検証してみましょう。 @@ -320,7 +321,7 @@ return false - 変数 _vtNav_appName_, _vtNav_appVersion_, _vtNav_appCodeName_, そして _vtNav_userAgent_ の値 (同じ名前を持つ HTMLオブジェクトにそれぞれバインドされています) は 、`WEB GET VARIABLES` コマンドを使用することによって JavaScript のスクリプト _GetBrowserInformation_ で作成された HTMLオブジェクトから取得することができます。 - 3つの投稿ボタンにバインドされている変数 _vsbLogOn_, _vsbRegister_ と _vsbInformation_ のうち、クリックされたボタンに対応するもののみが `WEB GET VARIABLES` コマンドによって取得されます。 この 3つのうちいずれかのボタンによって投稿がおこなわれたとき、ブラウザーはクリックされたボタンの値を 4D に返します。 これにより、どのボタンがクリックされたのかが分かります。 -HTMLではすべてのオブジェクトがテキストオブジェクトであることに留意が必要です。 SELECT要素を使用した場合、 `WEB GET VARIABLES` コマンドで返されるのはオブジェクト内でハイライトされている要素の値であり、4D のように配列内の要素の位置を返すわけではありません。 `WEB GET VARIABLES` コマンドは必ずテキスト型の値を返します。 +HTMLではすべてのオブジェクトがテキストオブジェクトであることに留意が必要です。 HTMLではすべてのオブジェクトがテキストオブジェクトであることに留意が必要です。 SELECT要素を使用した場合、 `WEB GET VARIABLES` コマンドで返されるのはオブジェクト内でハイライトされている要素の値であり、4D のように配列内の要素の位置を返すわけではありません。 `WEB GET VARIABLES` コマンドは必ずテキスト型の値を返します。 `WEB GET VARIABLES` コマンドは必ずテキスト型の値を返します。 ## その他の Webサーバーコマンド diff --git a/i18n/ja/docusaurus-plugin-content-docs/current/WebServer/qodly-studio.md b/i18n/ja/docusaurus-plugin-content-docs/current/WebServer/qodly-studio.md index c0d935ecf676f6..698933b74ea26f 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/current/WebServer/qodly-studio.md +++ b/i18n/ja/docusaurus-plugin-content-docs/current/WebServer/qodly-studio.md @@ -128,15 +128,15 @@ Qodlyページを利用した Webアプリケーションを開発するには ### 機能の比較 -| | 4D の Qodly Studio | Qodly Cloud プラットフォームの Qodly Studio | -| ----------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------- | -| テーブル (データクラス)、フィールド (属性)、リレーションの表示および編集 | 4Dストラクチャーエディター(1) | Qodly Studio Model Editor | -| Qodlyページ | Qodly Studio ページエディター | Qodly Studio ページエディター | -| デスクトップフォーム | 4D IDE | _サポートされていません_ | -| プログラミング言語 | 4Dランゲージ (ORDA を使用) | [QodlyScript](https://developer.qodly.com/docs/category/qodlyscript) (ORDA含) | -| コーディング IDE | 4D IDE コードエディター _または_ VS Code と [4D拡張機能](https://github.com/4d/4D-Analyzer-VSCode)
    _4D Server のみ_: Qodly Studio コードエディター ((2) 参照) | Qodly Studio コードエディター | -| デバッガー | 4D IDE デバッガー
    _4D Serverのみ_: Qodly Studio デバッガー ([この段落](#4d-server-で-qodlyデバッガーを使用する) を参照ください) | Qodly Studio デバッガー | -| REST/Web ロールとアクセス権 | roles.json の直接編集 / Qodly Studio ロールとアクセス権エディター | Qodly Studio ロールとアクセス権エディター | +| | 4D の Qodly Studio | Qodly Cloud プラットフォームの Qodly Studio | +| ----------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------- | +| テーブル (データクラス)、フィールド (属性)、リレーションの表示および編集 | 4Dストラクチャーエディター(1) | Qodly Studio Model Editor | +| Qodlyページ | Qodly Studio ページエディター | Qodly Studio ページエディター | +| デスクトップフォーム | 4D IDE | _サポートされていません_ | +| プログラミング言語 | 4Dランゲージ (ORDA を使用) | [QodlyScript](https://developer.qodly.com/docs/category/qodlyscript) (ORDA含) | +| コーディング IDE | 4D IDE code editor _or_ VS Code with [4D-Analyzer extension](https://github.com/4d/4D-Analyzer-VSCode)
    _4D Server only_: Qodly Studio code editor (see (2)) | Qodly Studio コードエディター | +| デバッガー | 4D IDE デバッガー
    _4D Serverのみ_: Qodly Studio デバッガー ([この段落](#4d-server-で-qodlyデバッガーを使用する) を参照ください) | Qodly Studio デバッガー | +| REST/Web ロールとアクセス権 | roles.json の直接編集 / Qodly Studio ロールとアクセス権エディター | Qodly Studio ロールとアクセス権エディター | (1) The **Model** item is disabled in Qodly Studio.
    (2) In 4D Server, opening 4D code with the Qodly Studio code editor is supported **for testing and debugging purposes** (see [this paragraph](#development-and-deployment)). 4Dシングルユーザーの場合、Qodly Studio で 4Dコードを開くと、シンタックスの配色がサポートされておらず、"Lsp not loaded" という警告が表示されます。 diff --git a/i18n/ja/docusaurus-plugin-content-docs/current/assets/en/Admin/buildapposxcertProj.png b/i18n/ja/docusaurus-plugin-content-docs/current/assets/en/Admin/buildapposxcertProj.png index de58a3d1eb1733..0afc8cd3cd6be1 100644 Binary files a/i18n/ja/docusaurus-plugin-content-docs/current/assets/en/Admin/buildapposxcertProj.png and b/i18n/ja/docusaurus-plugin-content-docs/current/assets/en/Admin/buildapposxcertProj.png differ diff --git a/i18n/ja/docusaurus-plugin-content-docs/current/code-editor/write-class-method.md b/i18n/ja/docusaurus-plugin-content-docs/current/code-editor/write-class-method.md index 6f2ebf185a93cb..d61d6ff01372de 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/current/code-editor/write-class-method.md +++ b/i18n/ja/docusaurus-plugin-content-docs/current/code-editor/write-class-method.md @@ -13,6 +13,12 @@ title: コードエディター 4Dのコードエディターは基本的なシンタックスチェック機能を提供します。 メソッド実行時には追加のエラーチェックがおこなわれます。 エラーハンドリングについての詳細は、[デバッガー](../Debugging/basics.md) の章を参照ください。 +:::note + +If you are used to coding with **VS Code**, you can also use this editor with 4D code after installing the [4D-Analyzer](https://github.com/4d/4D-Analyzer-VSCode) extension. + +::: + ## インターフェース ### ツールバー diff --git a/i18n/ja/docusaurus-plugin-content-docs/current/commands-legacy/array-text.md b/i18n/ja/docusaurus-plugin-content-docs/current/commands-legacy/array-text.md index 336b1961180015..cc642b048bc19e 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/current/commands-legacy/array-text.md +++ b/i18n/ja/docusaurus-plugin-content-docs/current/commands-legacy/array-text.md @@ -57,6 +57,3 @@ ARRAY TEXTを既存の配列に適用する場合、  End for ``` -#### 参照 - -*\_o\_ARRAY STRING* \ No newline at end of file diff --git a/i18n/ja/docusaurus-plugin-content-docs/current/commands-legacy/data-file.md b/i18n/ja/docusaurus-plugin-content-docs/current/commands-legacy/data-file.md index a04218acb62f75..04e1b58859d18d 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/current/commands-legacy/data-file.md +++ b/i18n/ja/docusaurus-plugin-content-docs/current/commands-legacy/data-file.md @@ -30,6 +30,5 @@ Macintosh上 #### 参照 -*\_o\_DATA SEGMENT LIST* [Application file](application-file.md) [Structure file](structure-file.md) \ No newline at end of file diff --git a/i18n/ja/docusaurus-plugin-content-docs/current/commands-legacy/drop-position.md b/i18n/ja/docusaurus-plugin-content-docs/current/commands-legacy/drop-position.md index a533c2b1459c05..84d14ac78b4273 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/current/commands-legacy/drop-position.md +++ b/i18n/ja/docusaurus-plugin-content-docs/current/commands-legacy/drop-position.md @@ -94,5 +94,4 @@ displayed_sidebar: docs #### 参照 -*\_o\_DRAG AND DROP PROPERTIES* *ドラッグ&ドロップ* \ No newline at end of file diff --git a/i18n/ja/docusaurus-plugin-content-docs/current/commands-legacy/filter-keystroke.md b/i18n/ja/docusaurus-plugin-content-docs/current/commands-legacy/filter-keystroke.md index 4f71b321d08f3f..07eb662e3fd8e8 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/current/commands-legacy/filter-keystroke.md +++ b/i18n/ja/docusaurus-plugin-content-docs/current/commands-legacy/filter-keystroke.md @@ -89,39 +89,37 @@ FILTER KEYSTROKE は以下の目的で使用できます:   // Shadow keystroke project method   // Shadow keystroke ( Pointer ; Pointer ; String) -> String   // Shadow keystroke ( -> srcArea ; -> curValue ; Filter ) -> Old keystroke - C_STRING(1;$0) - var $1;$2 : Pointer + #DECLARE ($srcArea : Pointer ; $curVal : Pointer ; $filter : Text) -> $old : Text  var $vtNewValue : Text - C_STRING(255;$3)   // 元のキーストロークを返す - $0:=Keystroke + $old:=Keystroke   // 入力エリア中で選択されている文字範囲を取得する - GET HIGHLIGHT($1->;$vlStart;$vlEnd) + GET HIGHLIGHT($srcArea->;$vlStart;$vlEnd)   // 現在値を処理する - $vtNewValue:=$2-> + $vtNewValue:=$curVal->   // 押されたキーまたは入力された文字に基づき、   // 適切な処理を行う  Case of   // (Delete) キーが押された -    :(Character code($0)=Backspace) +    :(Character code($old)=Backspace)   // 選択されている文字あるいはカーソルの左の文字を削除        $vtNewValue:=Delete text($vtNewValue;$vlStart;$vlEnd)   // 矢印キーが押されたら   // 何も行わずキーストロークを受け入れる -    :(Character code($0)=Left arrow key) -    :(Character code($0)=Right arrow key) -    :(Character code($0)=Up arrow key) -    :(Character code($0)=Down arrow key) +    :(Character code($old)=Left arrow key) +    :(Character code($old)=Right arrow key) +    :(Character code($old)=Up arrow key) +    :(Character code($old)=Down arrow key)     // 入力を許可する文字が入力された -    :(Position($0;$3)=0) +    :(Position($old;$filter)=0)        $vtNewValue:=Insert text($vtNewValue;$vlStart;$vlEnd;$0)     Else   // 入力を許可しない        FILTER KEYSTROKE("")  End case   // 次のキーストローク処理のために値を返す - $2->:=$vtNewValue + $curVal->:=$vtNewValue ``` このメソッドは以下のサブメソッドを使用します: @@ -130,26 +128,24 @@ FILTER KEYSTROKE は以下の目的で使用できます:   // Delete text プロジェクトメソッド   // Delete text ( String; Long ; Long ) -> String   // Delete text ( -> Text ; SelStart ; SelEnd ) -> New text - var $0;$1 : Text - var $2;$3 : Integer - $0:=Substring($1;1;$2-1-Num($2=$3))+Substring($1;$3) + #DECLARE ($src : Text ; $start : Integer ; $end : Integer) -> $new : Text + $new:=Substring($src;1;$start-1-Num($start=$end))+Substring($src;$end) ``` ```4d   // Insert text プロジェクトメソッド   // Insert text ( String; Long ; Long ; String) -> String   // Insert text ( -> srcText ; SelStart ; SelEnd ; Text to insert ) -> New text - var $0;$1;$4 : Text - var $2;$3 : Integer - $0:=$1 - If($2#$3) -    $0:=Substring($0;1;$2-1)+$4+Substring($0;$3) + #DECLARE ($src : Text ; $start : Integer ; $end : Integer ; $toInsert : Text) -> $new : Text + $new:=$src + If($start # $end) +    $new:=Substring($new;1;$start-1)+$toInsert+Substring($new;$end)  Else     Caes of - :($2<=1) -    $0:=$4+$0 - :($2>Length($0)) -    $0:=$0+$4 + :($start<=1) + $new:=$toInsert+$new + :($start>Length($new)) + $new:=$new+$toInsert  Else     $0:=Substring($0;1;$2-1)+$4+Substring($0;$2) End case @@ -185,13 +181,13 @@ LOOKUP DICTIONARYプロジェクトメソッドは以下のようなものです   // LOOKUP DICTIONARY ( Pointer ; Pointer )   // LOOKUP DICTIONARY ( -> Enterable Area ; ->ShadowVariable )   - var $1;$2 : Pointer + #DECLARE ($area : Pointer ; $shadow : Pointer)  var $vlStart;$vlEnd : Integer     // 入力エリアの選択範囲を取得 - GET HIGHLIGHT($1->;$vlStart;$vlEnd) + GET HIGHLIGHT($area->;$vlStart;$vlEnd)   // 選択されたテキストあるいはカーソルの左側の単語を取得 - $vtHighlightedText:=Get highlighted text($2->;$vlStart;$vlEnd) + $vtHighlightedText:=Get highlighted text($shadow->;$vlStart;$vlEnd)   // 検索すべきものがあるか  If($vtHighlightedText#"")   // テキストセレクションがカーソルなら @@ -204,9 +200,9 @@ LOOKUP DICTIONARYプロジェクトメソッドは以下のようなものです   // 存在するか     If(Records in selection([Dictionary])>0)   // 存在すればシャドウテキストに挿入する -       $2->:=Insert text($2->;$vlStart;$vlEnd;[Dictionary]Entry) +       $shadow->:=Insert text($shadow->;$vlStart;$vlEnd;   // シャドウテキストを編集中のエリアにコピーする -       $1->:=$2-> +       $area->:=$shadow->   // 挿入した辞書入力の後に選択をセットする        $vlEnd:=$vlStart+Length([Dictionary]Entry)        HIGHLIGHT TEXT(vsComments;$vlEnd;$vlEnd) @@ -226,23 +222,22 @@ Get highlighted text メソッド:   // Get highlighted text プロジェクトメソッド   // Get highlighted text ( String; Long ; Long ) -> String   // Get highlighted text ( Text ; SelStart ; SelEnd ) -> highlighted text - var $0;$1 : Text - var $2;$3 : Integer - If($2<$3) -    $0:=Substring($1;$2;$3-$2) +#DECLARE ($text : Text ; $start : Integer ; $end : Integer) -> $highlight : Text + If($start<$end) + $highlight:=Substring($text;$start;$end-$start)  Else -    $0:="" -    $2:=$2-1 + $highlight:="" + $start:=$start-1     Repeat -       If($2>0) -          If(Position($1[[$2]];" ,.!?:;()-_")=0) -             $0:=$1?$2?+$0 -             $2:=$2-1 + If($start>0) + If(Position($text[[$start]];" ,.!?:;()-_–—")=0) + $highlight:=$text[[$start]]+$highlight + $start:=$start-1           Else -             $2:=0 +             $start:=0           End if        End if -    Until($2=0) +    Until($start=0)  End if ``` @@ -251,4 +246,4 @@ Get highlighted text メソッド: [Form event code](../commands/form-event-code.md) [Get edited text](get-edited-text.md) [Is editing text](is-editing-text.md) -[Keystroke](keystroke.md) \ No newline at end of file +[Keystroke](keystroke.md) diff --git a/i18n/ja/docusaurus-plugin-content-docs/current/commands-legacy/font-list.md b/i18n/ja/docusaurus-plugin-content-docs/current/commands-legacy/font-list.md index 65db7d28342245..4f931ffcaf242a 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/current/commands-legacy/font-list.md +++ b/i18n/ja/docusaurus-plugin-content-docs/current/commands-legacy/font-list.md @@ -68,7 +68,6 @@ Windows環境下では、この原理は4D v15 R4から採用されています #### 参照 -*\_o\_Font name* [FONT STYLE LIST](font-style-list.md) *Font Type List* [OBJECT SET FONT](object-set-font.md) diff --git a/i18n/ja/docusaurus-plugin-content-docs/current/commands-legacy/form-set-input.md b/i18n/ja/docusaurus-plugin-content-docs/current/commands-legacy/form-set-input.md index 2ca6dde308533b..cfe626885355ba 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/current/commands-legacy/form-set-input.md +++ b/i18n/ja/docusaurus-plugin-content-docs/current/commands-legacy/form-set-input.md @@ -98,7 +98,6 @@ displayed_sidebar: docs #### 参照 -*\_o\_CREATE USER FORM* [ADD RECORD](add-record.md) [DISPLAY RECORD](display-record.md) [DISPLAY SELECTION](display-selection.md) diff --git a/i18n/ja/docusaurus-plugin-content-docs/current/commands-legacy/form-set-output.md b/i18n/ja/docusaurus-plugin-content-docs/current/commands-legacy/form-set-output.md index ca7496243dd016..836064ee4692af 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/current/commands-legacy/form-set-output.md +++ b/i18n/ja/docusaurus-plugin-content-docs/current/commands-legacy/form-set-output.md @@ -64,7 +64,6 @@ displayed_sidebar: docs #### 参照 -*\_o\_CREATE USER FORM* [DISPLAY SELECTION](display-selection.md) [EXPORT DIF](export-dif.md) [EXPORT SYLK](export-sylk.md) diff --git a/i18n/ja/docusaurus-plugin-content-docs/current/commands-legacy/get-document-properties.md b/i18n/ja/docusaurus-plugin-content-docs/current/commands-legacy/get-document-properties.md index 2418a0b4e134b0..05b0b66d20cd3d 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/current/commands-legacy/get-document-properties.md +++ b/i18n/ja/docusaurus-plugin-content-docs/current/commands-legacy/get-document-properties.md @@ -203,6 +203,4 @@ displayed_sidebar: docs #### 参照 -*\_o\_Document creator* -*\_o\_Document type* [SET DOCUMENT PROPERTIES](set-document-properties.md) \ No newline at end of file diff --git a/i18n/ja/docusaurus-plugin-content-docs/current/commands-legacy/get-highlight.md b/i18n/ja/docusaurus-plugin-content-docs/current/commands-legacy/get-highlight.md index 116b5207151037..7298f273ec1f5e 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/current/commands-legacy/get-highlight.md +++ b/i18n/ja/docusaurus-plugin-content-docs/current/commands-legacy/get-highlight.md @@ -41,8 +41,10 @@ displayed_sidebar: docs 以下の例題を使用して、フィールド \[Products\]Comments から反転表示された部分を検出します。 ```4d - GET HIGHLIGHT([Products]Comments;vFirst;vLast) - If(vFirst +GET HIGHLIGHT([Products]Comments;vFirst;vLast) +If(vFirst < vlast) + ALERT("The selected text is:"+Substring([Products]Comments;vFirst;vLast-vFirst)) +End if ``` #### 例題 2 diff --git a/i18n/ja/docusaurus-plugin-content-docs/current/commands-legacy/get-process-variable.md b/i18n/ja/docusaurus-plugin-content-docs/current/commands-legacy/get-process-variable.md index 1b2f719c21ac14..1cf9ddbcb64ba4 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/current/commands-legacy/get-process-variable.md +++ b/i18n/ja/docusaurus-plugin-content-docs/current/commands-legacy/get-process-variable.md @@ -114,7 +114,6 @@ DRAG AND DROP PROPERTIESコマンドの例題参照 #### 参照 -*\_o\_DRAG AND DROP PROPERTIES* [POST OUTSIDE CALL](post-outside-call.md) [SET PROCESS VARIABLE](set-process-variable.md) [VARIABLE TO VARIABLE](variable-to-variable.md) diff --git a/i18n/ja/docusaurus-plugin-content-docs/current/commands-legacy/in-break.md b/i18n/ja/docusaurus-plugin-content-docs/current/commands-legacy/in-break.md index 8ea95cc8ebf8fd..aeea3f2ca57caa 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/current/commands-legacy/in-break.md +++ b/i18n/ja/docusaurus-plugin-content-docs/current/commands-legacy/in-break.md @@ -26,6 +26,5 @@ displayed_sidebar: docs #### 参照 -*\_o\_During* [In footer](in-footer.md) [In header](in-header.md) \ No newline at end of file diff --git a/i18n/ja/docusaurus-plugin-content-docs/current/commands-legacy/in-footer.md b/i18n/ja/docusaurus-plugin-content-docs/current/commands-legacy/in-footer.md index 4dcd55d7ea3135..5d316a847fe0dc 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/current/commands-legacy/in-footer.md +++ b/i18n/ja/docusaurus-plugin-content-docs/current/commands-legacy/in-footer.md @@ -26,6 +26,5 @@ displayed_sidebar: docs #### 参照 -*\_o\_During* [In break](in-break.md) [In header](in-header.md) \ No newline at end of file diff --git a/i18n/ja/docusaurus-plugin-content-docs/current/commands-legacy/in-header.md b/i18n/ja/docusaurus-plugin-content-docs/current/commands-legacy/in-header.md index 54c4f6c85b0153..4fa4a2298537b9 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/current/commands-legacy/in-header.md +++ b/i18n/ja/docusaurus-plugin-content-docs/current/commands-legacy/in-header.md @@ -26,6 +26,5 @@ displayed_sidebar: docs #### 参照 -*\_o\_During* [In break](in-break.md) [In footer](in-footer.md) \ No newline at end of file diff --git a/i18n/ja/docusaurus-plugin-content-docs/current/commands-legacy/integrate-mirror-log-file.md b/i18n/ja/docusaurus-plugin-content-docs/current/commands-legacy/integrate-mirror-log-file.md index 1243f01dcf76c7..941ccaef7e200d 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/current/commands-legacy/integrate-mirror-log-file.md +++ b/i18n/ja/docusaurus-plugin-content-docs/current/commands-legacy/integrate-mirror-log-file.md @@ -98,6 +98,4 @@ Blobまたはピクチャーの値の場合、その保存場所に応じて異 #### 参照 - -*\_o\_INTEGRATE LOG FILE* [LOG FILE TO JSON](log-file-to-json.md) \ No newline at end of file diff --git a/i18n/ja/docusaurus-plugin-content-docs/current/commands-legacy/is-a-list.md b/i18n/ja/docusaurus-plugin-content-docs/current/commands-legacy/is-a-list.md index 8bcd8365aa5eba..49d1a2d1d1b781 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/current/commands-legacy/is-a-list.md +++ b/i18n/ja/docusaurus-plugin-content-docs/current/commands-legacy/is-a-list.md @@ -21,14 +21,7 @@ displayed_sidebar: docs Is a list コマンドは、*list* 引数で指定された値が階層リストの有効な参照の場合[True](true.md "True")を返します。それ以外の場合[False](false.md "False")を返します。 -#### 例題 1 +#### 例題 [CLEAR LIST](clear-list.md "CLEAR LIST")コマンドの例題参照 -#### 例題 2 - -DRAG AND DROP PROPERTIESコマンドの例題参照 - -#### 参照 - -*\_o\_DRAG AND DROP PROPERTIES* \ No newline at end of file diff --git a/i18n/ja/docusaurus-plugin-content-docs/current/commands-legacy/log-event.md b/i18n/ja/docusaurus-plugin-content-docs/current/commands-legacy/log-event.md index 6d4f772a547360..907be5ce482e6e 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/current/commands-legacy/log-event.md +++ b/i18n/ja/docusaurus-plugin-content-docs/current/commands-legacy/log-event.md @@ -34,8 +34,7 @@ displayed_sidebar: docs *outputType*引数を渡さない場合、デフォルトでInto Windows Log Events (0) が使用されます。 -引数*outputType*にInto Windows Log Eventsを指定すると、オプションの引数*importance*を通して*message*に重要度を付けることができます。ログイベントを読んだり理解する助けになります。重要度には情報、警告とエラーの3つのレベルがあります。 -4Dには、前もって定義された以下のような定数があります。これらは*Log Events*カテゴリーに置かれています。 +オプションの*importance* 引数を使用して*message* の重要度を設定することで、ログイベントを読みやすくして理解しやすくすることができます。重要度には情報、警告とエラーの3つのレベルがあります。4D は、以下の定義済み定数を提供しています: | 定数 | 型 | 値 | | ------------------- | ---- | - | @@ -43,9 +42,12 @@ displayed_sidebar: docs | Information message | 倍長整数 | 0 | | Warning message | 倍長整数 | 1 | - *importance* に何も渡さなかったり、正しくない値を渡すと、デフォルト値(0) が使用されます。 +:::注意 +*importance* 引数は*outputType* 引数に `Into Windows log events`、 `Into 4D diagnostic log`、 および `Into system standard outputs` を渡した時のみ使用されます。 +::: + #### 例題 Windowsでデータベースが開かれた時の情報をログしたい場合は、以下のコードを[On Startupデータベースメソッド](on-startup-database-method.md)内に記述します。 @@ -58,4 +60,4 @@ Windowsでデータベースが開かれた時の情報をログしたい場合 #### 参照 -[SET DATABASE PARAMETER](set-database-parameter.md) \ No newline at end of file +[SET DATABASE PARAMETER](set-database-parameter.md) diff --git a/i18n/ja/docusaurus-plugin-content-docs/current/commands-legacy/new-log-file.md b/i18n/ja/docusaurus-plugin-content-docs/current/commands-legacy/new-log-file.md index e2272cd64b5395..bb45f3f71918d7 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/current/commands-legacy/new-log-file.md +++ b/i18n/ja/docusaurus-plugin-content-docs/current/commands-legacy/new-log-file.md @@ -32,6 +32,3 @@ displayed_sidebar: docs エラーが発生すると、コマンドは[ON ERR CALL](on-err-call.md "ON ERR CALL") コマンドでとらえることが可能なエラーコードを生成します。 -#### 参照 - -*\_o\_INTEGRATE LOG FILE* \ No newline at end of file diff --git a/i18n/ja/docusaurus-plugin-content-docs/current/commands-legacy/object-set-action.md b/i18n/ja/docusaurus-plugin-content-docs/current/commands-legacy/object-set-action.md index b28c323308c0d9..1ca06cfebdc4d0 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/current/commands-legacy/object-set-action.md +++ b/i18n/ja/docusaurus-plugin-content-docs/current/commands-legacy/object-set-action.md @@ -89,5 +89,4 @@ displayed_sidebar: docs #### 参照 -*\_o\_OBJECT Get action* [OBJECT Get action](object-get-action.md) \ No newline at end of file diff --git a/i18n/ja/docusaurus-plugin-content-docs/current/commands-legacy/object-set-rgb-colors.md b/i18n/ja/docusaurus-plugin-content-docs/current/commands-legacy/object-set-rgb-colors.md index 5e2af02fa7e855..e333c6c02719f4 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/current/commands-legacy/object-set-rgb-colors.md +++ b/i18n/ja/docusaurus-plugin-content-docs/current/commands-legacy/object-set-rgb-colors.md @@ -104,6 +104,5 @@ displayed_sidebar: docs #### 参照 -*\_o\_OBJECT SET COLOR* [OBJECT GET RGB COLORS](object-get-rgb-colors.md) [Select RGB Color](select-rgb-color.md) \ No newline at end of file diff --git a/i18n/ja/docusaurus-plugin-content-docs/current/commands-legacy/picture-to-blob.md b/i18n/ja/docusaurus-plugin-content-docs/current/commands-legacy/picture-to-blob.md index 486d5f89592a39..5b44249888d054 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/current/commands-legacy/picture-to-blob.md +++ b/i18n/ja/docusaurus-plugin-content-docs/current/commands-legacy/picture-to-blob.md @@ -46,7 +46,6 @@ Codecは拡張子 (例 “.gif”), または Mimeタイプ (例 “image/jpeg #### 参照 -*\_o\_PICTURE TO GIF* [BLOB TO PICTURE](blob-to-picture.md) [PICTURE CODEC LIST](picture-codec-list.md) [WRITE PICTURE FILE](write-picture-file.md) \ No newline at end of file diff --git a/i18n/ja/docusaurus-plugin-content-docs/current/commands-legacy/print-selection.md b/i18n/ja/docusaurus-plugin-content-docs/current/commands-legacy/print-selection.md index 99dcc2f7e5ce31..3e72da25cae53b 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/current/commands-legacy/print-selection.md +++ b/i18n/ja/docusaurus-plugin-content-docs/current/commands-legacy/print-selection.md @@ -60,7 +60,6 @@ displayed_sidebar: docs #### 参照 -*\_o\_PAGE SETUP* [ACCUMULATE](accumulate.md) [BREAK LEVEL](break-level.md) [Level](level.md) diff --git a/i18n/ja/docusaurus-plugin-content-docs/current/commands-legacy/resolve-pointer.md b/i18n/ja/docusaurus-plugin-content-docs/current/commands-legacy/resolve-pointer.md index 45586d8da03e9d..2a9bf4f72b1648 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/current/commands-legacy/resolve-pointer.md +++ b/i18n/ja/docusaurus-plugin-content-docs/current/commands-legacy/resolve-pointer.md @@ -104,7 +104,6 @@ DRAG AND DROP PROPERTIES コマンドの例を参照. #### 参照 -*\_o\_DRAG AND DROP PROPERTIES* [Field](field.md) [Get pointer](get-pointer.md) [Is a variable](is-a-variable.md) diff --git a/i18n/ja/docusaurus-plugin-content-docs/current/commands-legacy/set-document-properties.md b/i18n/ja/docusaurus-plugin-content-docs/current/commands-legacy/set-document-properties.md index 40e847805965c9..f85476ac85c450 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/current/commands-legacy/set-document-properties.md +++ b/i18n/ja/docusaurus-plugin-content-docs/current/commands-legacy/set-document-properties.md @@ -34,6 +34,4 @@ displayed_sidebar: docs #### 参照 -*\_o\_SET DOCUMENT CREATOR* -*\_o\_SET DOCUMENT TYPE* [GET DOCUMENT PROPERTIES](get-document-properties.md) \ No newline at end of file diff --git a/i18n/ja/docusaurus-plugin-content-docs/current/commands-legacy/structure-file.md b/i18n/ja/docusaurus-plugin-content-docs/current/commands-legacy/structure-file.md index a5445849a81447..290339bbfb9700 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/current/commands-legacy/structure-file.md +++ b/i18n/ja/docusaurus-plugin-content-docs/current/commands-legacy/structure-file.md @@ -64,7 +64,6 @@ displayed_sidebar: docs #### 参照 -*\_o\_DATA SEGMENT LIST* [Application file](application-file.md) [COMPONENT LIST](component-list.md) [Data file](data-file.md) \ No newline at end of file diff --git a/i18n/ja/docusaurus-plugin-content-docs/current/commands-legacy/use-character-set.md b/i18n/ja/docusaurus-plugin-content-docs/current/commands-legacy/use-character-set.md index 54a2ea8d258800..25d704df402da8 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/current/commands-legacy/use-character-set.md +++ b/i18n/ja/docusaurus-plugin-content-docs/current/commands-legacy/use-character-set.md @@ -45,8 +45,6 @@ IANA名に関する説明は[CONVERT FROM TEXT](convert-from-text.md)コマン #### 参照 -*\_o\_Mac to Win* -*\_o\_Win to Mac* [EXPORT DIF](export-dif.md) [EXPORT SYLK](export-sylk.md) [EXPORT TEXT](export-text.md) diff --git a/i18n/ja/docusaurus-plugin-content-docs/current/commands/compile-project.md b/i18n/ja/docusaurus-plugin-content-docs/current/commands/compile-project.md index 5d20e3def38cba..bfd881cf2d1603 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/current/commands/compile-project.md +++ b/i18n/ja/docusaurus-plugin-content-docs/current/commands/compile-project.md @@ -32,18 +32,18 @@ displayed_sidebar: docs **Compile project** は、 カレントのホストプロジェクト、または*projectFile* 引数で指定したプロジェクトをコンパイルします。コンパイルについてのより詳細な情報については、[コンパイルページ](../Project/compiler.md) を参照してください。 -デフォルトでは、このコマンドはストラクチャー設定で定義されているコンパイラオプションを使用します。 任意の*options* 引数を渡すことで、それらを上書きすることができます。 以下のシンタックスがサポートされています: +デフォルトでは、このコマンドはストラクチャー設定で定義されているコンパイラオプションを使用します。 任意の*options* 引数を渡すことで、それらを上書きすることができます。 以下のシンタックスがサポートされています: 任意の*options* 引数を渡すことで、それらを上書きすることができます。 以下のシンタックスがサポートされています: - **Compile project**(): 現在開かれているプロジェクトを、ストラクチャー設定で定義されているオプションを使用してコンパイルします。 -- **Compile project**(*options*): 現在開かれているプロジェクトをコンパイルします。 *options* 引数で定義されたオプションでストラクチャー設定を上書きします。 +- **Compile project**(*options*): 現在開かれているプロジェクトをコンパイルします。 *options* 引数で定義されたオプションでストラクチャー設定を上書きします。 *options* 引数で定義されたオプションでストラクチャー設定を上書きします。 *options* 引数で定義されたオプションでストラクチャー設定を上書きします。 - **Compile project**(*projectFile*): *projectFile* 引数で指定された4DProject ファイルを、ストラクチャー設定で定義されているオプションを使用してコンパイルします。 - **Compile project**(*projectFile*; *options*): *projectFile* 引数で指定された4DProject ファイルを、*options* 引数で定義されたオプションでストラクチャー設定を上書きしてコンパイルします。 **注:** このコマンドを使用してバイナリーデータベースをコンパイルすることはできません。 -コンパイラウィンドウとは異なり、このコマンドではコンパイルするコンポーネントを明示的に指定する必要があります。 **Compile project** でプロジェクトをコンパイルする場合、*options* 引数の*components* プロパティを使用してそのコンポーネントを宣言する必要があります。 なお、そのコンポーネントは既にコンパイルされている必要があるという点に注意してください(バイナリーコンポーネントはサポートされます)。 +コンパイラウィンドウとは異なり、このコマンドではコンパイルするコンポーネントを明示的に指定する必要があります。 **Compile project** でプロジェクトをコンパイルする場合、*options* 引数の*components* プロパティを使用してそのコンポーネントを宣言する必要があります。 なお、そのコンポーネントは既にコンパイルされている必要があるという点に注意してください(バイナリーコンポーネントはサポートされます)。 **Compile project** でプロジェクトをコンパイルする場合、*options* 引数の*components* プロパティを使用してそのコンポーネントを宣言する必要があります。 なお、そのコンポーネントは既にコンパイルされている必要があるという点に注意してください(バイナリーコンポーネントはサポートされます)。 **Compile project** でプロジェクトをコンパイルする場合、*options* 引数の*components* プロパティを使用してそのコンポーネントを宣言する必要があります。 なお、そのコンポーネントは既にコンパイルされている必要があるという点に注意してください(バイナリーコンポーネントはサポートされます)。 -コンパイルされたコードは、*options* 引数の*targets* プロパティでの指定によって、DerivedData または Libraries フォルダに格納されています。 .4dz ファイルを作成したい場合でも、コンパイルされたプロジェクトを手動でZIP圧縮するか、[ビルドアプリケーション](../Desktop/building.md) 機能を使用する必要があります。 +コンパイルされたコードは、*options* 引数の*targets* プロパティでの指定によって、DerivedData または Libraries フォルダに格納されています。 コンパイルされたコードは、*options* 引数の*targets* プロパティでの指定によって、DerivedData または Libraries フォルダに格納されています。 .4dz ファイルを作成したい場合でも、コンパイルされたプロジェクトを手動でZIP圧縮するか、[ビルドアプリケーション](../Desktop/building.md) 機能を使用する必要があります。 *targets* プロパティに空のコレクションを渡した場合、**Compile project** コマンドはコンパイルせずにシンタックスチェックを実行します。 @@ -53,7 +53,7 @@ displayed_sidebar: docs ##### options 引数 -*options* 引数はオブジェクト型です。 利用可能なコンパイルオプションは次のとおりです: +*options* 引数はオブジェクト型です。 利用可能なコンパイルオプションは次のとおりです: 利用可能なコンパイルオプションは次のとおりです: | **プロパティ** | **型** | **説明** | | ---------------------------------------------------------------------------------- | -------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | @@ -63,8 +63,8 @@ displayed_sidebar: docs | generateSymbols | Boolean | 返された.symbol オブジェクト内にsymbol 情報を生成するためにはTrue | | generateSyntaxFile | Boolean | プロジェクトの\\Resources\\en.lproj フォルダに [コード補完用のシンタックスファイルを生成する](../settings/general.md#%E3%82%B3%E3%83%B3%E3%83%91%E3%82%A4%E3%83%AB%E6%99%82%E3%81%AB%E3%82%B3%E3%83%BC%E3%83%89%E8%A3%9C%E5%AE%8C%E7%94%A8%E3%81%AE%E3%82%B7%E3%83%B3%E3%82%BF%E3%83%83%E3%82%AF%E3%82%B9%E3%83%95%E3%82%A1%E3%82%A4%E3%83%AB%E3%82%92%E7%94%9F%E6%88%90%E3%81%99%E3%82%8B) ためにはTrue | | generateTypingMethods | Text | 型指定メソッドを生成する際にリセット("reset") するか追加("append") するかを選択します。 値が"append" だった場合、既存の変数宣言は変更されません(コンパイラウィンドウの振る舞い)。 値が"reset" だった場合、既存の変数宣言は事前に削除されます。 | -| plugins | 4D.Folder object | [Plugins folder of the current project](../Project/architecture.md#plugins) ではなく、独自に使用したいプラグインのフォルダ。 このプロパティは、*projectFile* シンタックスを使用した場合にのみ利用可能です。 | -| targets | String の Collection | 取り得る値: "x86_64_generic"、"arm64_macOS_lib"。 また空のコレクションを渡すことでシンタックスチェックのみを実行させることもできます。 | +| plugins | 4D.Folder object | [Plugins folder of the current project](../Project/architecture.md#plugins) ではなく、独自に使用したいプラグインのフォルダ。 このプロパティは、*projectFile* シンタックスを使用した場合にのみ利用可能です。 このプロパティは、*projectFile* シンタックスを使用した場合にのみ利用可能です。 このプロパティは、*projectFile* シンタックスを使用した場合にのみ利用可能です。 | +| targets | String の Collection | 取り得る値: "x86_64_generic"、"arm64_macOS_lib"。 また空のコレクションを渡すことでシンタックスチェックのみを実行させることもできます。 また空のコレクションを渡すことでシンタックスチェックのみを実行させることもできます。 また空のコレクションを渡すことでシンタックスチェックのみを実行させることもできます。 | | typeInference | Text | "all": コンパイラは、明示的に宣言されていない全ての変数の型を類推します。 "locals": コンパイラは、明示的に宣言されていないローカル変数の型を類推します。 "none": 自動変数定義は行いません。全ての変数はコード内で明示的に宣言されている必要があります(旧式モード)。"direct": 全ての変数はコード内で明示的に宣言されている必要があります([直接型指定](../Project/compiler.md#enabling-direct-typing))。 | | warnings | Object の Collection | 警告の有効化状態を定義します | | \[\].major | Number | 指定する警告のメインの番号、ドットの前 | @@ -84,7 +84,7 @@ displayed_sidebar: docs | \[\].isError | Boolean | エラーならTrue、それ以外の場合は警告 | | \[\].message | Text | エラーメッセージ | | \[\].code | Object | [コードオブジェクト](#code-object) | -| \[\].line | Number | コード内でのエラーが発生した行番号。 クラスメソッドに対しては、ファンクション内の行番号 | +| \[\].line | Number | コード内でのエラーが発生した行番号。 コード内でのエラーが発生した行番号。 コード内でのエラーが発生した行番号。 クラスメソッドに対しては、ファンクション内の行番号 | | \[\].lineInFile | Number | ファイル内での行番号(クラスメソッドの"line"とは異なります、また%attributes プリフィックス行を考慮に入れます) | | symbols | Object | **generateSymbols オプションがTrue に設定されている場合にのみ返されます:** | | symbols.interprocessVariables | Object | 全てのインタープロセス変数の一覧 | @@ -119,20 +119,20 @@ displayed_sidebar: docs `methods.code` および `errors.code` 内の`code` プロパティは、以下のプロパティを持ったオブジェクトです: -| **プロパティ** | **型** | **説明** | -| -------------- | ----------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -| type | Text | "projectMethod", "formObjectMethod", "formMethod", "databaseMethod", "triggerMethod", "executeOnServer" (when calling a project method with the *サーバー上で実行属性* をつけてプロジェクトメソッドを呼び出した場合), "executeFormula" (フォーミュラを[PROCESS 4D TAGS](process-4d-tags.md) 経由で実行した、または4D Write Pro ドキュメント内でフォーミュラを評価した), "class", "classFunction", "formObjectExpression" (フォームオブジェクトに割り当てられた式において発生したエラー) | -| path | Text | メソッドパス([METHOD OPEN PATH](method-open-path.md) と同じフォーマット) | -| file | 4D.File | メソッドファイル | -| | | **以下は`type` プロパティの値に応じて返されます:** | -| methodName | Text | プロジェクトメソッド | -| table | Number | テーブル番号(トリガ、テーブルフォームメソッドまたはテーブルフォームオブジェクトメソッドに対して返されます) | -| formName | Text | フォーム名(フォームメソッドに対して返されます) | -| objectName | Text | フォームオブジェクト名(オブジェクトメソッドに対して返されます) | -| propertyName | Text | フォームオブジェクトプロパティ名(フォームオブジェクトの式に対して返されます) | -| className | Text | クラス名 | -| functionName | Text | クラス関数名 | -| databaseMethod | Number | データベースメソッドのインデックス | +| **プロパティ** | **型** | **説明** | +| -------------- | ----------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| type | Text | "projectMethod", "formObjectMethod", "formMethod", "databaseMethod", "triggerMethod", "executeOnServer" (when calling a project method with the *Execute on Server attribute*), "executeFormula" (when executing a formula via [PROCESS 4D TAGS](../commands-legacy/process-4d-tags.md) or evaluation of a formula in a 4D Write Pro document), "class", "classFunction", "formObjectExpression" (for errors occuring in expressions associated to form objects) | +| path | Text | Method path (same format as [METHOD OPEN PATH](../commands-legacy/method-open-path.md)) | +| file | 4D.File | メソッドファイル | +| | | **以下は`type` プロパティの値に応じて返されます:** | +| methodName | Text | プロジェクトメソッド | +| table | Number | テーブル番号(トリガ、テーブルフォームメソッドまたはテーブルフォームオブジェクトメソッドに対して返されます) | +| formName | Text | フォーム名(フォームメソッドに対して返されます) | +| objectName | Text | フォームオブジェクト名(オブジェクトメソッドに対して返されます) | +| propertyName | Text | フォームオブジェクトプロパティ名(フォームオブジェクトの式に対して返されます) | +| className | Text | クラス名 | +| functionName | Text | クラス関数名 | +| databaseMethod | Number | データベースメソッドのインデックス | #### 例題 @@ -192,4 +192,4 @@ var $result:=Compile project($options) #### 参照 -[BUILD APPLICATION](build-application.md) +[BUILD APPLICATION](../commands-legacy/build-application.md) diff --git a/i18n/ja/docusaurus-plugin-content-docs/current/commands/dialog.md b/i18n/ja/docusaurus-plugin-content-docs/current/commands/dialog.md index 454212e914e47b..f4d69e4c81f4cf 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/current/commands/dialog.md +++ b/i18n/ja/docusaurus-plugin-content-docs/current/commands/dialog.md @@ -23,7 +23,7 @@ displayed_sidebar: docs The **DIALOG** command presents the *form* to the user, along with *formData* parameter(s) (optional). -このコマンドは、フォームを基にした、カスタマイズされた高度なユーザーインターフェースで動作するように設計されています。 これを使用してデータベースや他の場所からの情報を表示したり、あるいはデータ入力機能を提供することができます。 [ADD RECORD](../commands-legacy/add-record.md) や [MODIFY RECORD](../commands-legacy/modify-record.md) とは異なり、**DIALOG** コマンドは、フォームとそのコンテンツ、内容、評価ボタンなどに対して、完全にコントロールすることができます。 +このコマンドは、フォームを基にした、カスタマイズされた高度なユーザーインターフェースで動作するように設計されています。 これを使用してデータベースや他の場所からの情報を表示したり、あるいはデータ入力機能を提供することができます。 このコマンドは、フォームを基にした、カスタマイズされた高度なユーザーインターフェースで動作するように設計されています。 これを使用してデータベースや他の場所からの情報を表示したり、あるいはデータ入力機能を提供することができます。 [ADD RECORD](../commands-legacy/add-record.md) や [MODIFY RECORD](../commands-legacy/modify-record.md) とは異なり、**DIALOG** コマンドは、フォームとそのコンテンツ、内容、評価ボタンなどに対して、完全にコントロールすることができます。 このコマンドは通常、次の例にあるように、洗練されたフォームを表示するために[Open form window](../commands-legacy/open-form-window.md) コマンドと一緒に呼び出されます: @@ -47,9 +47,9 @@ displayed_sidebar: docs "form data" オブジェクトに値を入れるためには、以下の2つの方法があります: -- *formData* 引数を使用する方法。 *formData* に対してローカル変数を使用することで、呼び出しコンテキストに関係なく、安全にフォームに引数を渡すことができます。 特に、同じフォームが同じプロセスないで他の場所から呼び出された場合、[Form](form.md).myProperty と呼び出すだけで、常にその特定の値にアクセスすることができます。 さらに、オブジェクトは参照によって渡されるため、ユーザーがプロパティの値をフォーム内で変更した場合、その値は自動的にオブジェクト自身内に保存されます。 +- *formData* 引数を使用する方法。 *formData* 引数を使用する方法。 *formData* に対してローカル変数を使用することで、呼び出しコンテキストに関係なく、安全にフォームに引数を渡すことができます。 特に、同じフォームが同じプロセスないで他の場所から呼び出された場合、[Form](form.md).myProperty と呼び出すだけで、常にその特定の値にアクセスすることができます。 さらに、オブジェクトは参照によって渡されるため、ユーザーがプロパティの値をフォーム内で変更した場合、その値は自動的にオブジェクト自身内に保存されます。 特に、同じフォームが同じプロセスないで他の場所から呼び出された場合、[Form](form.md).myProperty と呼び出すだけで、常にその特定の値にアクセスすることができます。 さらに、オブジェクトは参照によって渡されるため、ユーザーがプロパティの値をフォーム内で変更した場合、その値は自動的にオブジェクト自身内に保存されます。 -- [ユーザークラスをフォームに割り当てる](../FormEditor/properties_FormProperties.md#form-class)ことで、4D はフォームがロードされる際に自動的にこのクラスのオブジェクトをインスタンス化します。 オブジェクトプロパティおよび関数は[Form](form.md) から返されるオブジェクト内で自動的に利用可能になります。 例えば、`Form.myFunction()` と書くことができます。 +- [ユーザークラスをフォームに割り当てる](../FormEditor/properties_FormProperties.md#form-class)ことで、4D はフォームがロードされる際に自動的にこのクラスのオブジェクトをインスタンス化します。 オブジェクトプロパティおよび関数は[Form](form.md) から返されるオブジェクト内で自動的に利用可能になります。 例えば、`Form.myFunction()` と書くことができます。 オブジェクトプロパティおよび関数は[Form](form.md) から返されるオブジェクト内で自動的に利用可能になります。 例えば、`Form.myFunction()` と書くことができます。 :::note @@ -58,19 +58,20 @@ displayed_sidebar: docs ::: -ダイアログは(ak accept 標準アクション、Enter キー、または[ACCEPT](../commands-legacy/accept.md) コマンドによってトリガーされた)"accept" アクション、または(ak cancel 標準アクション、Escape キー、または[CANCEL](../commands-legacy/cancel.md) コマンドによってトリガーされた)"cancel" アクションによって閉じられます。 accept アクションはOK システム変数を1に設定する一方、cancel アクションはOK を0に設定します。 +ダイアログは(ak accept 標準アクション、Enter キー、または[ACCEPT](../commands-legacy/accept.md) コマンドによってトリガーされた)"accept" アクション、または(ak cancel 標準アクション、Escape キー、または[CANCEL](../commands-legacy/cancel.md) コマンドによってトリガーされた)"cancel" アクションによって閉じられます。 accept アクションはOK システム変数を1に設定する一方、cancel アクションはOK を0に設定します。 accept アクションはOK システム変数を1に設定する一方、cancel アクションはOK を0に設定します。 ただし、評価することは保存と同等ではないという点に注意して下さい。 ダイアログにフィールドが含まれる場合、変更されたデータを保存するためには[SAVE RECORD](../commands-legacy/save-record.md) コマンドを明示的に呼び出さなければいけません。 オプションの\*\*\* 引数を渡すと、フォームはカレントプロセスで最後に開かれたウィンドウにロードされ、フォームをスクリーン上でアクティブにしたままこのコマンドは実行を終了します。\ -このフォームはユーザーアクションに対し通常通り反応し、標準アクションまたはフォームに関連する4Dコード (オブジェクトメソッドやフォームメソッド) が [CANCEL](../commands-legacy/cancel.md) や [ACCEPT](../commands-legacy/accept.md) コマンドを呼び出すと閉じられます。 カレントプロセスが終了すると、この方法で作成されたフォームは、[CANCEL](../commands-legacy/cancel.md) コマンドが呼ばれたかのように自動で閉じられます。 この開き方では別にプロセスを開始する必要がないため、ドキュメントと一緒にフローティングパレットを表示するなどの場合に便利です。 +オプションの\*\*\* 引数を渡すと、フォームはカレントプロセスで最後に開かれたウィンドウにロードされ、フォームをスクリーン上でアクティブにしたままこのコマンドは実行を終了します。\ +このフォームはユーザーアクションに対し通常通り反応し、標準アクションまたはフォームに関連する4Dコード (オブジェクトメソッドやフォームメソッド) が [CANCEL](../commands-legacy/cancel.md) や [ACCEPT](../commands-legacy/accept.md) コマンドを呼び出すと閉じられます。 カレントプロセスが終了すると、この方法で作成されたフォームは、[CANCEL](../commands-legacy/cancel.md) コマンドが呼ばれたかのように自動で閉じられます。 この開き方では別にプロセスを開始する必要がないため、ドキュメントと一緒にフローティングパレットを表示するなどの場合に便利です。 カレントプロセスが終了すると、この方法で作成されたフォームは、[CANCEL](../commands-legacy/cancel.md) コマンドが呼ばれたかのように自動で閉じられます。 この開き方では別にプロセスを開始する必要がないため、ドキュメントと一緒にフローティングパレットを表示するなどの場合に便利です。 **注:** -- **DIALOG**(form;\*) シンタックスと[CALL FORM](call-form.md) コマンドを組み合わせることによってフォーム間で通信をすることができます。 -- **DIALOG**(form;\*) ステートメントの前に、あらかじめウィンドウが作成されている必要があります。 プロセスのカレントダイアログウィンドウや、各プロセスにデフォルトで作成されるウィンドウは使用できません。 でなければ、エラー -9909 が生成されます。 -- オプションの *\** 引数を使用する場合、標準アクションまたは[CANCEL](../commands-legacy/cancel.md) コマンドや[ACCEPT](../commands-legacy/accept.md) コマンドを呼び出すと、ウィンドウは自動的に閉じられます。 ウィンドウ自身の終了を管理する必要はありません。 +- You can combine the use of the **DIALOG**(form;\*) syntax with the [CALL FORM](../commands-legacy/call-form.md) command to establish communication between the forms. +- **DIALOG**(form;\*) ステートメントの前に、あらかじめウィンドウが作成されている必要があります。 プロセスのカレントダイアログウィンドウや、各プロセスにデフォルトで作成されるウィンドウは使用できません。 でなければ、エラー -9909 が生成されます。 プロセスのカレントダイアログウィンドウや、各プロセスにデフォルトで作成されるウィンドウは使用できません。 でなければ、エラー -9909 が生成されます。 +- オプションの *\** 引数を使用する場合、標準アクションまたは[CANCEL](../commands-legacy/cancel.md) コマンドや[ACCEPT](../commands-legacy/accept.md) コマンドを呼び出すと、ウィンドウは自動的に閉じられます。 ウィンドウ自身の終了を管理する必要はありません。 ウィンドウ自身の終了を管理する必要はありません。 #### 例題 1 @@ -171,7 +172,7 @@ displayed_sidebar: docs [ACCEPT](../commands-legacy/accept.md)\ [ADD RECORD](../commands-legacy/add-record.md)\ -[CALL FORM](call-form.md)\ +[CALL FORM](../commands-legacy/call-form.md)\ [CANCEL](../commands-legacy/cancel.md)\ [Form](form.md)\ [Open window](../commands-legacy/open-window.md) diff --git a/i18n/ja/docusaurus-plugin-content-docs/current/commands/form-edit.md b/i18n/ja/docusaurus-plugin-content-docs/current/commands/form-edit.md index ef454bf57f08f8..6ef7f8c6de5221 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/current/commands/form-edit.md +++ b/i18n/ja/docusaurus-plugin-content-docs/current/commands/form-edit.md @@ -11,52 +11,52 @@ displayed_sidebar: docs | 引数 | 型 | | 説明 | | ------ | ---- | - | ------------------------------------------------- | | aTable | テーブル | → | フォームの属するテーブルまたは 省略した場合はデフォルトテーブルまたは プロジェクトフォームを使用 | -| form | Text | → | Form name | -| object | Text | → | Form object name or group name | +| form | Text | → | フォーム名 | +| object | Text | → | フォームオブジェクト名またはグループ名 | -*This command is not thread-safe, it cannot be used in preemptive code.* +*このコマンドはスレッドセーフではないので、プリエンプティブなコードでは使用できません。*
    履歴 -| リリース | 内容 | -| ----- | ----------------------------- | -| 20 R8 | Support of *object* parameter | +| リリース | 内容 | +| ----- | ---------------- | +| 20 R8 | *object* 引数のサポート |
    #### 説明 -The **FORM EDIT** command opens the *form* associated to *aTable* in the 4D Form editor, with optionnally *object* selected.The **FORM EDIT** command opens the *form* associated to *aTable* in the 4D Form editor, with optionnally *object* selected. Note that you must have access to the Design environment, otherwise the error -9804 ("Cannot open form") is generated. +The **FORM EDIT** command opens the *form* associated to *aTable* in the 4D Form editor, with optionnally *object* selected.**FORM EDIT** コマンドは*aTable* 引数で指定したテーブルに関連づけられている、*form* 引数で指定したフォームを4D フォームエディターで開きます。オプションとして、*object* 引数で指定したフォームオブジェクトを選択した状態で開くこともできます。 このとき、デザイン環境へのアクセスが必要である点に注意してください。ない場合には、エラー -9804("フォームを開けません")エラーが生成されます。 -The command is asynchronous: it returns immediately to the calling method and does not wait for the form to be open. +このコマンドは非同期です。つまりこのコマンドは呼び出されたあとすぐに呼び出し元メソッドへと戻り、フォームが開かれるのを待つことはしないということです。 -If you pass the optional *aTable* parameter, you indicate the table associated with *form*. If you omit this parameter, you indicate that *form* is a project form. +任意の*aTable* 引数を渡した場合、そのテーブルに関連づけられたフォームを*form* 引数で指定します。 この引数を省略した場合、*form* 引数はプロジェクトフォームであることを指定します。 -In the *form* parameter, pass the name of the form to open in the 4D Form editor. If you pass a name that does not exist, the error 81 is generated ("Form not found"). +*form* 引数には、4D フォームエディターで開くフォームの名前を渡します。 存在しない名前を渡した場合、エラー 81("フォームが見つかりません")が生成されます。 -Optionnally, you can pass in *object* the name of a form object or of a group to select automatically in the 4D Form editor. This feature allows you, for example, to save time when debugging a form based upon expression errors returned by [`Compile project`](compile-project.md). +オプションとして、引数にフォームオブジェクト名またはグループ名を渡すことで、4D フォームエディター内でそれ(またはそれら)を自動的に選択された状態にします。 この機能を使用することで、例えば、[`Compile project`](compile-project.md) から返された式のエラーに基づいたフォームをデバッグする場合などに時間を節約できます。 -If *object* is not found in *form*, the form is opened and no error is returned. +*form* のフォーム内にて*object* 引数で指定したフォームオブジェクトが見つからない場合でも、フォームは開かれエラーは特に返されません。 -Pass an empty string in *object* to deselect all objects in the open *form*. +*form* で開いたフォーム内で全てのフォームオブジェクトの選択を解除したい場合には*object* 引数に空の文字列を渡します。 #### 例題 -To open the *Contacts* table *Address* form: +*Contacts* テーブルの*Address* フォームを開きたい場合を考えます: ```4d  FORM EDIT([Contacts];"Address") ``` -To open the *ContactList* project form: +*ContactList* プロジェクトフォームを開きたい場合を考えます: ```4d  FORM EDIT("ContactList") ``` -To open the *ContactPage* project form with "name-input" object selected: +*ContactPage* プロジェクトフォームを、"name-input" オブジェクトが選択された状態で開きたい場合を考えます: ```4d  FORM EDIT("ContactList"; "name-input") @@ -64,4 +64,4 @@ To open the *ContactPage* project form with "name-input" object selected: #### 参照 -*Design Object Access Commands* +*デザインオブジェクトアクセスコマンド* diff --git a/i18n/ja/docusaurus-plugin-content-docs/current/commands/form-event-code.md b/i18n/ja/docusaurus-plugin-content-docs/current/commands/form-event-code.md index f3ade9de37e579..3eb76d66a37714 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/current/commands/form-event-code.md +++ b/i18n/ja/docusaurus-plugin-content-docs/current/commands/form-event-code.md @@ -9,28 +9,28 @@ displayed_sidebar: docs -| 引数 | 型 | | 説明 | -| --- | ------- | - | ----------------- | -| 戻り値 | Integer | ← | Form event number | +| 引数 | 型 | | 説明 | +| --- | ------- | - | ---------- | +| 戻り値 | Integer | ← | フォームイベント番号 | -*This command is not thread-safe, it cannot be used in preemptive code.* +*このコマンドはスレッドセーフではないので、プリエンプティブなコードでは使用できません。* #### 説明 -**Form event code** returns a numeric value identifying the type of form event that has just occurred. Usually, you will use **Form event code** from within a form or object method. +**Form event code** コマンドは、現在生成中のフォームイベントタイプを示す数値を返します。 通常フォームメソッドやオブジェクトメソッド内で**Form event code** を使用します。 -4D provides predefined constants (found in the *Form Events* theme) in order to compare the values returned by the **Form event code** command. Certain events are generic (generated for any type of object) and others are specific to a particular type of object. +4DにはForm Eventsテーマで定義された定数が用意されており、**Form event code** コマンドから返される値と比較することができます。 イベントには、一般的なイベント(任意のタイプのオブジェクトに対して生成される)と、特定タイプのオブジェクトのみに発生するイベントがあります。 -For a description of events, please refer to the [**Form Events**](../Events/overview.md) section. +イベントの詳細については[**Form Events**](../Events/overview.md) の章を参照してください。 #### 例題 1 -This example shows the On Validate event being used to automatically assign (to a field) the date that the record is modified: +この例題ではレコード更新日をOn Validateイベントで自動的に(フィールドへ)割り当てる例を示します: ```4d -  //Method of a form +  // フォームメソッド  Case of   // ...     :(Form event code=On Validate) @@ -40,10 +40,10 @@ This example shows the On Validate event being used to automatically assign (to #### 例題 2 -In this example, the complete handling of a drop-down list (initialization, user clicks, and object release) is encapsulated in the method of the object: +この例題では、ドロップダウンリスト処理 (初期化, ユーザクリック, オブジェクトのリリース) をオブジェクトメソッドにカプセル化します: ```4d -  //asBurgerSize Drop-down list Object Method +  //asBurgerSize ドロップダウンリストのオブジェクトメソッド  Case of     :(Form event code=On Load)        ARRAY TEXT(asBurgerSize;3) @@ -52,7 +52,7 @@ In this example, the complete handling of a drop-down list (initialization, user        asBurgerSize{1}:="Large"     :(Form event code=On Clicked)        If(asBurgerSize#0) -          ALERT("You chose a "+asBurgerSize{asBurgerSize}+" burger.") +          ALERT(asBurgerSize{asBurgerSize}+" バーガーが選択されました。")        End if     :(Form event code=On Unload)        CLEAR VARIABLE(asBurgerSize) @@ -61,94 +61,94 @@ In this example, the complete handling of a drop-down list (initialization, user #### 例題 3 -This example is a template for a form method. It shows each of the possible events that can occur when a summary report uses a form as an output form: +この例題はフォームメソッドのテンプレートです。 出力フォームとしてサマリレポートがフォームを使用する際に発生し得るイベントを示しています: ```4d -  //Method of a form being used as output form for a summary report +  // 概要レポートの出力フォームとして使用されているフォームのフォームメソッド  $vpFormTable:=Current form table  Case of   //...     :(Form event code=On Header) -  //A header area is about to be printed +  // ヘッダエリアの印刷開始        Case of           :(Before selection($vpFormTable->)) -  //Code for the first break header goes here +  // 最初のブレークヘッダ用のコード           :(Level=1) -  //Code for a break header level 1 goes here +  // ヘッダブレークレベル 1 用のコード           :(Level=2) -  //Code for a break header level 2 goes here +  // ヘッダブレークレベル 2 用のコード   //...        End case     :(Form event code=On Printing Detail) -  //A record is about to be printed -  //Code for each record goes here +  // レコードの印刷開始 +  // レコード毎のコードを記述     :(Form event code=On Printing Break) -  //A break area is about to be printed +  // ブレークエリアの印刷開始        Case of           :(Level=0) -  //Code for a break level 0 goes here +  // ブレークレベル0 用のコード           :(Level=1) -  //Code for a break level 1 goes here +  // ブレークレベル1 用のコード   //...        End case     :(Form event code=On Printing Footer)        If(End selection($vpFormTable->)) -  //Code for the last footer goes here +  // 最後のフッタ用のコード        Else -  //Code for a footer goes here +  // フッタ用のコード        End if  End case ``` #### 例題 4 -This example shows the template of a form method that handles the events that can occur for a form displayed using the [DISPLAY SELECTION](display-selection.md) or [MODIFY SELECTION](modify-selection.md) commands. For didactic purposes, it displays the nature of the event in the title bar of the form window. +この例題は[DISPLAY SELECTION](../commands-legacy/display-selection.md) または[MODIFY SELECTION](../commands-legacy/modify-selection.md) で表示されるフォームで発生するイベントを処理するメソッドのテンプレートです。 説明的にするため、フォームウィンドウのタイトルバーにイベントの説明が表示されます: ```4d -  //A form method +  // フォームメソッド  Case of     :(Form event code=On Load) -       $vsTheEvent:="The form is about to be displayed" +       $vsTheEvent:="フォームが表示されようとしている"     :(Form event code=On Unload) -       $vsTheEvent:="The output form has been exited and is about to disappear from the screen" +       $vsTheEvent:="出力フォームを抜け、スクリーンから消えようとしている"     :(Form event code=On Display Detail) -       $vsTheEvent:="Displaying record #"+String(Selected record number([TheTable])) +       $vsTheEvent:="表示中のレコード #"+String(Selected record number([TheTable]))     :(Form event code=On Menu Selected) -       $vsTheEvent:="A menu item has been selected" +       $vsTheEvent:="メニュー項目が選択された"     :(Form event code=On Header") -       $vsTheEvent:="The header area is about to be drawn" +       $vsTheEvent:="ヘッダエリアが描画されようとしている"     :(Form event code=On Clicked") -       $vsTheEvent:="A record has been clicked" +       $vsTheEvent:="レコードがクリックされた"     :(Form event code=On Double Clicked") -       $vsTheEvent:="A record has been double clicked" +       $vsTheEvent:="レコードがダブルクリックされた"     :(Form event code=On Open Detail) -       $vsTheEvent:="The record #"+String(Selected record number([TheTable]))+" is double-clicked" +       $vsTheEvent:="レコード #"+String(Selected record number([TheTable]))+" がダブルクリックされた"     :(Form event code=On Close Detail) -       $vsTheEvent:="Going back to the output form" +       $vsTheEvent:="出力フォームに戻る"     :(Form event code=On Activate) -       $vsTheEvent:="The form's window has just become the frontmost window" +       $vsTheEvent:="フォームのウィンドウが最前面になった"     :(Form event code=On Deactivate) -       $vsTheEvent:="The form's window is no longer the frontmost window" +       $vsTheEvent:="フォームのウィンドウが最前面でなくなった"     :(Form event code=On Menu Selected) -       $vsTheEvent:="A menu item has been chosen" +       $vsTheEvent:="メニュー項目が選択された"     :(Form event code=On Outside Call) -       $vsTheEvent:="A call from another has been received" +       $vsTheEvent:="他のプロセスからの呼び出しを受信した"     Else -       $vsTheEvent:="What's going on? Event #"+String(Form event) +       $vsTheEvent:="発生したイベント #"+String(Form event)  End case  SET WINDOW TITLE($vsTheEvent) ``` #### 例題 5 -For examples on how to handle [`On Before Keystroke`](../Events/onBeforeKeystroke.md) and [`On After Keystroke`](../Events/onAfterKeystroke.md) events, see examples for the [Get edited text](get-edited-text.md), [Keystroke](keystroke.md) and [FILTER KEYSTROKE](filter-keystroke.md) commands. +[`On Before Keystroke`](../Events/onBeforeKeystroke.md) と [`On After Keystroke`](../Events/onAfterKeystroke.md) イベントを処理する方法は[Get edited text](../commands-legacy/get-edited-text.md)、[Keystroke](../commands-legacy/keystroke.md)、そして[FILTER KEYSTROKE](../commands-legacy/filter-keystroke.md) コマンドの説明を参照してください。 #### 例題 6 -This example shows how to treat clicks and double clicks in the same way in a scrollable area: +この例題は、スクロールエリアでクリックとダブルクリックを同様に扱う方法を示しています: ```4d -  //asChoices scrollable area object method +  // asChoices スクロール可能エリアオブジェクトメソッド  Case of     :(Form event code=On Load)        ARRAY TEXT(asChoices;...) @@ -156,7 +156,7 @@ This example shows how to treat clicks and double clicks in the same way in a sc        asChoices:=0     :((Form event code=On Clicked)|(Form event code=On Double Clicked))        If(asChoices#0) -  //An item has been clicked, do something here +  // 項目がクリックされたので、何らかの処理を行う   //...        End if   //... @@ -165,10 +165,10 @@ This example shows how to treat clicks and double clicks in the same way in a sc #### 例題 7 -This example shows how to treat clicks and double clicks using a different response. Note the use of the element zero for keeping track of the selected element: +この例題では、クリックとダブルクリックで異なるレスポンスをする方法を示します。 要素0を使用して選択された項目を追跡していることに注目してください: ```4d -  //asChoices scrollable area object method +  // asChoices スクロール可能エリアのオブジェクトメソッド  Case of     :(Form event code=On Load)        ARRAY TEXT(asChoices;...) @@ -178,9 +178,9 @@ This example shows how to treat clicks and double clicks using a different respo     :(Form event code=On Clicked)        If(asChoices#0)           If(asChoices#Num(asChoices)) -  //A new item has been clicked, do something here +  // 新しい項目がクリックされた、何か処理を行う   //... -  //Save the new selected element for the next time +  // 選択された新しい項目を次回のために保存しておく              asChoices{0}:=String(asChoices)           End if        Else @@ -188,7 +188,7 @@ This example shows how to treat clicks and double clicks using a different respo        End if     :(Form event code=On Double Clicked)        If(asChoices#0) -  //An item has been double clicked, do something different here +  // 項目がダブルクリックされた、別の処理をここで行う        End if   // ...  End case @@ -196,10 +196,10 @@ This example shows how to treat clicks and double clicks using a different respo #### 例題 8 -This example shows how to maintain a status text information area from within a form method, using the [`On Getting Focus`](../Events/onGettingFocus.md) and [`On Losing Focus`](../Events/onLosingFocus.md) events: +この例題では、[`On Getting Focus`](../Events/onGettingFocus.md) と[`On Losing Focus`](../Events/onLosingFocus.md) を使用して、フォームメソッド内でステータス情報を管理します: ```4d -  //[Contacts];"Data Entry" form method +  //[Contacts];"Data Entry" フォームのフォームメソッド  Case of     :(Form event code=On Load)        var vtStatusArea : Text @@ -208,10 +208,10 @@ This example shows how to maintain a status text information area from within a        RESOLVE POINTER(Focus object;$vsVarName;$vlTableNum;$vlFieldNum)        If(($vlTableNum#0)&($vlFieldNum#0))           Case of -             :($vlFieldNum=1) //Last name field +             :($vlFieldNum=1) // Last name フィールド                 vtStatusArea:="Enter the Last name of the Contact; it will be capitalized automatically"   //... -             :($vlFieldNum=10) //Zip Code field +             :($vlFieldNum=10) // Zip Code フィールド                 vtStatusArea:="Enter a 5-digit zip code; it will be checked and validated automatically"   //...           End case @@ -227,13 +227,13 @@ This example shows how to maintain a status text information area from within a この例題では、レコードのデータ入力に使われるフォームで、ウィンドウを閉じるイベントを処理する方法を示します: ```4d -  //Method for an input form +  // 入力フォームのフォームメソッド  $vpFormTable:=Current form table  Case of   //...     :(Form event code=On Close Box)        If(Modified record($vpFormTable->)) -          CONFIRM("This record has been modified. Save Changes?") +          CONFIRM("このレコードは更新されています。保存しますか?")           If(OK=1)              ACCEPT           Else @@ -246,12 +246,12 @@ This example shows how to maintain a status text information area from within a  End case ``` -#### Example 10 +#### 例題 10 -This example shows how to capitalize a text or alphanumeric field each time its data source value is modified: +この例題では、文字フィールドが更新されるたびに、1文字目を大文字に、それ以外を小文字に変換する方法を示します: ```4d -  //[Contacts]First Name Object method +  //[Contacts]First Name オブジェクトメソッド  Case of   //...     :(Form event code=On Data Change) @@ -260,12 +260,12 @@ This example shows how to capitalize a text or alphanumeric field each time its  End case ``` -#### Example 11 +#### 例題 11 -The following example illustrates how to manage a deletion action in a hierarchical list: +以下の例題では階層リストで削除アクションを管理する方法を示します: ```4d - ... //method of hierarchical list + ... // 階層リストのメソッド :(Form event code=On Delete Action)  ARRAY LONGINT($itemsArray;0)  $Ref:=Selected list items(<>HL;$itemsArray;*) @@ -288,25 +288,25 @@ The following example illustrates how to manage a deletion action in a hierarchi  End if ``` -#### Example 12 +#### 例題 12 -In this example, the [`On Scroll`](../Events/onScroll.md) form event allows us to synchronize the display of two pictures in a form. The following code is added in the "satellite" object method (picture field or variable): +この例題では[`On Scroll`](../Events/onScroll.md) フォームイベントを使用してフォーム中の2つのピクチャーを同期します。 以下のコードを"satellite" のオブジェクトメソッド(ピクチャーフィールドまたは変数)に記述します: ```4d  Case of     :(Form event code=On Scroll) -  // we take the position of the left picture +  // 左のピクチャーの位置を取得        OBJECT GET SCROLL POSITION(*;"satellite";vPos;hPos) -  // and we apply it to the right picture +  // 取得した位置を右のピクチャーに適用        OBJECT SET SCROLL POSITION(*;"plan";vPos;hPos;*)  End case ``` -Result: https://www.youtube.com/watch?v=YIRfsW1BmHE +結果: https://www.youtube.com/watch?v=YIRfsW1BmHE -#### Example 13 +#### 例題 13 -You want to draw a red rectangle around the selected cell of a list box, and you want the rectangle to move along with the list box if it is scrolled vertically by the user. In the list box object method, you can write: +リストボックスで選択されたセルの周りに赤い長方形を描画し、リストボックスがユーザーによって垂直方向にスクロールされた場合には、その長方形を一緒に移動させたい場合を考えます。 その場合、リストボックスのオブジェクトメソッドに対して以下のように書きます: ```4d  Case of @@ -314,18 +314,18 @@ You want to draw a red rectangle around the selected cell of a list box, and you     :(Form event code=On Clicked)        LISTBOX GET CELL POSITION(*;"LB1";$col;$raw)        LISTBOX GET CELL COORDINATES(*;"LB1";$col;$raw;$x1;$y1;$x2;$y2) -       OBJECT SET VISIBLE(*;"RedRect";True) //initialize a red rectangle +       OBJECT SET VISIBLE(*;"RedRect";True) // 赤い長方形を初期化        OBJECT SET COORDINATES(*;"RedRect";$x1;$y1;$x2;$y2)       :(Form event code=On Scroll)        LISTBOX GET CELL POSITION(*;"LB1";$col;$raw)        LISTBOX GET CELL COORDINATES(*;"LB1";$col;$raw;$x1;$y1;$x2;$y2)        OBJECT GET COORDINATES(*;"LB1";$xlb1;$ylb1;$xlb2;$ylb2) -       $toAdd:=LISTBOX Get headers height(*;"LB1") //height of the header so as not to overlap it -       If($ylb1+$toAdd<$y1)&($ylb2>$y2) //if we are inside the list box -  //to keep it simple, we only handle headers -  //but we should handle horizontal clipping -  //as well as scroll bars +       $toAdd:=LISTBOX Get headers height(*;"LB1") // オーバーラップしないためにヘッダーの高さを取得 +       If($ylb1+$toAdd<$y1)&($ylb2>$y2) // リストボックス内にいるとき +  // 単純化のため、ここではヘッダーのみを扱います +  // 実際にはスクロールバーに加え、 +  // 水平方向のクリッピングも管理しなければなりません。           OBJECT SET VISIBLE(*;"RedRect";True)           OBJECT SET COORDINATES(*;"RedRect";$x1;$y1;$x2;$y2)        Else @@ -335,18 +335,18 @@ You want to draw a red rectangle around the selected cell of a list box, and you  End case ``` -As a result, the red rectangle follows the scrolling of the list box: +結果として、赤い長方形はリストボックスのスクロールに沿って移動します: ![](../assets/en/commands/pict1900395.en.png) #### 参照 [Form Events](../Events/overview.md) -[CALL SUBFORM CONTAINER](call-subform-container.md)\ -[Current form table](current-form-table.md)\ -[FILTER KEYSTROKE](filter-keystroke.md)\ +[CALL SUBFORM CONTAINER](../commands-legacy/call-subform-container.md)\ +[Current form table](../commands-legacy/current-form-table.md)\ +[FILTER KEYSTROKE](../commands-legacy/filter-keystroke.md)\ [FORM Event](form-event.md)\ -[Get edited text](get-edited-text.md)\ -[Keystroke](keystroke.md)\ -[POST OUTSIDE CALL](post-outside-call.md)\ -[SET TIMER](set-timer.md) +[Get edited text](../commands-legacy/get-edited-text.md)\ +[Keystroke](../commands-legacy/keystroke.md)\ +[POST OUTSIDE CALL](../commands-legacy/post-outside-call.md)\ +[SET TIMER](../commands-legacy/set-timer.md) diff --git a/i18n/ja/docusaurus-plugin-content-docs/current/commands/form-event.md b/i18n/ja/docusaurus-plugin-content-docs/current/commands/form-event.md index 77376c0fe102fe..726ef1b2aea36d 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/current/commands/form-event.md +++ b/i18n/ja/docusaurus-plugin-content-docs/current/commands/form-event.md @@ -17,34 +17,34 @@ displayed_sidebar: docs #### 説明 -**FORM Event** returns an object containing information about the form event that has just occurred.**FORM Event** returns an object containing information about the form event that has just occurred. Usually, you will use **FORM Event** from within a form or object method. +**FORM Event** returns an object containing information about the form event that has just occurred.**FORM Event** は、発生したフォームイベントに関する情報を格納しているオブジェクトを返します。 通常、**FORM Event** はフォームメソッドまたはオブジェクトメソッド内にて使用します。 **返されるオブジェクト** -Each returned object includes the following main properties: +返されるオブジェクトは、それぞれ以下のメインのプロパティを格納しています: -| **プロパティ** | **型** | **Description** | -| ----------- | ------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -| objectName | text | イベントをトリガーしているオブジェクト名。フォームによってトリガーされている場合には含まれていません。 | -| code | integer | フォームイベントの数値。 | -| description | text | Name of the form event (*e.g.* "On After Edit"). See the [**Form Events**](../Events/overview.md) section. | +| **プロパティ** | **型** | **説明** | +| ----------- | ------- | ------------------------------------------------------------------------------------------------------------------------- | +| objectName | text | イベントをトリガーしているオブジェクト名。フォームによってトリガーされている場合には含まれていません。 | +| code | integer | フォームイベントの数値。 | +| description | text | フォームイベント名(例: "On After Edit") 詳細は[**Form Events**](../Events/overview.md) の章を参照してください。 | -For example, in the case of a click on a button, the object contains the following properties: +例えば、ボタンをクリックした場合、オブジェクトには以下のプロパティが格納されています: ```json {"code":4,"description":"On Clicked","objectName":"Button2"} ``` -The event object can contain additional properties, depending on the object for which the event occurs. For *eventObj* objects generated on: +イベントオブジェクトには、イベントが発生したオブジェクトによっては追加のプロパティが含まれていることがあります。 これは以下のオブジェクトで生成された*eventObj* オブジェクトが対象です: -- List box or list box column objects, see the *list box documentation on developer.4d.com*. -- 4D View Pro areas, see *On VP Ready form event*. +- リストボックスまたはカラムオブジェクト。詳細は*developer.4d.com でのリストボックスのドキュメント* を参照してください。 +- 4D View Pro エリア。詳細は*On VP Ready フォームイベント* を参照してください。 -**Note:** If there is no current event, **FORM Event** returns a null object. +***注意:*** カレントのイベントが何もない場合、**FORM Event** はnull オブジェクトを返します。 #### 例題 1 -You want to handle the On Clicked event on a button: +ボタン上でOn Clicked イベントを管理したい場合を考えます: ```4d  If(FORM Event.code=On Clicked) @@ -54,11 +54,11 @@ You want to handle the On Clicked event on a button: #### 例題 2 -If you set the column object name with a real attribute name of a dataclass like this: +カラムオブジェクト名に、実際のデータクラスの属性名を以下のように設定した場合: ![](../assets/en/commands/pict4843820.en.png) -You can sort the column using the On Header Click event: +On Header Click イベントを使用してカラムをソートすることができます: ```4d  Form.event:=FORM Event @@ -72,11 +72,11 @@ You can sort the column using the On Header Click event: #### 例題 3 -You want to handle the On Display Details on a list box object with a method set in the *Meta info expression* property: +リストボックスオブジェクトのOn Display Details イベントが発生したときに、*メタ情報式 プロパティ*に設定したメソッドを実行したい場合を考えます: ![](../assets/en/commands/pict4843812.en.png) -The *setColor* method: +*setColor* メソッドの中身です: ```4d  var $event;$0;$meta : Object @@ -92,7 +92,7 @@ The *setColor* method:  $0:=$meta ``` -The resulting list box when rows are selected: +その結果、行が選択された際のリストボックスは以下のようになります: ![](../assets/en/commands/pict4843808.en.png) diff --git a/i18n/ja/docusaurus-plugin-content-docs/current/commands/form-load.md b/i18n/ja/docusaurus-plugin-content-docs/current/commands/form-load.md index 52ebaf414550db..7711dacedad7fc 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/current/commands/form-load.md +++ b/i18n/ja/docusaurus-plugin-content-docs/current/commands/form-load.md @@ -8,41 +8,41 @@ displayed_sidebar: docs -| 引数 | 型 | | 説明 | -| -------- | ------------ | - | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | -| aTable | テーブル | → | Table form to load (if omitted, load a project form) | -| form | Text, Object | → | Name (string) of form (project or table), ora POSIX path (string) to a .json file describing the form, or an object describing the form to open | -| formData | Object | → | フォームに関連づけるデータ | -| \* | 演算子 | → | If passed = command applies to host database when it is executed from a component (parameter ignored outside of this context) | +| 引数 | 型 | | 説明 | +| -------- | ------------ | - | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| aTable | テーブル | → | ロードするテーブルフォーム(省略時はプロジェクトフォームをロード) | +| form | Text, Object | → | (プロジェクトまたはテーブル)フォーム名(文字列)、 あるいはフォームを定義した.jsonファイルへのPOSIXパス(文字列)、 あるいは開くフォームを定義したオブジェクト | +| formData | Object | → | フォームに関連づけるデータ | +| \* | 演算子 | → | 指定時、コマンドはコンポーネントから実行した場合にホストのデータベースコマンドが適応されます(それ以外の場合は無視されます)。 | -*This command is not thread-safe, it cannot be used in preemptive code.* +*このコマンドはスレッドセーフではないので、プリエンプティブなコードでは使用できません。* #### 説明 -The **FORM LOAD** command is used to load the *form* in memory in the current process along with *formData* (optional) in order to print its data or parse its contents.The **FORM LOAD** command is used to load the *form* in memory in the current process along with *formData* (optional) in order to print its data or parse its contents. There can only be one current form per process. +The **FORM LOAD** command is used to load the *form* in memory in the current process along with *formData* (optional) in order to print its data or parse its contents.**FORM LOAD** コマンドを使用してデータ印刷・コンテンツ解析のために *form* 引数で指定したフォームをカレントプロセスにおいて*formData* 引数のデータ(オプション)とともにメモリーにロードします。 1つのプロセスにつきカレントフォームは1つしか指定できません。 *form* 引数には、以下のいづれかを渡すことができます: -- the name of a form, or -- the path (in POSIX syntax) to a valid .json file containing a description of the form to use, or -- an object containing a description of the form. +- フォーム名 +- 使用するフォームの詳細を格納している有効な.josn ファイルへのパス(POSIX シンタックス) +- フォームの詳細を格納しているオブジェクト -When the command is executed from a component, it loads the component forms by default. If you pass the *\** parameter, the method loads the host database forms. +コマンドがコンポーネントから呼び出された場合、デフォルトではコマンドはコンポーネントのフォームをロードします。 *\** 引数を渡した場合、メソッドはホストデータベースのフォームをロードします。 ##### formData -Optionally, you can pass parameters to the *form* using either the *formData* object or the form class object automatically instantiated by 4D if you have [associated a user class to the form](../FormEditor/properties_FormProperties.md#form-class). form data オブジェクト内のプロパティであればどれも[Form](form.md) コマンドを使用することでフォームコンテキストから利用可能になります。 -The form data object is available in the [`On Load` form event](../Events/onLoad.md). +オプションとして、*form* 引数のフォームに、*formData* オブジェクトを使用してパラメーターを渡すことができます。あるいは、[フォームにユーザークラスを割り当てる](../FormEditor/properties_FormProperties.md#form-class) ことをしていた場合に4D によって自動的にインスタンス化されるフォームクラスオブジェクトを使うこともできます。 form data オブジェクト内のプロパティであればどれも[Form](form.md) コマンドを使用することでフォームコンテキストから利用可能になります。 +formData オブジェクトは、[`On Load` form event](../Events/onLoad.md)フォームイベント内で利用可能です。 -For detailed information on the form data object, please refer to the [`DIALOG`](dialog.md) command. +form data オブジェクトについての詳細な情報については、[`DIALOG`](dialog.md) コマンドを参照してください。 -##### Printing data +##### データの印刷 -In order to be able to execute this command, a print job must be opened beforehand using the [OPEN PRINTING JOB](../commands-legacy/open-printing-job.md) command. The [OPEN PRINTING JOB](../commands-legacy/open-printing-job.md) command makes an implicit call to the [FORM UNLOAD](../commands-legacy/form-unload.md) command, so in this context it is necessary to execute **FORM LOAD**. Once loaded, this *form* becomes the current printing form. All the object management commands, and in particular the [Print object](../commands-legacy/print-object.md) command, work with this form. +このコマンドを実行するためには、[OPEN PRINTING JOB](../commands-legacy/open-printing-job.md) コマンドを使って印刷ジョブを事前に開いておく必要があります。 [OPEN PRINTING JOB](../commands-legacy/open-printing-job.md) は [FORM UNLOAD](../commands-legacy/form-unload.md) を暗示的に呼び出すため、このコンテキストでは改めて**FORM LOAD** コマンドを使用する必要があります。 ロードされた*form* はカレントの印刷フォームとなります。 [Print object](../commands-legacy/print-object.md) コマンドを含む、すべてのオブジェクト管理コマンドはこのフォームに対して動作します。 -If a printing form has already been loaded beforehand (via a previous call to the **FORM LOAD** command), it is closed and replaced by *form*. You can open and close several project forms in the same print session. Changing the printing form via the **FORM LOAD** command does not generate page breaks. It is up to the developer to manage page breaks. +**FORM LOAD** コマンドを呼び出す前に、別の印刷フォームがロードされていた場合には、そのフォームは閉じられ、*form* に置き換えられます。 ひとつの印刷セッション内で複数のプロジェクトフォームを開いたり閉じたりすることができます。 **FORM LOAD** で印刷フォームを変更してもページブレークは生成されません。 ページブレークは開発者が別途指定する必要があります。 Only the [`On Load` form event](../Events/onLoad.md) is executed during the opening of the project form, as well as any object methods of the form. Other form events are ignored. The [`On Unload` form event](../Events/onUnload.md) is executed at the end of printing. diff --git a/i18n/ja/docusaurus-plugin-content-docs/current/commands/print-form.md b/i18n/ja/docusaurus-plugin-content-docs/current/commands/print-form.md index 22895befc5c188..208d0162a1b99e 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/current/commands/print-form.md +++ b/i18n/ja/docusaurus-plugin-content-docs/current/commands/print-form.md @@ -8,34 +8,34 @@ displayed_sidebar: docs -| 引数 | 型 | | 説明 | -| --------- | ------------ | - | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -| aTable | テーブル | → | Table owning the form, or Default table, if omitted | -| form | Text, Object | → | Name (string) of the form, or a POSIX path (string) to a .json file describing the form, or an object describing the form to print | -| formData | Object | → | フォームに関連づけるデータ | -| areaStart | Integer | → | Print marker, or Beginning area (if areaEnd is specified) | -| areaEnd | Integer | → | Ending area (if areaStart specified) | -| 戻り値 | Integer | ← | Height of printed section | +| 引数 | 型 | | 説明 | +| --------- | ------------ | - | ----------------------------------------------------------------------------------------------------------------------------- | +| aTable | テーブル | → | フォームが属するテーブル, または 省略した場合は、デフォルトテーブル | +| form | Text, Object | → | フォーム名(文字列)、あるいはフォームを定義した.jsonファイルへのPOSIXパス(文字列)、あるいは印刷するフォームを定義したオブジェクト | +| formData | Object | → | フォームに関連づけるデータ | +| areaStart | Integer | → | 印刷マーカ、または開始エリア(areaEndが指定された場合) | +| areaEnd | Integer | → | 終了エリア(areaStartが指定された場合) | +| 戻り値 | Integer | ← | 印刷されたエリアの高さ | -*This command is not thread-safe, it cannot be used in preemptive code.* +*このコマンドはスレッドセーフではないので、プリエンプティブなコードでは使用できません。* #### 説明 -**Print form** simply prints *form* with the current values of fields and variables of *aTable*.**Print form** simply prints *form* with the current values of fields and variables of *aTable*. It is usually used to print very complex reports that require complete control over the printing process. **Print form** does not do any record processing, break processing or page breaks. These operations are your responsibility. **Print form** prints fields and variables in a fixed size frame only. +**Print form** simply prints *form* with the current values of fields and variables of *aTable*.**Print form** simply prints *form* with the current values of fields and variables of *aTable*.**Print form** は、*aTable* のフィールドや変数の現在の値を使用して*form* 引数で指定したフォームを印刷します。 通常は、印刷処理を完全に制御する必要のある非常に複雑なレポートを印刷するために使用します。 **Print form** はレコード処理、ブレーク処理、改ページ処理を全く行いません。 これらの処理はすべて開発者が行います。 **Print form** は固定されたサイズの枠のなかにフィ-ルドや変数を印刷します。 通常は、印刷処理を完全に制御する必要のある非常に複雑なレポートを印刷するために使用します。 **Print form** はレコード処理、ブレーク処理、改ページ処理を全く行いません。 これらの処理はすべて開発者が行います。 **Print form** は固定されたサイズの枠のなかにフィ-ルドや変数を印刷します。 *form* 引数には、以下のいづれかを渡すことができます: -- the name of a form, or -- the path (in POSIX syntax) to a valid .json file containing a description of the form to use (see *Form file path*), or -- an object containing a description of the form. +- フォーム名 +- 使用するフォームの詳細を格納している有効な.josn ファイルへのパス(POSIX シンタックス、*Form file path* 参照) +- フォームの詳細を格納しているオブジェクト -Since **Print form** does not issue a page break after printing the form, it is easy to combine different forms on the same page. Thus, **Print form** is perfect for complex printing tasks that involve different tables and different forms. To force a page break between forms, use the [PAGE BREAK](../commands-legacy/page-break.md) command. In order to carry printing over to the next page for a form whose height is greater than the available space, call the [CANCEL](../commands-legacy/cancel.md) command before the [PAGE BREAK](../commands-legacy/page-break.md) command. +**Print form** は、フォームの印刷後に改ページを行わないため、同じページに異なるフォームを容易に配置することができます。 したがって、**Print form** は、異なるテーブルや異なるフォームを含む複雑な印刷処理に最適です。 フォーム間で改ページを強制的に行うには[PAGE BREAK](../commands-legacy/page-break.md) コマンドを使用してください。 印刷可能領域を超える高さのフォームの印刷を次のページに持ち越すには、[PAGE BREAK](../commands-legacy/page-break.md) コマンドを使用する前に[CANCEL](../commands-legacy/cancel.md) コマンドを呼び出してください。 したがって、**Print form** は、異なるテーブルや異なるフォームを含む複雑な印刷処理に最適です。 フォーム間で改ページを強制的に行うには[PAGE BREAK](../commands-legacy/page-break.md) コマンドを使用してください。 印刷可能領域を超える高さのフォームの印刷を次のページに持ち越すには、[PAGE BREAK](../commands-legacy/page-break.md) コマンドを使用する前に[CANCEL](../commands-legacy/cancel.md) コマンドを呼び出してください。 -Three different syntaxes may be used: +3つの異なるシンタックスを使用できます: -- **Detail area printing** +- **詳細エリアの印刷** シンタックス: @@ -43,9 +43,9 @@ Three different syntaxes may be used:  height:=Print form(myTable;myForm) ``` -In this case, **Print form** only prints the Detail area (the area between the Header line and the Detail line) of the form. +この場合、**Print form** はフォームの詳細エリア (ヘッダマーカと詳細マーカの間のエリア) だけを印刷します。 -- **Form area printing** +- **フォームエリアの印刷** シンタックス: @@ -53,7 +53,7 @@ In this case, **Print form** only prints the Detail area (the area between the H  height:=Print form(myTable;myForm;marker) ``` -In this case, the command will print the section designated by the *marker*. Pass one of the constants of the *Form Area* theme in the marker parameter: +この場合コマンドは*marker* で示されるセクションを印刷します。 この場合コマンドは*marker* で示されるセクションを印刷します。 以下の*Form Area* テーマの定数のうちの1つをmarker引数に渡します: | 定数 | 型 | 値 | | ------------- | ------- | --- | @@ -81,7 +81,7 @@ In this case, the command will print the section designated by the *marker*. Pas | Form header8 | Integer | 208 | | Form header9 | Integer | 209 | -- **Section printing** +- **セクション印刷** シンタックス: @@ -89,58 +89,58 @@ In this case, the command will print the section designated by the *marker*. Pas  height:=Print form(myTable;myForm;areaStart;areaEnd) ``` -In this case, the command will print the section included between the *areaStart* and *areaEnd* parameters. The values entered must be expressed in pixels. +この場合、コマンドは*areaStart* および*areaEnd* 引数間に含まれる部分を印刷します。 値はピクセル単位で入力しなければいけません。 値はピクセル単位で入力しなければいけません。 **formData** -Optionally, you can pass parameters to the *form* using either the *formData* object or the form class object automatically instantiated by 4D if you have [associated a user class to the form](../FormEditor/properties_FormProperties.md#form-class). form data オブジェクト内のプロパティであればどれも[Form](form.md) コマンドを使用することでフォームコンテキストから利用可能になります。 The form data object is available in the [`On Printing Detail` form event](../Events/onPrintingDetail.md). +オプションとして、*form* 引数のフォームに、*formData* オブジェクトを使用してパラメーターを渡すことができます。あるいは、[フォームにユーザークラスを割り当てる](../FormEditor/properties_FormProperties.md#form-class) ことをしていた場合に4D によって自動的にインスタンス化されるフォームクラスオブジェクトを使うこともできます。 form data オブジェクト内のプロパティであればどれも[Form](form.md) コマンドを使用することでフォームコンテキストから利用可能になります。 formData オブジェクトは、[`On Printing Detail` form event](../Events/onPrintingDetail.md) フォームイベント内で利用可能です。 -For detailed information on the form data object, please refer to the [`DIALOG`](dialog.md) command. +form data オブジェクトについての詳細な情報については、[`DIALOG`](dialog.md) コマンドを参照してください。 -**Return value** +**戻り値** -The value returned by **Print form** indicates the height of the printable area. This value will be automatically taken into account by the [Get printed height](../commands-legacy/get-printed-height.md) command. +**Print form** によって返される値は印刷可能範囲の高さを表します。 この値は、[Get printed height](../commands-legacy/get-printed-height.md) コマンドに自動的に考慮されます。 この値は、[Get printed height](../commands-legacy/get-printed-height.md) コマンドに自動的に考慮されます。 -The printer dialog boxes do not appear when you use **Print form**. The report does not use the print settings that were assigned to the form in the Design environment. There are two ways to specify the print settings before issuing a series of calls to **Print form**: +**Print form** を使用する場合、印刷ダイアログボックスは表示されません。 レポートはデザインモードでフォームに割り当てられた用紙設定を使用しません。 **Print form** を呼び出す前に用紙設定を指定する方法は2通りあります: レポートはデザインモードでフォームに割り当てられた用紙設定を使用しません。 **Print form** を呼び出す前に用紙設定を指定する方法は2通りあります: -- Call [PRINT SETTINGS](../commands-legacy/print-settings.md). In this case, you let the user choose the settings. -- Call [SET PRINT OPTION](../commands-legacy/set-print-option.md) and [GET PRINT OPTION](../commands-legacy/get-print-option.md). In this case, print settings are specified programmatically. +- [PRINT SETTINGS](../commands-legacy/print-settings.md) コマンドを使用する。 この場合、ユーザが設定を行います。 この場合、ユーザが設定を行います。 +- [SET PRINT OPTION](../commands-legacy/set-print-option.md) および [GET PRINT OPTION](../commands-legacy/get-print-option.md) コマンドを使用する。 この場合、用紙設定はプログラムで指定します。 この場合、用紙設定はプログラムで指定します。 -**Print form** builds each printed page in memory. Each page is printed when the page in memory is full or when you call [PAGE BREAK](../commands-legacy/page-break.md). To ensure the printing of the last page after any use of **Print form**, you must conclude with the [PAGE BREAK](../commands-legacy/page-break.md) command (except in the context of an [OPEN PRINTING JOB](../commands-legacy/open-printing-job.md), see note). Otherwise, if the last page is not full, it stays in memory and is not printed. +**Print form** は、印刷するページをそれぞれメモリ中に作成します。 各ページはメモリ中のページがいっぱいになるか、[PAGE BREAK](../commands-legacy/page-break.md) コマンドを実行すると印刷されます。 **Print form** は、印刷するページをそれぞれメモリ中に作成します。 各ページはメモリ中のページがいっぱいになるか、[PAGE BREAK](../commands-legacy/page-break.md) コマンドを実行すると印刷されます。 **Print form** の使用後、最後のページの印刷を確実に行うためには、[PAGE BREAK](../commands-legacy/page-break.md) コマンドで終了しなければなりません(ただし[OPEN PRINTING JOB](../commands-legacy/open-printing-job.md) のコンテキスト内の場合を除く、注意参照)。 そうでないと、最後のページが一杯にならないと、それはメモリ中に残り印刷されません。 そうでないと、最後のページが一杯にならないと、それはメモリ中に残り印刷されません。 -**Warning:** If the command is called in the context of a printing job opened with [OPEN PRINTING JOB](../commands-legacy/open-printing-job.md), you must NOT call [PAGE BREAK](../commands-legacy/page-break.md) for the last page because it is automatically printed by the [CLOSE PRINTING JOB](../commands-legacy/close-printing-job.md) command. If you call [PAGE BREAK](../commands-legacy/page-break.md) in this case, a blank page is printed. +**警告:** このコマンドが[OPEN PRINTING JOB](../commands-legacy/open-printing-job.md) で開かれた印刷ジョブのコンテキストで呼び出された場合、[PAGE BREAK](../commands-legacy/page-break.md) を使用して最後のページを印刷しようとしてはいけません。なぜなら、最後のページは[CLOSE PRINTING JOB](../commands-legacy/close-printing-job.md) コマンドによって自動的に印刷されるからです。 この状況で[PAGE BREAK](../commands-legacy/page-break.md) を使用した場合、空のページが印刷されます。 この状況で[PAGE BREAK](../commands-legacy/page-break.md) を使用した場合、空のページが印刷されます。 -This command prints external areas and objects (for example, 4D Write or 4D View areas). The area is reset for each execution of the command. +このコマンドは外部エリアとオブジェクト(例えば 4D Write や 4D Viewエリアなど) を印刷します。 エリアはコマンドの実行の際に毎回リセットされます。 エリアはコマンドの実行の際に毎回リセットされます。 -**Warning:** Subforms are not printed with **Print form**. To print only one form with such objects, use [PRINT RECORD](../commands-legacy/print-record.md) instead. +**警告:** サブフォームは、**Print form** では印刷はされません。 **警告:** サブフォームは、**Print form** では印刷はされません。 そのようなオブジェクトを含んだフォームを一つだけ印刷したい場合は、代わりに[PRINT RECORD](../commands-legacy/print-record.md) を使用して下さい。 -**Print form** generates only one [`On Printing Detail` event](../Events/onPrintingDetail.md) for the form method. +**Print form** は、1回だけフォームメソッドの[`On Printing Detail` event](../Events/onPrintingDetail.md) イベントを生成します。 -**4D Server:** This command can be executed on 4D Server within the framework of a stored procedure. In this context: +**4D Server:** このコマンドは、ストアドプロシージャのフレームワークにおいて4D Server上で実行することができます。 この状況では、次の制約があります: この状況では、次の制約があります: -- Make sure that no dialog box appears on the server machine (except for a specific requirement). -- In the case of a problem concerning the printer (out of paper, printer disconnected, etc.), no error message is generated. +- サーバマシン上ではダイアログボックスを一切表示しないでください (特定の必要性がある場合を除く)。 +- プリンタ関連の問題が発生しても (用紙切れ、プリンタ接続切断等) 、エラーメッセージは生成されません。 #### 例題 1 -The following example performs as a [PRINT SELECTION](../commands-legacy/print-selection.md) command would. However, the report uses one of two different forms, depending on whether the record is for a check or a deposit: +以下の例は[PRINT SELECTION](../commands-legacy/print-selection.md) コマンドをエミュレートします。 しかし、レコードが小切手用かデポジット用であるかによって2種類のフォームの1つを使用します: しかし、レコードが小切手用かデポジット用であるかによって2種類のフォームの1つを使用します: ```4d - QUERY([Register]) // Select the records + QUERY([Register]) // レコードを選択  If(OK=1) -    ORDER BY([Register]) // Sort the records +    ORDER BY([Register]) // レコードをソート     If(OK=1) -       PRINT SETTINGS // Display Printing dialog boxes +       PRINT SETTINGS // 印刷設定ダイアログを表示        If(OK=1)           For($vlRecord;1;Records in selection([Register]))              If([Register]Type ="Check") -                Print form([Register];"Check Out") // Use one form for checks +                Print form([Register];"Check Out") // 小切手用のフォーム              Else -                Print form([Register];"Deposit Out") // Use another form for deposits +                Print form([Register];"Deposit Out") // デポジット用のフォーム              End if              NEXT RECORD([Register])           End for -          PAGE BREAK // Make sure the last page is printed +          PAGE BREAK // 最後のページを印刷        End if     End if  End if @@ -148,15 +148,15 @@ The following example performs as a [PRINT SELECTION](../commands-legacy/print-s #### 例題 2 -Refer to the example of the [SET PRINT MARKER](../commands-legacy/set-print-marker.md) command. +[SET PRINT MARKER](../commands-legacy/set-print-marker.md) コマンドの例題参照 #### 例題 3 -This form is used as dialog, then printed with modifications: +このフォームはダイアログとして使用され、変更されたあと印刷されます: ![](../assets/en/commands/pict6264975.en.png) -The form method: +フォームメソッド: ```4d  If(Form event code=On Printing Detail) @@ -166,7 +166,7 @@ The form method:  End if ``` -The code that calls the dialog then prints its body: +ダイアログを表示し、その後印刷するコードは以下のようなものになります: ```4d  $formData:=New object diff --git a/i18n/ja/docusaurus-plugin-content-docs/current/commands/process-activity.md b/i18n/ja/docusaurus-plugin-content-docs/current/commands/process-activity.md index fbf5dbb05621aa..068176c09191c1 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/current/commands/process-activity.md +++ b/i18n/ja/docusaurus-plugin-content-docs/current/commands/process-activity.md @@ -8,95 +8,95 @@ displayed_sidebar: docs -| 引数 | 型 | | 説明 | -| --------- | ------- | - | -------------------------------------------------------------------------------------- | -| sessionID | Text | → | Session ID | -| options | Integer | → | Return options | -| 戻り値 | Object | ← | Snapshot of running processes and/or (4D Server only) user sessions | +| 引数 | 型 | | 説明 | +| --------- | ------- | - | -------------------------------------------------------------- | +| sessionID | Text | → | セッションID | +| options | Integer | → | 返される情報を指定するオプション | +| 戻り値 | Object | ← | 実行中のプロセスまたはユーザーセッション(4D Serverのみ) のスナップショット |
    履歴 -| リリース | 内容 | -| ----- | -------------------------------- | -| 20 R7 | Support of *sessionID* parameter | +| リリース | 内容 | +| ----- | ------------------- | +| 20 R7 | *sessionID* 引数のサポート |
    #### 説明 -The **Process activity** command returns a snapshot of running processes and/or (4D Server only) connected user sessions at a given time.The **Process activity** command returns a snapshot of running processes and/or (4D Server only) connected user sessions at a given time. This command returns all processes, including internal processes that are not reachable by the [Process info](process-info.md) command. +The **Process activity** command returns a snapshot of running processes and/or (4D Server only) connected user sessions at a given time.The **Process activity** command returns a snapshot of running processes and/or (4D Server only) connected user sessions at a given time.**Process activity** コマンドは特定の時刻での、実行中のプロセスや接続ユーザーセッション(4D Server のみ) のスナップショットを返します。 このコマンドは、全てのプロセスを返します。これには、[Process info](process-info.md) コマンドでもアクセスできない内部プロセスも含まれます。 このコマンドは、全てのプロセスを返します。これには、[Process info](process-info.md) コマンドでもアクセスできない内部プロセスも含まれます。 -By default when used without any parameters, **Process activity** returns an object containing the following properties: +デフォルトで、引数を渡さずに使用した場合、**Process activity** は以下のプロパティを格納したオブジェクトを返します: -- "processes", a collection of all processes -- "sessions" (4D Server only), a collection of all sessions +- "processes" には全てのプロセスのコレクションが格納されています +- "sessions" (4D Server の場合のみ) には全てのセッションのコレクションが格納されています -On 4D Server, you can filter information to be returned using the optional *sessionID* and *options* parameters: +4D Server では、オプションの*sessionID* および *options* 引数を使用することで、返される情報をフィルターすることができます: -- If you pass a user session ID in the *sessionID* parameter, the command only returns information related to this session. By default if the *options* parameter is omitted, the returned object contains a collection with all processes related to the session and a collection with a single object describing the session. If you pass an invalid session ID, a **null** object is returned. -- You can select the collection(s) to return by passing one of the following constants in the *options* parameter: +- *sessionID* 引数にユーザーセッションID を渡した場合、コマンドはそのセッションに関連した情報のみを返します。 *options* 引数が省略された場合、デフォルトで返されるオブジェクトには、セッションに関連した全てのプロセスのコレクションと、セッションの詳細を説明した単一のオブジェクトを格納したコレクションが格納されています。 無効なセッションID を渡した場合、**null** オブジェクトが返されます。 *options* 引数が省略された場合、デフォルトで返されるオブジェクトには、セッションに関連した全てのプロセスのコレクションと、セッションの詳細を説明した単一のオブジェクトを格納したコレクションが格納されています。 無効なセッションID を渡した場合、**null** オブジェクトが返されます。 +- *options* 引数に以下の定数のいづれか一つを渡すことで、返されるコレクションを選択することができます: -| 定数 | 値 | 説明 | -| ---------------------- | - | -------------------------------------------------------------------------------- | -| Processes and sessions | 0 | Returns both "processes" and "sessions" lists (default value) | -| Processes only | 1 | Returns only the "processes" list | -| Sessions only | 2 | Returns only the "sessions" list | +| 定数 | 値 | 説明 | +| ---------------------- | - | ------------------------------------------------------------------ | +| Processes and sessions | 0 | "processes" および "sessions" の両方の一覧を返します(デフォルト値)。 | +| Processes only | 1 | "processes" の一覧のみを返します。 | +| Sessions only | 2 | "sessions" の一覧のみを返します。 | :::note -When executed on 4D in remote or local mode, `Process activity` always returns the list of running processes (*sessionID* and *options* parameters are ignored). +リモート、あるいはローカルモードの4D で実行された場合、`Process activity` は実行中のプロセスの一覧のみを返します(この場合*sessionID* および *options* 引数は無視されます)。 ::: **Sessions** -The "sessions" property contains a collection of objects describing all running sessions on the server. For a description of session object properties, please refer to the [`Session info`](session-info.md) command. +"sessions" プロパティには、サーバーで実行中の全てのユーザーセッションを記述するオブジェクトのコレクションが格納されます。 セッションオブジェクトのプロパティの詳細については、[`Session info`](session-info.md) コマンドを参照してください。 セッションオブジェクトのプロパティの詳細については、[`Session info`](session-info.md) コマンドを参照してください。 -:::note Notes +:::note 注記 -- You can get the object of a session using the [Session](session.md) command. -- `Process activity` returns remote client sessions, stored procedure session and rest sessions but not Web sessions (limitation). +- セッションのオブジェクトは、[Session](session.md) コマンドを使用することで取得できます。 +- `Process activity` はリモートクライアントセッション、ストアドプロシージャーセッションおよびREST セッションを返しますが、Web セッションは返しません(制約)。 ::: **Processes** -The "processes" property contains a collection of process objects describing all running processes. For a description of process object properties, please refer to the [`Process info`](process-info.md) command. +"process"プロパティには、サーバーで実行中の全てのプロセスを記述するオブジェクトのコレクションが格納されます。 プロセスオブジェクトのプロパティの詳細な情報については、[`Process info`](process-info.md) コマンドを参照してください。 プロセスオブジェクトのプロパティの詳細な情報については、[`Process info`](process-info.md) コマンドを参照してください。 -On the server, the `Process activity` command returns an additional "session" property: +サーバー上では、`Process activity` コマンドは追加の"session" プロパティを返します: -| Additional property | 型 | 説明 | | -| ------------------- | ------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | - | -| session | Object | The [`.info`](../API/SessionClass.md#info) property of the session in which the process is running. Undefined if the `Processes only` parameter is passed. | | +| 追加のプロパティ | 型 | 説明 | | +| -------- | ------ | -------------------------------------------------------------------------------------------------------------------------------------------- | - | +| session | Object | プロセスが実行中のセッションの[`.info`](../API/SessionClass.md#info) プロパティ。 `Processes only` 引数が渡されていた場合には未定義となります。 `Processes only` 引数が渡されていた場合には未定義となります。 | | #### 例題 1 -You want to get the collection of all user sessions: +全てのユーザーセッションのコレクションを取得したい場合を考えます: ```4d -  //To be executed on the server +  // サーバー側で実行すること    var $o : Object  var $i : Integer var $processName;$userName : Text   - $o:=Process activity //Get process & session info - For($i;0;($o.processes.length)-1) //Iterate over the "processes" collection + $o:=Process activity // プロセスとセッションの情報を取得 + For($i;0;($o.processes.length)-1) // "processes" コレクション内をループ $processName:=$o.processes[$i].name - $userName:=String($o.processes[$i].session.userName) // Easy access to userName - //use String because session object might be undefined + $userName:=String($o.processes[$i].session.userName) // userName へ簡単にアクセスする + // session オブジェクトがUndefined の場合があるのでString コマンドを必ず使用すること End for ``` #### 例題 2 -You want to get all processes related to the current session: +カレントセッションに関連した全てのプロセスを取得した場合を考えます: ```4d - // to be executed on the server + // サーバー側で実行すること var $sessionID : Text:=Session.id var $o : Object diff --git a/i18n/ja/docusaurus-plugin-content-docs/current/commands/session-info.md b/i18n/ja/docusaurus-plugin-content-docs/current/commands/session-info.md index e05b99067826fa..ca6e7593b88f83 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/current/commands/session-info.md +++ b/i18n/ja/docusaurus-plugin-content-docs/current/commands/session-info.md @@ -10,7 +10,7 @@ displayed_sidebar: docs | 引数 | 型 | | 説明 | | --------- | ------- | :-: | ----------------------------- | -| sessionID | Integer | → | Session ID | +| sessionID | Integer | → | セッションID | | 戻り値 | Object | ← | Information about the session | diff --git a/i18n/ja/docusaurus-plugin-content-docs/current/commands/super.md b/i18n/ja/docusaurus-plugin-content-docs/current/commands/super.md index 660c3e4239e768..168c0915a47981 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/current/commands/super.md +++ b/i18n/ja/docusaurus-plugin-content-docs/current/commands/super.md @@ -19,7 +19,7 @@ displayed_sidebar: docs `Super` は次の 2つの目的のために使います: -1. Inside a [constructor code]((../Concepts/classes.md#class-constructor), `Super` is a command that allows to call the constructor of the superclass. When used in a constructor, the `Super` command appears alone and must be used before the [`This`](this.md) keyword is used. +1. `Square` クラスには、スーパークラスメソッドを呼び出すメンバーメソッドを定義します: When used in a constructor, the `Super` command appears alone and must be used before the [`This`](this.md) keyword is used. - 継承ツリーにおいて、すべてのクラスコンストラクターが正しく呼び出されていない場合には、エラー -10748 が生成されます。 呼び出しが有効であることを確認するのは、開発者の役目となります。 - スーパークラスがコンストラクトされるより先に、`This` コマンドを使った場合には、エラー -10743 が生成されます。 @@ -41,7 +41,7 @@ Super.doSomething(42) // スーパークラスにて宣言されている #### 例題 1 -クラスコンストレクター内で `Super` を使う例です。 `Rectangle` と `Square` クラス の共通要素がコンストラクター内で重複しないよう、このコマンドを呼び出します。 +クラスコンストレクター内で `Super` を使う例です。 クラスコンストレクター内で `Super` を使う例です。 `Rectangle` と `Square` クラス の共通要素がコンストラクター内で重複しないよう、このコマンドを呼び出します。 ```4d // Class: Rectangle diff --git a/i18n/ja/docusaurus-plugin-content-docs/current/commands/this.md b/i18n/ja/docusaurus-plugin-content-docs/current/commands/this.md index b9d0a18bf5dfec..9fd993db32dc1e 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/current/commands/this.md +++ b/i18n/ja/docusaurus-plugin-content-docs/current/commands/this.md @@ -45,7 +45,7 @@ $o:=cs.ob.new() $val:=$o.a //42 ``` -> コンストラクター内で [Super](#super) キーワードを使ってスーパークラスのコンストラクターを呼び出す場合、必ず `This` より先にスーパークラスのコンストラクターを呼ぶ必要があることに留意してください。順番を違えるとエラーが生成されます。 See [this example](super.md#example-1). +> コンストラクター内で [Super](#super) キーワードを使ってスーパークラスのコンストラクターを呼び出す場合、必ず `This` より先にスーパークラスのコンストラクターを呼ぶ必要があることに留意してください。順番を違えるとエラーが生成されます。 こちらの [例題](#例題-1) を参照ください。 See [this example](super.md#example-1). 基本的に、`This` はメソッドの呼び出し元のオブジェクトを指します。 @@ -66,7 +66,7 @@ $val:=$o.f() //8 ``` -この例では、変数 $o に代入されたオブジェクトは *f* プロパティを持たないため、これをクラスより継承します。 *f* は $o のメソッドとして呼び出されるため、メソッド内の `This` は $o を指します。 +この例では、変数 $o に代入されたオブジェクトは *f* プロパティを持たないため、これをクラスより継承します。 *f* は $o のメソッドとして呼び出されるため、メソッド内の `This` は $o を指します。 *f* は $o のメソッドとして呼び出されるため、メソッド内の `This` は $o を指します。 #### フォーミュラオブジェクト diff --git a/i18n/ja/docusaurus-plugin-content-docs/version-19/API/DataClassClass.md b/i18n/ja/docusaurus-plugin-content-docs/version-19/API/DataClassClass.md index 24ffc2f4656ff7..a22dc5a28777e4 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/version-19/API/DataClassClass.md +++ b/i18n/ja/docusaurus-plugin-content-docs/version-19/API/DataClassClass.md @@ -723,7 +723,7 @@ attributePath|formula 比較演算子 値 | 宣言に Not 条件を適用 | NOT | 複数の演算子が含まれる宣言の前に NOT を使用する場合にはカッコをつける必要があります。 | | キーワードを含む | % | キーワードは、文字列あるいはピクチャー型の属性内で使用されるものが対象です。 | -* **値**: コレクションの各要素、あるいはエンティティセレクションの各エンティティのプロパティのカレント値に対して比較する値。 **プレースホルダー** (後述の **プレースホルダーの使用** 参照) か、あるいはデータ型プロパティと同じ型の式を使用することができます。 定数値を使用する場合、以下の原則に従う必要があります: +* **値**: コレクションの各要素、あるいはエンティティセレクションの各エンティティのプロパティのカレント値に対して比較する値。 **プレースホルダー** (後述の **プレースホルダーの使用** 参照) か、あるいはデータ型プロパティと同じ型の式を使用することができます。 Note that, in case of type mismatch with scalar types (text, date, number...), 4D will try to convert the **value** type to the attribute data type whenever possible, for an easier handling of values coming from the Internet. For example, if the string "v20" is entered as **value** to compare with an integer attribute, it will be converted to 20. 定数値を使用する場合、以下の原則に従う必要があります: * **テキスト** テキスト型の定数値の場合は単一引用符つき、あるいはなしでも渡すことができます(後述の **引用符を使用する** 参照)。 文字列中の文字列を検索する ("含まれる" クエリ) には、ワイルドカード記号 (@) を使用して検索文字列を指定します (例: "@Smith@")。 また以下のキーワードはテキスト定数においては使用できません: true, false。 * **ブール** 型の定数値: **true** または **false** (文字の大小を区別します) * **数値** 型の定数値: 浮動小数点は '.' (ピリオド) で区切られます。 日付型の定数値: "YYYY-MM-DD" フォーマット。 diff --git a/i18n/ja/docusaurus-plugin-content-docs/version-19/API/EntityClass.md b/i18n/ja/docusaurus-plugin-content-docs/version-19/API/EntityClass.md index 448b9a63eddc66..1e37491a407485 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/version-19/API/EntityClass.md +++ b/i18n/ja/docusaurus-plugin-content-docs/version-19/API/EntityClass.md @@ -47,13 +47,13 @@ title: Entity #### 説明 -データクラス属性はすべて、エンティティのプロパティとして利用可能です。各エンティティのプロパティは、当該 エンティティの属性値を格納します。 +`.touchedAttributes()` 関数は、 メモリに読み込み後に変更されたエンティティの属性名を返します。 > データクラス属性は \[ ] を使用したシンタックスを使用することでもアクセス可能です。 この属性値タイプは属性の種類 ([](DataClassClass.md#attributename).kind; リレーションまたはストレージ) によります。 * *attributeName* で指定した属性がストレージ型の場合: `.attributeName` は *attributeName* と同じ型の値を返します。 -* *attributeName* で指定した属性がリレートエンティティ型の場合: `.attributeName` はリレートエンティティを返します。 リレートエンティティの値は、ドット記法でプロパティを繋げることでアクセス可能です。例: "myEntity.employer.employees[0].lastname" +* この関数は、種類 ([kind](DataClassClass.md#attributename)) が **storage** あるいは **relatedEntity** であるプロパティに適用されます。 リレート先のエンティティそのものが変更された場合 (外部キーの変更)、リレーションの名称とそのプライマリーキー名が *attributeName* プロパティに返されます (リレーション名についての *value* および *otherValue* は空になります)。 * *attributeName* で指定した属性がリレートエンティティズ型の場合: `.attributeName` はリレートエンティティの新しいエンティティセレクションを返します。 重複しているエンティティは取り除かれます (返されるのは順列なしのエンティティセレクションです)。 #### 例題 @@ -92,8 +92,10 @@ title: Entity #### 説明 -`.clone()` 関数は、 対象エンティティと同じレコードを参照する新規エンティティをメモリ内に作成します。 このメソッドを使用するとエンティティを個別に更新することができます。 -> エンティティに対して何らかの変更をおこなった場合、それらは [`.save( )`](#save) 関数が実行されたときのみ、参照先のレコードに保存されるという点に注意してください。 +`.clone()` 関数は、 対象エンティティと同じレコードを参照する新規エンティティをメモリ内に作成します。 + +This function allows you to update entities separately. Note however that, for performance reasons, the new entity shares the same reference of object attributes as the cloned entity. +> Keep in mind that any modifications done to entities will be saved in the referenced record only when the [`.save()`](#save) function is executed. この関数は、すでにデータベースに保存されているエンティティに対してのみ使用可能です。 新規に作成されたエンティティ([`.isNew()`](#isnew) が **true** を返すもの) に対して呼び出すことはできません。 @@ -151,7 +153,7 @@ title: Entity コレクションに含まれるのは異なる値を持っていた属性のみです。 差異が見つからない場合、`diff()` は空のコレクションを返します。 -この関数は、種類 ([kind](DataClassClass.md#attributename)) が **storage** あるいは **relatedEntity** であるプロパティに適用されます。 リレート先のエンティティそのものが変更された場合 (外部キーの変更)、リレーションの名称とそのプライマリーキー名が *attributeName* プロパティに返されます (リレーション名についての *value* および *otherValue* は空になります)。 +この関数は、種類 ([kind](DataClassClass.md#attributename)) が **storage** あるいは **relatedEntity** であるプロパティに適用されます。 *attributeName* で指定した属性がリレートエンティティ型の場合: `.attributeName` はリレートエンティティを返します。 比較するどちらかのエンティティが **Null** である場合、エラーが生成されます。 @@ -281,7 +283,7 @@ vCompareResult2 ($attributesToInspect についての差異のみ返されます ] ``` -vCompareResult3 ($e1 において更新された (touch された) 属性のみが返されます) +vCompareResult1 (すべての差異が返されています): ```4d [ @@ -335,9 +337,9 @@ vCompareResult3 ($e1 において更新された (touch された) 属性のみ #### 説明 -`.drop()` 関数は、 データストアからエンティティに格納されているデータを削除します。データクラスに対応するテーブルからエンティティが削除される一方、 エンティティそのものはメモリ内に残るという点に注意してください。 +`.drop()` 関数は、 データストアからエンティティに格納されているデータを削除します。 データクラスに対応するテーブルからエンティティが削除される一方、 エンティティそのものはメモリ内に残るという点に注意してください。 -マルチユーザー、あるいはマルチプロセスアプリケーションにおいて、`.drop()` 関数は ["オプティミスティック・ロック"](ORDA/entities.md#entity-locking) 機構のもとで実行されます。これはレコードが保存されるたびに内部的なロックスタンプが自動的に増分していくという機構です。 +マルチユーザー、あるいはマルチプロセスアプリケーションにおいて、`.drop()` 関数は ["オプティミスティック・ロック"](ORDA/entities.md#entity-locking) 機構のもとで実行されます。 これはレコードが保存されるたびに内部的なロックスタンプが自動的に増分していくという機構です。 *mode* 引数を渡さなかった場合のデフォルトでは、同エンティティが他のプロセスまたはユーザーによって変更されていた場合 (つまり、スタンプが変更されていた場合) にエラーを返します (以下参照)。 @@ -358,7 +360,7 @@ vCompareResult3 ($e1 において更新された (touch された) 属性のみ | lockInfo | | object | ロック元についての情報 | | | task_id | number | プロセスID | | | user_name | text | マシン上でのセッションユーザー名 | -| | user4d_alias | text | `SET USER ALIAS` で設定されていればユーザーエイリアス。それ以外は 4Dディレクトリのユーザー名 | +| | user4d_alias | text | `SET USER ALIAS` で設定されていればユーザーエイリアス。 それ以外は 4Dディレクトリのユーザー名 | | | host_name | text | マシン名 | | | task_name | text | プロセス名 | | | client_version | text | | @@ -373,8 +375,8 @@ vCompareResult3 ($e1 において更新された (touch された) 属性のみ | 定数 | 値 | 説明 | | ----------------------------------------- | - | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | | `dk status entity does not exist anymore` | 5 | エンティティはもうデータ内に存在していません。 このエラーは以下のような場合に起きえます:
  • エンティティがドロップされている (スタンプが変更されていて、メモリ空間は解放されている)
  • エンティティがドロップされていて、他のプライマリーキー値を持つエンティティで置き換えられている (スタンプは変更されていて、新しいエンティティがメモリ空間を使用している)。 entity.drop( ) を使用するとき、このエラーは dk force drop if stamp changed オプションを使用した場合に返されることがあります。 entity.lock( ) を使用するとき、このエラーは dk reload drop if stamp changed オプションを使用した場合に返されることがあります。
  • **割り当てられた statusText**: "Entity does not exist anymore" (エンティティはもう存在しません) | -| `dk status locked` | 3 | エンティティはペシミスティック・ロックでロックされています。
    **割り当てられた statusText**: "既にロックされています" | -| `dk status serious error` | 4 | 深刻なエラーとは、低レベルのデータベースエラー (例: 重複キー)、ハードウェアエラーなどです。
    **割り当てられた statusText**: "Other error" (その他のエラー) | +| `dk status locked` | 3 | エンティティはペシミスティック・ロックでロックされています。
    **割り当てられた statusText**: "既にロックされています" | +| `dk status serious error` | 4 | 深刻なエラーとは、低レベルのデータベースエラー (例: 重複キー)、ハードウェアエラーなどです。
    **割り当てられた statusText**: "その他のエラー" | | `dk status stamp has changed` | 2 | エンティティの内部的なスタンプ値がデータ内に保存されているエンティティのものと合致しません (オプティミスティック・ロック)。
  • entity.save( ) の場合: dk auto merge オプションが使用されていない場合に限りエラー
  • entity.drop( ) の場合: dk force drop if stamp changed オプションが使用されていない場合に限りエラー
  • entity.lock( ) の場合: dk reload if stamp changed オプションが使用されていない場合に限りエラー
  • **割り当てられた statusText**: "Stamp has changed"
  • | #### 例題 1 @@ -390,7 +392,7 @@ vCompareResult3 ($e1 において更新された (touch された) 属性のみ $status:=$employee.drop() Case of :($status.success) - ALERT($employee.firstName+" "+$employee.lastName+" をドロップしました。") // ドロップされたエンティティはメモリ内に残ります + ALERT($employee.firstName+" "+$employee.lastName+" をドロップしました。 ") // ドロップされたエンティティはメモリ内に残ります :($status.status=dk status stamp has changed) ALERT($status.statusText) End case @@ -409,7 +411,7 @@ vCompareResult3 ($e1 において更新された (touch された) 属性のみ $status:=$employee.drop(dk force drop if stamp changed) Case of :($status.success) - ALERT($employee.firstName+" "+$employee.lastName+" をドロップしました。") // ドロップされたエンティティはメモリ内に残ります + ALERT($employee.firstName+" "+$employee.lastName+" をドロップしました。 ") // ドロップされたエンティティはメモリ内に残ります :($status.status=dk status entity does not exist anymore) ALERT($status.statusText) End case @@ -642,9 +644,9 @@ vCompareResult3 ($e1 において更新された (touch された) 属性のみ -| 引数 | 型 | | 説明 | -| --- | ------------------ |:--:| ------------------------------------------------------------------ | -| 戻り値 | 4D.EntitySelection | <- | エンティティが所属するエンティティセレクション (見つからなければ null)| +| 引数 | 型 | | 説明 | +| --- | ------------------ |:--:| --------------------------------------------------------------- | +| 戻り値 | 4D.EntitySelection | <- | エンティティのスタンプ (エンティティが作成されたばかりの場合には 0)| | @@ -685,9 +687,9 @@ vCompareResult3 ($e1 において更新された (touch された) 属性のみ -| 引数 | 型 | | 説明 | -| --- | ------- |:--:| --------------------------------------------------------------- | -| 戻り値 | Integer | <- | エンティティのスタンプ (エンティティが作成されたばかりの場合には 0)| +| 引数 | 型 | | 説明 | +| --- | ------- |:--:| ------------------------------------------------------------------ | +| 戻り値 | Integer | <- | エンティティが所属するエンティティセレクション (見つからなければ null)| | @@ -695,7 +697,7 @@ vCompareResult3 ($e1 において更新された (touch された) 属性のみ `.getStamp()` 関数は、 エンティティのスタンプの値を返します。 -内部スタンプは、エンティティが保存されるたびに 4D によって自動的にインクリメントされます。 これは同じエンティティに対する複数のユーザーの同時アクセス・編集を管理します。この機構の詳細については、[**エンティティロッキング**](ORDA/entities.md#エンティティロッキング) を参照ください。 +内部スタンプは、エンティティが保存されるたびに 4D によって自動的にインクリメントされます。 これは同じエンティティに対する複数のユーザーの同時アクセス・編集を管理します。 この機構の詳細については、[**エンティティロッキング**](ORDA/entities.md#エンティティロッキング) を参照ください。 > (一度も保存されていない) 新規エンティティに対しては、このメソッドは 0 を返します。 しかしながら、エンティティがまだ作成されたばかりかどうかを調べるには、[isNew()](#isnew) の使用が推奨されます。 #### 例題 @@ -779,9 +781,9 @@ vCompareResult3 ($e1 において更新された (touch された) 属性のみ -| 引数 | 型 | | 説明 | -| --- | ------- |:--:| --------------------------------------------------------------------- | -| 戻り値 | Boolean | <- | エンティティが作成されたばかりで未保存の場合は true。 それ以外は false。| +| 引数 | 型 | | 説明 | +| --- | ------- |:--:| ---------------------------------------------------------------------- | +| 戻り値 | Boolean | <- | エンティティが作成されたばかりで未保存の場合は true。 それ以外は false。 | | @@ -797,7 +799,7 @@ vCompareResult3 ($e1 において更新された (touch された) 属性のみ $emp:=ds.Employee.new() If($emp.isNew()) - ALERT("新規エンティティです。") + ALERT("新規エンティティです。 ") End if ``` @@ -912,7 +914,7 @@ vCompareResult3 ($e1 において更新された (touch された) 属性のみ | 定数 | 値 | 説明 | | ----------------------------------------- | - | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | | `dk status entity does not exist anymore` | 5 | エンティティはもうデータ内に存在していません。 このエラーは以下のような場合に起きえます:
  • エンティティがドロップされている (スタンプが変更されていて、メモリ空間は解放されている)
  • エンティティがドロップされていて、他のプライマリーキー値を持つエンティティで置き換えられている (スタンプは変更されていて、新しいエンティティがメモリ空間を使用している)。 entity.drop( ) を使用するとき、このエラーは dk force drop if stamp changed オプションを使用した場合に返されることがあります。 entity.lock( ) を使用するとき、このエラーは dk reload drop if stamp changed オプションを使用した場合に返されることがあります。

  • **割り当てられた statusText**: "Entity does not exist anymore" (エンティティはもう存在しません) | -| `dk status locked` | 3 | エンティティはペシミスティック・ロックでロックされています。
    **割り当てられた statusText**: "既にロックされています" | +| `dk status locked` | 3 | エンティティはペシミスティック・ロックでロックされています。
    **割り当てられた statusText**: "既にロックされています" | | `dk status serious error` | 4 | 深刻なエラーとは、低レベルのデータベースエラー (例: 重複キー)、ハードウェアエラーなどです。
    **割り当てられた statusText**: "その他のエラー" | | `dk status stamp has changed` | 2 | エンティティの内部的なスタンプ値がデータ内に保存されているエンティティのものと合致しません (オプティミスティック・ロック)。
  • entity.save( ) の場合: dk auto merge オプションが使用されていない場合に限りエラー
  • entity.drop( ) の場合: dk force drop if stamp changed オプションが使用されていない場合に限りエラー
  • entity.lock( ) の場合: dk reload if stamp changed オプションが使用されていない場合に限りエラー

  • **割り当てられた statusText**: "スタンプが変更されています" | @@ -1058,24 +1060,24 @@ vCompareResult3 ($e1 において更新された (touch された) 属性のみ #### 説明 -`.reload()` 関数は、 エンティティの中身をメモリ内にリロードします。この時、リロード元となるのはデータストアのデータクラスに対応するテーブルに保存されている情報です。 エンティティが同じプライマリーキーで存在している場合にのみリロードは実行されます。 +`.reload()` 関数は、 エンティティの中身をメモリ内にリロードしますこの時、リロード元となるのはデータストアのデータクラスに対応するテーブルに保存されている情報です。 エンティティが同じプライマリーキーで存在している場合にのみリロードは実行されます。 **戻り値** `.reload( )` によって返されるオブジェクトには以下のプロパティが格納されます: -| プロパティ | 型 | 説明 | -| ---------------- | ------- | --------------------------------------------------------------- | -| success | boolean | リロードが成功した場合には true、それ以外は false。
    ***エラーの場合にのみ利用可能***: | -| status(\*) | number | エラーコード、以下参照 | -| statusText(\*) | text | エラーの詳細、以下参照 | +| プロパティ | 型 | 説明 | +| ---------------- | ------- | ---------------------------------------------------------------- | +| success | boolean | リロードが成功した場合には true、それ以外は false。
    ***エラーの場合にのみ利用可能***: | +| status(\*) | number | エラーコード、以下参照 | +| statusText(\*) | text | エラーの詳細、以下参照 | (\*) エラー時には *Result* オブジェクトの *status* あるいは *statusText* プロパティに以下のいずれかの値が返されます: | 定数 | 値 | 説明 | | ----------------------------------------- | - | ------------------------------------------------------------------------------------------------------------------------------------------------------------------ | | `dk status entity does not exist anymore` | 5 | エンティティはもうデータ内に存在していません。 このエラーは以下のような場合に起きえます:
  • エンティティがドロップされている (スタンプが変更されていて、メモリ空間は解放されている)
  • エンティティがドロップされていて、他のプライマリーキー値を持つエンティティで置き換えられている (スタンプは変更されていて、新しいエンティティがメモリ空間を使用している)。 entity.drop( ) を使用するとき、このエラーは dk force drop if stamp changed オプションを使用した場合に返されることがあります。 entity.lock( ) を使用するとき、このエラーは dk reload drop if stamp changed オプションを使用した場合に返されることがあります。

  • ***割り当てられた statusText***: "エンティティはもう存在しません" | -| `dk status serious error` | 4 | 深刻なエラーとは、低レベルのデータベースエラー (例: 重複キー)、ハードウェアエラーなどです。
    ***割り当てられた statusText***: "その他のエラー" | +| `dk status serious error` | 4 | 深刻なエラーとは、低レベルのデータベースエラー (例: 重複キー)、ハードウェアエラーなどです。
    ***割り当てられた statusText***: "その他のエラー" | #### 例題 @@ -1122,11 +1124,11 @@ vCompareResult3 ($e1 において更新された (touch された) 属性のみ #### 説明 -`.save()` 関数は、 エンティティの変更内容を保存します 。変更内容は、データクラスに対応するテーブル内に保存されます。 エンティティを作成したあと、あるいはエンティティに対して保存したい変更をおこなったあとにはこの関数を呼び出す必要があります。 +`.save()` 関数は、 エンティティの変更内容を保存します 。 変更内容は、データクラスに対応するテーブル内に保存されます。 エンティティを作成したあと、あるいはエンティティに対して保存したい変更をおこなったあとにはこの関数を呼び出す必要があります。 保存処理は、少なくとも一つのエンティティ属性が "touched" である (更新されている) 場合にのみ実行されます ([`.touched()`](#touched) および [`.touchedAttributes()`](#touchedattributes) 関数参照)。 そうでない場合、関数は何もしません (トリガーは呼び出されません)。 -マルチユーザー、あるいはマルチプロセスアプリケーションにおいて、`.save()` 関数は ["オプティミスティック・ロック"](ORDA/entities.md#entity-locking) 機構のもとで実行されます。これはレコードが保存されるたびに内部的なロックスタンプが自動的に増分していくという機構です。 +マルチユーザー、あるいはマルチプロセスアプリケーションにおいて、`.save()` 関数は ["オプティミスティック・ロック"](ORDA/entities.md#entity-locking) 機構のもとで実行されます。 これはレコードが保存されるたびに内部的なロックスタンプが自動的に増分していくという機構です。 *mode* 引数を渡さなかった場合のデフォルトでは、いずれの属性に関わらず同エンティティが他のプロセスまたはユーザーによって変更されていた場合にエラーを返します (以下参照)。 @@ -1150,7 +1152,7 @@ vCompareResult3 ($e1 において更新された (touch された) 属性のみ | lockInfo | | object | ロック元についての情報 | | | task_id | number | プロセスID | | | user_name | text | マシン上でのセッションユーザー名 | -| | user4d_alias | text | `SET USER ALIAS` で設定されていればユーザーエイリアス。それ以外は 4Dディレクトリのユーザー名 | +| | user4d_alias | text | `SET USER ALIAS` で設定されていればユーザーエイリアス。 それ以外は 4Dディレクトリのユーザー名 | | | host_name | text | マシン名 | | | task_name | text | プロセス名 | | | client_version | text | | @@ -1166,10 +1168,10 @@ vCompareResult3 ($e1 において更新された (touch された) 属性のみ | 定数 | 値 | 説明 | | ----------------------------------------- | - | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -| `dk status automerge failed` | 6 | (`dk auto merge` オプションが使用されたときのみ) エンティティを保存するときに自動マージオプションが失敗しました。
    **割り当てられた statusText**: "自動マージ失敗" | +| `dk status automerge failed` | 6 | ロック解除が成功した場合には true、それ以外は false ドロップされたエンティティや、ロックされてないレコード、あるいは他のプロセスや他のエンティティによってロックされたレコードに対してロック解除を実行した場合、success には false が返されます。 | | `dk status entity does not exist anymore` | 5 | エンティティはもうデータ内に存在していません。 このエラーは以下のような場合に起きえます:
  • エンティティがドロップされている (スタンプが変更されていて、メモリ空間は解放されている)
  • エンティティがドロップされていて、他のプライマリーキー値を持つエンティティで置き換えられている (スタンプは変更されていて、新しいエンティティがメモリ空間を使用している)。 entity.drop( ) を使用するとき、このエラーは dk force drop if stamp changed オプションを使用した場合に返されることがあります。 entity.lock( ) を使用するとき、このエラーは dk reload drop if stamp changed オプションを使用した場合に返されることがあります。

  • **割り当てられた statusText**: "エンティティはもう存在しません" | -| `dk status locked` | 3 | エンティティはペシミスティック・ロックでロックされています。
    **割り当てられた statusText**: "既にロックされています" | -| `dk status serious error` | 4 | 深刻なエラーとは、低レベルのデータベースエラー (例: 重複キー)、ハードウェアエラーなどです。
    **割り当てられた statusText**: "その他のエラー" | +| `dk status locked` | 3 | エンティティはペシミスティック・ロックでロックされています。
    **割り当てられた statusText**: "既にロックされています" | +| `dk status serious error` | 4 | 深刻なエラーとは、低レベルのデータベースエラー (例: 重複キー)、ハードウェアエラーなどです。
    **割り当てられた statusText**: "その他のエラー" | | `dk status stamp has changed` | 2 | エンティティの内部的なスタンプ値がデータ内に保存されているエンティティのものと合致しません (オプティミスティック・ロック)。
  • entity.save( ) の場合: dk auto merge オプションが使用されていない場合に限りエラー
  • entity.drop( ) の場合: dk force drop if stamp changed オプションが使用されていない場合に限りエラー
  • entity.lock( ) の場合: dk reload if stamp changed オプションが使用されていない場合に限りエラー

  • **割り当てられた statusText**: "スタンプが変更されています" | #### 例題 1 @@ -1258,7 +1260,7 @@ vCompareResult3 ($e1 において更新された (touch された) 属性のみ #### 説明 -`.toObject()` 関数は、 エンティティからビルドされたオブジェクトを返します。 オブジェクト内部のプロパティ名はエンティティの属性名と合致します。 +データクラス属性はすべて、エンティティのプロパティとして利用可能です。 各エンティティのプロパティは、当該。 エンティティの属性値を格納します *filterString* 引数が空の文字列、あるいは "*" の場合、以下のいずれかが返されます: @@ -1268,7 +1270,7 @@ vCompareResult3 ($e1 において更新された (touch された) 属性のみ 最初の引数として、取得するエンティティ属性を渡します。 以下のものを渡すことができます: -* *filterString*: プロパティパスをカンマで区切った文字列: "propertyPath1, propertyPath2, ..." または +* リレートエンティティズの一部のプロパティを取得します: * *filterCol*: 文字列のコレクション: \["propertyPath1","propertyPath2";...] filter 引数がリレートエンティティ型の属性を指定する場合 ([kind](DataClassClass.md#attributename) が relatedEntity): @@ -1582,7 +1584,7 @@ employeeObject:=employeeSelected.toObject("directReports.*") #### 説明 -`.touchedAttributes()` 関数は、 メモリに読み込み後に変更されたエンティティの属性名を返します。 +`.toObject()` 関数は、 メモリに読み込み後に変更されたエンティティの属性名を返します。 この関数は、種類 ([kind](DataClassClass.md#attributename)) が `storage` あるいは `relatedEntity` である属性に適用されます。 @@ -1661,7 +1663,7 @@ employeeObject:=employeeSelected.toObject("directReports.*") > 詳細については [エンティティロッキング](ORDA/entities.md#エンティティロッキング) を参照ください。 ロックしているプロセス内のどのエンティティからもレコードが参照されなくなった場合、自動的にレコードロックが解除されます (たとえば、エンティティのローカル参照に対してのみロックがかかっていた場合、プロセスが終了すればエンティティおよびレコードのロックは解除されます)。 -> レコードがロックされている場合、ロックしているプロセスから、ロックされたエンティティ参照に対してロックを解除する必要があります: 例: +> レコードがロックされている場合、ロックしているプロセスから、ロックされたエンティティ参照に対してロックを解除する必要があります: 例: 例: ```4d $e1:=ds.Emp.all()[0] @@ -1690,7 +1692,7 @@ employeeObject:=employeeSelected.toObject("directReports.*") ... // 処理 $status:=$employee.unlock() If($status.success) - ALERT("エンティティのロックは解除されました。") + ALERT("エンティティのロックは解除されました。 ") End if ``` diff --git a/i18n/ja/docusaurus-plugin-content-docs/version-19/Concepts/classes.md b/i18n/ja/docusaurus-plugin-content-docs/version-19/Concepts/classes.md index 60dd57640a4635..2667359dc91fa8 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/version-19/Concepts/classes.md +++ b/i18n/ja/docusaurus-plugin-content-docs/version-19/Concepts/classes.md @@ -88,8 +88,8 @@ $hello:=$person.sayHello() //"Hello John Doe" - コードエディター: - クラスは実行できません - クラスメソッドはコードのブロックです - - オブジェクトメンバーに対する **定義に移動** 操作はクラスの Function 宣言を探します。例: "$o.f()" の場合、"Function f" を見つけます。 - - クラスのメソッド宣言に対する **参照箇所を検索** 操作は、そのメソッドがオブジェクトメンバーとして使われている箇所を探します。例: "Function f" の場合 "$o.f()" を見つけます。 + - オブジェクトメンバーに対する **定義に移動** 操作はクラスの Function 宣言を探します。 例: "$o.f()" の場合、"Function f" を見つけます。 + - クラスのメソッド宣言に対する **参照箇所を検索** 操作は、そのメソッドがオブジェクトメンバーとして使われている箇所を探します。 例: "Function f" の場合 "$o.f()" を見つけます。 - ランタイムエクスプローラーおよびデバッガーにおいて、クラスメソッドは `` コンストラクターまたは `.` 形式で表示されます。 ## クラスストア @@ -145,13 +145,13 @@ $key:=4D.CryptoKey.new(New object("type";"ECDSA";"curve";"prime256v1")) また、Class オブジェクトは [`constructor`](#class-constructor) オブジェクトを参照することも可能です (任意)。 -Class オブジェクトは [共有オブジェクト](shared.md) です。したがって、異なる 4Dプロセスから同時にアクセスすることができます。 +Class オブジェクトは [共有オブジェクト](shared.md) です。 したがって、異なる 4Dプロセスから同時にアクセスすることができます。 ### 継承 クラス宣言において [Class extends](classes.md#class-extends-classname) キーワードを使うと、そのクラスは親クラス (つまり [`スーパークラス`](API/ClassClass.md#superclass)) を継承します。 -関数やプロパティがクラス内で見つからない場合、4D はそのクラスの [`スーパークラス`](API/ClassClass.md#superclass) 内を検索します。見つからない場合、4D はさらに、そのスーパークラスのスーパークラス内を探します。これは、スーパークラスが存在しなくなるまで続きます (すべてのオブジェクトは "Object" スーパークラスを継承しています)。 +関数やプロパティがクラス内で見つからない場合、4D はそのクラスの [`スーパークラス`](API/ClassClass.md#superclass) 内を検索します。 見つからない場合、4D はさらに、そのスーパークラスのスーパークラス内を探します。 これは、スーパークラスが存在しなくなるまで続きます (すべてのオブジェクトは "Object" スーパークラスを継承しています)。 ## クラスキーワード @@ -172,7 +172,7 @@ Function ({$parameterName : type; ...}){->$parameterName : type} :::note -There is no ending keyword for function code. The 4D language automatically detects the end of a function's code by the next `Function` keyword or the end of the class file. +There is no ending keyword for function code. There is no ending keyword for function code. ::: @@ -181,7 +181,7 @@ There is no ending keyword for function code. The 4D language automatically dete クラス定義ファイルでは、`Function` キーワードと関数名を使用して宣言をおこないます。 関数名は [プロパティ名の命名規則](Concepts/identifiers.md#オブジェクトプロパティ) に準拠している必要があります。 -> **Tip:** アンダースコア ("_") 文字で関数名を開始すると、その関数は 4Dコードエディターの自動補完機能から除外されます。 たとえば、`MyClass` に `Function _myPrivateFunction` を宣言した場合、コードエディターにおいて `"cs.MyClass "` とタイプしても、候補として提示されません。 +> **Tip:** アンダースコア ("_") 文字で関数名を開始すると、その関数は 4Dコードエディターの自動補完機能から除外されます。 たとえば、`MyClass` に `Function _myPrivateFunction` を宣言した場合、コードエディターにおいて `"cs.MyClass "` とタイプしても、候補として提示されません。 " とタイプしても、候補として提示されません。 関数名のすぐ後に、名前とデータ型を指定して [引数](#引数) を宣言します (戻り値の宣言も可)。 例: @@ -229,7 +229,7 @@ Function add($x; $y : Variant; $z : Integer; $xy : Object) Function add($x : Variant; $y : Integer)->$result : Integer ``` -戻り値は、コロン (:) 記号の後に戻り値のデータ型だけを指定して宣言することもできます。その場合は、自動的に $0 が使用されます。 例: +オブジェクトのメンバーメソッドとしてフォーミュラが呼び出された場合、`This` はメソッドの呼び出し元であるオブジェクトを指します。 例: ```4d Function add($x : Variant; $y : Integer): Integer @@ -282,14 +282,14 @@ Class Constructor({$parameterName : type; ...}) :::note -There is no ending keyword for class constructor function code. The 4D language automatically detects the end of a function's code by the next `Function` keyword or the end of the class file. +There is no ending keyword for class constructor function code. There is no ending keyword for function code. ::: -クラスコンストラクター関数を使って、ユーザークラスを定義することができます。このコンストラクターは [引数](#引数) を受け取ることができます。 +クラスコンストラクター関数を使って、ユーザークラスを定義することができます。 このコンストラクターは [引数](#引数) を受け取ることができます。 -クラスコンストラクターが定義されていると、[` new()`](API/ClassClass.md#new) 関数を呼び出したときに、当該コンストラクターが呼び出されます (コンストラクターで引数を指定している場合は `new()` 関数に渡します)。 +クラスコンストラクターが定義されていると、[`new()`](API/ClassClass.md#new) 関数を呼び出したときに、当該コンストラクターが呼び出されます (コンストラクターで引数を指定している場合は `new()` 関数に渡します)。 クラスコンストラクター関数の場合には、`Current method name` コマンドは次を返します: `:constructor` (例: "MyClass:constructor")。 @@ -328,7 +328,7 @@ Class extends - ユーザークラスは、自身を継承することはできません。 - 間接的にも、自身を継承することはできません (例: "a" extends "b" かつ "b" extends "a")。 -コードエディターやインタープリターは、これらのルールが破られていても検知することはできません。コンパイラーおよび "シンタックスチェック" のみがエラーを生成します。 +コードエディターやインタープリターは、これらのルールが破られていても検知することはできません。 コンパイラーおよび "シンタックスチェック" のみがエラーを生成します。 派生クラスは、[`Super`](#super) コマンドを使って親クラスのコンストラクターを呼び出すことができます。 @@ -509,7 +509,7 @@ $o:=cs.ob.new() $val:=$o.a //42 ``` -> コンストラクター内で [Super](#super) キーワードを使ってスーパークラスのコンストラクターを呼び出す場合、必ず `This` より先にスーパークラスのコンストラクターを呼ぶ必要があることに留意してください。順番を違えるとエラーが生成されます。 こちらの [例題](#例題-1) を参照ください。 +> コンストラクター内で [Super](#super) キーワードを使ってスーパークラスのコンストラクターを呼び出す場合、必ず `This` より先にスーパークラスのコンストラクターを呼ぶ必要があることに留意してください。 こちらの [例題](#例題-1) を参照ください。 基本的に、`This` はメソッドの呼び出し元のオブジェクトを指します。 @@ -545,4 +545,4 @@ $val:=$o.f() //8 #### OB Instance of ( object ; class ) -> Boolean -`object` が `class`、またはその子クラスに属していれば、`OB Instance of` は `true` を返します。それ以外の場合は `false` を返します。 +`object` が `class`、またはその子クラスに属していれば、`OB Instance of` は `true` を返します。 diff --git a/i18n/ja/docusaurus-plugin-content-docs/version-20-R6/API/DataClassClass.md b/i18n/ja/docusaurus-plugin-content-docs/version-20-R6/API/DataClassClass.md index 323b4da4ae6eb1..c16e8054273e89 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/version-20-R6/API/DataClassClass.md +++ b/i18n/ja/docusaurus-plugin-content-docs/version-20-R6/API/DataClassClass.md @@ -943,7 +943,7 @@ attributePath|formula 比較演算子 値 | 含まれる | IN | コレクション、あるいは複数の値のうち、どれか一つの値と等しいデータを取得します。ワイルドカード (@) をサポートします。 | | キーワードを含む | % | キーワードは、文字列あるいはピクチャー型の属性内で使用されるものが対象です。 | -- **値** (value): エンティティコレクションの各エンティティの属性のカレント値に対して比較する値。 **プレースホルダー** (後述の **プレースホルダーの使用** 参照) か、あるいはデータ型プロパティと同じ型の式を使用することができます。 +- **値** (value): エンティティコレクションの各エンティティの属性のカレント値に対して比較する値。 **プレースホルダー** (後述の **プレースホルダーの使用** 参照) か、あるいはデータ型プロパティと同じ型の式を使用することができます。 Note that, in case of type mismatch with scalar types (text, date, number...), 4D will try to convert the **value** type to the attribute data type whenever possible, for an easier handling of values coming from the Internet. For example, if the string "v20" is entered as **value** to compare with an integer attribute, it will be converted to 20. 定数値を使用する場合、以下の原則に従う必要があります: - **テキスト** テキスト型の定数値の場合は単一引用符つき、あるいはなしでも渡すことができます(後述の **引用符を使用する** 参照)。 文字列中の文字列を検索する ("含まれる" クエリ) には、ワイルドカード記号 (@) を使用して検索文字列を指定します (例: "@Smith@")。 また以下のキーワードはテキスト定数においては使用できません: true, false。 - **ブール** 型の定数値: **true** または **false** (文字の大小を区別します) diff --git a/i18n/ja/docusaurus-plugin-content-docs/version-20-R6/API/EntityClass.md b/i18n/ja/docusaurus-plugin-content-docs/version-20-R6/API/EntityClass.md index 972b4e7ecd5511..0cd5281a47d50f 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/version-20-R6/API/EntityClass.md +++ b/i18n/ja/docusaurus-plugin-content-docs/version-20-R6/API/EntityClass.md @@ -58,7 +58,7 @@ title: Entity - *attributeName* で指定した属性がストレージ型の場合: `.attributeName` は *attributeName* と同じ型の値を返します。 - *attributeName* で指定した属性がリレートエンティティ型の場合: - `.attributeName` はリレートエンティティを返します。 リレートエンティティの値は、ドット記法でプロパティを繋げることでアクセス可能です。例: "myEntity.employer.employees[0].lastname" + `.attributeName` はリレートエンティティを返します。 リレート先のエンティティそのものが変更された場合 (外部キーの変更)、リレーションの名称とそのプライマリーキー名が attributeName プロパティに返されます (リレーション名についての value および otherValue は空になります)。 - *attributeName* で指定した属性がリレートエンティティズ型の場合: `.attributeName` はリレートエンティティの新しいエンティティセレクションを返します。 重複しているエンティティは取り除かれます (返されるのは順列なしのエンティティセレクションです)。 @@ -98,9 +98,11 @@ title: Entity #### 説明 -`.clone()` 関数は、対象エンティティと同じレコードを参照する新規エンティティをメモリ内に作成します。 このメソッドを使用するとエンティティを個別に更新することができます。 +The `.clone()` function creates in memory a new entity referencing the same record as the original entity. -> エンティティに対して何らかの変更をおこなった場合、それらは [`.save( )`](#save) 関数が実行されたときのみ、参照先のレコードに保存されるという点に注意してください。 +This function allows you to update entities separately. Note however that, for performance reasons, the new entity shares the same reference of object attributes as the cloned entity. + +> Keep in mind that any modifications done to entities will be saved in the referenced record only when the [`.save()`](#save) function is executed. この関数は、すでにデータベースに保存されているエンティティに対してのみ使用可能です。 新規に作成されたエンティティ([`.isNew()`](#isnew) が **true** を返すもの) に対して呼び出すことはできません。 @@ -289,7 +291,7 @@ vCompareResult2 ($attributesToInspect についての差異のみ返されます ] ``` -vCompareResult3 ($e1 において更新された (touch された) 属性のみが返されます) +vCompareResult1 (すべての差異が返されています): ```4d [ @@ -344,7 +346,7 @@ vCompareResult3 ($e1 において更新された (touch された) 属性のみ #### 説明 -`.drop()` 関数は、データクラスに対応するテーブルにおいて、データストアのエンティティに格納されているデータを削除します。 エンティティそのものはメモリ内に残るという点に注意してください。 +`.drop()` 関数は、データクラスに対応するテーブルにおいて、データストアのエンティティに格納されているデータを削除します。 データクラスに対応するテーブルからエンティティが削除される一方、 エンティティそのものはメモリ内に残るという点に注意してください。 マルチユーザー、あるいはマルチプロセスアプリケーションにおいて、`.drop()` 関数は ["オプティミスティック・ロック"](ORDA/entities.md#entity-locking) 機構のもとで実行されます。これはレコードが保存されるたびに内部的なロックスタンプが自動的に増分していくという機構です。 @@ -1354,7 +1356,7 @@ $info:=$address.getRemoteContextAttributes() #### 説明 -`.toObject()` 関数は、エンティティからビルトされたオブジェクトを返します。 オブジェクト内部のプロパティ名はエンティティの属性名と合致します。 +`.toObject()` 関数は、エンティティからビルトされたオブジェクトを返します。 エンティティの属性値を格納します *filterString* 引数が空の文字列、あるいは "\*" の場合、以下のいずれかが返されます: @@ -1768,7 +1770,7 @@ employeeObject:=employeeSelected.toObject("directReports.*") ロックしているプロセス内のどのエンティティからもレコードが参照されなくなった場合、自動的にレコードロックが解除されます (たとえば、エンティティのローカル参照に対してのみロックがかかっていた場合、プロセスが終了すればエンティティおよびレコードのロックは解除されます)。 -> レコードがロックされている場合、ロックしているプロセスから、ロックされたエンティティ参照に対してロックを解除する必要があります: 例: +> レコードがロックされている場合、ロックしているプロセスから、ロックされたエンティティ参照に対してロックを解除する必要があります: 例: 例: ```4d $e1:=ds.Emp.all()[0] diff --git a/i18n/ja/docusaurus-plugin-content-docs/version-20-R6/API/HTTPRequestClass.md b/i18n/ja/docusaurus-plugin-content-docs/version-20-R6/API/HTTPRequestClass.md index 54f77c82d8fbcc..7834a377b98e8a 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/version-20-R6/API/HTTPRequestClass.md +++ b/i18n/ja/docusaurus-plugin-content-docs/version-20-R6/API/HTTPRequestClass.md @@ -478,7 +478,7 @@ var $parsedMessage : Object:=HTTP Parse message($message) ## .wait() -**.wait**( { *time* : Real } ) : HTTPRequestClass +**.wait**( { *time* : Real } ) : 4D.HTTPRequest diff --git a/i18n/ja/docusaurus-plugin-content-docs/version-20-R6/Concepts/classes.md b/i18n/ja/docusaurus-plugin-content-docs/version-20-R6/Concepts/classes.md index ed4f63f720a581..5e2bcda089e9a1 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/version-20-R6/Concepts/classes.md +++ b/i18n/ja/docusaurus-plugin-content-docs/version-20-R6/Concepts/classes.md @@ -5,9 +5,9 @@ title: クラス ## 概要 -4D ランゲージでは **クラス** の概念がサポートされています。 プログラミング言語では、クラスを利用することによって、属性やメソッドなどを持つ特定のオブジェクト種を定義することができます。 +4D ランゲージでは **クラス** の概念がサポートされています。 プログラミング言語では、クラスを利用することによって、属性やメソッドなどを持つ特定のオブジェクト種を定義することができます。 プログラミング言語では、クラスを利用することによって、属性やメソッドなどを持つ特定のオブジェクト種を定義することができます。 プログラミング言語では、クラスを利用することによって、属性やメソッドなどを持つ特定のオブジェクト種を定義することができます。 -ユーザークラスが定義されていれば、そのクラスのオブジェクトをコード内で **インスタンス化** することができます。 各オブジェクトは、それ自身が属するクラスのインスタンスです。 クラスは、別のクラスを [継承](#class-extends-classname) することで、その [関数](#function) と、([宣言された](#property) および [計算された](#function-get-と-function-set)) プロパティを受け継ぐことができます。 +ユーザークラスが定義されていれば、そのクラスのオブジェクトをコード内で **インスタンス化** することができます。 各オブジェクトは、それ自身が属するクラスのインスタンスです。 ユーザークラスが定義されていれば、そのクラスのオブジェクトをコード内で **インスタンス化** することができます。 各オブジェクトは、それ自身が属するクラスのインスタンスです。 クラスは、別のクラスを [継承](#class-extends-classname) することで、その [関数](#function) と、([宣言された](#property) および [計算された](#function-get-と-function-set)) プロパティを受け継ぐことができます。 各オブジェクトは、それ自身が属するクラスのインスタンスです。 ユーザークラスが定義されていれば、そのクラスのオブジェクトをコード内で **インスタンス化** することができます。 各オブジェクトは、それ自身が属するクラスのインスタンスです。 クラスは、別のクラスを [継承](#class-extends-classname) することで、その [関数](#function) と、([宣言された](#property) および [計算された](#function-get-と-function-set)) プロパティを受け継ぐことができます。 > 4D におけるクラスモデルは JavaScript のクラスに類似しており、プロトタイプチェーンに基づきます。 @@ -41,7 +41,7 @@ $hello:=$person.sayHello() // "Hello John Doe" ### クラス定義 -4D においてユーザークラスとは、`/Project/Sources/Classes/` フォルダーに保存された専用の [メソッド](methods.md) ファイル (.4dm) によって定義されます。 ファイル名がクラス名になります。 +4D においてユーザークラスとは、`/Project/Sources/Classes/` フォルダーに保存された専用の [メソッド](methods.md) ファイル (.4dm) によって定義されます。 ファイル名がクラス名になります。 ファイル名がクラス名になります。 ファイル名がクラス名になります。 クラスを命名する際には、次のルールに留意してください: @@ -81,6 +81,8 @@ Project フォルダー Project Sources Classes Polygon.4dm - **クラス** カテゴリを選択し、![](../assets/en/Users/PlussNew.png) ボタンをクリックします。 - エクスプローラーウィンドウの下部にあるアクションメニュー、またはクラスグループのコンテキストメニューから **新規クラス...** を選択します。 ![](../assets/en/Concepts/newClass.png) + ![](../assets/en/Concepts/newClass.png) + ![](../assets/en/Concepts/newClass.png) - エクスプローラーのホームページのコンテキストメニューより **新規** > **クラス...** を選択します。 #### クラスのコードサポート @@ -111,7 +113,7 @@ Project フォルダー Project Sources Classes Polygon.4dm | ---------- | ------ | --------------------------- | --------------------------- | ---------------- | | classStore | Object | <- | プロジェクトまたはコンポーネントのユーザークラスストア | | -`cs` コマンドは、カレントプロジェクトまたはコンポーネントのユーザークラスストアを返します。 これには、プロジェクトまたはコンポーネントにて [定義](#クラス定義) されている、すべてのユーザークラスが含まれます。 デフォルトでは、 [ORDAクラス](ORDA/ordaClasses.md) のみ利用可能です。 +`cs` コマンドは、カレントプロジェクトまたはコンポーネントのユーザークラスストアを返します。 これには、プロジェクトまたはコンポーネントにて [定義](#クラス定義) されている、すべてのユーザークラスが含まれます。 デフォルトでは、 [ORDAクラス](ORDA/ordaClasses.md) のみ利用可能です。 これには、プロジェクトまたはコンポーネントにて [定義](#クラス定義) されている、すべてのユーザークラスが含まれます。 デフォルトでは、 [ORDAクラス](ORDA/ordaClasses.md) のみ利用可能です。 これには、プロジェクトまたはコンポーネントにて [定義](#クラス定義) されている、すべてのユーザークラスが含まれます。 デフォルトでは、 [ORDAクラス](ORDA/ordaClasses.md) のみ利用可能です。 #### 例題 @@ -131,7 +133,7 @@ $instance:=cs.myClass.new() | ---------- | ------ | --------------------------- | -------- | ---------------- | | classStore | Object | <- | 4Dクラスストア | | -`4D` コマンドは、ビルトイン 4Dクラスのクラスストアを返します。 [CryptoKey](API/CryptoKeyClass.md) などの専用 API へのアクセスを提供します。 +`4D` コマンドは、ビルトイン 4Dクラスのクラスストアを返します。 [CryptoKey](API/CryptoKeyClass.md) などの専用 API へのアクセスを提供します。 [CryptoKey](API/CryptoKeyClass.md) などの専用 API へのアクセスを提供します。 [CryptoKey](API/CryptoKeyClass.md) などの専用 API へのアクセスを提供します。 #### 例題 @@ -143,7 +145,7 @@ $key:=4D.CryptoKey.new(New object("type";"ECDSA";"curve";"prime256v1")) ## Class オブジェクト -プロジェクトにおいてクラスが [定義](#クラス定義) されていれば、それは 4Dランゲージ環境に読み込まれます。 クラスとは、それ自身が ["Class" クラス](API/ClassClass.md) のオブジェクトです。 Class オブジェクトは次のプロパティや関数を持ちます: +プロジェクトにおいてクラスが [定義](#クラス定義) されていれば、それは 4Dランゲージ環境に読み込まれます。 クラスとは、それ自身が ["Class" クラス](API/ClassClass.md) のオブジェクトです。 Class オブジェクトは次のプロパティや関数を持ちます: クラスとは、それ自身が ["Class" クラス](API/ClassClass.md) のオブジェクトです。 Class オブジェクトは次のプロパティや関数を持ちます: クラスとは、それ自身が ["Class" クラス](API/ClassClass.md) のオブジェクトです。 Class オブジェクトは次のプロパティや関数を持ちます: - [`name`](API/ClassClass.md#name) 文字列 - [`superclass`](API/ClassClass.md#superclass) オブジェクト (無い場合は null) @@ -187,9 +189,9 @@ There is no ending keyword for function code. The 4D language automatically dete ::: -クラス関数とは、当該クラスのプロパティです。 クラス関数は [`4D.Function`](API/FunctionClass.md) クラスのオブジェクトです。 クラス定義ファイルでは、`Function` キーワードに続けて関数名を指定して宣言をおこないます。 +クラス関数とは、当該クラスのプロパティです。 クラス関数とは、当該クラスのプロパティです。 クラス関数は [`4D.Function`](API/FunctionClass.md) クラスのオブジェクトです。 クラス定義ファイルでは、`Function` キーワードに続けて関数名を指定して宣言をおこないます。 クラス関数とは、当該クラスのプロパティです。 クラス関数とは、当該クラスのプロパティです。 クラス関数は [`4D.Function`](API/FunctionClass.md) クラスのオブジェクトです。 クラス定義ファイルでは、`Function` キーワードに続けて関数名を指定して宣言をおこないます。 クラス定義ファイルでは、`Function` キーワードに続けて関数名を指定して宣言をおこないます。 -[共有クラス](#共有クラス) 内で関数が宣言されている場合は、`shared` キーワードを使用することによって、[`Use...End use` structure](shared.md#useend-use) 構文なしで関数を呼び出せるようにできます。 詳細については、後述の [共有関数](#共有関数) の項目を参照ください。 +[共有クラス](#共有クラス) 内で関数が宣言されている場合は、`shared` キーワードを使用することによって、[`Use...End use` 構文](shared.md#useend-use)なしで関数を呼び出せるようにできます。 詳細については、後述の [共有関数](#共有関数) の項目を参照ください。 詳細については、後述の [共有関数](#共有関数) の項目を参照ください。 関数名は [プロパティ名の命名規則](Concepts/identifiers.md#オブジェクトプロパティ) に準拠している必要があります。 @@ -205,13 +207,13 @@ There is no ending keyword for function code. The 4D language automatically dete ::: -関数名のすぐ後に、名前とデータ型を指定して [引数](#引数) を宣言します (戻り値の宣言も可)。 例: +関数名のすぐ後に、名前とデータ型を指定して [引数](#引数) を宣言します (戻り値の宣言も可)。 例: 例: 例: ```4d Function computeArea($width : Integer; $height : Integer)->$area : Integer ``` -クラスメソッド内でオブジェクトインスタンスを参照するには `This` コマンドを使います。 例: +クラスメソッド内でオブジェクトインスタンスを参照するには `This` コマンドを使います。 例: 例: 例: ```4d Function setFullname($firstname : Text; $lastname : Text) @@ -224,9 +226,9 @@ Function getFullname()->$fullname : Text クラス関数の場合には、`Current method name` コマンドは次を返します: `.` (例: "MyClass.myFunction")。 -アプリケーションのコード内では、クラス関数はオブジェクトインスタンスのメンバーメソッドとして呼び出され、[引数](#引数) を受け取ることができます。 以下のシンタックスがサポートされています: +アプリケーションのコード内では、クラス関数はオブジェクトインスタンスのメンバーメソッドとして呼び出され、[引数](#引数) を受け取ることができます。 以下のシンタックスがサポートされています: 以下のシンタックスがサポートされています: 以下のシンタックスがサポートされています: -- `()` 演算子の使用。 例: `myObject.methodName("hello")` +- `()` 演算子の使用。 `()` 演算子の使用。 `()` 演算子の使用。 例: `myObject.methodName("hello")` - "4D.Function" クラスメンバーメソッドの使用: - [`apply()`](API/FunctionClass.md#apply) - [`call()`](API/FunctionClass.md#call) @@ -256,14 +258,14 @@ Function add($x; $y : Variant; $z : Integer; $xy : Object) #### 戻り値 -関数の戻り値を宣言するには (任意)、入力パラメーターリストに矢印 (`->`) と戻り値の定義を追加します。 例: +関数の戻り値を宣言するには (任意)、入力パラメーターリストに矢印 (`->`) と戻り値の定義を追加します。 例: 例: 例: ```4d Function add($x : Variant; $y : Integer)->$result : Integer $result:=$x+$y ``` -コロン (`:`) 記号の後に戻り値のデータ型だけを指定し、そのうえで [`return 文`](parameters.md#return-expression) を使って戻り値を返すこともできます (これは関数の実行を終了します)。 例: +コロン (`:`) 記号の後に戻り値のデータ型だけを指定し、そのうえで [`return 文`](parameters.md#return-expression) を使って戻り値を返すこともできます (これは関数の実行を終了します)。 例: 例: 例: ```4d Function add($x : Variant; $y : Integer): Integer @@ -331,13 +333,13 @@ There is no ending keyword for class constructor function code. The 4D language クラスコンストラクターが定義されていると、[`new()`](API/ClassClass.md#new) 関数を呼び出したときに、当該コンストラクターが呼び出されます (コンストラクターで引数を指定している場合は `new()` 関数に渡します)。 -コンストラクター関数は、1つのクラスに 1つしか存在できません (そうでない場合はエラーが返されます)。 [`Super`](#super) キーワードを使用することで、コンストラクターはスーパークラス (親クラス) のコンストラクターを呼び出すことができます。 +コンストラクター関数は、1つのクラスに 1つしか存在できません (そうでない場合はエラーが返されます)。 The [`Super`](../commands/super.md) command allows calls to the [`superclass`](../API/ClassClass#superclass), i.e. the parent class of the function. -コンストラクター内でインスタンスのプロパティを作成し、型宣言することができます (例題参照)。 また、インスタンスプロパティの値が、コンストラクターに渡される引数に依存しない場合は、[`property`](#property) キーワードを使用して定義することができます。 +コンストラクター内でインスタンスのプロパティを作成し、型宣言することができます (例題参照)。 コンストラクター内でインスタンスのプロパティを作成し、型宣言することができます (例題参照)。 コンストラクター内でインスタンスのプロパティを作成し、型宣言することができます (例題参照)。 また、インスタンスプロパティの値が、コンストラクターに渡される引数に依存しない場合は、[`property`](#property) キーワードを使用して定義することができます。 -`shared` キーワードを使うと **共有クラス** が作成されます。共有クラスは、共有オブジェクトのインスタンス化にのみ使われます。 詳細については、後述の [共有クラス](#共有クラス) の項目を参照ください。 +`shared` キーワードを使うと **共有クラス** が作成されます。共有クラスは、共有オブジェクトのインスタンス化にのみ使われます。 詳細については、後述の [共有クラス](#共有クラス) の項目を参照ください。 詳細については、後述の [共有クラス](#共有クラス) の項目を参照ください。 詳細については、後述の [共有クラス](#共有クラス) の項目を参照ください。 -`singleton` キーワードを使うと **シングルトン** が作成されます。シングルトンクラスは、クラスインスタンスを一つに限定する場合に使われます。 詳細については、後述の [シングルトンクラス](#シングルトンクラス) の項目を参照ください。 +`singleton` キーワードを使うと **シングルトン** が作成されます。シングルトンクラスは、クラスインスタンスを一つに限定する場合に使われます。 詳細については、後述の [シングルトンクラス](#シングルトンクラス) の項目を参照ください。 詳細については、後述の [シングルトンクラス](#シングルトンクラス) の項目を参照ください。 #### 例題 @@ -363,7 +365,7 @@ $o:=cs.MyClass.new("John";42) `property {; ;...}{ : }` -`property` キーワードを使用して、ユーザークラス内のプロパティを宣言することができます。 クラスプロパティには、名前と型があります。 +`property` キーワードを使用して、ユーザークラス内のプロパティを宣言することができます。 クラスプロパティには、名前と型があります。 クラスプロパティには、名前と型があります。 クラスプロパティには、名前と型があります。 クラスプロパティを宣言することで、コードエディターの自動補完機能とエラー検出機能を強化します。 @@ -423,7 +425,7 @@ $o:=cs.MyClass.new("John";42) ::: -宣言の際には型を省略することができます。その場合、可能な限り型は推論されます。 例: +宣言の際には型を省略することができます。その場合、可能な限り型は推論されます。 例: 例: 例: ```4d // クラス: MyClass @@ -486,7 +488,7 @@ $o.age:="Smith" // シンタックスチェックでエラー // コード ``` -`Function get` と `Function set` は、クラスの **計算プロパティ** を定義するアクセサーです。 計算プロパティとは、計算をマスクするデータ型を持つ命名プロパティです。 計算プロパティの値にアクセスすると、4D は対応するアクセサーのコードを実行します: +`Function get` と `Function set` は、クラスの **計算プロパティ** を定義するアクセサーです。 計算プロパティとは、計算をマスクするデータ型を持つ命名プロパティです。 計算プロパティの値にアクセスすると、4D は対応するアクセサーのコードを実行します: 計算プロパティとは、計算をマスクするデータ型を持つ命名プロパティです。 計算プロパティの値にアクセスすると、4D は対応するアクセサーのコードを実行します: 計算プロパティとは、計算をマスクするデータ型を持つ命名プロパティです。 計算プロパティの値にアクセスすると、4D は対応するアクセサーのコードを実行します: - プロパティを読み取るときには `Function get` が実行されます。 - プロパティに書き込むときには `Function set` が実行されます。 @@ -495,17 +497,17 @@ $o.age:="Smith" // シンタックスチェックでエラー 計算プロパティは、メモリ上に保持する必要のないデータを処理するために設計されています。 計算プロパティは通常、永続的なプロパティに基づいています。 たとえば、クラスオブジェクトの永続的なプロパティとして、*税込価格* と *消費税率* が含まれている場合、*税抜価格* は計算プロパティで処理することができます。 -クラス定義ファイルでは、計算プロパティの宣言には、`Function get` (*ゲッター*) と `Function set` (*セッター*) のキーワードを使い、その後にプロパティ名を記述します。 名称は [プロパティ名の命名規則](Concepts/identifiers.md#オブジェクトプロパティ) に準拠している必要があります。 +クラス定義ファイルでは、計算プロパティの宣言には、`Function get` (*ゲッター*) と `Function set` (*セッター*) のキーワードを使い、その後にプロパティ名を記述します。 名称は [プロパティ名の命名規則](Concepts/identifiers.md#オブジェクトプロパティ) に準拠している必要があります。 名称は [プロパティ名の命名規則](Concepts/identifiers.md#オブジェクトプロパティ) に準拠している必要があります。 名称は [プロパティ名の命名規則](Concepts/identifiers.md#オブジェクトプロパティ) に準拠している必要があります。 -`Function get` はプロパティの型の値を返し、`Function set` はプロパティの型の引数を受け取ります。 どちらも、標準的な [関数の引数](#引数) のルールに準拠する必要があります。 +`Function get` はプロパティの型の値を返し、`Function set` はプロパティの型の引数を受け取ります。 どちらも、標準的な [関数の引数](#引数) のルールに準拠する必要があります。 どちらも、標準的な [関数の引数](#引数) のルールに準拠する必要があります。 どちらも、標準的な [関数の引数](#引数) のルールに準拠する必要があります。 -両方の関数が定義されている場合、計算プロパティは **read-write** となります。 `Function get` のみが定義されている場合、計算プロパティは **read-only** です。 この場合、コードがプロパティを変更しようとするとエラーが返されます。 `Function set` のみが定義されている場合、4D はプロパティの読み取り時に *undefined* を返します。 +両方の関数が定義されている場合、計算プロパティは **read-write** となります。 両方の関数が定義されている場合、計算プロパティは **read-write** となります。 `Function get` のみが定義されている場合、計算プロパティは **read-only** です。 この場合、コードがプロパティを変更しようとするとエラーが返されます。 `Function set` のみが定義されている場合、4D はプロパティの読み取り時に *undefined* を返します。 この場合、コードがプロパティを変更しようとするとエラーが返されます。 `Function set` のみが定義されている場合、4D はプロパティの読み取り時に *undefined* を返します。 両方の関数が定義されている場合、計算プロパティは **read-write** となります。 `Function get` のみが定義されている場合、計算プロパティは **read-only** です。 この場合、コードがプロパティを変更しようとするとエラーが返されます。 `Function set` のみが定義されている場合、4D はプロパティの読み取り時に *undefined* を返します。 この場合、コードがプロパティを変更しようとするとエラーが返されます。 `Function set` のみが定義されている場合、4D はプロパティの読み取り時に *undefined* を返します。 [共有クラス](#共有クラス) 内で関数が宣言されている場合は、`shared` キーワードを使用することによって、[`Use...End use` 構文](shared.md#useend-use)なしで関数を呼び出せるようにできます。 詳細については、後述の [共有関数](#共有関数) の項目を参照ください。 -計算プロパティの型は、*ゲッター* の `$return` の型宣言によって定義されます。 [有効なプロパティタイプ](dt_object.md) であれば、いずれも使用可能です。 +計算プロパティの型は、*ゲッター* の `$return` の型宣言によって定義されます。 [有効なプロパティタイプ](dt_object.md) であれば、いずれも使用可能です。 [有効なプロパティタイプ](dt_object.md) であれば、いずれも使用可能です。 -> オブジェクトプロパティに *undefined* を代入すると、型を保持したまま値がクリアされます。 このためには、まず `Function get` を呼び出して値の型を取得し、次にその型の空の値で `Function set` を呼び出します。 +> オブジェクトプロパティに *undefined* を代入すると、型を保持したまま値がクリアされます。 オブジェクトプロパティに *undefined* を代入すると、型を保持したまま値がクリアされます。 オブジェクトプロパティに *undefined* を代入すると、型を保持したまま値がクリアされます。 このためには、まず `Function get` を呼び出して値の型を取得し、次にその型の空の値で `Function set` を呼び出します。 #### 例題 1 @@ -556,7 +558,7 @@ Function get fullAddress()->$result : Object Class extends ``` -クラス宣言において `Class extends` キーワードを使うと、別のユーザークラスの子ユーザークラスを作成することができます。 この子クラスは、親クラスのすべての機能を継承します。 +クラス宣言において `Class extends` キーワードを使うと、別のユーザークラスの子ユーザークラスを作成することができます。 この子クラスは、親クラスのすべての機能を継承します。 この子クラスは、親クラスのすべての機能を継承します。 この子クラスは、親クラスのすべての機能を継承します。 クラス継承は次のルールに沿っている必要があります: @@ -614,7 +616,7 @@ Class constructor ($side : Integer) `Super` は次の 2つの目的のために使います: -1. [コンストラクターコード](#class-constructor) 内において、`Super` はスーパークラスのコンストラクターを呼び出すコマンドです。 コンストラクター内で使用する際には、`Super` コマンドは単独で使用され、また `This` キーワードよりも先に使用される必要があります。 +1. [コンストラクターコード](#class-constructor) 内において、`Super` はスーパークラスのコンストラクターを呼び出すコマンドです。 コンストラクター内で使用する際には、`Super` コマンドは単独で使用され、また `This` キーワードよりも先に使用される必要があります。 コンストラクター内で使用する際には、`Super` コマンドは単独で使用され、また `This` キーワードよりも先に使用される必要があります。 - 継承ツリーにおいて、すべてのクラスコンストラクターが正しく呼び出されていない場合には、エラー -10748 が生成されます。 呼び出しが有効であることを確認するのは、開発者の役目となります。 - スーパークラスがコンストラクトされるより先に、`This` コマンドを使った場合には、エラー -10743 が生成されます。 @@ -636,7 +638,7 @@ Super.doSomething(42) // スーパークラスにて宣言されている #### 例題 1 -クラスコンストレクター内で `Super` を使う例です。 `Rectangle` と `Square` クラス の共通要素がコンストラクター内で重複しないよう、このコマンドを呼び出します。 +クラスコンストレクター内で `Super` を使う例です。 クラスコンストレクター内で `Super` を使う例です。 `Rectangle` と `Square` クラス の共通要素がコンストラクター内で重複しないよう、このコマンドを呼び出します。 ```4d // クラス: Rectangle @@ -677,7 +679,7 @@ Function getArea() #### 例題 2 -クラスメンバーメソッド内で `Super` を使う例です。 メンバーメソッドを持つ `Rectangle` クラスを作成します: +クラスメンバーメソッド内で `Super` を使う例です。 メンバーメソッドを持つ `Rectangle` クラスを作成します: メンバーメソッドを持つ `Rectangle` クラスを作成します: ```4d // クラス: Rectangle @@ -724,7 +726,7 @@ $message:=$square.description() // "I have 4 sides which are all equal" `This` の値は、呼ばれ方によって決まります。 This の値は実行時に代入により設定することはできません。また、呼び出されるたびに違う値となりえます。 -オブジェクトのメンバーメソッドとして [フォーミュラ](../API/FunctionClass.md) が呼び出された場合、`This` はメソッドの呼び出し元であるオブジェクトを指します。 例: +オブジェクトのメンバーメソッドとして [フォーミュラ](../API/FunctionClass.md) が呼び出された場合、`This` はメソッドの呼び出し元であるオブジェクトを指します。 例: 例: ```4d $o:=New object("prop";42;"f";Formula(This.prop)) @@ -749,7 +751,7 @@ $o:=cs.ob.new() $val:=$o.a //42 ``` -> コンストラクター内で [Super](#super) キーワードを使ってスーパークラスのコンストラクターを呼び出す場合、必ず `This` より先にスーパークラスのコンストラクターを呼ぶ必要があることに留意してください。順番を違えるとエラーが生成されます。 こちらの [例題](#例題-1) を参照ください。 +> コンストラクター内で [Super](#super) キーワードを使ってスーパークラスのコンストラクターを呼び出す場合、必ず `This` より先にスーパークラスのコンストラクターを呼ぶ必要があることに留意してください。順番を違えるとエラーが生成されます。 こちらの [例題](#例題-1) を参照ください。 こちらの [例題](#例題-1) を参照ください。 基本的に、`This` はメソッドの呼び出し元のオブジェクトを指します。 @@ -770,7 +772,7 @@ $val:=$o.f() //8 ``` -この例では、変数 $o に代入されたオブジェクトは *f* プロパティを持たないため、これをクラスより継承します。 *f* は $o のメソッドとして呼び出されるため、メソッド内の `This` は $o を指します。 +この例では、変数 $o に代入されたオブジェクトは *f* プロパティを持たないため、これをクラスより継承します。 *f* は $o のメソッドとして呼び出されるため、メソッド内の `This` は $o を指します。 *f* は $o のメソッドとして呼び出されるため、メソッド内の `This` は $o を指します。 ## クラスコマンド @@ -790,7 +792,7 @@ $val:=$o.f() //8 ## 共有クラス -**共有クラス** を作成することができます。 共有クラスとは、クラスの [`new()`](../API/ClassClass.md#new) 関数が呼び出されたときに、[共有オブジェクト](shared.md) をインスタンス化するユーザークラスのことを指します。 共有クラスは共有オブジェクトしか作れません。 +**共有クラス** を作成することができます。 **共有クラス** を作成することができます。 共有クラスとは、クラスの [`new()`](../API/ClassClass.md#new) 関数が呼び出されたときに、[共有オブジェクト](shared.md) をインスタンス化するユーザークラスのことを指します。 共有クラスは共有オブジェクトしか作れません。 **共有クラス** を作成することができます。 **共有クラス** を作成することができます。 共有クラスとは、クラスの [`new()`](../API/ClassClass.md#new) 関数が呼び出されたときに、[共有オブジェクト](shared.md) をインスタンス化するユーザークラスのことを指します。 共有クラスは共有オブジェクトしか作れません。 共有クラスは共有オブジェクトしか作れません。 共有クラスは **共有関数** をサポートしています。共有関数は、[`Use...End use`](shared.md#useend-use) 構文なしで呼び出すことができます。 @@ -805,7 +807,7 @@ $val:=$o.f() //8 ### 共有クラスの作成 -共有クラスを作成するには、[Class Constructor](#class-constructor) の前に `shared` キーワードを追加します。 例: +共有クラスを作成するには、[Class Constructor](#class-constructor) の前に `shared` キーワードを追加します。 例: 例: 例: ```4d // 共有クラス: Person @@ -824,9 +826,9 @@ cs.Person.isShared // true ### 共有関数 -共有クラス内で定義された関数が、そのクラスのオブジェクトを変更する場合には、共有オブジェクトへのアクセスを保護するために、[`Use...End use`](shared.md#useend-use) 構文を呼び出す必要があります。 しかし、**shared** として関数を定義することで、実行時には内部的な `Use...End use` を自動でトリガーするようにし、コードを簡略化することができます。 +共有クラス内で定義された関数が、そのクラスのオブジェクトを変更する場合には、共有オブジェクトへのアクセスを保護するために、[`Use...End use`](shared.md#useend-use) 構文を呼び出す必要があります。 しかし、**shared** として関数を定義することで、実行時には内部的な `Use...End use` を自動でトリガーするようにし、コードを簡略化することができます。 しかし、**shared** として関数を定義することで、実行時には内部的な `Use...End use` を自動でトリガーするようにし、コードを簡略化することができます。 しかし、**shared** として関数を定義することで、実行時には内部的な `Use...End use` を自動でトリガーするようにし、コードを簡略化することができます。 -共有クラス内で共有関数を作成するには、[Function](#function) キーワードの前に `shared` キーワードを追加します。 例: +共有クラス内で共有関数を作成するには、[Function](#function) キーワードの前に `shared` キーワードを追加します。 例: 例: 例: ```4d // 共有クラス Foo @@ -845,11 +847,11 @@ shared Function Bar($value : Integer) ## シングルトンクラス -**シングルトンクラス** とは、インスタンスを一つのみ作成するユーザークラスです。 シングルトンに関する詳細については、[シングルトンに関する Wikipedia のページ](https://ja.wikipedia.org/wiki/Singleton_%E3%83%91%E3%82%BF%E3%83%BC%E3%83%B3) を参照ください。 シングルトンは、それがインスタンス化されたプロセスにおいて一意のインスタンスを持ち、*共有* シングルトンは、そのマシン上のすべてのプロセスにおいて一意のインスタンスを持ちます。 アプリケーションやプロセス内のどこからでも利用可能な値を定義するのにシングルトンは便利です。 +**シングルトンクラス** とは、インスタンスを一つのみ作成するユーザークラスです。 シングルトンのコンセプトに関する詳細については、[シングルトンに関する Wikipedia のページ](https://ja.wikipedia.org/wiki/Singleton_%E3%83%91%E3%82%BF%E3%83%BC%E3%83%B3) を参照ください。 シングルトンのコンセプトに関する詳細については、[シングルトンに関する Wikipedia のページ](https://ja.wikipedia.org/wiki/Singleton_%E3%83%91%E3%82%BF%E3%83%BC%E3%83%B3) を参照ください。 シングルトンに関する詳細については、[シングルトンに関する Wikipedia のページ](https://ja.wikipedia.org/wiki/Singleton_%E3%83%91%E3%82%BF%E3%83%BC%E3%83%B3) を参照ください。 シングルトンは、それがインスタンス化されたプロセスにおいて一意のインスタンスを持ち、*共有* シングルトンは、そのマシン上のすべてのプロセスにおいて一意のインスタンスを持ちます。 アプリケーションやプロセス内のどこからでも利用可能な値を定義するのにシングルトンは便利です。 -クラスのシングルトンは、初回の [`cs..me`](../API/ClassClass.md#me) プロパティの呼び出し時にインスタンス化されます。 インスタンス化されたクラスのシングルトンはその後、[`me`](../API/ClassClass.md#me) プロパティの使用により常に返されます。 +クラスのシングルトンは、初回の [`cs..me`](../API/ClassClass.md#me) プロパティの呼び出し時にインスタンス化されます。 インスタンス化されたクラスのシングルトンはその後、[`me`](../API/ClassClass.md#me) プロパティの使用により常に返されます。 インスタンス化されたクラスのシングルトンはその後、[`me`](../API/ClassClass.md#me) プロパティの使用により常に返されます。 インスタンス化されたクラスのシングルトンはその後、[`me`](../API/ClassClass.md#me) プロパティの使用により常に返されます。 -シングルトンを引数付きでインスタンス化する必要がある場合には、[`new()`](../API/ClassClass.md#new) 関数を呼び出すこともできます。 この場合、アプリケーションの起動時に実行されるコードでシングルトンをインスタンス化することが推奨されます。 +シングルトンを引数付きでインスタンス化する必要がある場合には、[`new()`](../API/ClassClass.md#new) 関数を呼び出すこともできます。 この場合、アプリケーションの起動時に実行されるコードでシングルトンをインスタンス化することが推奨されます。 この場合、アプリケーションの起動時に実行されるコードでシングルトンをインスタンス化することが推奨されます。 この場合、アプリケーションの起動時に実行されるコードでシングルトンをインスタンス化することが推奨されます。 クラスがシングルトンクラスかどうかは、Classオブジェクトの .[`.isSingleton`](../API/ClassClass.md#issingleton)プロパティで確認できます。 @@ -873,7 +875,7 @@ shared Function Bar($value : Integer) ### シングルトンの作成 -シングルトンクラスを作成するには、[`Class Constructor`](#class-constructor) の前に `singleton` キーワードを追加します。 例: +シングルトンクラスを作成するには、[`Class Constructor`](#class-constructor) の前に `singleton` キーワードを追加します。 例: 例: ```4d // クラス: ProcessTag @@ -904,7 +906,7 @@ var $myOtherSingleton := cs.ProcessTag.me ### 共有シングルトンの作成 -マシン上の全プロセスで共有されるシングルトンを作成するには、[Class Constructor](#class-constructor) の前に `shared singleton` キーワードを追加します。 例: +マシン上の全プロセスで共有されるシングルトンを作成するには、[Class Constructor](#class-constructor) の前に `shared singleton` キーワードを追加します。 例: 例: ```4d // クラス: VehicleFactory diff --git a/i18n/ja/docusaurus-plugin-content-docs/version-20-R6/Project/compiler.md b/i18n/ja/docusaurus-plugin-content-docs/version-20-R6/Project/compiler.md index 73aa34c6857fbc..1984e1f7ed7fc3 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/version-20-R6/Project/compiler.md +++ b/i18n/ja/docusaurus-plugin-content-docs/version-20-R6/Project/compiler.md @@ -9,7 +9,7 @@ title: コンパイル コンパイル処理はすべて 4Dアプリケーションにより自動的でおこなわれます。 -> macOS上でコンパイルするには、`Xcode` をインストールする必要があります。 このことについての詳細は [Apple Silicon用コンパイラー](#apple-silicon用コンパイラー) を参照ください。 +> macOS上でコンパイルするには、`Xcode` をインストールする必要があります。 このことについての詳細は [Apple Silicon用コンパイラー](#apple-silicon用コンパイラー) を参照ください。 このことについての詳細は [Apple Silicon用コンパイラー](#apple-silicon用コンパイラー) を参照ください。 1. コンパイラーウィンドウを表示するには、**デザイン** メニューの **コンパイラー...** を選択するか、またはツールバーにある **コンパイラー** ボタンをクリックします。 @@ -41,9 +41,9 @@ title: コンパイル ## コンパイル済み実行 -プロジェクトがコンパイルされると、[インタープリターモードとコンパイル済みモード](Concepts/interpreted.md) を切り替えて実行できるようになります。この際、4Dアプリケーションを終了する必要はありません (インタープリターコードを削除している場合は除きます)。 切り替えには、**実行** メニューの **インタープリター再起動** や **コンパイル済み再起動** コマンドを使用します。 [プロジェクトを開くダイアログボックス](GettingStarted/creating.md#オプション) でも、起動時にインタープリターモードとコンパイル済みモードから選択することができます。 +プロジェクトがコンパイルされると、[インタープリターモードとコンパイル済みモード](Concepts/interpreted.md) を切り替えて実行できるようになります。この際、4Dアプリケーションを終了する必要はありません (インタープリターコードを削除している場合は除きます)。 切り替えには、**実行** メニューの **インタープリター再起動** や **コンパイル済み再起動** コマンドを使用します。 [プロジェクトを開くダイアログボックス](GettingStarted/creating.md#オプション) でも、起動時にインタープリターモードとコンパイル済みモードから選択することができます。 切り替えには、**実行** メニューの **インタープリター再起動** や **コンパイル済み再起動** コマンドを使用します。 [プロジェクトを開くダイアログボックス](GettingStarted/creating.md#オプション) でも、起動時にインタープリターモードとコンパイル済みモードから選択することができます。 -モードを変更すると、4D は現在のモードを閉じ、新しいモードを開きます。 つまり、アプリケーションが閉じられ、再び開かれます。 モードを切り替えるたびに、4D は 2つのデータベースメソッド (定義されていれば) を次の順番に実行します: `On Exit` -> `On Startup`。 +モードを変更すると、4D は現在のモードを閉じ、新しいモードを開きます。 つまり、アプリケーションが閉じられ、再び開かれます。 モードを変更すると、4D は現在のモードを閉じ、新しいモードを開きます。 つまり、アプリケーションが閉じられ、再び開かれます。 モードを切り替えるたびに、4D は 2つのデータベースメソッド (定義されていれば) を次の順番に実行します: `On Exit` -> `On Startup`。 インタープリターモードでプロジェクトを編集したら、それをコンパイルコードに反映させるには再コンパイルしなければなりません。 @@ -71,7 +71,7 @@ title: コンパイル ### コンパイルコードを削除 -**コンパイルコードを削除** ボタンを使用すると、プロジェクトのコンパイル済みコードが削除されます。 ボタンをクリックすると、[コンパイル時に生成されたコード](#クラシックコンパイラー) がすべて削除されます。**実行** メニューの **コンパイル済み再起動** コマンドが無効になり、開始時の "開く: コンパイルモード済みデータベース" オプションはグレー表示されます。 +**コンパイルコードを削除** ボタンを使用すると、プロジェクトのコンパイル済みコードが削除されます。 **コンパイルコードを削除** ボタンを使用すると、プロジェクトのコンパイル済みコードが削除されます。 ボタンをクリックすると、[コンパイル時に生成されたコード](#クラシックコンパイラー) がすべて削除されます。**実行** メニューの **コンパイル済み再起動** コマンドが無効になり、開始時の "開く: コンパイルモード済みデータベース" オプションはグレー表示されます。 ### 警告を表示/隠す @@ -87,7 +87,7 @@ title: コンパイル ## コンパイラー設定 -ストラクチャー設定ダイアログボックスの "コンパイラー" タブでは、プロジェクトのコンパイルに関連するパラメーターを設定できます。 [コンパイラーウィンドウ](#コンパイラーウィンドウ) の **コンパイラー設定** ボタンをクリックすると、コンパイラーページを直接開くことができます。 +ストラクチャー設定ダイアログボックスの "コンパイラー" タブでは、プロジェクトのコンパイルに関連するパラメーターを設定できます。 [コンパイラーウィンドウ](#コンパイラーウィンドウ) の **コンパイラー設定** ボタンをクリックすると、コンパイラーページを直接開くことができます。 [コンパイラーウィンドウ](#コンパイラーウィンドウ) の **コンパイラー設定** ボタンをクリックすると、コンパイラーページを直接開くことができます。 ![](../assets/en/Project/compilerWin6.png) @@ -97,11 +97,11 @@ title: コンパイル #### Symbolファイルを生成 -Symbolファイルを生成するのに使用します ([Symbolファイル](#symbolファイル) 参照)。 Symbolファイルは、プロジェクトの [Logs フォルダー](Project/architecture.md#logs) 内に `ProjectName_symbols.txt` という名前で作成されます。 +Symbolファイルを生成するのに使用します ([Symbolファイル](#symbolファイル) 参照)。 Symbolファイルを生成するのに使用します ([Symbolファイル](#symbolファイル) 参照)。 Symbolファイルは、プロジェクトの [Logs フォルダー](Project/architecture.md#logs) 内に `ProjectName_symbols.txt` という名前で作成されます。 #### エラーファイルを生成 -シンタックスチェック時にエラーファイルを生成するのに使用します ([エラーファイル](#エラーファイル) 参照)。 エラーファイルは、プロジェクトの [Logs フォルダー](Project/architecture.md#logs) 内に `ProjectName_error.xml` という名前で作成されます。 +シンタックスチェック時にエラーファイルを生成するのに使用します ([エラーファイル](#エラーファイル) 参照)。 シンタックスチェック時にエラーファイルを生成するのに使用します ([エラーファイル](#エラーファイル) 参照)。 エラーファイルは、プロジェクトの [Logs フォルダー](Project/architecture.md#logs) 内に `ProjectName_error.xml` という名前で作成されます。 #### コンパイルパス @@ -139,7 +139,7 @@ Symbolファイルを生成するのに使用します ([Symbolファイル](#sy | **全てのプロセッサ (Intel/AMD および Apple Silicon)** | Intel/AMD 用コードのみ
    *Windows上で Apple Silicon 用のコードは生成できません* | Apple Silicon + Intel/AMD 用コード
    *2種類のコンパイルコードが生成されます* | Apple Silicon + Intel/AMD 用コード
    *2種類のコンパイルコードが生成されます* | | **自分のプロセッサ (プロセッサー名)** | Intel/AMD 用コード | Intel/AMD 用コード | Apple Silicon 用コード | -> Apple Silicon 用にコンパイルするには、マシンに **Clang** アプリケーションをインストールする必要があります。 Clang は最新バージョンの Xcode に含まれています。 詳細については [Apple Silicon用コンパイルの要件](#要件) を参照ください。 +> Apple Silicon 用にコンパイルするには、マシンに **Clang** アプリケーションをインストールする必要があります。 Clang は最新バージョンの Xcode に含まれています。 詳細については [Apple Silicon用コンパイルの要件](#要件) を参照ください。 Clang は最新バージョンの Xcode に含まれています。 詳細については [Apple Silicon用コンパイルの要件](#要件) を参照ください。 ### デフォルトの型指定 @@ -166,13 +166,13 @@ Symbolファイルを生成するのに使用します ([Symbolファイル](#sy 警告は、コンパイラーがシンタックスチェックをおこなう際に生成するとメッセージです。 これらのメッセージの目的は、実行時エラーを引き起こす可能性のあるステートメントに注意を向けることです。 警告によりコンパイルが中断されることはありません。 -状況や使用されるプログラミングスタイルによって、警告の重要性は変化します。 コンパイラーダイアログおよびコードエディター (4Dコードエディターまたは VS Code) にて、警告を有効/無効にすることができます。[警告タブ](#警告タブ) を使えばグローバルに、または [`//%W`](#ローカルに警告を無効化-有効化する) を使用することでローカルに設定できます。 +状況や使用されるプログラミングスタイルによって、警告の重要性は変化します。 状況や使用されるプログラミングスタイルによって、警告の重要性は変化します。 コンパイラーダイアログおよびコードエディター (4Dコードエディターまたは VS Code) にて、警告を有効/無効にすることができます。[警告タブ](#警告タブ) を使えばグローバルに、または [`//%W`](#ローカルに警告を無効化-有効化する) を使用することでローカルに設定できます。 ### 警告タブ ![](../assets/en/Project/warnings-tab.png) -このタブでは、どの警告をグローバルに表示するかを定義できます。 警告のリストはコード順で並べられ、ローカライズされたラベルを確認することができます。 +このタブでは、どの警告をグローバルに表示するかを定義できます。 警告のリストはコード順で並べられ、ローカライズされたラベルを確認することができます。 警告のリストはコード順で並べられ、ローカライズされたラベルを確認することができます。 リストを絞り込むには、**コードとラベルを検索** テキストボックスを使用して、警告ラベルやコードを検索します。 @@ -233,7 +233,7 @@ Symbolファイルを生成するのに使用します ([Symbolファイル](#sy ### Symbolファイル -コンパイラー設定の [**Symbolファイルを生成**](#symbolファイルを生成) オプションを選択してコンパイルすると、プロジェクトの [Logs フォルダー](Project/architecture.md#logs) 内に `ProjectName_symbols.txt` という名称の Symbolファイルが作成されます。 このドキュメントはいくつかの部分に分かれています: +コンパイラー設定の [**Symbolファイルを生成**](#symbolファイルを生成) オプションを選択してコンパイルすると、プロジェクトの [Logs フォルダー](Project/architecture.md#logs) 内に `ProjectName_symbols.txt` という名称の Symbolファイルが作成されます。 このドキュメントはいくつかの部分に分かれています: このドキュメントはいくつかの部分に分かれています: #### プロセスおよびインタープロセス変数のリスト @@ -280,7 +280,7 @@ Symbolファイルを生成するのに使用します ([Symbolファイル](#sy ### エラーファイル -コンパイラー設定の [**エラーファイルを生成**](#エラーファイルを生成) オプションを使用して、コンパイル時にエラーファイルを生成するかどうかを選択することができます。 エラーファイルは、プロジェクトの [Logsフォルダー](Project/architecture.md#logs)内に `ProjectName_errors.txt` という名前で作成されます。 +コンパイラー設定の [**エラーファイルを生成**](#エラーファイルを生成) オプションを使用して、コンパイル時にエラーファイルを生成するかどうかを選択することができます。 エラーファイルは、プロジェクトの [Logsフォルダー](Project/architecture.md#logs)内に `ProjectName_errors.txt` という名前で作成されます。 エラーファイルは、プロジェクトの [Logsフォルダー](Project/architecture.md#logs)内に `ProjectName_errors.txt` という名前で作成されます。 [コンパイラーウインドウ](#コンパイラーウインドウ) からエラーに直接アクセスすることができますが、マシンからマシンへ送信できるエラーファイルがあると便利な場合があります。 エラーファイルは、その内容を自動的に解析しやすいように XMLフォーマットで生成されます。 これを利用して、エラー表示用に独自のインターフェースを作成することもできます。 @@ -300,7 +300,7 @@ Symbolファイルを生成するのに使用します ([Symbolファイル](#sy - **特定の行に関連するエラー**: これらのエラーは、コンテキスト (エラーが見つかった行) 内に説明とともに表示されます。 コンパイラーは、データ型やシンタックスに関する矛盾を含む式で見つけると、このタイプのエラーをレポートします。 コンパイラーウィンドウでは、検出された各エラーをダブルクリックすると、該当するメソッドが直接 4Dのコードエディターで開かれ、エラーを含む行が反転表示されます。 -- **全般的なエラー**: これらのエラーは、プロジェクトのコンパイルを不可能にします。 コンパイラーが全般的なエラーを生成するケースは、次の 2つです: +- **全般的なエラー**: これらのエラーは、プロジェクトのコンパイルを不可能にします。 コンパイラーが全般的なエラーを生成するケースは、次の 2つです: コンパイラーが全般的なエラーを生成するケースは、次の 2つです: - プロセス変数のデータ型が決定できなかった。 - 異なる 2つのオブジェクトが同じ名称である。 @@ -314,7 +314,7 @@ Symbolファイルを生成するのに使用します ([Symbolファイル](#sy コード内で間違いがないと思われる箇所に対して範囲チェックを適用したくないときもあります。 具体的には、かなりの回数繰り返されるループに関し、旧式のマシン上でコンパイル済みデータベースを実行すると、範囲チェックにより処理速度が著しく低下するおそれがあります。 関連するコードに誤りがなく、システムエラーを引き起こさないことが確実であれば、範囲チェックをローカル上で無効にすることができます。 -これをおこなうには、範囲チェックから外すコードを特殊なコメントである `//%R-` と `//%R+` で囲みます。 `//%R-` コメントは範囲チェックを無効にし、`//%R+` はそれを再び有効にします: +これをおこなうには、範囲チェックから外すコードを特殊なコメントである `//%R-` と `//%R+` で囲みます。 これをおこなうには、範囲チェックから外すコードを特殊なコメントである `//%R-` と `//%R+` で囲みます。 `//%R-` コメントは範囲チェックを無効にし、`//%R+` はそれを再び有効にします: ```4d // %R- 範囲チェックを無効化 @@ -358,11 +358,11 @@ Apple Silicon用コンパイラーは *Apple M1* などの Apple Silicon プロ - **macOS マシン**: Apple Silicon用コンパイラーは Apple のマシン上でのみ実行可能です。 - **4D プロジェクトアーキテクチャー**: Apple Silicon用コンパイラーは [プロジェクトアーキテクチャー](architecture.md) を使った 4D開発でのみ利用できます。 -- **Xcode または Developer Tools**: コンパイルの [2つ目のステップ](#インクリメンタルコンパイルラー) において、プロジェクトを C++ コードからコンパイルするために、Apple Silicon用コンパイラーはオープンソース macOS コンパイラー **Clang** を呼び出します。 *Clang* は Apple ネイティブライブラリを必要とします。これらは **Xcode** または **Developer Tools** パッケージより提供されています。 +- **Xcode または Developer Tools**: コンパイルの [2つ目のステップ](#インクリメンタルコンパイルラー) において、プロジェクトを C++ コードからコンパイルするために、Apple Silicon用コンパイラーはオープンソース macOS コンパイラー **Clang** を呼び出します。 *Clang* は Apple ネイティブライブラリを必要とします。これらは **Xcode** または **Developer Tools** パッケージより提供されています。 *Clang* は Apple ネイティブライブラリを必要とします。これらは **Xcode** または **Developer Tools** パッケージより提供されています。 - Xcode や Developer Tools をマシン上でインストールされた状態で **すでに持っている場合**、それらのバージョンが 4D の要件と合っていることを確認します。 - マシンにインストールされた状態でこれらのツールを **持っていない場合**、Apple Developer の Webサイトからいずれかをダウンロードする必要があります。 -> インストール手順が簡単なため **Xcode** のインストールを推奨しています。 よりコンパクトな **Developer Tools** をインストールしても問題ありませんが、こちらはインストール手順がやや複雑です。 +> インストール手順が簡単なため **Xcode** のインストールを推奨しています。 よりコンパクトな **Developer Tools** をインストールしても問題ありませんが、こちらはインストール手順がやや複雑です。 よりコンパクトな **Developer Tools** をインストールしても問題ありませんが、こちらはインストール手順がやや複雑です。 いずれにせよ、要件が満たされていない場合には、4D の Apple Silicon用コンパイラーが警告を発します。 @@ -370,5 +370,5 @@ Apple Silicon用コンパイラーは *Apple M1* などの Apple Silicon プロ Apple Silicon用コンパイラーはインクリメンタルコンパイラーです: -- 初めてのコンパイルにおいては、**すべての 4Dメソッド** がコンパイルされます。 これには時間がかかる可能性がありますが、 一度きりです。 +- 初めてのコンパイルにおいては、**すべての 4Dメソッド** がコンパイルされます。 これには時間がかかる可能性がありますが、 一度きりです。 これには時間がかかる可能性がありますが、 一度きりです。 - 以降のコンパイルにおいては、**新規または編集されたメソッド** のみが処理され、コンパイル時間を大幅に短縮します。 diff --git a/i18n/ja/docusaurus-plugin-content-docs/version-20-R6/Project/components.md b/i18n/ja/docusaurus-plugin-content-docs/version-20-R6/Project/components.md index b5db1c6e136f4c..4de02e167329c5 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/version-20-R6/Project/components.md +++ b/i18n/ja/docusaurus-plugin-content-docs/version-20-R6/Project/components.md @@ -11,7 +11,7 @@ title: コンポーネント ## インタープリターとコンパイル済みコンポーネント -コンポーネントは、インタープリターまたは [コンパイル済み](../Desktop/building.md) のものが使えます。 コンポーネントのパッケージフォルダーには以下のいずれかが含まれます: +Components can be interpreted or [compiled](../Desktop/building.md). コンポーネントのパッケージフォルダーには以下のいずれかが含まれます: - プロジェクトフォルダー (インタープリターのコンポーネント) - または .4DZ ファイル (コンパイル済みコンポーネント) diff --git a/i18n/ja/docusaurus-plugin-content-docs/version-20-R6/WebServer/httpRequests.md b/i18n/ja/docusaurus-plugin-content-docs/version-20-R6/WebServer/httpRequests.md index 8c12fcf12248ad..6c242e6df18960 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/version-20-R6/WebServer/httpRequests.md +++ b/i18n/ja/docusaurus-plugin-content-docs/version-20-R6/WebServer/httpRequests.md @@ -57,7 +57,7 @@ title: HTTPリクエストの処理 ``` -> インターフェース要素 を表示する 4Dコマンド (`DIALOG`、`ALERT` など) の呼び出しは許可されず、メソッドの処理を終了します。 +> インターフェース要素 を表示する 4Dコマンド (`DIALOG`、`ALERT` など) の呼び出しは許可されず、メソッドの処理を終了します。 の呼び出しは許可されず、メソッドの処理を終了します。 ### $1 - URL追加データ @@ -77,7 +77,7 @@ title: HTTPリクエストの処理 ### $2 - HTTPリクエストのヘッダーとボディ -二番目の引数 ($2) は、Webブラウザーから送信された HTTPリクエストのヘッダーとボディです。 この情報は `On Web Connection` データベースメソッドに "そのまま" 渡されることに留意してください。 その内容は、接続を試みた Webブラウザーの仕様により異なります。 +二番目の引数 ($2) は、Webブラウザーから送信された HTTPリクエストのヘッダーとボディです。 この情報は `On Web Connection` データベースメソッドに "そのまま" 渡されることに留意してください。 その内容は、接続を試みた Webブラウザーの仕様により異なります。 その内容は、接続を試みた Webブラウザーの仕様により異なります。 アプリケーションでこの情報を使用するには、開発者がヘッダーとボディを解析しなければなりません。 `WEB GET HTTP HEADER` や `WEB GET HTTP BODY` コマンドを使うことができます。 @@ -111,9 +111,9 @@ $4 引数は 4D Webサーバーによってリクエストされた IPアドレ **利用法**: URL またはフォームアクション -この URL を使用して、任意の *Param* テキスト引数とともに *MethodName* に指定した 4Dプロジェクトメソッドを呼び出すことができます。 このメソッドは引数を *$1* に受け取ります。 +この URL を使用して、任意の *Param* テキスト引数とともに *MethodName* に指定した 4Dプロジェクトメソッドを呼び出すことができます。 The method will receive this parameter. このメソッドは引数を *$1* に受け取ります。 -- 4Dプロジェクトメソッドは、[Webリクエスト用に許可](allowProject.md)されていなければなりません。メソッドのプロパティで "公開オプション: 4DタグとURL(4DACTION...)" 属性がチェックされている必要があります。 属性がチェックされていない場合、Webリクエストは拒否されます。 +- 4Dプロジェクトメソッドは、[Webリクエスト用に許可](allowProject.md)されていなければなりません。メソッドのプロパティで "公開オプション: 4DタグとURL(4DACTION...)" 属性がチェックされていない場合、Webリクエストは拒否されます。 - `/4DACTION/MyMethod/Param` リクエストを受け取ると、4D は `On Web Authentication` データベースメソッド (あれば) を呼び出します。 `4DACTION/` は、スタティックな Webページの URL に割り当てることもできます: @@ -122,13 +122,13 @@ $4 引数は 4D Webサーバーによってリクエストされた IPアドレ Do Something ``` -`MyMethod` プロジェクトメソッドは通常レスポンスを返すべきです (`WEB SEND FILE` や `WEB SEND BLOB` で HTMLページを送信するなど)。 ブラウザーをブロックしないように、処理は可能な限り短時間でおこなわれるようにします。 +`MyMethod` プロジェクトメソッドは通常レスポンスを返すべきです (`WEB SEND FILE` や `WEB SEND BLOB` で HTMLページを送信するなど)。 ブラウザーをブロックしないように、処理は可能な限り短時間でおこなわれるようにします。 ブラウザーをブロックしないように、処理は可能な限り短時間でおこなわれるようにします。 > `4DACTION/` から呼び出されるメソッドは、インタフェース要素 (`DIALOG`, `ALERT` など) を呼び出してはいけません。 #### 例題 -この例題は、HTMLピクチャーオブジェクトに `/4DACTION/` URL を割り当て、ページ上でピクチャーを動的に表示する方法を説明しています。 スタティック HTMLページに以下のコードを記述します: +この例題は、HTMLピクチャーオブジェクトに `/4DACTION/` URL を割り当て、ページ上でピクチャーを動的に表示する方法を説明しています。 スタティック HTMLページに以下のコードを記述します: スタティック HTMLページに以下のコードを記述します: ```html @@ -183,7 +183,7 @@ Webアプリケーションにおいて、スタティックなHTMLページを ``` -データ入力エリアに "ABCD" とタイプし、"Whole word (句として検索)" オプションをチェックして **Search** (検索) ボタンをクリックします。 Webサーバーに送信されるリクエスト内部は以下の通りです: +データ入力エリアに "ABCD" とタイプし、"Whole word (句として検索)" オプションをチェックして **Search** (検索) ボタンをクリックします。 Webサーバーに送信されるリクエスト内部は以下の通りです: Webサーバーに送信されるリクエスト内部は以下の通りです: ``` vName="ABCD" @@ -279,9 +279,10 @@ return false このページの主な特徴は: - 送信のための **Submit** ボタンが 3つあります: `vsbLogOn`, `vsbRegister` そして `vsbInformation`。 -- **Log On** をクリックすると、フォームからの送信はまず初めに JavaScript関数 `LogOn` によって処理されます。 名前が入力されていない場合、フォームは 4Dに送信すらされず、JavaScript による警告が表示されます。 +- **Log On** をクリックすると、フォームからの送信はまず初めに JavaScript関数 `LogOn` によって処理されます。 名前が入力されていない場合、フォームは 4Dに送信すらされず、JavaScript による警告が表示されます。 名前が入力されていない場合、フォームは 4Dに送信すらされず、JavaScript による警告が表示されます。 - フォームは POST 4Dメソッドに加えて、ブラウザープロパティを *vtNav_App* から始まる名称の 4つの隠しオブジェクトへとコピーする投稿スクリプト (*GetBrowserInformation*) を持っています。 また、このページには `vtUserName` オブジェクトも含まれます。 + また、このページには `vtUserName` オブジェクトも含まれます。 ユーザーが HTMLフォーム上のボタンのどれかをクリックした際に呼び出される `WWW_STD_FORM_POST` という 4Dメソッドを検証してみましょう。 @@ -323,7 +324,7 @@ return false - 変数 *vtNav_appName*, *vtNav_appVersion*, *vtNav_appCodeName*, そして *vtNav_userAgent* の値 (同じ名前を持つ HTMLオブジェクトにそれぞれバインドされています) は 、`WEB GET VARIABLES` コマンドを使用することによって JavaScript のスクリプト *GetBrowserInformation* で作成された HTMLオブジェクトから取得することができます。 - 3つの投稿ボタンにバインドされている変数 *vsbLogOn*, *vsbRegister* と *vsbInformation* のうち、クリックされたボタンに対応するもののみが `WEB GET VARIABLES` コマンドによって取得されます。 この 3つのうちいずれかのボタンによって投稿がおこなわれたとき、ブラウザーはクリックされたボタンの値を 4D に返します。 これにより、どのボタンがクリックされたのかが分かります。 -HTMLではすべてのオブジェクトがテキストオブジェクトであることに留意が必要です。 SELECT要素を使用した場合、 `WEB GET VARIABLES` コマンドで返されるのはオブジェクト内でハイライトされている要素の値であり、4D のように配列内の要素の位置を返すわけではありません。 `WEB GET VARIABLES` コマンドは必ずテキスト型の値を返します。 +HTMLではすべてのオブジェクトがテキストオブジェクトであることに留意が必要です。 HTMLではすべてのオブジェクトがテキストオブジェクトであることに留意が必要です。 SELECT要素を使用した場合、 `WEB GET VARIABLES` コマンドで返されるのはオブジェクト内でハイライトされている要素の値であり、4D のように配列内の要素の位置を返すわけではありません。 `WEB GET VARIABLES` コマンドは必ずテキスト型の値を返します。 `WEB GET VARIABLES` コマンドは必ずテキスト型の値を返します。 ## その他の Webサーバーコマンド diff --git a/i18n/ja/docusaurus-plugin-content-docs/version-20-R7/API/DataClassClass.md b/i18n/ja/docusaurus-plugin-content-docs/version-20-R7/API/DataClassClass.md index 0ce2196ab21ccb..63217c023f155d 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/version-20-R7/API/DataClassClass.md +++ b/i18n/ja/docusaurus-plugin-content-docs/version-20-R7/API/DataClassClass.md @@ -943,7 +943,7 @@ attributePath|formula 比較演算子 値 | 含まれる | IN | コレクション、あるいは複数の値のうち、どれか一つの値と等しいデータを取得します。ワイルドカード (@) をサポートします。 | | キーワードを含む | % | キーワードは、文字列あるいはピクチャー型の属性内で使用されるものが対象です。 | -- **値** (value): エンティティコレクションの各エンティティの属性のカレント値に対して比較する値。 **プレースホルダー** (後述の **プレースホルダーの使用** 参照) か、あるいはデータ型プロパティと同じ型の式を使用することができます。 +- **値** (value): エンティティコレクションの各エンティティの属性のカレント値に対して比較する値。 **プレースホルダー** (後述の **プレースホルダーの使用** 参照) か、あるいはデータ型プロパティと同じ型の式を使用することができます。 Note that, in case of type mismatch with scalar types (text, date, number...), 4D will try to convert the **value** type to the attribute data type whenever possible, for an easier handling of values coming from the Internet. For example, if the string "v20" is entered as **value** to compare with an integer attribute, it will be converted to 20. 定数値を使用する場合、以下の原則に従う必要があります: - **テキスト** テキスト型の定数値の場合は単一引用符つき、あるいはなしでも渡すことができます(後述の **引用符を使用する** 参照)。 文字列中の文字列を検索する ("含まれる" クエリ) には、ワイルドカード記号 (@) を使用して検索文字列を指定します (例: "@Smith@")。 また以下のキーワードはテキスト定数においては使用できません: true, false。 - **ブール** 型の定数値: **true** または **false** (文字の大小を区別します) diff --git a/i18n/ja/docusaurus-plugin-content-docs/version-20-R7/API/EntityClass.md b/i18n/ja/docusaurus-plugin-content-docs/version-20-R7/API/EntityClass.md index 972b4e7ecd5511..0cd5281a47d50f 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/version-20-R7/API/EntityClass.md +++ b/i18n/ja/docusaurus-plugin-content-docs/version-20-R7/API/EntityClass.md @@ -58,7 +58,7 @@ title: Entity - *attributeName* で指定した属性がストレージ型の場合: `.attributeName` は *attributeName* と同じ型の値を返します。 - *attributeName* で指定した属性がリレートエンティティ型の場合: - `.attributeName` はリレートエンティティを返します。 リレートエンティティの値は、ドット記法でプロパティを繋げることでアクセス可能です。例: "myEntity.employer.employees[0].lastname" + `.attributeName` はリレートエンティティを返します。 リレート先のエンティティそのものが変更された場合 (外部キーの変更)、リレーションの名称とそのプライマリーキー名が attributeName プロパティに返されます (リレーション名についての value および otherValue は空になります)。 - *attributeName* で指定した属性がリレートエンティティズ型の場合: `.attributeName` はリレートエンティティの新しいエンティティセレクションを返します。 重複しているエンティティは取り除かれます (返されるのは順列なしのエンティティセレクションです)。 @@ -98,9 +98,11 @@ title: Entity #### 説明 -`.clone()` 関数は、対象エンティティと同じレコードを参照する新規エンティティをメモリ内に作成します。 このメソッドを使用するとエンティティを個別に更新することができます。 +The `.clone()` function creates in memory a new entity referencing the same record as the original entity. -> エンティティに対して何らかの変更をおこなった場合、それらは [`.save( )`](#save) 関数が実行されたときのみ、参照先のレコードに保存されるという点に注意してください。 +This function allows you to update entities separately. Note however that, for performance reasons, the new entity shares the same reference of object attributes as the cloned entity. + +> Keep in mind that any modifications done to entities will be saved in the referenced record only when the [`.save()`](#save) function is executed. この関数は、すでにデータベースに保存されているエンティティに対してのみ使用可能です。 新規に作成されたエンティティ([`.isNew()`](#isnew) が **true** を返すもの) に対して呼び出すことはできません。 @@ -289,7 +291,7 @@ vCompareResult2 ($attributesToInspect についての差異のみ返されます ] ``` -vCompareResult3 ($e1 において更新された (touch された) 属性のみが返されます) +vCompareResult1 (すべての差異が返されています): ```4d [ @@ -344,7 +346,7 @@ vCompareResult3 ($e1 において更新された (touch された) 属性のみ #### 説明 -`.drop()` 関数は、データクラスに対応するテーブルにおいて、データストアのエンティティに格納されているデータを削除します。 エンティティそのものはメモリ内に残るという点に注意してください。 +`.drop()` 関数は、データクラスに対応するテーブルにおいて、データストアのエンティティに格納されているデータを削除します。 データクラスに対応するテーブルからエンティティが削除される一方、 エンティティそのものはメモリ内に残るという点に注意してください。 マルチユーザー、あるいはマルチプロセスアプリケーションにおいて、`.drop()` 関数は ["オプティミスティック・ロック"](ORDA/entities.md#entity-locking) 機構のもとで実行されます。これはレコードが保存されるたびに内部的なロックスタンプが自動的に増分していくという機構です。 @@ -1354,7 +1356,7 @@ $info:=$address.getRemoteContextAttributes() #### 説明 -`.toObject()` 関数は、エンティティからビルトされたオブジェクトを返します。 オブジェクト内部のプロパティ名はエンティティの属性名と合致します。 +`.toObject()` 関数は、エンティティからビルトされたオブジェクトを返します。 エンティティの属性値を格納します *filterString* 引数が空の文字列、あるいは "\*" の場合、以下のいずれかが返されます: @@ -1768,7 +1770,7 @@ employeeObject:=employeeSelected.toObject("directReports.*") ロックしているプロセス内のどのエンティティからもレコードが参照されなくなった場合、自動的にレコードロックが解除されます (たとえば、エンティティのローカル参照に対してのみロックがかかっていた場合、プロセスが終了すればエンティティおよびレコードのロックは解除されます)。 -> レコードがロックされている場合、ロックしているプロセスから、ロックされたエンティティ参照に対してロックを解除する必要があります: 例: +> レコードがロックされている場合、ロックしているプロセスから、ロックされたエンティティ参照に対してロックを解除する必要があります: 例: 例: ```4d $e1:=ds.Emp.all()[0] diff --git a/i18n/ja/docusaurus-plugin-content-docs/version-20-R7/API/HTTPRequestClass.md b/i18n/ja/docusaurus-plugin-content-docs/version-20-R7/API/HTTPRequestClass.md index 0adc752306188e..7187b8073c7187 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/version-20-R7/API/HTTPRequestClass.md +++ b/i18n/ja/docusaurus-plugin-content-docs/version-20-R7/API/HTTPRequestClass.md @@ -478,7 +478,7 @@ var $parsedMessage : Object:=HTTP Parse message($message) ## .wait() -**.wait**( { *time* : Real } ) : HTTPRequestClass +**.wait**( { *time* : Real } ) : 4D.HTTPRequest diff --git a/i18n/ja/docusaurus-plugin-content-docs/version-20-R7/API/OutGoingMessageClass.md b/i18n/ja/docusaurus-plugin-content-docs/version-20-R7/API/OutGoingMessageClass.md deleted file mode 100644 index 2d6c3d8e8f89ce..00000000000000 --- a/i18n/ja/docusaurus-plugin-content-docs/version-20-R7/API/OutGoingMessageClass.md +++ /dev/null @@ -1,190 +0,0 @@ ---- -id: OutgoingMessageClass -title: OutgoingMessage ---- - -The `4D.OutgoingMessage` class allows you to build messages to be returned by your application functions in response to [REST requests](../REST/REST_requests.md). If the response is of type `4D.OutgoingMessage`, the REST server does not return an object but the object instance of the `OutgoingMessage` class. - -一般的に、このクラスは、[`onHttpGet`](../ORDA/ordaClasses.md#onhttpget-keyword) キーワードで宣言され、HTTP GET リクエストを処理するように設計された関数の中で使用することができます。 このようなリクエストは、例えば、ファイルのダウンロード、画像の生成、ダウンロードなどの機能を実装するためや、ブラウザを介して任意のコンテンツタイプを受信するために使用されます。 - -このクラアスのインスタンスは4D Server 上にビルドされ、[4D REST サーバー](../REST/gettingStarted.md) によってのみブラウザに送信することができます。 このクラスを使用することで、HTTP 以外のテクノロジー(例: モバイルなど)を使用することができます。 - -
    履歴 - -| リリース | 内容 | -| ----- | ------ | -| 20 R7 | クラスを追加 | - -
    - -### 例題 - -この例題では、`getFile()` 関数は[Datastore クラス](../ORDA/ordaClasses.md#datastore-class) に実装されており、REST リクエストによって[呼び出すことができます](../ORDA/ordaClasses.md#onhttpget-keyword)。 ここでの目的は、**testFile.pdf** ファイルをリクエストへのレスポンスとして返すことです: - -```4d -Class extends DataStoreImplementation - -exposed onHTTPGet Function getFile() : 4D.OutgoingMessage - - var $result:=4D.OutgoingMessage.new() - var $file:=File("/RESOURCES/testFile.pdf") - - $result.setBody($file.getContent()) // これはバイナリーのコンテンツ - $result.setHeader("Content-Type"; "application/pdf") - return $result -``` - -### OutgoingMessage Object - -4D.OutgoingMessage objects provide the following properties and functions: - -| | -| -------------------------------------------------------------------------------------------------------------------------------------- | -| [](#body)
    | -| [](#headers)
    | -| [](#setbody)
    | -| [](#setheader)
    | -| [](#setstatus)
    | -| [](#status)
    | - -:::note - -A 4D.OutgoingMessage object is a [non-sharable](../Concepts/shared.md) object. - -::: - - - -## .body - -**body** : any - -#### 説明 - -The `.body` property contains the outgoing message body. `.body` プロパティでは以下のデータ型がサポートされます: - -- text -- blob -- object -- image - -`.body` プロパティは読み書き可能です。 - -`.body` プロパティはまた、[`setBody()`](#setbody) 関数を使用しても設定することができます。この場合、`content-type` ヘッダーは自動的に設定されます。 - - - - - -## .headers - -**headers** : Object - -#### 説明 - -The `.headers` property contains the current headers of the outgoing message as key/value pairs. - -The `.headers` property is read-only. To set a header, use the [`setHeader()`](#setheader) function. - - - - - -## .setBody() - -**.setBody**( *body* : any ) - - - -| 引数 | 型 | | 説明 | -| ---- | --- | -- | ---------------------------- | -| body | any | -> | Body of the outgoing message | - - - -#### 説明 - -The `.setBody()` function sets the outgoing message *body*. - -The following data types are supported in the *body*: - -- Text -- BLOB -- Object -- ピクチャー - -When this function is used, the content-type header is automatically set depending on the *body* type: - -- Content-Type:text/plain if the body is a Text -- Content-Type:application/octet-stream if body is a Blob -- Content-Type:application/json if body is an Object -- Content-Type:image/jpeg, image/gif... if body is an Image - -If *body* is not of a supported value type, an error is returned. - - - - - -## .setHeader() - -**.setHeader**( *key* : Text ; *value* : Text ) - - - -| 引数 | 型 | | 説明 | -| ----- | ---- | -- | ---------------------------- | -| key | Text | -> | Header property to set | -| value | Text | -> | Value of the header property | - - - -#### 説明 - -The `.setHeader()` function sets the outgoing message header *key* with the provided *value*. If both parameters are not Text values, an error is raised. - -When returning a 4D.OutgoingMessage object instance, 4D automatically sets some headers (e.g. `Set-Cookie` with `WASID4D=...` and `4DSID__ProjectName_=....`). - -:::note - -If you set a *value* for the "Content-Type" header *key*, make sure you call this function after the call to [`setBody()`](#setbody), because `setBody()` automatically fills this header. For a list of "Content-Type" header values, please refer to the [`WEB SEND BLOB`](../commands-legacy/web-send-blob.md) documentation. - -::: - - - - - -## .setStatus() - -**.setStatus**( *status* : Integer ) - - - -| 引数 | 型 | | 説明 | -| ------ | ------- | -- | ------------- | -| status | Integer | -> | Status to set | - - - -#### 説明 - -The `.setStatus()` function sets the `status` property with the given *status*. - -If *status* is not an integer value, an error is raised. - -For a list of HTTP status codes, please refer the [HTTP status code list on Wikipedia](https://en.wikipedia.org/wiki/List_of_HTTP_status_codes). - - - - - -## .status - -**status** : Integer - -#### 説明 - -The `.status` property contains the current status of the outgoing message. This property can be set using the [`setStatus()`](setstatus) function. - - diff --git a/i18n/ja/docusaurus-plugin-content-docs/version-20-R7/API/OutgoingMessageClass.md b/i18n/ja/docusaurus-plugin-content-docs/version-20-R7/API/OutgoingMessageClass.md index 2d6c3d8e8f89ce..eea5fdc5a48e59 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/version-20-R7/API/OutgoingMessageClass.md +++ b/i18n/ja/docusaurus-plugin-content-docs/version-20-R7/API/OutgoingMessageClass.md @@ -7,7 +7,7 @@ The `4D.OutgoingMessage` class allows you to build messages to be returned by yo 一般的に、このクラスは、[`onHttpGet`](../ORDA/ordaClasses.md#onhttpget-keyword) キーワードで宣言され、HTTP GET リクエストを処理するように設計された関数の中で使用することができます。 このようなリクエストは、例えば、ファイルのダウンロード、画像の生成、ダウンロードなどの機能を実装するためや、ブラウザを介して任意のコンテンツタイプを受信するために使用されます。 -このクラアスのインスタンスは4D Server 上にビルドされ、[4D REST サーバー](../REST/gettingStarted.md) によってのみブラウザに送信することができます。 このクラスを使用することで、HTTP 以外のテクノロジー(例: モバイルなど)を使用することができます。 +このクラアスのインスタンスは4D Server 上にビルドされ、[4D REST サーバー](../REST/gettingStarted.md) によってのみブラウザに送信することができます。 このクラスを使用することで、HTTP 以外のテクノロジー(例: モバイルなど)を使用することができます。 このクラスを使用することで、HTTP 以外のテクノロジー(例: モバイルなど)を使用することができます。
    履歴 @@ -19,7 +19,7 @@ The `4D.OutgoingMessage` class allows you to build messages to be returned by yo ### 例題 -この例題では、`getFile()` 関数は[Datastore クラス](../ORDA/ordaClasses.md#datastore-class) に実装されており、REST リクエストによって[呼び出すことができます](../ORDA/ordaClasses.md#onhttpget-keyword)。 ここでの目的は、**testFile.pdf** ファイルをリクエストへのレスポンスとして返すことです: +この例題では、`getFile()` 関数は[Datastore クラス](../ORDA/ordaClasses.md#datastore-class) に実装されており、REST リクエストによって[呼び出すことができます](../ORDA/ordaClasses.md#onhttpget-keyword)。 ここでの目的は、**testFile.pdf** ファイルをリクエストへのレスポンスとして返すことです: ここでの目的は、**testFile.pdf** ファイルをリクエストへのレスポンスとして返すことです: ```4d Class extends DataStoreImplementation diff --git a/i18n/ja/docusaurus-plugin-content-docs/version-20-R7/Concepts/classes.md b/i18n/ja/docusaurus-plugin-content-docs/version-20-R7/Concepts/classes.md index f11e9f89e2f719..1a1460f9ccfcc5 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/version-20-R7/Concepts/classes.md +++ b/i18n/ja/docusaurus-plugin-content-docs/version-20-R7/Concepts/classes.md @@ -5,9 +5,9 @@ title: クラス ## 概要 -4D ランゲージでは **クラス** の概念がサポートされています。 プログラミング言語では、クラスを利用することによって、属性やメソッドなどを持つ特定のオブジェクト種を定義することができます。 +4D ランゲージでは **クラス** の概念がサポートされています。 プログラミング言語では、クラスを利用することによって、属性やメソッドなどを持つ特定のオブジェクト種を定義することができます。 プログラミング言語では、クラスを利用することによって、属性やメソッドなどを持つ特定のオブジェクト種を定義することができます。 プログラミング言語では、クラスを利用することによって、属性やメソッドなどを持つ特定のオブジェクト種を定義することができます。 -ユーザークラスが定義されていれば、そのクラスのオブジェクトをコード内で **インスタンス化** することができます。 各オブジェクトは、それ自身が属するクラスのインスタンスです。 クラスは、別のクラスを [継承](#class-extends-classname) することで、その [関数](#function) と、([宣言された](#property) および [計算された](#function-get-と-function-set)) プロパティを受け継ぐことができます。 +ユーザークラスが定義されていれば、そのクラスのオブジェクトをコード内で **インスタンス化** することができます。 各オブジェクトは、それ自身が属するクラスのインスタンスです。 ユーザークラスが定義されていれば、そのクラスのオブジェクトをコード内で **インスタンス化** することができます。 各オブジェクトは、それ自身が属するクラスのインスタンスです。 クラスは、別のクラスを [継承](#class-extends-classname) することで、その [関数](#function) と、([宣言された](#property) および [計算された](#function-get-と-function-set)) プロパティを受け継ぐことができます。 各オブジェクトは、それ自身が属するクラスのインスタンスです。 ユーザークラスが定義されていれば、そのクラスのオブジェクトをコード内で **インスタンス化** することができます。 各オブジェクトは、それ自身が属するクラスのインスタンスです。 クラスは、別のクラスを [継承](#class-extends-classname) することで、その [関数](#function) と、([宣言された](#property) および [計算された](#function-get-と-function-set)) プロパティを受け継ぐことができます。 > 4D におけるクラスモデルは JavaScript のクラスに類似しており、プロトタイプチェーンに基づきます。 @@ -41,7 +41,7 @@ $hello:=$person.sayHello() // "Hello John Doe" ### クラス定義 -4D においてユーザークラスとは、`/Project/Sources/Classes/` フォルダーに保存された専用の [メソッド](methods.md) ファイル (.4dm) によって定義されます。 ファイル名がクラス名になります。 +4D においてユーザークラスとは、`/Project/Sources/Classes/` フォルダーに保存された専用の [メソッド](methods.md) ファイル (.4dm) によって定義されます。 ファイル名がクラス名になります。 ファイル名がクラス名になります。 ファイル名がクラス名になります。 クラスを命名する際には、次のルールに留意してください: @@ -81,6 +81,8 @@ Project フォルダー Project Sources Classes Polygon.4dm - **クラス** カテゴリを選択し、![](../assets/en/Users/PlussNew.png) ボタンをクリックします。 - エクスプローラーウィンドウの下部にあるアクションメニュー、またはクラスグループのコンテキストメニューから **新規クラス...** を選択します。 ![](../assets/en/Concepts/newClass.png) + ![](../assets/en/Concepts/newClass.png) + ![](../assets/en/Concepts/newClass.png) - エクスプローラーのホームページのコンテキストメニューより **新規** > **クラス...** を選択します。 #### クラスのコードサポート @@ -96,7 +98,7 @@ Project フォルダー Project Sources Classes Polygon.4dm ## クラスストア -定義されたクラスには、クラスストアよりアクセスすることができます。 クラスストアには次の二つが存在します: +定義されたクラスには、クラスストアよりアクセスすることができます。 定義されたクラスには、クラスストアよりアクセスすることができます。 クラスストアには次の二つが存在します: - [`cs`](../commands/cs.md) - ユーザークラスストア - [`4D`](../commands/4d.md) - ビルトインクラスストア @@ -107,11 +109,11 @@ Project フォルダー Project Sources Classes Polygon.4dm -| 引数 | 型 | | 説明 | | -| ---------- | ------ | ------------------------------ | --------------------------- | ---------------- | -| classStore | Object | &larr; | プロジェクトまたはコンポーネントのユーザークラスストア | | +| 引数 | 型 | | 説明 | | +| ---------- | ------ | - | --------------------------- | ---------------- | +| classStore | Object | ← | プロジェクトまたはコンポーネントのユーザークラスストア | | -`cs` コマンドは、カレントプロジェクトまたはコンポーネントのユーザークラスストアを返します。 これには、プロジェクトまたはコンポーネントにて [定義](#クラス定義) されている、すべてのユーザークラスが含まれます。 デフォルトでは、 [ORDAクラス](ORDA/ordaClasses.md) のみ利用可能です。 +`cs` コマンドは、カレントプロジェクトまたはコンポーネントのユーザークラスストアを返します。 これには、プロジェクトまたはコンポーネントにて [定義](#クラス定義) されている、すべてのユーザークラスが含まれます。 デフォルトでは、 [ORDAクラス](ORDA/ordaClasses.md) のみ利用可能です。 これには、プロジェクトまたはコンポーネントにて [定義](#クラス定義) されている、すべてのユーザークラスが含まれます。 デフォルトでは、 [ORDAクラス](ORDA/ordaClasses.md) のみ利用可能です。 これには、プロジェクトまたはコンポーネントにて [定義](#クラス定義) されている、すべてのユーザークラスが含まれます。 デフォルトでは、 [ORDAクラス](ORDA/ordaClasses.md) のみ利用可能です。 #### 例題 @@ -127,11 +129,11 @@ $instance:=cs.myClass.new() -| 引数 | 型 | | 説明 | | -| ---------- | ------ | ------------------------------ | -------- | ---------------- | -| classStore | Object | &larr; | 4Dクラスストア | | +| 引数 | 型 | | 説明 | | +| ---------- | ------ | - | -------- | ---------------- | +| classStore | Object | ← | 4Dクラスストア | | -`4D` コマンドは、ビルトイン 4Dクラスのクラスストアを返します。 [CryptoKey](API/CryptoKeyClass.md) などの専用 API へのアクセスを提供します。 +`4D` コマンドは、ビルトイン 4Dクラスのクラスストアを返します。 [CryptoKey](API/CryptoKeyClass.md) などの専用 API へのアクセスを提供します。 [CryptoKey](API/CryptoKeyClass.md) などの専用 API へのアクセスを提供します。 [CryptoKey](API/CryptoKeyClass.md) などの専用 API へのアクセスを提供します。 #### 例題 @@ -151,7 +153,7 @@ $key:=4D.CryptoKey.new(New object("type";"ECDSA";"curve";"prime256v1")) ## Class オブジェクト -プロジェクトにおいてクラスが [定義](#クラス定義) されていれば、それは 4Dランゲージ環境に読み込まれます。 クラスとは、それ自身が ["Class" クラス](API/ClassClass.md) のオブジェクトです。 Class オブジェクトは次のプロパティや関数を持ちます: +プロジェクトにおいてクラスが [定義](#クラス定義) されていれば、それは 4Dランゲージ環境に読み込まれます。 クラスとは、それ自身が ["Class" クラス](API/ClassClass.md) のオブジェクトです。 Class オブジェクトは次のプロパティや関数を持ちます: クラスとは、それ自身が ["Class" クラス](API/ClassClass.md) のオブジェクトです。 Class オブジェクトは次のプロパティや関数を持ちます: クラスとは、それ自身が ["Class" クラス](API/ClassClass.md) のオブジェクトです。 Class オブジェクトは次のプロパティや関数を持ちます: - [`name`](API/ClassClass.md#name) 文字列 - [`superclass`](API/ClassClass.md#superclass) オブジェクト (無い場合は null) @@ -197,9 +199,9 @@ There is no ending keyword for function code. The 4D language automatically dete ::: -クラス関数とは、当該クラスのプロパティです。 クラス関数は [`4D.Function`](API/FunctionClass.md) クラスのオブジェクトです。 クラス定義ファイルでは、`Function` キーワードに続けて関数名を指定して宣言をおこないます。 +クラス関数とは、当該クラスのプロパティです。 クラス関数とは、当該クラスのプロパティです。 クラス関数は [`4D.Function`](API/FunctionClass.md) クラスのオブジェクトです。 クラス定義ファイルでは、`Function` キーワードに続けて関数名を指定して宣言をおこないます。 クラス関数とは、当該クラスのプロパティです。 クラス関数とは、当該クラスのプロパティです。 クラス関数は [`4D.Function`](API/FunctionClass.md) クラスのオブジェクトです。 クラス定義ファイルでは、`Function` キーワードに続けて関数名を指定して宣言をおこないます。 クラス定義ファイルでは、`Function` キーワードに続けて関数名を指定して宣言をおこないます。 -[共有クラス](#共有クラス) 内で関数が宣言されている場合は、`shared` キーワードを使用することによって、[`Use...End use` structure](shared.md#useend-use) 構文なしで関数を呼び出せるようにできます。 詳細については、後述の [共有関数](#共有関数) の項目を参照ください。 +[共有クラス](#共有クラス) 内で関数が宣言されている場合は、`shared` キーワードを使用することによって、[`Use...End use` 構文](shared.md#useend-use)なしで関数を呼び出せるようにできます。 詳細については、後述の [共有関数](#共有関数) の項目を参照ください。 詳細については、後述の [共有関数](#共有関数) の項目を参照ください。 関数名は [プロパティ名の命名規則](Concepts/identifiers.md#オブジェクトプロパティ) に準拠している必要があります。 @@ -211,17 +213,17 @@ There is no ending keyword for function code. The 4D language automatically dete :::tip -アンダースコア ("_") 文字で関数名を開始すると、その関数は 4Dコードエディターの自動補完機能から除外されます。 たとえば、`MyClass` に `Function _myPrivateFunction` を宣言した場合、コードエディターにおいて `"cs.MyClass."` とタイプしても、この関数は候補として提示されません 。 +アンダースコア ("_") 文字で関数名を開始すると、その関数は 4Dコードエディターの自動補完機能から除外されます。 たとえば、`MyClass` に `Function _myPrivateFunction` を宣言した場合、コードエディターにおいて `"cs.MyClass."` とタイプしても、この関数は候補として提示されません 。 たとえば、`MyClass` に `Function _myPrivateFunction` を宣言した場合、コードエディターにおいて `"cs.MyClass."` とタイプしても、この関数は候補として提示されません 。 ::: -関数名のすぐ後に、名前とデータ型を指定して [引数](#引数) を宣言します (戻り値の宣言も可)。 例: +関数名のすぐ後に、名前とデータ型を指定して [引数](#引数) を宣言します (戻り値の宣言も可)。 例: 例: 例: ```4d Function computeArea($width : Integer; $height : Integer)->$area : Integer ``` -クラスメソッド内でオブジェクトインスタンスを参照するには `This` コマンドを使います。 例: +クラスメソッド内でオブジェクトインスタンスを参照するには `This` コマンドを使います。 例: 例: 例: ```4d Function setFullname($firstname : Text; $lastname : Text) @@ -234,9 +236,9 @@ Function getFullname()->$fullname : Text クラス関数の場合には、`Current method name` コマンドは次を返します: `.` (例: "MyClass.myFunction")。 -アプリケーションのコード内では、クラス関数はオブジェクトインスタンスのメンバーメソッドとして呼び出され、[引数](#引数) を受け取ることができます。 以下のシンタックスがサポートされています: +アプリケーションのコード内では、クラス関数はオブジェクトインスタンスのメンバーメソッドとして呼び出され、[引数](#引数) を受け取ることができます。 以下のシンタックスがサポートされています: 以下のシンタックスがサポートされています: 以下のシンタックスがサポートされています: -- `()` 演算子の使用。 例: `myObject.methodName("hello")` +- `()` 演算子の使用。 `()` 演算子の使用。 `()` 演算子の使用。 例: `myObject.methodName("hello")` - "4D.Function" クラスメンバーメソッドの使用: - [`apply()`](API/FunctionClass.md#apply) - [`call()`](API/FunctionClass.md#call) @@ -266,14 +268,14 @@ Function add($x; $y : Variant; $z : Integer; $xy : Object) #### 戻り値 -関数の戻り値を宣言するには (任意)、入力パラメーターリストに矢印 (`->`) と戻り値の定義を追加します。 例: +関数の戻り値を宣言するには (任意)、入力パラメーターリストに矢印 (`->`) と戻り値の定義を追加します。 例: 例: 例: ```4d Function add($x : Variant; $y : Integer)->$result : Integer $result:=$x+$y ``` -コロン (`:`) 記号の後に戻り値のデータ型だけを指定し、そのうえで [`return 文`](parameters.md#return-expression) を使って戻り値を返すこともできます (これは関数の実行を終了します)。 例: +コロン (`:`) 記号の後に戻り値のデータ型だけを指定し、そのうえで [`return 文`](parameters.md#return-expression) を使って戻り値を返すこともできます (これは関数の実行を終了します)。 例: 例: 例: ```4d Function add($x : Variant; $y : Integer): Integer @@ -341,13 +343,13 @@ There is no ending keyword for class constructor function code. The 4D language クラスコンストラクターが定義されていると、[`new()`](API/ClassClass.md#new) 関数を呼び出したときに、当該コンストラクターが呼び出されます (コンストラクターで引数を指定している場合は `new()` 関数に渡します)。 -コンストラクター関数は、1つのクラスに 1つしか存在できません (そうでない場合はエラーが返されます)。 [`Super`](#super) キーワードを使用することで、コンストラクターはスーパークラス (親クラス) のコンストラクターを呼び出すことができます。 +コンストラクター関数は、1つのクラスに 1つしか存在できません (そうでない場合はエラーが返されます)。 The [`Super`](../commands/super.md) command allows calls to the [`superclass`](../API/ClassClass#superclass), i.e. the parent class of the function. The [`Super`](../commands/super.md) command allows calls to the [`superclass`](../API/ClassClass#superclass), i.e. the parent class of the function. -コンストラクター内でインスタンスのプロパティを作成し、型宣言することができます (例題参照)。 また、インスタンスプロパティの値が、コンストラクターに渡される引数に依存しない場合は、[`property`](#property) キーワードを使用して定義することができます。 +コンストラクター内でインスタンスのプロパティを作成し、型宣言することができます (例題参照)。 コンストラクター内でインスタンスのプロパティを作成し、型宣言することができます (例題参照)。 コンストラクター内でインスタンスのプロパティを作成し、型宣言することができます (例題参照)。 また、インスタンスプロパティの値が、コンストラクターに渡される引数に依存しない場合は、[`property`](#property) キーワードを使用して定義することができます。 -`shared` キーワードを使うと **共有クラス** が作成されます。共有クラスは、共有オブジェクトのインスタンス化にのみ使われます。 詳細については、後述の [共有クラス](#共有クラス) の項目を参照ください。 +`shared` キーワードを使うと **共有クラス** が作成されます。共有クラスは、共有オブジェクトのインスタンス化にのみ使われます。 詳細については、後述の [共有クラス](#共有クラス) の項目を参照ください。 詳細については、後述の [共有クラス](#共有クラス) の項目を参照ください。 詳細については、後述の [共有クラス](#共有クラス) の項目を参照ください。 -`singleton` キーワードを使うと **シングルトン** が作成されます。シングルトンクラスは、クラスインスタンスを一つに限定する場合に使われます。 `session singleton` キーワードを使うと、セッションごとに 1つのインスタンスを作成します。 詳細については、後述の [シングルトンクラス](#シングルトンクラス) の項目を参照ください。 +`singleton` キーワードを使うと **シングルトン** が作成されます。シングルトンクラスは、クラスインスタンスを一つに限定する場合に使われます。 `session singleton` キーワードを使うと、セッションごとに 1つのインスタンスを作成します。 詳細については、後述の [シングルトンクラス](#シングルトンクラス) の項目を参照ください。 `session singleton` キーワードを使うと、セッションごとに 1つのインスタンスを作成します。 詳細については、後述の [シングルトンクラス](#シングルトンクラス) の項目を参照ください。 `session singleton` キーワードを使うと、セッションごとに 1つのインスタンスを作成します。 詳細については、後述の [シングルトンクラス](#シングルトンクラス) の項目を参照ください。 #### 例題 @@ -373,7 +375,7 @@ $o:=cs.MyClass.new("John";42) `property {; ;...}{ : }` -`property` キーワードを使用して、ユーザークラス内のプロパティを宣言することができます。 クラスプロパティには、名前と型があります。 +`property` キーワードを使用して、ユーザークラス内のプロパティを宣言することができます。 クラスプロパティには、名前と型があります。 クラスプロパティには、名前と型があります。 クラスプロパティには、名前と型があります。 クラスプロパティを宣言することで、コードエディターの自動補完機能とエラー検出機能を強化します。 @@ -433,7 +435,7 @@ $o:=cs.MyClass.new("John";42) ::: -宣言の際には型を省略することができます。その場合、可能な限り型は推論されます。 例: +宣言の際には型を省略することができます。その場合、可能な限り型は推論されます。 例: 例: 例: ```4d // クラス: MyClass @@ -496,7 +498,7 @@ $o.age:="Smith" // シンタックスチェックでエラー // コード ``` -`Function get` と `Function set` は、クラスの **計算プロパティ** を定義するアクセサーです。 計算プロパティとは、計算をマスクするデータ型を持つ命名プロパティです。 計算プロパティの値にアクセスすると、4D は対応するアクセサーのコードを実行します: +`Function get` と `Function set` は、クラスの **計算プロパティ** を定義するアクセサーです。 計算プロパティとは、計算をマスクするデータ型を持つ命名プロパティです。 計算プロパティの値にアクセスすると、4D は対応するアクセサーのコードを実行します: 計算プロパティとは、計算をマスクするデータ型を持つ命名プロパティです。 計算プロパティの値にアクセスすると、4D は対応するアクセサーのコードを実行します: 計算プロパティとは、計算をマスクするデータ型を持つ命名プロパティです。 計算プロパティの値にアクセスすると、4D は対応するアクセサーのコードを実行します: - プロパティを読み取るときには `Function get` が実行されます。 - プロパティに書き込むときには `Function set` が実行されます。 @@ -505,17 +507,17 @@ $o.age:="Smith" // シンタックスチェックでエラー 計算プロパティは、メモリ上に保持する必要のないデータを処理するために設計されています。 計算プロパティは通常、永続的なプロパティに基づいています。 たとえば、クラスオブジェクトの永続的なプロパティとして、*税込価格* と *消費税率* が含まれている場合、*税抜価格* は計算プロパティで処理することができます。 -クラス定義ファイルでは、計算プロパティの宣言には、`Function get` (*ゲッター*) と `Function set` (*セッター*) のキーワードを使い、その後にプロパティ名を記述します。 名称は [プロパティ名の命名規則](Concepts/identifiers.md#オブジェクトプロパティ) に準拠している必要があります。 +クラス定義ファイルでは、計算プロパティの宣言には、`Function get` (*ゲッター*) と `Function set` (*セッター*) のキーワードを使い、その後にプロパティ名を記述します。 名称は [プロパティ名の命名規則](Concepts/identifiers.md#オブジェクトプロパティ) に準拠している必要があります。 名称は [プロパティ名の命名規則](Concepts/identifiers.md#オブジェクトプロパティ) に準拠している必要があります。 名称は [プロパティ名の命名規則](Concepts/identifiers.md#オブジェクトプロパティ) に準拠している必要があります。 -`Function get` はプロパティの型の値を返し、`Function set` はプロパティの型の引数を受け取ります。 どちらも、標準的な [関数の引数](#引数) のルールに準拠する必要があります。 +`Function get` はプロパティの型の値を返し、`Function set` はプロパティの型の引数を受け取ります。 どちらも、標準的な [関数の引数](#引数) のルールに準拠する必要があります。 どちらも、標準的な [関数の引数](#引数) のルールに準拠する必要があります。 どちらも、標準的な [関数の引数](#引数) のルールに準拠する必要があります。 -両方の関数が定義されている場合、計算プロパティは **read-write** となります。 `Function get` のみが定義されている場合、計算プロパティは **read-only** です。 この場合、コードがプロパティを変更しようとするとエラーが返されます。 `Function set` のみが定義されている場合、4D はプロパティの読み取り時に *undefined* を返します。 +両方の関数が定義されている場合、計算プロパティは **read-write** となります。 両方の関数が定義されている場合、計算プロパティは **read-write** となります。 `Function get` のみが定義されている場合、計算プロパティは **read-only** です。 この場合、コードがプロパティを変更しようとするとエラーが返されます。 `Function set` のみが定義されている場合、4D はプロパティの読み取り時に *undefined* を返します。 この場合、コードがプロパティを変更しようとするとエラーが返されます。 `Function set` のみが定義されている場合、4D はプロパティの読み取り時に *undefined* を返します。 両方の関数が定義されている場合、計算プロパティは **read-write** となります。 `Function get` のみが定義されている場合、計算プロパティは **read-only** です。 この場合、コードがプロパティを変更しようとするとエラーが返されます。 `Function set` のみが定義されている場合、4D はプロパティの読み取り時に *undefined* を返します。 この場合、コードがプロパティを変更しようとするとエラーが返されます。 `Function set` のみが定義されている場合、4D はプロパティの読み取り時に *undefined* を返します。 [共有クラス](#共有クラス) 内で関数が宣言されている場合は、`shared` キーワードを使用することによって、[`Use...End use` 構文](shared.md#useend-use)なしで関数を呼び出せるようにできます。 詳細については、後述の [共有関数](#共有関数) の項目を参照ください。 -計算プロパティの型は、*ゲッター* の `$return` の型宣言によって定義されます。 [有効なプロパティタイプ](dt_object.md) であれば、いずれも使用可能です。 +計算プロパティの型は、*ゲッター* の `$return` の型宣言によって定義されます。 [有効なプロパティタイプ](dt_object.md) であれば、いずれも使用可能です。 [有効なプロパティタイプ](dt_object.md) であれば、いずれも使用可能です。 [有効なプロパティタイプ](dt_object.md) であれば、いずれも使用可能です。 -> オブジェクトプロパティに *undefined* を代入すると、型を保持したまま値がクリアされます。 このためには、まず `Function get` を呼び出して値の型を取得し、次にその型の空の値で `Function set` を呼び出します。 +> オブジェクトプロパティに *undefined* を代入すると、型を保持したまま値がクリアされます。 オブジェクトプロパティに *undefined* を代入すると、型を保持したまま値がクリアされます。 オブジェクトプロパティに *undefined* を代入すると、型を保持したまま値がクリアされます。 このためには、まず `Function get` を呼び出して値の型を取得し、次にその型の空の値で `Function set` を呼び出します。 #### 例題 1 @@ -566,7 +568,7 @@ Function get fullAddress()->$result : Object Class extends ``` -クラス宣言において `Class extends` キーワードを使うと、別のユーザークラスの子ユーザークラスを作成することができます。 この子クラスは、親クラスのすべての機能を継承します。 +クラス宣言において `Class extends` キーワードを使うと、別のユーザークラスの子ユーザークラスを作成することができます。 この子クラスは、親クラスのすべての機能を継承します。 この子クラスは、親クラスのすべての機能を継承します。 この子クラスは、親クラスのすべての機能を継承します。 クラス継承は次のルールに沿っている必要があります: @@ -659,7 +661,7 @@ For more details, see the [`This`](../commands/this.md) command description. ## 共有クラス -**共有クラス** を作成することができます。 共有クラスとは、クラスの [`new()`](../API/ClassClass.md#new) 関数が呼び出されたときに、[共有オブジェクト](shared.md) をインスタンス化するユーザークラスのことを指します。 共有クラスは共有オブジェクトしか作れません。 +**共有クラス** を作成することができます。 **共有クラス** を作成することができます。 共有クラスとは、クラスの [`new()`](../API/ClassClass.md#new) 関数が呼び出されたときに、[共有オブジェクト](shared.md) をインスタンス化するユーザークラスのことを指します。 共有クラスは共有オブジェクトしか作れません。 **共有クラス** を作成することができます。 **共有クラス** を作成することができます。 共有クラスとは、クラスの [`new()`](../API/ClassClass.md#new) 関数が呼び出されたときに、[共有オブジェクト](shared.md) をインスタンス化するユーザークラスのことを指します。 共有クラスは共有オブジェクトしか作れません。 共有クラスは共有オブジェクトしか作れません。 共有クラスは **共有関数** をサポートしています。共有関数は、[`Use...End use`](shared.md#useend-use) 構文なしで呼び出すことができます。 @@ -674,7 +676,7 @@ For more details, see the [`This`](../commands/this.md) command description. ### 共有クラスの作成 -共有クラスを作成するには、[Class Constructor](#class-constructor) の前に `shared` キーワードを追加します。 例: +共有クラスを作成するには、[Class Constructor](#class-constructor) の前に `shared` キーワードを追加します。 例: 例: 例: ```4d // 共有クラス: Person @@ -693,9 +695,9 @@ cs.Person.isShared // true ### 共有関数 -共有クラス内で定義された関数が、そのクラスのオブジェクトを変更する場合には、共有オブジェクトへのアクセスを保護するために、[`Use...End use`](shared.md#useend-use) 構文を呼び出す必要があります。 しかし、**shared** として関数を定義することで、実行時には内部的な `Use...End use` を自動でトリガーするようにし、コードを簡略化することができます。 +共有クラス内で定義された関数が、そのクラスのオブジェクトを変更する場合には、共有オブジェクトへのアクセスを保護するために、[`Use...End use`](shared.md#useend-use) 構文を呼び出す必要があります。 しかし、**shared** として関数を定義することで、実行時には内部的な `Use...End use` を自動でトリガーするようにし、コードを簡略化することができます。 しかし、**shared** として関数を定義することで、実行時には内部的な `Use...End use` を自動でトリガーするようにし、コードを簡略化することができます。 しかし、**shared** として関数を定義することで、実行時には内部的な `Use...End use` を自動でトリガーするようにし、コードを簡略化することができます。 -共有クラス内で共有関数を作成するには、[Function](#function) キーワードの前に `shared` キーワードを追加します。 例: +共有クラス内で共有関数を作成するには、[Function](#function) キーワードの前に `shared` キーワードを追加します。 例: 例: 例: ```4d // 共有クラス Foo @@ -714,7 +716,7 @@ shared Function Bar($value : Integer) ## シングルトンクラス -**シングルトンクラス** とは、インスタンスを一つのみ作成するユーザークラスです。 シングルトンのコンセプトに関する詳細については、[シングルトンに関する Wikipedia のページ](https://ja.wikipedia.org/wiki/Singleton_%E3%83%91%E3%82%BF%E3%83%BC%E3%83%B3) を参照ください。 +**シングルトンクラス** とは、インスタンスを一つのみ作成するユーザークラスです。 シングルトンのコンセプトに関する詳細については、[シングルトンに関する Wikipedia のページ](https://ja.wikipedia.org/wiki/Singleton_%E3%83%91%E3%82%BF%E3%83%BC%E3%83%B3) を参照ください。 シングルトンのコンセプトに関する詳細については、[シングルトンに関する Wikipedia のページ](https://ja.wikipedia.org/wiki/Singleton_%E3%83%91%E3%82%BF%E3%83%BC%E3%83%B3) を参照ください。 シングルトンのコンセプトに関する詳細については、[シングルトンに関する Wikipedia のページ](https://ja.wikipedia.org/wiki/Singleton_%E3%83%91%E3%82%BF%E3%83%BC%E3%83%B3) を参照ください。 ### シングルトンの種類 @@ -722,7 +724,7 @@ shared Function Bar($value : Integer) - **プロセスシングルトン** は、自身がインスタンス化されたプロセス内において、インスタンスを一つのみ持つことができます。 - **共有シングルトン** は、マシン上のすべてのプロセスにおいて、共通のインスタンスを一つのみ持つことができます。 -- **セッションシングルトン** も共有シングルトンですが、特定の [セッション](../API/SessionClass.md) 内のすべてのプロセスにおいて、共通のインスタンスを一つのみ持つことができます。 セッションシングルトンは、セッション内で全体的に共有されますが、セッションごとに異なります。 クライアントサーバーまたは Webアプリケーションのコンテキストで セッションシングルトンを使用すると、各セッションごと (つまり各ユーザーごと) に異なるインスタンスを作成して使用することができます。 +- **セッションシングルトン** も共有シングルトンですが、特定の [セッション](../API/SessionClass.md) 内のすべてのプロセスにおいて、共通のインスタンスを一つのみ持つことができます。 セッションシングルトンは、セッション内で全体的に共有されますが、セッションごとに異なります。 クライアントサーバーまたは Webアプリケーションのコンテキストで セッションシングルトンを使用すると、各セッションごと (つまり各ユーザーごと) に異なるインスタンスを作成して使用することができます。 セッションシングルトンは、セッション内で全体的に共有されますが、セッションごとに異なります。 クライアントサーバーまたは Webアプリケーションのコンテキストで セッションシングルトンを使用すると、各セッションごと (つまり各ユーザーごと) に異なるインスタンスを作成して使用することができます。 セッションシングルトンは、セッション内で全体的に共有されますが、セッションごとに異なります。 クライアントサーバーまたは Webアプリケーションのコンテキストで セッションシングルトンを使用すると、各セッションごと (つまり各ユーザーごと) に異なるインスタンスを作成して使用することができます。 アプリケーションやセッション、プロセス内のどこからでも利用可能な値を定義するのにシングルトンは便利です。 @@ -757,9 +759,9 @@ shared Function Bar($value : Integer) ::: -クラスのシングルトンは、初回の [`cs..me`](../API/ClassClass.md#me) プロパティの呼び出し時にインスタンス化されます。 インスタンス化されたクラスのシングルトンはその後、[`me`](../API/ClassClass.md#me) プロパティの使用により常に返されます。 +クラスのシングルトンは、初回の [`cs..me`](../API/ClassClass.md#me) プロパティの呼び出し時にインスタンス化されます。 インスタンス化されたクラスのシングルトンはその後、[`me`](../API/ClassClass.md#me) プロパティの使用により常に返されます。 インスタンス化されたクラスのシングルトンはその後、[`me`](../API/ClassClass.md#me) プロパティの使用により常に返されます。 インスタンス化されたクラスのシングルトンはその後、[`me`](../API/ClassClass.md#me) プロパティの使用により常に返されます。 -シングルトンを引数付きでインスタンス化する必要がある場合には、[`new()`](../API/ClassClass.md#new) 関数を呼び出すこともできます。 この場合、アプリケーションの起動時に実行されるコードでシングルトンをインスタンス化することが推奨されます。 +シングルトンを引数付きでインスタンス化する必要がある場合には、[`new()`](../API/ClassClass.md#new) 関数を呼び出すこともできます。 この場合、アプリケーションの起動時に実行されるコードでシングルトンをインスタンス化することが推奨されます。 この場合、アプリケーションの起動時に実行されるコードでシングルトンをインスタンス化することが推奨されます。 この場合、アプリケーションの起動時に実行されるコードでシングルトンをインスタンス化することが推奨されます。 クラスがシングルトンクラスかどうかは、Classオブジェクトの .[`.isSingleton`](../API/ClassClass.md#issingleton)プロパティで確認できます。 @@ -846,7 +848,7 @@ shared function addItem($item:object) This.itemList.push($item) ``` -ItemInventorクラスをセッションシングルトンとして定義することで、各セッションと各ユーザーが独自の在庫を持つことができます。 ユーザー在庫へのアクセスは以下のように簡単です: +ItemInventorクラスをセッションシングルトンとして定義することで、各セッションと各ユーザーが独自の在庫を持つことができます。 ユーザー在庫へのアクセスは以下のように簡単です: ユーザー在庫へのアクセスは以下のように簡単です: ユーザー在庫へのアクセスは以下のように簡単です: ```4d // ユーザーセッションにおいて diff --git a/i18n/ja/docusaurus-plugin-content-docs/version-20-R7/Notes/updates.md b/i18n/ja/docusaurus-plugin-content-docs/version-20-R7/Notes/updates.md index a7c4baa8f2b773..8e6f5f072ffb15 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/version-20-R7/Notes/updates.md +++ b/i18n/ja/docusaurus-plugin-content-docs/version-20-R7/Notes/updates.md @@ -169,7 +169,7 @@ title: リリースノート | ライブラリ | 現在のバージョン | 更新された 4D バージョン | 説明 | | --------- | -------------------------------------- | -------------- | ----------------------------------------------------------------------------------------- | | BoringSSL | 0aa300b | 20 R6 | QUIC に使用 | -| CEF | 128 | **20 R7** | Chromium 6613 | +| CEF | 121 | 20 R5 | Chromium 6167 | | Hunspell | 1.7.2 | 20 | 4D フォームと 4D Write Pro でスペルチェックに使用されます。 | | ICU | 73.2 | 20 | このアップグレードにより、英数字とテキスト、オブジェクトのインデックスが自動的に再構築されます。 | | libldap | 2.6.7 | 20 R6 | | diff --git a/i18n/ja/docusaurus-plugin-content-docs/version-20-R7/Project/code-overview.md b/i18n/ja/docusaurus-plugin-content-docs/version-20-R7/Project/code-overview.md index 334762ad5b4b9f..5f1c057c7ee327 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/version-20-R7/Project/code-overview.md +++ b/i18n/ja/docusaurus-plugin-content-docs/version-20-R7/Project/code-overview.md @@ -5,7 +5,7 @@ title: メソッドとクラス プロジェクトで使用される 4D コードは、 [メソッド](../Concepts/methods.md) および [クラス](../Concepts/classes.md) に記述されます。 -4D IDE には、コードを作成・編集・エクスポート・削除するためのさまざまな機能があります。 通常は、4D の [コードエディター](../code-editor/write-class-method.md) を使用して、コードを管理します。 +4D IDE には、コードを作成・編集・エクスポート・削除するためのさまざまな機能があります。 You will usually use the included 4D [code editor](../code-editor/write-class-method.md) to work with your code. You can also use other editors such as **VS Code**, for which the [4D-Analyzer extension](https://github.com/4d/4D-Analyzer-VSCode) is available. ## メソッドの作成 diff --git a/i18n/ja/docusaurus-plugin-content-docs/version-20-R7/Project/compiler.md b/i18n/ja/docusaurus-plugin-content-docs/version-20-R7/Project/compiler.md index 6d669d942af106..09e5f85a1cbba8 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/version-20-R7/Project/compiler.md +++ b/i18n/ja/docusaurus-plugin-content-docs/version-20-R7/Project/compiler.md @@ -9,7 +9,7 @@ title: コンパイル コンパイル処理はすべて 4Dアプリケーションにより自動的でおこなわれます。 -> macOS上でコンパイルするには、`Xcode` をインストールする必要があります。 このことについての詳細は [Apple Silicon用コンパイラー](#apple-silicon用コンパイラー) を参照ください。 +> macOS上でコンパイルするには、`Xcode` をインストールする必要があります。 このことについての詳細は [Apple Silicon用コンパイラー](#apple-silicon用コンパイラー) を参照ください。 このことについての詳細は [Apple Silicon用コンパイラー](#apple-silicon用コンパイラー) を参照ください。 1. コンパイラーウィンドウを表示するには、**デザイン** メニューの **コンパイラー...** を選択するか、またはツールバーにある **コンパイラー** ボタンをクリックします。 @@ -41,9 +41,9 @@ title: コンパイル ## コンパイル済み実行 -プロジェクトがコンパイルされると、[インタープリターモードとコンパイル済みモード](Concepts/interpreted.md) を切り替えて実行できるようになります。この際、4Dアプリケーションを終了する必要はありません (インタープリターコードを削除している場合は除きます)。 切り替えには、**実行** メニューの **インタープリター再起動** や **コンパイル済み再起動** コマンドを使用します。 [プロジェクトを開くダイアログボックス](GettingStarted/creating.md#オプション) でも、起動時にインタープリターモードとコンパイル済みモードから選択することができます。 +プロジェクトがコンパイルされると、[インタープリターモードとコンパイル済みモード](Concepts/interpreted.md) を切り替えて実行できるようになります。この際、4Dアプリケーションを終了する必要はありません (インタープリターコードを削除している場合は除きます)。 切り替えには、**実行** メニューの **インタープリター再起動** や **コンパイル済み再起動** コマンドを使用します。 [プロジェクトを開くダイアログボックス](GettingStarted/creating.md#オプション) でも、起動時にインタープリターモードとコンパイル済みモードから選択することができます。 切り替えには、**実行** メニューの **インタープリター再起動** や **コンパイル済み再起動** コマンドを使用します。 [プロジェクトを開くダイアログボックス](GettingStarted/creating.md#オプション) でも、起動時にインタープリターモードとコンパイル済みモードから選択することができます。 -モードを変更すると、4D は現在のモードを閉じ、新しいモードを開きます。 つまり、アプリケーションが閉じられ、再び開かれます。 モードを切り替えるたびに、4D は 2つのデータベースメソッド (定義されていれば) を次の順番に実行します: `On Exit` -> `On Startup`。 +モードを変更すると、4D は現在のモードを閉じ、新しいモードを開きます。 つまり、アプリケーションが閉じられ、再び開かれます。 モードを変更すると、4D は現在のモードを閉じ、新しいモードを開きます。 つまり、アプリケーションが閉じられ、再び開かれます。 モードを切り替えるたびに、4D は 2つのデータベースメソッド (定義されていれば) を次の順番に実行します: `On Exit` -> `On Startup`。 インタープリターモードでプロジェクトを編集したら、それをコンパイルコードに反映させるには再コンパイルしなければなりません。 @@ -61,13 +61,13 @@ title: コンパイル :::info 互換性 -このボタンは、変換されたプロジェクトで、[コンパイルパスオプション](#直接型指定の有効化) に **自動変数定義は行わない (直接型指定)** が選択されていない場合にのみ表示されます。 このボタンに関する情報については、[以前の 4Dリリースのドキュメント](https://developer.4d.com/docs/20/Project/compiler#型宣言を生成する) を参照ください。 +このボタンは、変換されたプロジェクトで、[コンパイルパスオプション](#直接型指定の有効化) に **自動変数定義は行わない (直接型指定)** が選択されていない場合にのみ表示されます。 このボタンは、変換されたプロジェクトで、[コンパイルパスオプション](#直接型指定の有効化) に **自動変数定義は行わない (直接型指定)** が選択されていない場合にのみ表示されます。 このボタンに関する情報については、[以前の 4Dリリースのドキュメント](https://developer.4d.com/docs/20/Project/compiler#型宣言を生成する) を参照ください。 ::: ### コンパイルコードを削除 -**コンパイルコードを削除** ボタンを使用すると、プロジェクトのコンパイル済みコードが削除されます。 ボタンをクリックすると、[コンパイル時に生成されたコード](#クラシックコンパイラー) がすべて削除されます。**実行** メニューの **コンパイル済み再起動** コマンドが無効になり、開始時の "開く: コンパイルモード済みデータベース" オプションはグレー表示されます。 +**コンパイルコードを削除** ボタンを使用すると、プロジェクトのコンパイル済みコードが削除されます。 **コンパイルコードを削除** ボタンを使用すると、プロジェクトのコンパイル済みコードが削除されます。 ボタンをクリックすると、[コンパイル時に生成されたコード](#クラシックコンパイラー) がすべて削除されます。**実行** メニューの **コンパイル済み再起動** コマンドが無効になり、開始時の "開く: コンパイルモード済みデータベース" オプションはグレー表示されます。 ### 警告を表示/隠す @@ -83,7 +83,7 @@ title: コンパイル ## コンパイラー設定 -ストラクチャー設定ダイアログボックスの "コンパイラー" タブでは、プロジェクトのコンパイルに関連するパラメーターを設定できます。 [コンパイラーウィンドウ](#コンパイラーウィンドウ) の **コンパイラー設定** ボタンをクリックすると、コンパイラーページを直接開くことができます。 +ストラクチャー設定ダイアログボックスの "コンパイラー" タブでは、プロジェクトのコンパイルに関連するパラメーターを設定できます。 [コンパイラーウィンドウ](#コンパイラーウィンドウ) の **コンパイラー設定** ボタンをクリックすると、コンパイラーページを直接開くことができます。 [コンパイラーウィンドウ](#コンパイラーウィンドウ) の **コンパイラー設定** ボタンをクリックすると、コンパイラーページを直接開くことができます。 ![](../assets/en/Project/compilerWin6.png) @@ -93,11 +93,11 @@ title: コンパイル #### Symbolファイルを生成 -Symbolファイルを生成するのに使用します ([Symbolファイル](#symbolファイル) 参照)。 Symbolファイルは、プロジェクトの [Logs フォルダー](Project/architecture.md#logs) 内に `ProjectName_symbols.txt` という名前で作成されます。 +Symbolファイルを生成するのに使用します ([Symbolファイル](#symbolファイル) 参照)。 Symbolファイルを生成するのに使用します ([Symbolファイル](#symbolファイル) 参照)。 Symbolファイルは、プロジェクトの [Logs フォルダー](Project/architecture.md#logs) 内に `ProjectName_symbols.txt` という名前で作成されます。 #### エラーファイルを生成 -シンタックスチェック時にエラーファイルを生成するのに使用します ([エラーファイル](#エラーファイル) 参照)。 エラーファイルは、プロジェクトの [Logs フォルダー](Project/architecture.md#logs) 内に `ProjectName_error.xml` という名前で作成されます。 +シンタックスチェック時にエラーファイルを生成するのに使用します ([エラーファイル](#エラーファイル) 参照)。 シンタックスチェック時にエラーファイルを生成するのに使用します ([エラーファイル](#エラーファイル) 参照)。 エラーファイルは、プロジェクトの [Logs フォルダー](Project/architecture.md#logs) 内に `ProjectName_error.xml` という名前で作成されます。 #### コンパイル対象CPU @@ -121,7 +121,7 @@ Symbolファイルを生成するのに使用します ([Symbolファイル](#sy | **全てのプロセッサ (Intel/AMD および Apple Silicon)** | Intel/AMD 用コードのみ
    *Windows上で Apple Silicon 用のコードは生成できません* | Apple Silicon + Intel/AMD 用コード
    *2種類のコンパイルコードが生成されます* | Apple Silicon + Intel/AMD 用コード
    *2種類のコンパイルコードが生成されます* | | **自分のプロセッサ (プロセッサー名)** | Intel/AMD 用コード | Intel/AMD 用コード | Apple Silicon 用コード | -> Apple Silicon 用にコンパイルするには、マシンに **Clang** アプリケーションをインストールする必要があります。 Clang は最新バージョンの Xcode に含まれています。 詳細については [Apple Silicon用コンパイルの要件](#要件) を参照ください。 +> Apple Silicon 用にコンパイルするには、マシンに **Clang** アプリケーションをインストールする必要があります。 Clang は最新バージョンの Xcode に含まれています。 詳細については [Apple Silicon用コンパイルの要件](#要件) を参照ください。 Clang は最新バージョンの Xcode に含まれています。 詳細については [Apple Silicon用コンパイルの要件](#要件) を参照ください。 ### 追加のオプション (互換性) @@ -146,21 +146,21 @@ Symbolファイルを生成するのに使用します ([Symbolファイル](#sy ::: -直接型指定モードを有効化するには、**コンパイルパス** メニューで **自動変数定義は行わない (直接型指定)** オプションを選択します。 このオプションが選択されると、他の互換性オプションは使用できなくなり、表示されなくなります。 +直接型指定モードを有効化するには、**コンパイルパス** メニューで **自動変数定義は行わない (直接型指定)** オプションを選択します。 このオプションが選択されると、他の互換性オプションは使用できなくなり、表示されなくなります。 このオプションが選択されると、他の互換性オプションは使用できなくなり、表示されなくなります。 -柔軟性と効率性を提供するため、このオプションを使用することが推奨されます。 直接型指定の概念は、すべての要素がコード内の定義されている場所で直接宣言されることを前提としています。 すべての変数が [`var` シンタックス](../Concepts/variables.md#変数の宣言) で宣言されていることと、メソッドや関数のパラメーターが [プロトタイプで](../Concepts/parameters.md) 宣言されていることを確認する必要があります (不足している、または無効な宣言を検出するのに [シンタックスチェック](#シンタックスチェック) 機能が役立ちます)。 +柔軟性と効率性を提供するため、このオプションを使用することが推奨されます。 直接型指定の概念は、すべての要素がコード内の定義されている場所で直接宣言されることを前提としています。 柔軟性と効率性を提供するため、このオプションを使用することが推奨されます。 直接型指定の概念は、すべての要素がコード内の定義されている場所で直接宣言されることを前提としています。 すべての変数が [`var` シンタックス](../Concepts/variables.md#変数の宣言) で宣言されていることと、メソッドや関数のパラメーターが [プロトタイプで](../Concepts/parameters.md) 宣言されていることを確認する必要があります (不足している、または無効な宣言を検出するのに [シンタックスチェック](#シンタックスチェック) 機能が役立ちます)。 ## 警告 警告は、コンパイラーがシンタックスチェックをおこなう際に生成するとメッセージです。 これらのメッセージの目的は、実行時エラーを引き起こす可能性のあるステートメントに注意を向けることです。 警告によりコンパイルが中断されることはありません。 -状況や使用されるプログラミングスタイルによって、警告の重要性は変化します。 コンパイラーダイアログおよびコードエディター (4Dコードエディターまたは VS Code) にて、警告を有効/無効にすることができます。[警告タブ](#警告タブ) を使えばグローバルに、または [`//%W`](#ローカルに警告を無効化-有効化する) を使用することでローカルに設定できます。 +状況や使用されるプログラミングスタイルによって、警告の重要性は変化します。 状況や使用されるプログラミングスタイルによって、警告の重要性は変化します。 コンパイラーダイアログおよびコードエディター (4Dコードエディターまたは VS Code) にて、警告を有効/無効にすることができます。[警告タブ](#警告タブ) を使えばグローバルに、または [`//%W`](#ローカルに警告を無効化-有効化する) を使用することでローカルに設定できます。 ### 警告タブ ![](../assets/en/Project/warnings-tab.png) -このタブでは、どの警告をグローバルに表示するかを定義できます。 警告のリストはコード順で並べられ、ローカライズされたラベルを確認することができます。 +このタブでは、どの警告をグローバルに表示するかを定義できます。 警告のリストはコード順で並べられ、ローカライズされたラベルを確認することができます。 警告のリストはコード順で並べられ、ローカライズされたラベルを確認することができます。 リストを絞り込むには、**コードとラベルを検索** テキストボックスを使用して、警告ラベルやコードを検索します。 @@ -221,7 +221,7 @@ Symbolファイルを生成するのに使用します ([Symbolファイル](#sy ### Symbolファイル -コンパイラー設定の [**Symbolファイルを生成**](#symbolファイルを生成) オプションを選択してコンパイルすると、プロジェクトの [Logs フォルダー](Project/architecture.md#logs) 内に `ProjectName_symbols.txt` という名称の Symbolファイルが作成されます。 このドキュメントはいくつかの部分に分かれています: +コンパイラー設定の [**Symbolファイルを生成**](#symbolファイルを生成) オプションを選択してコンパイルすると、プロジェクトの [Logs フォルダー](Project/architecture.md#logs) 内に `ProjectName_symbols.txt` という名称の Symbolファイルが作成されます。 このドキュメントはいくつかの部分に分かれています: このドキュメントはいくつかの部分に分かれています: #### プロセスおよびインタープロセス変数のリスト @@ -268,7 +268,7 @@ Symbolファイルを生成するのに使用します ([Symbolファイル](#sy ### エラーファイル -コンパイラー設定の [**エラーファイルを生成**](#エラーファイルを生成) オプションを使用して、コンパイル時にエラーファイルを生成するかどうかを選択することができます。 エラーファイルは、プロジェクトの [Logsフォルダー](Project/architecture.md#logs)内に `ProjectName_errors.txt` という名前で作成されます。 +コンパイラー設定の [**エラーファイルを生成**](#エラーファイルを生成) オプションを使用して、コンパイル時にエラーファイルを生成するかどうかを選択することができます。 エラーファイルは、プロジェクトの [Logsフォルダー](Project/architecture.md#logs)内に `ProjectName_errors.txt` という名前で作成されます。 エラーファイルは、プロジェクトの [Logsフォルダー](Project/architecture.md#logs)内に `ProjectName_errors.txt` という名前で作成されます。 [コンパイラーウインドウ](#コンパイラーウインドウ) からエラーに直接アクセスすることができますが、マシンからマシンへ送信できるエラーファイルがあると便利な場合があります。 エラーファイルは、その内容を自動的に解析しやすいように XMLフォーマットで生成されます。 これを利用して、エラー表示用に独自のインターフェースを作成することもできます。 @@ -288,7 +288,7 @@ Symbolファイルを生成するのに使用します ([Symbolファイル](#sy - **特定の行に関連するエラー**: これらのエラーは、コンテキスト (エラーが見つかった行) 内に説明とともに表示されます。 コンパイラーは、データ型やシンタックスに関する矛盾を含む式で見つけると、このタイプのエラーをレポートします。 コンパイラーウィンドウでは、検出された各エラーをダブルクリックすると、該当するメソッドが直接 4Dのコードエディターで開かれ、エラーを含む行が反転表示されます。 -- **全般的なエラー**: これらのエラーは、プロジェクトのコンパイルを不可能にします。 コンパイラーが全般的なエラーを生成するケースは、次の 2つです: +- **全般的なエラー**: これらのエラーは、プロジェクトのコンパイルを不可能にします。 コンパイラーが全般的なエラーを生成するケースは、次の 2つです: コンパイラーが全般的なエラーを生成するケースは、次の 2つです: - プロセス変数のデータ型が決定できなかった。 - 異なる 2つのオブジェクトが同じ名称である。 @@ -302,7 +302,7 @@ Symbolファイルを生成するのに使用します ([Symbolファイル](#sy コード内で間違いがないと思われる箇所に対して範囲チェックを適用したくないときもあります。 具体的には、かなりの回数繰り返されるループに関し、旧式のマシン上でコンパイル済みデータベースを実行すると、範囲チェックにより処理速度が著しく低下するおそれがあります。 関連するコードに誤りがなく、システムエラーを引き起こさないことが確実であれば、範囲チェックをローカル上で無効にすることができます。 -これをおこなうには、範囲チェックから外すコードを特殊なコメントである `//%R-` と `//%R+` で囲みます。 `//%R-` コメントは範囲チェックを無効にし、`//%R+` はそれを再び有効にします: +これをおこなうには、範囲チェックから外すコードを特殊なコメントである `//%R-` と `//%R+` で囲みます。 これをおこなうには、範囲チェックから外すコードを特殊なコメントである `//%R-` と `//%R+` で囲みます。 `//%R-` コメントは範囲チェックを無効にし、`//%R+` はそれを再び有効にします: ```4d // %R- 範囲チェックを無効化 @@ -346,11 +346,11 @@ Apple Silicon用コンパイラーは *Apple M1* などの Apple Silicon プロ - **macOS マシン**: Apple Silicon用コンパイラーは Apple のマシン上でのみ実行可能です。 - **4D プロジェクトアーキテクチャー**: Apple Silicon用コンパイラーは [プロジェクトアーキテクチャー](architecture.md) を使った 4D開発でのみ利用できます。 -- **Xcode または Developer Tools**: コンパイルの [2つ目のステップ](#インクリメンタルコンパイルラー) において、プロジェクトを C++ コードからコンパイルするために、Apple Silicon用コンパイラーはオープンソース macOS コンパイラー **Clang** を呼び出します。 *Clang* は Apple ネイティブライブラリを必要とします。これらは **Xcode** または **Developer Tools** パッケージより提供されています。 +- **Xcode または Developer Tools**: コンパイルの [2つ目のステップ](#インクリメンタルコンパイルラー) において、プロジェクトを C++ コードからコンパイルするために、Apple Silicon用コンパイラーはオープンソース macOS コンパイラー **Clang** を呼び出します。 *Clang* は Apple ネイティブライブラリを必要とします。これらは **Xcode** または **Developer Tools** パッケージより提供されています。 *Clang* は Apple ネイティブライブラリを必要とします。これらは **Xcode** または **Developer Tools** パッケージより提供されています。 - Xcode や Developer Tools をマシン上でインストールされた状態で **すでに持っている場合**、それらのバージョンが 4D の要件と合っていることを確認します。 - マシンにインストールされた状態でこれらのツールを **持っていない場合**、Apple Developer の Webサイトからいずれかをダウンロードする必要があります。 -> インストール手順が簡単なため **Xcode** のインストールを推奨しています。 よりコンパクトな **Developer Tools** をインストールしても問題ありませんが、こちらはインストール手順がやや複雑です。 +> インストール手順が簡単なため **Xcode** のインストールを推奨しています。 よりコンパクトな **Developer Tools** をインストールしても問題ありませんが、こちらはインストール手順がやや複雑です。 よりコンパクトな **Developer Tools** をインストールしても問題ありませんが、こちらはインストール手順がやや複雑です。 いずれにせよ、要件が満たされていない場合には、4D の Apple Silicon用コンパイラーが警告を発します。 @@ -358,5 +358,5 @@ Apple Silicon用コンパイラーは *Apple M1* などの Apple Silicon プロ Apple Silicon用コンパイラーはインクリメンタルコンパイラーです: -- 初めてのコンパイルにおいては、**すべての 4Dメソッド** がコンパイルされます。 これには時間がかかる可能性がありますが、 一度きりです。 +- 初めてのコンパイルにおいては、**すべての 4Dメソッド** がコンパイルされます。 これには時間がかかる可能性がありますが、 一度きりです。 これには時間がかかる可能性がありますが、 一度きりです。 - 以降のコンパイルにおいては、**新規または編集されたメソッド** のみが処理され、コンパイル時間を大幅に短縮します。 diff --git a/i18n/ja/docusaurus-plugin-content-docs/version-20-R7/Project/components.md b/i18n/ja/docusaurus-plugin-content-docs/version-20-R7/Project/components.md index 0b69da42ef29b2..3f60a661a528f9 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/version-20-R7/Project/components.md +++ b/i18n/ja/docusaurus-plugin-content-docs/version-20-R7/Project/components.md @@ -11,7 +11,7 @@ title: コンポーネント ## インタープリターとコンパイル済みコンポーネント -コンポーネントは、インタープリターまたは [コンパイル済み](../Desktop/building.md) のものが使えます。 コンポーネントのパッケージフォルダーには以下のいずれかが含まれます: +Components can be interpreted or [compiled](../Desktop/building.md). コンポーネントのパッケージフォルダーには以下のいずれかが含まれます: - プロジェクトフォルダー (インタープリターのコンポーネント) - または .4DZ ファイル (コンパイル済みコンポーネント) diff --git a/i18n/ja/docusaurus-plugin-content-docs/version-20-R7/Project/overview.md b/i18n/ja/docusaurus-plugin-content-docs/version-20-R7/Project/overview.md index 65211c04ad119b..fd770e1453e82c 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/version-20-R7/Project/overview.md +++ b/i18n/ja/docusaurus-plugin-content-docs/version-20-R7/Project/overview.md @@ -7,7 +7,7 @@ Web やモバイル、デスクトップの運用形態に関わらず、デー ## プロジェクトファイル -4D プロジェクトファイルは 4D または 4D Server で開いて編集します。 4D では、ストラクチャーエディター、コードエディター、フォームエディター、メニューエディターなど、機能の充実したエディターを使ってファイルを扱うことができます。 +4D プロジェクトファイルは 4D または 4D Server で開いて編集します。 With 4D, full-featured editors are available to manage files, including a structure editor, a [Code Editor](../code-editor/write-class-method.md), a [form editor](../FormEditor/formEditor.md), a menu editor... また、人間にも解読可能なテキストファイル (JSON、XML等) 形式で提供されているため、プロジェクトの読み書きは任意のコードエディターでおこなうことも可能です。 diff --git a/i18n/ja/docusaurus-plugin-content-docs/version-20-R7/WebServer/httpRequests.md b/i18n/ja/docusaurus-plugin-content-docs/version-20-R7/WebServer/httpRequests.md index 8c12fcf12248ad..6c242e6df18960 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/version-20-R7/WebServer/httpRequests.md +++ b/i18n/ja/docusaurus-plugin-content-docs/version-20-R7/WebServer/httpRequests.md @@ -57,7 +57,7 @@ title: HTTPリクエストの処理 ``` -> インターフェース要素 を表示する 4Dコマンド (`DIALOG`、`ALERT` など) の呼び出しは許可されず、メソッドの処理を終了します。 +> インターフェース要素 を表示する 4Dコマンド (`DIALOG`、`ALERT` など) の呼び出しは許可されず、メソッドの処理を終了します。 の呼び出しは許可されず、メソッドの処理を終了します。 ### $1 - URL追加データ @@ -77,7 +77,7 @@ title: HTTPリクエストの処理 ### $2 - HTTPリクエストのヘッダーとボディ -二番目の引数 ($2) は、Webブラウザーから送信された HTTPリクエストのヘッダーとボディです。 この情報は `On Web Connection` データベースメソッドに "そのまま" 渡されることに留意してください。 その内容は、接続を試みた Webブラウザーの仕様により異なります。 +二番目の引数 ($2) は、Webブラウザーから送信された HTTPリクエストのヘッダーとボディです。 この情報は `On Web Connection` データベースメソッドに "そのまま" 渡されることに留意してください。 その内容は、接続を試みた Webブラウザーの仕様により異なります。 その内容は、接続を試みた Webブラウザーの仕様により異なります。 アプリケーションでこの情報を使用するには、開発者がヘッダーとボディを解析しなければなりません。 `WEB GET HTTP HEADER` や `WEB GET HTTP BODY` コマンドを使うことができます。 @@ -111,9 +111,9 @@ $4 引数は 4D Webサーバーによってリクエストされた IPアドレ **利用法**: URL またはフォームアクション -この URL を使用して、任意の *Param* テキスト引数とともに *MethodName* に指定した 4Dプロジェクトメソッドを呼び出すことができます。 このメソッドは引数を *$1* に受け取ります。 +この URL を使用して、任意の *Param* テキスト引数とともに *MethodName* に指定した 4Dプロジェクトメソッドを呼び出すことができます。 The method will receive this parameter. このメソッドは引数を *$1* に受け取ります。 -- 4Dプロジェクトメソッドは、[Webリクエスト用に許可](allowProject.md)されていなければなりません。メソッドのプロパティで "公開オプション: 4DタグとURL(4DACTION...)" 属性がチェックされている必要があります。 属性がチェックされていない場合、Webリクエストは拒否されます。 +- 4Dプロジェクトメソッドは、[Webリクエスト用に許可](allowProject.md)されていなければなりません。メソッドのプロパティで "公開オプション: 4DタグとURL(4DACTION...)" 属性がチェックされていない場合、Webリクエストは拒否されます。 - `/4DACTION/MyMethod/Param` リクエストを受け取ると、4D は `On Web Authentication` データベースメソッド (あれば) を呼び出します。 `4DACTION/` は、スタティックな Webページの URL に割り当てることもできます: @@ -122,13 +122,13 @@ $4 引数は 4D Webサーバーによってリクエストされた IPアドレ Do Something ``` -`MyMethod` プロジェクトメソッドは通常レスポンスを返すべきです (`WEB SEND FILE` や `WEB SEND BLOB` で HTMLページを送信するなど)。 ブラウザーをブロックしないように、処理は可能な限り短時間でおこなわれるようにします。 +`MyMethod` プロジェクトメソッドは通常レスポンスを返すべきです (`WEB SEND FILE` や `WEB SEND BLOB` で HTMLページを送信するなど)。 ブラウザーをブロックしないように、処理は可能な限り短時間でおこなわれるようにします。 ブラウザーをブロックしないように、処理は可能な限り短時間でおこなわれるようにします。 > `4DACTION/` から呼び出されるメソッドは、インタフェース要素 (`DIALOG`, `ALERT` など) を呼び出してはいけません。 #### 例題 -この例題は、HTMLピクチャーオブジェクトに `/4DACTION/` URL を割り当て、ページ上でピクチャーを動的に表示する方法を説明しています。 スタティック HTMLページに以下のコードを記述します: +この例題は、HTMLピクチャーオブジェクトに `/4DACTION/` URL を割り当て、ページ上でピクチャーを動的に表示する方法を説明しています。 スタティック HTMLページに以下のコードを記述します: スタティック HTMLページに以下のコードを記述します: ```html @@ -183,7 +183,7 @@ Webアプリケーションにおいて、スタティックなHTMLページを ``` -データ入力エリアに "ABCD" とタイプし、"Whole word (句として検索)" オプションをチェックして **Search** (検索) ボタンをクリックします。 Webサーバーに送信されるリクエスト内部は以下の通りです: +データ入力エリアに "ABCD" とタイプし、"Whole word (句として検索)" オプションをチェックして **Search** (検索) ボタンをクリックします。 Webサーバーに送信されるリクエスト内部は以下の通りです: Webサーバーに送信されるリクエスト内部は以下の通りです: ``` vName="ABCD" @@ -279,9 +279,10 @@ return false このページの主な特徴は: - 送信のための **Submit** ボタンが 3つあります: `vsbLogOn`, `vsbRegister` そして `vsbInformation`。 -- **Log On** をクリックすると、フォームからの送信はまず初めに JavaScript関数 `LogOn` によって処理されます。 名前が入力されていない場合、フォームは 4Dに送信すらされず、JavaScript による警告が表示されます。 +- **Log On** をクリックすると、フォームからの送信はまず初めに JavaScript関数 `LogOn` によって処理されます。 名前が入力されていない場合、フォームは 4Dに送信すらされず、JavaScript による警告が表示されます。 名前が入力されていない場合、フォームは 4Dに送信すらされず、JavaScript による警告が表示されます。 - フォームは POST 4Dメソッドに加えて、ブラウザープロパティを *vtNav_App* から始まる名称の 4つの隠しオブジェクトへとコピーする投稿スクリプト (*GetBrowserInformation*) を持っています。 また、このページには `vtUserName` オブジェクトも含まれます。 + また、このページには `vtUserName` オブジェクトも含まれます。 ユーザーが HTMLフォーム上のボタンのどれかをクリックした際に呼び出される `WWW_STD_FORM_POST` という 4Dメソッドを検証してみましょう。 @@ -323,7 +324,7 @@ return false - 変数 *vtNav_appName*, *vtNav_appVersion*, *vtNav_appCodeName*, そして *vtNav_userAgent* の値 (同じ名前を持つ HTMLオブジェクトにそれぞれバインドされています) は 、`WEB GET VARIABLES` コマンドを使用することによって JavaScript のスクリプト *GetBrowserInformation* で作成された HTMLオブジェクトから取得することができます。 - 3つの投稿ボタンにバインドされている変数 *vsbLogOn*, *vsbRegister* と *vsbInformation* のうち、クリックされたボタンに対応するもののみが `WEB GET VARIABLES` コマンドによって取得されます。 この 3つのうちいずれかのボタンによって投稿がおこなわれたとき、ブラウザーはクリックされたボタンの値を 4D に返します。 これにより、どのボタンがクリックされたのかが分かります。 -HTMLではすべてのオブジェクトがテキストオブジェクトであることに留意が必要です。 SELECT要素を使用した場合、 `WEB GET VARIABLES` コマンドで返されるのはオブジェクト内でハイライトされている要素の値であり、4D のように配列内の要素の位置を返すわけではありません。 `WEB GET VARIABLES` コマンドは必ずテキスト型の値を返します。 +HTMLではすべてのオブジェクトがテキストオブジェクトであることに留意が必要です。 HTMLではすべてのオブジェクトがテキストオブジェクトであることに留意が必要です。 SELECT要素を使用した場合、 `WEB GET VARIABLES` コマンドで返されるのはオブジェクト内でハイライトされている要素の値であり、4D のように配列内の要素の位置を返すわけではありません。 `WEB GET VARIABLES` コマンドは必ずテキスト型の値を返します。 `WEB GET VARIABLES` コマンドは必ずテキスト型の値を返します。 ## その他の Webサーバーコマンド diff --git a/i18n/ja/docusaurus-plugin-content-docs/version-20-R7/WebServer/qodly-studio.md b/i18n/ja/docusaurus-plugin-content-docs/version-20-R7/WebServer/qodly-studio.md index 4792d23648f744..cb94fbf83dec2c 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/version-20-R7/WebServer/qodly-studio.md +++ b/i18n/ja/docusaurus-plugin-content-docs/version-20-R7/WebServer/qodly-studio.md @@ -128,15 +128,15 @@ Qodlyページを利用した Webアプリケーションを開発するには ### 機能の比較 -| | 4D の Qodly Studio | Qodly Cloud プラットフォームの Qodly Studio | -| ----------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------- | -| テーブル (データクラス)、フィールド (属性)、リレーションの表示および編集 | 4Dストラクチャーエディター(1) | Qodly Studio Model Editor | -| Qodlyページ | Qodly Studio ページエディター | Qodly Studio ページエディター | -| デスクトップフォーム | 4D IDE | *サポートされていません* | -| プログラミング言語 | 4Dランゲージ (ORDA を使用) | [QodlyScript](https://developer.qodly.com/docs/category/qodlyscript) (ORDA含) | -| コーディング IDE | 4D IDE コードエディター *または* VS Code と [4D拡張機能](https://github.com/4d/4D-Analyzer-VSCode)
    *4D Server のみ*: Qodly Studio コードエディター ((2) 参照) | Qodly Studio コードエディター | -| デバッガー | 4D IDE デバッガー
    *4D Serverのみ*: Qodly Studio デバッガー ([この段落](#4d-server-で-qodlyデバッガーを使用する) を参照ください) | Qodly Studio デバッガー | -| REST/Web ロールとアクセス権 | roles.json の直接編集 / Qodly Studio ロールとアクセス権エディター | Qodly Studio ロールとアクセス権エディター | +| | 4D の Qodly Studio | Qodly Cloud プラットフォームの Qodly Studio | +| ----------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------- | +| テーブル (データクラス)、フィールド (属性)、リレーションの表示および編集 | 4Dストラクチャーエディター(1) | Qodly Studio Model Editor | +| Qodlyページ | Qodly Studio ページエディター | Qodly Studio ページエディター | +| デスクトップフォーム | 4D IDE | *サポートされていません* | +| プログラミング言語 | 4Dランゲージ (ORDA を使用) | [QodlyScript](https://developer.qodly.com/docs/category/qodlyscript) (ORDA含) | +| コーディング IDE | 4D IDE code editor *or* VS Code with [4D-Analyzer extension](https://github.com/4d/4D-Analyzer-VSCode)
    *4D Server only*: Qodly Studio code editor (see (2)) | Qodly Studio コードエディター | +| デバッガー | 4D IDE デバッガー
    *4D Serverのみ*: Qodly Studio デバッガー ([この段落](#4d-server-で-qodlyデバッガーを使用する) を参照ください) | Qodly Studio デバッガー | +| REST/Web ロールとアクセス権 | roles.json の直接編集 / Qodly Studio ロールとアクセス権エディター | Qodly Studio ロールとアクセス権エディター | (1) Qodly Studioで **Model** ボタンをクリックしても何も起こりません。
    (2) 4D Serverでは、Qodly Studio のコードエディターで 4Dコードを開くことができます (**テストおよびデバッグ目的のみ**。[この段落](#開発と運用) を参照ください) 4Dシングルユーザーの場合、Qodly Studio で 4Dコードを開くと、シンタックスの配色がサポートされておらず、"Lsp not loaded" という警告が表示されます。 diff --git a/i18n/ja/docusaurus-plugin-content-docs/version-20-R7/code-editor/write-class-method.md b/i18n/ja/docusaurus-plugin-content-docs/version-20-R7/code-editor/write-class-method.md index 71c1d3d9cc49c6..dd6c687bebde9a 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/version-20-R7/code-editor/write-class-method.md +++ b/i18n/ja/docusaurus-plugin-content-docs/version-20-R7/code-editor/write-class-method.md @@ -13,6 +13,12 @@ title: コードエディター 4Dのコードエディターは基本的なシンタックスチェック機能を提供します。 メソッド実行時には追加のエラーチェックがおこなわれます。 エラーハンドリングについての詳細は、[デバッガー](../Debugging/basics.md) の章を参照ください。 +:::note + +If you are used to coding with **VS Code**, you can also use this editor with 4D code after installing the [4D-Analyzer](https://github.com/4d/4D-Analyzer-VSCode) extension. + +::: + ## インターフェース ### ツールバー diff --git a/i18n/ja/docusaurus-plugin-content-docs/version-20-R7/commands-legacy/array-text.md b/i18n/ja/docusaurus-plugin-content-docs/version-20-R7/commands-legacy/array-text.md index 336b1961180015..cc642b048bc19e 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/version-20-R7/commands-legacy/array-text.md +++ b/i18n/ja/docusaurus-plugin-content-docs/version-20-R7/commands-legacy/array-text.md @@ -57,6 +57,3 @@ ARRAY TEXTを既存の配列に適用する場合、  End for ``` -#### 参照 - -*\_o\_ARRAY STRING* \ No newline at end of file diff --git a/i18n/ja/docusaurus-plugin-content-docs/version-20-R7/commands-legacy/data-file.md b/i18n/ja/docusaurus-plugin-content-docs/version-20-R7/commands-legacy/data-file.md index a04218acb62f75..04e1b58859d18d 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/version-20-R7/commands-legacy/data-file.md +++ b/i18n/ja/docusaurus-plugin-content-docs/version-20-R7/commands-legacy/data-file.md @@ -30,6 +30,5 @@ Macintosh上 #### 参照 -*\_o\_DATA SEGMENT LIST* [Application file](application-file.md) [Structure file](structure-file.md) \ No newline at end of file diff --git a/i18n/ja/docusaurus-plugin-content-docs/version-20-R7/commands-legacy/drop-position.md b/i18n/ja/docusaurus-plugin-content-docs/version-20-R7/commands-legacy/drop-position.md index a533c2b1459c05..84d14ac78b4273 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/version-20-R7/commands-legacy/drop-position.md +++ b/i18n/ja/docusaurus-plugin-content-docs/version-20-R7/commands-legacy/drop-position.md @@ -94,5 +94,4 @@ displayed_sidebar: docs #### 参照 -*\_o\_DRAG AND DROP PROPERTIES* *ドラッグ&ドロップ* \ No newline at end of file diff --git a/i18n/ja/docusaurus-plugin-content-docs/version-20-R7/commands-legacy/font-list.md b/i18n/ja/docusaurus-plugin-content-docs/version-20-R7/commands-legacy/font-list.md index 65db7d28342245..4f931ffcaf242a 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/version-20-R7/commands-legacy/font-list.md +++ b/i18n/ja/docusaurus-plugin-content-docs/version-20-R7/commands-legacy/font-list.md @@ -68,7 +68,6 @@ Windows環境下では、この原理は4D v15 R4から採用されています #### 参照 -*\_o\_Font name* [FONT STYLE LIST](font-style-list.md) *Font Type List* [OBJECT SET FONT](object-set-font.md) diff --git a/i18n/ja/docusaurus-plugin-content-docs/version-20-R7/commands-legacy/form-event-code.md b/i18n/ja/docusaurus-plugin-content-docs/version-20-R7/commands-legacy/form-event-code.md index 8a79945a1968f8..826c6576d5ce03 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/version-20-R7/commands-legacy/form-event-code.md +++ b/i18n/ja/docusaurus-plugin-content-docs/version-20-R7/commands-legacy/form-event-code.md @@ -840,7 +840,6 @@ On Before Keystroke と On After Keystroke イベントを処理する方法は[ #### 参照 -*\_o\_DRAG AND DROP PROPERTIES* [CALL SUBFORM CONTAINER](call-subform-container.md) [Current form table](current-form-table.md) [FILTER KEYSTROKE](filter-keystroke.md) diff --git a/i18n/ja/docusaurus-plugin-content-docs/version-20-R7/commands-legacy/form-set-input.md b/i18n/ja/docusaurus-plugin-content-docs/version-20-R7/commands-legacy/form-set-input.md index 2ca6dde308533b..cfe626885355ba 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/version-20-R7/commands-legacy/form-set-input.md +++ b/i18n/ja/docusaurus-plugin-content-docs/version-20-R7/commands-legacy/form-set-input.md @@ -98,7 +98,6 @@ displayed_sidebar: docs #### 参照 -*\_o\_CREATE USER FORM* [ADD RECORD](add-record.md) [DISPLAY RECORD](display-record.md) [DISPLAY SELECTION](display-selection.md) diff --git a/i18n/ja/docusaurus-plugin-content-docs/version-20-R7/commands-legacy/form-set-output.md b/i18n/ja/docusaurus-plugin-content-docs/version-20-R7/commands-legacy/form-set-output.md index ca7496243dd016..836064ee4692af 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/version-20-R7/commands-legacy/form-set-output.md +++ b/i18n/ja/docusaurus-plugin-content-docs/version-20-R7/commands-legacy/form-set-output.md @@ -64,7 +64,6 @@ displayed_sidebar: docs #### 参照 -*\_o\_CREATE USER FORM* [DISPLAY SELECTION](display-selection.md) [EXPORT DIF](export-dif.md) [EXPORT SYLK](export-sylk.md) diff --git a/i18n/ja/docusaurus-plugin-content-docs/version-20-R7/commands-legacy/get-document-properties.md b/i18n/ja/docusaurus-plugin-content-docs/version-20-R7/commands-legacy/get-document-properties.md index 2418a0b4e134b0..05b0b66d20cd3d 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/version-20-R7/commands-legacy/get-document-properties.md +++ b/i18n/ja/docusaurus-plugin-content-docs/version-20-R7/commands-legacy/get-document-properties.md @@ -203,6 +203,4 @@ displayed_sidebar: docs #### 参照 -*\_o\_Document creator* -*\_o\_Document type* [SET DOCUMENT PROPERTIES](set-document-properties.md) \ No newline at end of file diff --git a/i18n/ja/docusaurus-plugin-content-docs/version-20-R7/commands-legacy/get-highlight.md b/i18n/ja/docusaurus-plugin-content-docs/version-20-R7/commands-legacy/get-highlight.md index 116b5207151037..7298f273ec1f5e 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/version-20-R7/commands-legacy/get-highlight.md +++ b/i18n/ja/docusaurus-plugin-content-docs/version-20-R7/commands-legacy/get-highlight.md @@ -41,8 +41,10 @@ displayed_sidebar: docs 以下の例題を使用して、フィールド \[Products\]Comments から反転表示された部分を検出します。 ```4d - GET HIGHLIGHT([Products]Comments;vFirst;vLast) - If(vFirst +GET HIGHLIGHT([Products]Comments;vFirst;vLast) +If(vFirst < vlast) + ALERT("The selected text is:"+Substring([Products]Comments;vFirst;vLast-vFirst)) +End if ``` #### 例題 2 diff --git a/i18n/ja/docusaurus-plugin-content-docs/version-20-R7/commands-legacy/get-process-variable.md b/i18n/ja/docusaurus-plugin-content-docs/version-20-R7/commands-legacy/get-process-variable.md index 1b2f719c21ac14..1cf9ddbcb64ba4 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/version-20-R7/commands-legacy/get-process-variable.md +++ b/i18n/ja/docusaurus-plugin-content-docs/version-20-R7/commands-legacy/get-process-variable.md @@ -114,7 +114,6 @@ DRAG AND DROP PROPERTIESコマンドの例題参照 #### 参照 -*\_o\_DRAG AND DROP PROPERTIES* [POST OUTSIDE CALL](post-outside-call.md) [SET PROCESS VARIABLE](set-process-variable.md) [VARIABLE TO VARIABLE](variable-to-variable.md) diff --git a/i18n/ja/docusaurus-plugin-content-docs/version-20-R7/commands-legacy/in-break.md b/i18n/ja/docusaurus-plugin-content-docs/version-20-R7/commands-legacy/in-break.md index 995f1e531ca4c6..d83407edc8d962 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/version-20-R7/commands-legacy/in-break.md +++ b/i18n/ja/docusaurus-plugin-content-docs/version-20-R7/commands-legacy/in-break.md @@ -26,6 +26,5 @@ displayed_sidebar: docs #### 参照 -*\_o\_During* [In footer](in-footer.md) [In header](in-header.md) \ No newline at end of file diff --git a/i18n/ja/docusaurus-plugin-content-docs/version-20-R7/commands-legacy/in-footer.md b/i18n/ja/docusaurus-plugin-content-docs/version-20-R7/commands-legacy/in-footer.md index a918ee179517ea..455faf973c6cab 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/version-20-R7/commands-legacy/in-footer.md +++ b/i18n/ja/docusaurus-plugin-content-docs/version-20-R7/commands-legacy/in-footer.md @@ -26,6 +26,5 @@ displayed_sidebar: docs #### 参照 -*\_o\_During* [In break](in-break.md) [In header](in-header.md) \ No newline at end of file diff --git a/i18n/ja/docusaurus-plugin-content-docs/version-20-R7/commands-legacy/in-header.md b/i18n/ja/docusaurus-plugin-content-docs/version-20-R7/commands-legacy/in-header.md index 608a13d247a02a..c16f4eeea4bdb5 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/version-20-R7/commands-legacy/in-header.md +++ b/i18n/ja/docusaurus-plugin-content-docs/version-20-R7/commands-legacy/in-header.md @@ -26,6 +26,5 @@ displayed_sidebar: docs #### 参照 -*\_o\_During* [In break](in-break.md) [In footer](in-footer.md) \ No newline at end of file diff --git a/i18n/ja/docusaurus-plugin-content-docs/version-20-R7/commands-legacy/integrate-mirror-log-file.md b/i18n/ja/docusaurus-plugin-content-docs/version-20-R7/commands-legacy/integrate-mirror-log-file.md index 1243f01dcf76c7..941ccaef7e200d 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/version-20-R7/commands-legacy/integrate-mirror-log-file.md +++ b/i18n/ja/docusaurus-plugin-content-docs/version-20-R7/commands-legacy/integrate-mirror-log-file.md @@ -98,6 +98,4 @@ Blobまたはピクチャーの値の場合、その保存場所に応じて異 #### 参照 - -*\_o\_INTEGRATE LOG FILE* [LOG FILE TO JSON](log-file-to-json.md) \ No newline at end of file diff --git a/i18n/ja/docusaurus-plugin-content-docs/version-20-R7/commands-legacy/is-a-list.md b/i18n/ja/docusaurus-plugin-content-docs/version-20-R7/commands-legacy/is-a-list.md index 8bcd8365aa5eba..8599b7678e3838 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/version-20-R7/commands-legacy/is-a-list.md +++ b/i18n/ja/docusaurus-plugin-content-docs/version-20-R7/commands-legacy/is-a-list.md @@ -21,14 +21,6 @@ displayed_sidebar: docs Is a list コマンドは、*list* 引数で指定された値が階層リストの有効な参照の場合[True](true.md "True")を返します。それ以外の場合[False](false.md "False")を返します。 -#### 例題 1 +#### 例題 [CLEAR LIST](clear-list.md "CLEAR LIST")コマンドの例題参照 - -#### 例題 2 - -DRAG AND DROP PROPERTIESコマンドの例題参照 - -#### 参照 - -*\_o\_DRAG AND DROP PROPERTIES* \ No newline at end of file diff --git a/i18n/ja/docusaurus-plugin-content-docs/version-20-R7/commands-legacy/log-event.md b/i18n/ja/docusaurus-plugin-content-docs/version-20-R7/commands-legacy/log-event.md index 6d4f772a547360..907be5ce482e6e 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/version-20-R7/commands-legacy/log-event.md +++ b/i18n/ja/docusaurus-plugin-content-docs/version-20-R7/commands-legacy/log-event.md @@ -34,8 +34,7 @@ displayed_sidebar: docs *outputType*引数を渡さない場合、デフォルトでInto Windows Log Events (0) が使用されます。 -引数*outputType*にInto Windows Log Eventsを指定すると、オプションの引数*importance*を通して*message*に重要度を付けることができます。ログイベントを読んだり理解する助けになります。重要度には情報、警告とエラーの3つのレベルがあります。 -4Dには、前もって定義された以下のような定数があります。これらは*Log Events*カテゴリーに置かれています。 +オプションの*importance* 引数を使用して*message* の重要度を設定することで、ログイベントを読みやすくして理解しやすくすることができます。重要度には情報、警告とエラーの3つのレベルがあります。4D は、以下の定義済み定数を提供しています: | 定数 | 型 | 値 | | ------------------- | ---- | - | @@ -43,9 +42,12 @@ displayed_sidebar: docs | Information message | 倍長整数 | 0 | | Warning message | 倍長整数 | 1 | - *importance* に何も渡さなかったり、正しくない値を渡すと、デフォルト値(0) が使用されます。 +:::注意 +*importance* 引数は*outputType* 引数に `Into Windows log events`、 `Into 4D diagnostic log`、 および `Into system standard outputs` を渡した時のみ使用されます。 +::: + #### 例題 Windowsでデータベースが開かれた時の情報をログしたい場合は、以下のコードを[On Startupデータベースメソッド](on-startup-database-method.md)内に記述します。 @@ -58,4 +60,4 @@ Windowsでデータベースが開かれた時の情報をログしたい場合 #### 参照 -[SET DATABASE PARAMETER](set-database-parameter.md) \ No newline at end of file +[SET DATABASE PARAMETER](set-database-parameter.md) diff --git a/i18n/ja/docusaurus-plugin-content-docs/version-20-R7/commands-legacy/new-log-file.md b/i18n/ja/docusaurus-plugin-content-docs/version-20-R7/commands-legacy/new-log-file.md index e2272cd64b5395..97209a12238786 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/version-20-R7/commands-legacy/new-log-file.md +++ b/i18n/ja/docusaurus-plugin-content-docs/version-20-R7/commands-legacy/new-log-file.md @@ -31,7 +31,3 @@ displayed_sidebar: docs #### エラー管理 エラーが発生すると、コマンドは[ON ERR CALL](on-err-call.md "ON ERR CALL") コマンドでとらえることが可能なエラーコードを生成します。 - -#### 参照 - -*\_o\_INTEGRATE LOG FILE* \ No newline at end of file diff --git a/i18n/ja/docusaurus-plugin-content-docs/version-20-R7/commands-legacy/object-set-action.md b/i18n/ja/docusaurus-plugin-content-docs/version-20-R7/commands-legacy/object-set-action.md index b28c323308c0d9..1ca06cfebdc4d0 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/version-20-R7/commands-legacy/object-set-action.md +++ b/i18n/ja/docusaurus-plugin-content-docs/version-20-R7/commands-legacy/object-set-action.md @@ -89,5 +89,4 @@ displayed_sidebar: docs #### 参照 -*\_o\_OBJECT Get action* [OBJECT Get action](object-get-action.md) \ No newline at end of file diff --git a/i18n/ja/docusaurus-plugin-content-docs/version-20-R7/commands-legacy/object-set-rgb-colors.md b/i18n/ja/docusaurus-plugin-content-docs/version-20-R7/commands-legacy/object-set-rgb-colors.md index 5e2af02fa7e855..e333c6c02719f4 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/version-20-R7/commands-legacy/object-set-rgb-colors.md +++ b/i18n/ja/docusaurus-plugin-content-docs/version-20-R7/commands-legacy/object-set-rgb-colors.md @@ -104,6 +104,5 @@ displayed_sidebar: docs #### 参照 -*\_o\_OBJECT SET COLOR* [OBJECT GET RGB COLORS](object-get-rgb-colors.md) [Select RGB Color](select-rgb-color.md) \ No newline at end of file diff --git a/i18n/ja/docusaurus-plugin-content-docs/version-20-R7/commands-legacy/picture-to-blob.md b/i18n/ja/docusaurus-plugin-content-docs/version-20-R7/commands-legacy/picture-to-blob.md index 486d5f89592a39..5b44249888d054 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/version-20-R7/commands-legacy/picture-to-blob.md +++ b/i18n/ja/docusaurus-plugin-content-docs/version-20-R7/commands-legacy/picture-to-blob.md @@ -46,7 +46,6 @@ Codecは拡張子 (例 “.gif”), または Mimeタイプ (例 “image/jpeg #### 参照 -*\_o\_PICTURE TO GIF* [BLOB TO PICTURE](blob-to-picture.md) [PICTURE CODEC LIST](picture-codec-list.md) [WRITE PICTURE FILE](write-picture-file.md) \ No newline at end of file diff --git a/i18n/ja/docusaurus-plugin-content-docs/version-20-R7/commands-legacy/print-selection.md b/i18n/ja/docusaurus-plugin-content-docs/version-20-R7/commands-legacy/print-selection.md index 35be535d4ff1da..b1b34f8689dad3 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/version-20-R7/commands-legacy/print-selection.md +++ b/i18n/ja/docusaurus-plugin-content-docs/version-20-R7/commands-legacy/print-selection.md @@ -60,7 +60,6 @@ displayed_sidebar: docs #### 参照 -*\_o\_PAGE SETUP* [ACCUMULATE](accumulate.md) [BREAK LEVEL](break-level.md) [Level](level.md) diff --git a/i18n/ja/docusaurus-plugin-content-docs/version-20-R7/commands-legacy/resolve-pointer.md b/i18n/ja/docusaurus-plugin-content-docs/version-20-R7/commands-legacy/resolve-pointer.md index 45586d8da03e9d..2a9bf4f72b1648 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/version-20-R7/commands-legacy/resolve-pointer.md +++ b/i18n/ja/docusaurus-plugin-content-docs/version-20-R7/commands-legacy/resolve-pointer.md @@ -104,7 +104,6 @@ DRAG AND DROP PROPERTIES コマンドの例を参照. #### 参照 -*\_o\_DRAG AND DROP PROPERTIES* [Field](field.md) [Get pointer](get-pointer.md) [Is a variable](is-a-variable.md) diff --git a/i18n/ja/docusaurus-plugin-content-docs/version-20-R7/commands-legacy/set-document-properties.md b/i18n/ja/docusaurus-plugin-content-docs/version-20-R7/commands-legacy/set-document-properties.md index 40e847805965c9..f85476ac85c450 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/version-20-R7/commands-legacy/set-document-properties.md +++ b/i18n/ja/docusaurus-plugin-content-docs/version-20-R7/commands-legacy/set-document-properties.md @@ -34,6 +34,4 @@ displayed_sidebar: docs #### 参照 -*\_o\_SET DOCUMENT CREATOR* -*\_o\_SET DOCUMENT TYPE* [GET DOCUMENT PROPERTIES](get-document-properties.md) \ No newline at end of file diff --git a/i18n/ja/docusaurus-plugin-content-docs/version-20-R7/commands-legacy/structure-file.md b/i18n/ja/docusaurus-plugin-content-docs/version-20-R7/commands-legacy/structure-file.md index a5445849a81447..290339bbfb9700 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/version-20-R7/commands-legacy/structure-file.md +++ b/i18n/ja/docusaurus-plugin-content-docs/version-20-R7/commands-legacy/structure-file.md @@ -64,7 +64,6 @@ displayed_sidebar: docs #### 参照 -*\_o\_DATA SEGMENT LIST* [Application file](application-file.md) [COMPONENT LIST](component-list.md) [Data file](data-file.md) \ No newline at end of file diff --git a/i18n/ja/docusaurus-plugin-content-docs/version-20-R7/commands-legacy/use-character-set.md b/i18n/ja/docusaurus-plugin-content-docs/version-20-R7/commands-legacy/use-character-set.md index 54a2ea8d258800..25d704df402da8 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/version-20-R7/commands-legacy/use-character-set.md +++ b/i18n/ja/docusaurus-plugin-content-docs/version-20-R7/commands-legacy/use-character-set.md @@ -45,8 +45,6 @@ IANA名に関する説明は[CONVERT FROM TEXT](convert-from-text.md)コマン #### 参照 -*\_o\_Mac to Win* -*\_o\_Win to Mac* [EXPORT DIF](export-dif.md) [EXPORT SYLK](export-sylk.md) [EXPORT TEXT](export-text.md) diff --git a/i18n/ja/docusaurus-plugin-content-docs/version-20-R7/commands/command-index.md b/i18n/ja/docusaurus-plugin-content-docs/version-20-R7/commands/command-index.md index 84d64e9d9857c9..d56f5ef0140363 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/version-20-R7/commands/command-index.md +++ b/i18n/ja/docusaurus-plugin-content-docs/version-20-R7/commands/command-index.md @@ -315,8 +315,8 @@ title: インデックス [`Form`](../commands-legacy/form.md)
    [`FORM Convert to dynamic`](../commands-legacy/form-convert-to-dynamic.md)
    [`FORM EDIT`](../commands-legacy/form-edit.md)
    -[`FORM Event`](../commands-legacy/form-event.md)
    -[`Form event code`](../commands-legacy/form-event-code.md)
    +[`FORM Event`](../commands/form-event.md)
    +[`Form event code`](../commands/form-event-code.md)
    [`FORM FIRST PAGE`](../commands-legacy/form-first-page.md)
    [`FORM Get color scheme`](../commands-legacy/form-get-color-scheme.md)
    [`FORM Get current page`](../commands-legacy/form-get-current-page.md)
    diff --git a/i18n/ja/docusaurus-plugin-content-docs/version-20-R7/commands/form-event-code.md b/i18n/ja/docusaurus-plugin-content-docs/version-20-R7/commands/form-event-code.md index f3ade9de37e579..742327808b6ecb 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/version-20-R7/commands/form-event-code.md +++ b/i18n/ja/docusaurus-plugin-content-docs/version-20-R7/commands/form-event-code.md @@ -1,7 +1,6 @@ --- id: form-event-code title: Form event code -slug: /commands/form-event-code displayed_sidebar: docs --- @@ -9,9 +8,9 @@ displayed_sidebar: docs -| 引数 | 型 | | 説明 | -| --- | ------- | - | ----------------- | -| 戻り値 | Integer | ← | Form event number | +| 引数 | 型 | | 説明 | +| --- | ------- | - | ---------- | +| 戻り値 | Integer | ← | フォームイベント番号 | @@ -19,18 +18,18 @@ displayed_sidebar: docs #### 説明 -**Form event code** returns a numeric value identifying the type of form event that has just occurred. Usually, you will use **Form event code** from within a form or object method. +**Form event code** コマンドは、現在生成中のフォームイベントタイプを示す数値を返します。 通常フォームメソッドやオブジェクトメソッド内で**Form event code** を使用します。 -4D provides predefined constants (found in the *Form Events* theme) in order to compare the values returned by the **Form event code** command. Certain events are generic (generated for any type of object) and others are specific to a particular type of object. +4DにはForm Eventsテーマで定義された定数が用意されており、**Form event code** コマンドから返される値と比較することができます。 イベントには、一般的なイベント(任意のタイプのオブジェクトに対して生成される)と、特定タイプのオブジェクトのみに発生するイベントがあります。 -For a description of events, please refer to the [**Form Events**](../Events/overview.md) section. +イベントの詳細については[**Form Events**](../Events/overview.md) の章を参照してください。 #### 例題 1 -This example shows the On Validate event being used to automatically assign (to a field) the date that the record is modified: +この例題ではレコード更新日をOn Validateイベントで自動的に(フィールドへ)割り当てる例を示します: ```4d -  //Method of a form +  // フォームメソッド  Case of   // ...     :(Form event code=On Validate) @@ -40,10 +39,10 @@ This example shows the On Validate event being used to automatically assign (to #### 例題 2 -In this example, the complete handling of a drop-down list (initialization, user clicks, and object release) is encapsulated in the method of the object: +この例題では、ドロップダウンリスト処理 (初期化, ユーザクリック, オブジェクトのリリース) をオブジェクトメソッドにカプセル化します: ```4d -  //asBurgerSize Drop-down list Object Method +  //asBurgerSize ドロップダウンリストのオブジェクトメソッド  Case of     :(Form event code=On Load)        ARRAY TEXT(asBurgerSize;3) @@ -52,7 +51,7 @@ In this example, the complete handling of a drop-down list (initialization, user        asBurgerSize{1}:="Large"     :(Form event code=On Clicked)        If(asBurgerSize#0) -          ALERT("You chose a "+asBurgerSize{asBurgerSize}+" burger.") +          ALERT(asBurgerSize{asBurgerSize}+" バーガーが選択されました。")        End if     :(Form event code=On Unload)        CLEAR VARIABLE(asBurgerSize) @@ -61,94 +60,94 @@ In this example, the complete handling of a drop-down list (initialization, user #### 例題 3 -This example is a template for a form method. It shows each of the possible events that can occur when a summary report uses a form as an output form: +この例題はフォームメソッドのテンプレートです。 出力フォームとしてサマリレポートがフォームを使用する際に発生し得るイベントを示しています: ```4d -  //Method of a form being used as output form for a summary report +  // 概要レポートの出力フォームとして使用されているフォームのフォームメソッド  $vpFormTable:=Current form table  Case of   //...     :(Form event code=On Header) -  //A header area is about to be printed +  // ヘッダエリアの印刷開始        Case of           :(Before selection($vpFormTable->)) -  //Code for the first break header goes here +  // 最初のブレークヘッダ用のコード           :(Level=1) -  //Code for a break header level 1 goes here +  // ヘッダブレークレベル 1 用のコード           :(Level=2) -  //Code for a break header level 2 goes here +  // ヘッダブレークレベル 2 用のコード   //...        End case     :(Form event code=On Printing Detail) -  //A record is about to be printed -  //Code for each record goes here +  // レコードの印刷開始 +  // レコード毎のコードを記述     :(Form event code=On Printing Break) -  //A break area is about to be printed +  // ブレークエリアの印刷開始        Case of           :(Level=0) -  //Code for a break level 0 goes here +  // ブレークレベル0 用のコード           :(Level=1) -  //Code for a break level 1 goes here +  // ブレークレベル1 用のコード   //...        End case     :(Form event code=On Printing Footer)        If(End selection($vpFormTable->)) -  //Code for the last footer goes here +  // 最後のフッタ用のコード        Else -  //Code for a footer goes here +  // フッタ用のコード        End if  End case ``` #### 例題 4 -This example shows the template of a form method that handles the events that can occur for a form displayed using the [DISPLAY SELECTION](display-selection.md) or [MODIFY SELECTION](modify-selection.md) commands. For didactic purposes, it displays the nature of the event in the title bar of the form window. +この例題は[DISPLAY SELECTION](../commands-legacy/display-selection.md) または[MODIFY SELECTION](../commands-legacy/modify-selection.md) で表示されるフォームで発生するイベントを処理するメソッドのテンプレートです。 説明的にするため、フォームウィンドウのタイトルバーにイベントの説明が表示されます: ```4d -  //A form method +  // フォームメソッド  Case of     :(Form event code=On Load) -       $vsTheEvent:="The form is about to be displayed" +       $vsTheEvent:="フォームが表示されようとしている"     :(Form event code=On Unload) -       $vsTheEvent:="The output form has been exited and is about to disappear from the screen" +       $vsTheEvent:="出力フォームを抜け、スクリーンから消えようとしている"     :(Form event code=On Display Detail) -       $vsTheEvent:="Displaying record #"+String(Selected record number([TheTable])) +       $vsTheEvent:="表示中のレコード #"+String(Selected record number([TheTable]))     :(Form event code=On Menu Selected) -       $vsTheEvent:="A menu item has been selected" +       $vsTheEvent:="メニュー項目が選択された"     :(Form event code=On Header") -       $vsTheEvent:="The header area is about to be drawn" +       $vsTheEvent:="ヘッダエリアが描画されようとしている"     :(Form event code=On Clicked") -       $vsTheEvent:="A record has been clicked" +       $vsTheEvent:="レコードがクリックされた"     :(Form event code=On Double Clicked") -       $vsTheEvent:="A record has been double clicked" +       $vsTheEvent:="レコードがダブルクリックされた"     :(Form event code=On Open Detail) -       $vsTheEvent:="The record #"+String(Selected record number([TheTable]))+" is double-clicked" +       $vsTheEvent:="レコード #"+String(Selected record number([TheTable]))+" がダブルクリックされた"     :(Form event code=On Close Detail) -       $vsTheEvent:="Going back to the output form" +       $vsTheEvent:="出力フォームに戻る"     :(Form event code=On Activate) -       $vsTheEvent:="The form's window has just become the frontmost window" +       $vsTheEvent:="フォームのウィンドウが最前面になった"     :(Form event code=On Deactivate) -       $vsTheEvent:="The form's window is no longer the frontmost window" +       $vsTheEvent:="フォームのウィンドウが最前面でなくなった"     :(Form event code=On Menu Selected) -       $vsTheEvent:="A menu item has been chosen" +       $vsTheEvent:="メニュー項目が選択された"     :(Form event code=On Outside Call) -       $vsTheEvent:="A call from another has been received" +       $vsTheEvent:="他のプロセスからの呼び出しを受信した"     Else -       $vsTheEvent:="What's going on? Event #"+String(Form event) +       $vsTheEvent:="発生したイベント #"+String(Form event)  End case  SET WINDOW TITLE($vsTheEvent) ``` #### 例題 5 -For examples on how to handle [`On Before Keystroke`](../Events/onBeforeKeystroke.md) and [`On After Keystroke`](../Events/onAfterKeystroke.md) events, see examples for the [Get edited text](get-edited-text.md), [Keystroke](keystroke.md) and [FILTER KEYSTROKE](filter-keystroke.md) commands. +[`On Before Keystroke`](../Events/onBeforeKeystroke.md) と [`On After Keystroke`](../Events/onAfterKeystroke.md) イベントを処理する方法は[Get edited text](../commands-legacy/get-edited-text.md)、[Keystroke](../commands-legacy/keystroke.md)、そして[FILTER KEYSTROKE](../commands-legacy/filter-keystroke.md) コマンドの説明を参照してください。 #### 例題 6 -This example shows how to treat clicks and double clicks in the same way in a scrollable area: +この例題は、スクロールエリアでクリックとダブルクリックを同様に扱う方法を示しています: ```4d -  //asChoices scrollable area object method +  // asChoices スクロール可能エリアオブジェクトメソッド  Case of     :(Form event code=On Load)        ARRAY TEXT(asChoices;...) @@ -156,7 +155,7 @@ This example shows how to treat clicks and double clicks in the same way in a sc        asChoices:=0     :((Form event code=On Clicked)|(Form event code=On Double Clicked))        If(asChoices#0) -  //An item has been clicked, do something here +  // 項目がクリックされたので、何らかの処理を行う   //...        End if   //... @@ -165,10 +164,10 @@ This example shows how to treat clicks and double clicks in the same way in a sc #### 例題 7 -This example shows how to treat clicks and double clicks using a different response. Note the use of the element zero for keeping track of the selected element: +この例題では、クリックとダブルクリックで異なるレスポンスをする方法を示します。 要素0を使用して選択された項目を追跡していることに注目してください: ```4d -  //asChoices scrollable area object method +  // asChoices スクロール可能エリアのオブジェクトメソッド  Case of     :(Form event code=On Load)        ARRAY TEXT(asChoices;...) @@ -178,9 +177,9 @@ This example shows how to treat clicks and double clicks using a different respo     :(Form event code=On Clicked)        If(asChoices#0)           If(asChoices#Num(asChoices)) -  //A new item has been clicked, do something here +  // 新しい項目がクリックされた、何か処理を行う   //... -  //Save the new selected element for the next time +  // 選択された新しい項目を次回のために保存しておく              asChoices{0}:=String(asChoices)           End if        Else @@ -188,7 +187,7 @@ This example shows how to treat clicks and double clicks using a different respo        End if     :(Form event code=On Double Clicked)        If(asChoices#0) -  //An item has been double clicked, do something different here +  // 項目がダブルクリックされた、別の処理をここで行う        End if   // ...  End case @@ -196,10 +195,10 @@ This example shows how to treat clicks and double clicks using a different respo #### 例題 8 -This example shows how to maintain a status text information area from within a form method, using the [`On Getting Focus`](../Events/onGettingFocus.md) and [`On Losing Focus`](../Events/onLosingFocus.md) events: +この例題では、[`On Getting Focus`](../Events/onGettingFocus.md) と[`On Losing Focus`](../Events/onLosingFocus.md) を使用して、フォームメソッド内でステータス情報を管理します: ```4d -  //[Contacts];"Data Entry" form method +  //[Contacts];"Data Entry" フォームのフォームメソッド  Case of     :(Form event code=On Load)        var vtStatusArea : Text @@ -208,10 +207,10 @@ This example shows how to maintain a status text information area from within a        RESOLVE POINTER(Focus object;$vsVarName;$vlTableNum;$vlFieldNum)        If(($vlTableNum#0)&($vlFieldNum#0))           Case of -             :($vlFieldNum=1) //Last name field +             :($vlFieldNum=1) // Last name フィールド                 vtStatusArea:="Enter the Last name of the Contact; it will be capitalized automatically"   //... -             :($vlFieldNum=10) //Zip Code field +             :($vlFieldNum=10) // Zip Code フィールド                 vtStatusArea:="Enter a 5-digit zip code; it will be checked and validated automatically"   //...           End case @@ -227,13 +226,13 @@ This example shows how to maintain a status text information area from within a この例題では、レコードのデータ入力に使われるフォームで、ウィンドウを閉じるイベントを処理する方法を示します: ```4d -  //Method for an input form +  // 入力フォームのフォームメソッド  $vpFormTable:=Current form table  Case of   //...     :(Form event code=On Close Box)        If(Modified record($vpFormTable->)) -          CONFIRM("This record has been modified. Save Changes?") +          CONFIRM("このレコードは更新されています。保存しますか?")           If(OK=1)              ACCEPT           Else @@ -246,12 +245,12 @@ This example shows how to maintain a status text information area from within a  End case ``` -#### Example 10 +#### 例題 10 -This example shows how to capitalize a text or alphanumeric field each time its data source value is modified: +この例題では、文字フィールドが更新されるたびに、1文字目を大文字に、それ以外を小文字に変換する方法を示します: ```4d -  //[Contacts]First Name Object method +  //[Contacts]First Name オブジェクトメソッド  Case of   //...     :(Form event code=On Data Change) @@ -260,12 +259,13 @@ This example shows how to capitalize a text or alphanumeric field each time its  End case ``` -#### Example 11 -The following example illustrates how to manage a deletion action in a hierarchical list: +#### 例題 11 + +以下の例題では階層リストで削除アクションを管理する方法を示します: ```4d - ... //method of hierarchical list + ... // 階層リストのメソッド :(Form event code=On Delete Action)  ARRAY LONGINT($itemsArray;0)  $Ref:=Selected list items(<>HL;$itemsArray;*) @@ -288,25 +288,25 @@ The following example illustrates how to manage a deletion action in a hierarchi  End if ``` -#### Example 12 +#### 例題 12 -In this example, the [`On Scroll`](../Events/onScroll.md) form event allows us to synchronize the display of two pictures in a form. The following code is added in the "satellite" object method (picture field or variable): +この例題では[`On Scroll`](../Events/onScroll.md) フォームイベントを使用してフォーム中の2つのピクチャーを同期します。 以下のコードを"satellite" のオブジェクトメソッド(ピクチャーフィールドまたは変数)に記述します: ```4d  Case of     :(Form event code=On Scroll) -  // we take the position of the left picture +  // 左のピクチャーの位置を取得        OBJECT GET SCROLL POSITION(*;"satellite";vPos;hPos) -  // and we apply it to the right picture +  // 取得した位置を右のピクチャーに適用        OBJECT SET SCROLL POSITION(*;"plan";vPos;hPos;*)  End case ``` -Result: https://www.youtube.com/watch?v=YIRfsW1BmHE +結果: https://www.youtube.com/watch?v=YIRfsW1BmHE -#### Example 13 +#### 例題 13 -You want to draw a red rectangle around the selected cell of a list box, and you want the rectangle to move along with the list box if it is scrolled vertically by the user. In the list box object method, you can write: +リストボックスで選択されたセルの周りに赤い長方形を描画し、リストボックスがユーザーによって垂直方向にスクロールされた場合には、その長方形を一緒に移動させたい場合を考えます。 その場合、リストボックスのオブジェクトメソッドに対して以下のように書きます: ```4d  Case of @@ -314,18 +314,18 @@ You want to draw a red rectangle around the selected cell of a list box, and you     :(Form event code=On Clicked)        LISTBOX GET CELL POSITION(*;"LB1";$col;$raw)        LISTBOX GET CELL COORDINATES(*;"LB1";$col;$raw;$x1;$y1;$x2;$y2) -       OBJECT SET VISIBLE(*;"RedRect";True) //initialize a red rectangle +       OBJECT SET VISIBLE(*;"RedRect";True) // 赤い長方形を初期化        OBJECT SET COORDINATES(*;"RedRect";$x1;$y1;$x2;$y2)       :(Form event code=On Scroll)        LISTBOX GET CELL POSITION(*;"LB1";$col;$raw)        LISTBOX GET CELL COORDINATES(*;"LB1";$col;$raw;$x1;$y1;$x2;$y2)        OBJECT GET COORDINATES(*;"LB1";$xlb1;$ylb1;$xlb2;$ylb2) -       $toAdd:=LISTBOX Get headers height(*;"LB1") //height of the header so as not to overlap it -       If($ylb1+$toAdd<$y1)&($ylb2>$y2) //if we are inside the list box -  //to keep it simple, we only handle headers -  //but we should handle horizontal clipping -  //as well as scroll bars +       $toAdd:=LISTBOX Get headers height(*;"LB1") // オーバーラップしないためにヘッダーの高さを取得 +       If($ylb1+$toAdd<$y1)&($ylb2>$y2) // リストボックス内にいるとき +  // 単純化のため、ここではヘッダーのみを扱います +  // 実際にはスクロールバーに加え、 +  // 水平方向のクリッピングも管理しなければなりません。           OBJECT SET VISIBLE(*;"RedRect";True)           OBJECT SET COORDINATES(*;"RedRect";$x1;$y1;$x2;$y2)        Else @@ -335,18 +335,18 @@ You want to draw a red rectangle around the selected cell of a list box, and you  End case ``` -As a result, the red rectangle follows the scrolling of the list box: +結果として、赤い長方形はリストボックスのスクロールに沿って移動します: ![](../assets/en/commands/pict1900395.en.png) #### 参照 [Form Events](../Events/overview.md) -[CALL SUBFORM CONTAINER](call-subform-container.md)\ -[Current form table](current-form-table.md)\ -[FILTER KEYSTROKE](filter-keystroke.md)\ +[CALL SUBFORM CONTAINER](../commands-legacy/call-subform-container.md)\ +[Current form table](../commands-legacy/current-form-table.md)\ +[FILTER KEYSTROKE](../commands-legacy/filter-keystroke.md)\ [FORM Event](form-event.md)\ -[Get edited text](get-edited-text.md)\ -[Keystroke](keystroke.md)\ -[POST OUTSIDE CALL](post-outside-call.md)\ -[SET TIMER](set-timer.md) +[Get edited text](../commands-legacy/get-edited-text.md)\ +[Keystroke](../commands-legacy/keystroke.md)\ +[POST OUTSIDE CALL](../commands-legacy/post-outside-call.md)\ +[SET TIMER](../commands-legacy/set-timer.md) diff --git a/i18n/ja/docusaurus-plugin-content-docs/version-20-R7/commands/form-event.md b/i18n/ja/docusaurus-plugin-content-docs/version-20-R7/commands/form-event.md index 77376c0fe102fe..76b43ccf122c2e 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/version-20-R7/commands/form-event.md +++ b/i18n/ja/docusaurus-plugin-content-docs/version-20-R7/commands/form-event.md @@ -17,34 +17,34 @@ displayed_sidebar: docs #### 説明 -**FORM Event** returns an object containing information about the form event that has just occurred.**FORM Event** returns an object containing information about the form event that has just occurred. Usually, you will use **FORM Event** from within a form or object method. +**FORM Event** returns an object containing information about the form event that has just occurred.**FORM Event** returns an object containing information about the form event that has just occurred.**FORM Event** returns an object containing information about the form event that has just occurred. 通常、**FORM Event** はフォームメソッドまたはオブジェクトメソッド内にて使用します。 **返されるオブジェクト** -Each returned object includes the following main properties: +返されるオブジェクトは、それぞれ以下のメインのプロパティを格納しています: -| **プロパティ** | **型** | **Description** | -| ----------- | ------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -| objectName | text | イベントをトリガーしているオブジェクト名。フォームによってトリガーされている場合には含まれていません。 | -| code | integer | フォームイベントの数値。 | -| description | text | Name of the form event (*e.g.* "On After Edit"). See the [**Form Events**](../Events/overview.md) section. | +| **プロパティ** | **型** | **Description** | +| ----------- | ------- | ------------------------------------------------------------------------------------------------------------------------- | +| objectName | text | イベントをトリガーしているオブジェクト名。フォームによってトリガーされている場合には含まれていません。 | +| code | integer | フォームイベントの数値。 | +| description | text | フォームイベント名(例: "On After Edit") 詳細は[**Form Events**](../Events/overview.md) の章を参照してください。 | -For example, in the case of a click on a button, the object contains the following properties: +例えば、ボタンをクリックした場合、オブジェクトには以下のプロパティが格納されています: ```json {"code":4,"description":"On Clicked","objectName":"Button2"} ``` -The event object can contain additional properties, depending on the object for which the event occurs. For *eventObj* objects generated on: +イベントオブジェクトには、イベントが発生したオブジェクトによっては追加のプロパティが含まれていることがあります。 これは以下のオブジェクトで生成された*eventObj* オブジェクトが対象です: -- List box or list box column objects, see the *list box documentation on developer.4d.com*. -- 4D View Pro areas, see *On VP Ready form event*. +- リストボックスまたはカラムオブジェクト。詳細は*developer.4d.com でのリストボックスのドキュメント* を参照してください。 +- 4D View Pro エリア。詳細は*On VP Ready フォームイベント* を参照してください。 -**Note:** If there is no current event, **FORM Event** returns a null object. +***注意:*** カレントのイベントが何もない場合、**FORM Event** はnull オブジェクトを返します。 #### 例題 1 -You want to handle the On Clicked event on a button: +ボタン上でOn Clicked イベントを管理したい場合を考えます: ```4d  If(FORM Event.code=On Clicked) @@ -54,11 +54,11 @@ You want to handle the On Clicked event on a button: #### 例題 2 -If you set the column object name with a real attribute name of a dataclass like this: +カラムオブジェクト名に、実際のデータクラスの属性名を以下のように設定した場合: ![](../assets/en/commands/pict4843820.en.png) -You can sort the column using the On Header Click event: +On Header Click イベントを使用してカラムをソートすることができます: ```4d  Form.event:=FORM Event @@ -72,11 +72,11 @@ You can sort the column using the On Header Click event: #### 例題 3 -You want to handle the On Display Details on a list box object with a method set in the *Meta info expression* property: +リストボックスオブジェクトのOn Display Details イベントが発生したときに、*メタ情報式 プロパティ*に設定したメソッドを実行したい場合を考えます: ![](../assets/en/commands/pict4843812.en.png) -The *setColor* method: +*setColor* メソッドの中身です: ```4d  var $event;$0;$meta : Object @@ -92,11 +92,11 @@ The *setColor* method:  $0:=$meta ``` -The resulting list box when rows are selected: +その結果、行が選択された際のリストボックスは以下のようになります: ![](../assets/en/commands/pict4843808.en.png) #### 参照 [Form Events](../Events/overview.md) -[Form event code](form-event-code.md) +[Form event code](../commands/form-event-code.md) diff --git a/i18n/ja/docusaurus-plugin-content-docs/version-20-R7/commands/process-activity.md b/i18n/ja/docusaurus-plugin-content-docs/version-20-R7/commands/process-activity.md index 73d848ca5994dd..8817ed658933b9 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/version-20-R7/commands/process-activity.md +++ b/i18n/ja/docusaurus-plugin-content-docs/version-20-R7/commands/process-activity.md @@ -8,11 +8,11 @@ displayed_sidebar: docs -| 引数 | 型 | | 説明 | -| --------- | ------- | - | -------------------------------------------------------------------------------------- | -| sessionID | Text | → | Session ID | -| options | Integer | → | Return options | -| 戻り値 | Object | ← | Snapshot of running processes and/or (4D Server only) user sessions | +| 引数 | 型 | | 説明 | +| --------- | ------- | - | -------------------------------------------------------------- | +| sessionID | Text | → | セッションID | +| options | Integer | → | 返される情報を指定するオプション | +| 戻り値 | Object | ← | 実行中のプロセスまたはユーザーセッション(4D Serverのみ) のスナップショット | @@ -26,54 +26,54 @@ displayed_sidebar: docs #### 説明 -The **Process activity** command returns a snapshot of running processes and/or (4D Server only) connected user sessions at a given time.The **Process activity** command returns a snapshot of running processes and/or (4D Server only) connected user sessions at a given time. This command returns all processes, including internal processes that are not reachable by the [Process info](process-info.md) command. +The **Process activity** command returns a snapshot of running processes and/or (4D Server only) connected user sessions at a given time.The **Process activity** command returns a snapshot of running processes and/or (4D Server only) connected user sessions at a given time.**Process activity** コマンドは特定の時刻での、実行中のプロセスや接続ユーザーセッション(4D Server のみ) のスナップショットを返します。 このコマンドは、全てのプロセスを返します。これには、[Process info](process-info.md) コマンドでもアクセスできない内部プロセスも含まれます。 このコマンドは、全てのプロセスを返します。これには、[Process info](process-info.md) コマンドでもアクセスできない内部プロセスも含まれます。 -By default when used without any parameters, **Process activity** returns an object containing the following properties: +デフォルトで、引数を渡さずに使用した場合、**Process activity** は以下のプロパティを格納したオブジェクトを返します: -- "processes", a collection of all processes -- "sessions" (4D Server only), a collection of all sessions +- "processes" には全てのプロセスのコレクションが格納されています +- "sessions" (4D Server の場合のみ) には全てのセッションのコレクションが格納されています -On 4D Server, you can filter information to be returned using the optional *sessionID* and *options* parameters: +4D Server では、オプションの*sessionID* および *options* 引数を使用することで、返される情報をフィルターすることができます: -- If you pass a user session ID in the *sessionID* parameter, the command only returns information related to this session. By default if the *options* parameter is omitted, the returned object contains a collection with all processes related to the session and a collection with a single object describing the session. If you pass an invalid session ID, a **null** object is returned. -- You can select the collection(s) to return by passing one of the following constants in the *options* parameter: +- *sessionID* 引数にユーザーセッションID を渡した場合、コマンドはそのセッションに関連した情報のみを返します。 *options* 引数が省略された場合、デフォルトで返されるオブジェクトには、セッションに関連した全てのプロセスのコレクションと、セッションの詳細を説明した単一のオブジェクトを格納したコレクションが格納されています。 無効なセッションID を渡した場合、**null** オブジェクトが返されます。 *options* 引数が省略された場合、デフォルトで返されるオブジェクトには、セッションに関連した全てのプロセスのコレクションと、セッションの詳細を説明した単一のオブジェクトを格納したコレクションが格納されています。 無効なセッションID を渡した場合、**null** オブジェクトが返されます。 +- *options* 引数に以下の定数のいづれか一つを渡すことで、返されるコレクションを選択することができます: -| 定数 | 値 | 説明 | -| ---------------------- | - | -------------------------------------------------------------------------------- | -| Processes and sessions | 0 | Returns both "processes" and "sessions" lists (default value) | -| Processes only | 1 | Returns only the "processes" list | -| Sessions only | 2 | Returns only the "sessions" list | +| 定数 | 値 | 説明 | +| ---------------------- | - | ------------------------------------------------------------------ | +| Processes and sessions | 0 | "processes" および "sessions" の両方の一覧を返します(デフォルト値)。 | +| Processes only | 1 | "processes" の一覧のみを返します。 | +| Sessions only | 2 | "sessions" の一覧のみを返します。 | :::note -When executed on 4D in remote or local mode, `Process activity` always returns the list of running processes (*sessionID* and *options* parameters are ignored). +リモート、あるいはローカルモードの4D で実行された場合、`Process activity` は実行中のプロセスの一覧のみを返します(この場合*sessionID* および *options* 引数は無視されます)。 ::: **Sessions** -The "sessions" property contains a collection of objects describing all running sessions on the server. For a description of session object properties, please refer to the [`Session info`](session-info.md) command. +"sessions" プロパティには、サーバーで実行中の全てのユーザーセッションを記述するオブジェクトのコレクションが格納されます。 セッションオブジェクトのプロパティの詳細については、[`Session info`](session-info.md) コマンドを参照してください。 セッションオブジェクトのプロパティの詳細については、[`Session info`](session-info.md) コマンドを参照してください。 -:::note Notes +:::note 注記 -- You can get the object of a session using the [Session](session.md) command. -- `Process activity` returns remote client sessions, stored procedure session and rest sessions but not Web sessions (limitation). +- セッションのオブジェクトは、[Session](session.md) コマンドを使用することで取得できます。 +- `Process activity` はリモートクライアントセッション、ストアドプロシージャーセッションおよびREST セッションを返しますが、Web セッションは返しません(制約)。 ::: **Processes** -The "processes" property contains a collection of process objects describing all running processes. For a description of process object properties, please refer to the [`Process info`](process-info.md) command. +"process"プロパティには、サーバーで実行中の全てのプロセスを記述するオブジェクトのコレクションが格納されます。 プロセスオブジェクトのプロパティの詳細な情報については、[`Process info`](process-info.md) コマンドを参照してください。 プロセスオブジェクトのプロパティの詳細な情報については、[`Process info`](process-info.md) コマンドを参照してください。 -On the server, the `Process activity` command returns an additional "session" property: +サーバー上では、`Process activity` コマンドは追加の"session" プロパティを返します: -| Additional property | 型 | 説明 | | -| ------------------- | ------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | - | -| session | Object | The [`.info`](../API/SessionClass.md#info) property of the session in which the process is running. Undefined if the `Processes only` parameter is passed. | | +| 追加のプロパティ | 型 | 説明 | | +| -------- | ------ | -------------------------------------------------------------------------------------------------------------------------------------------- | - | +| session | Object | プロセスが実行中のセッションの[`.info`](../API/SessionClass.md#info) プロパティ。 `Processes only` 引数が渡されていた場合には未定義となります。 `Processes only` 引数が渡されていた場合には未定義となります。 | | #### 例題 1 -You want to get the collection of all user sessions: +全てのユーザーセッションのコレクションを取得したい場合を考えます: ```4d   //To be executed on the server @@ -93,10 +93,10 @@ You want to get the collection of all user sessions: #### 例題 2 -You want to get all processes related to the current session: +カレントセッションに関連した全てのプロセスを取得した場合を考えます: ```4d - // to be executed on the server + // サーバー側で実行すること var $sessionID : Text:=Session.id var $o : Object diff --git a/i18n/ja/docusaurus-plugin-content-docs/version-20-R7/commands/session-info.md b/i18n/ja/docusaurus-plugin-content-docs/version-20-R7/commands/session-info.md index ca64b52a5a3cd6..4e42454fd8e371 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/version-20-R7/commands/session-info.md +++ b/i18n/ja/docusaurus-plugin-content-docs/version-20-R7/commands/session-info.md @@ -18,7 +18,7 @@ displayed_sidebar: docs | 引数 | 型 | | 説明 | | --------- | ------- | :-: | ----------------------------- | -| sessionID | Integer | → | Session ID | +| sessionID | Integer | → | セッションID | | 戻り値 | Object | ← | Information about the session | diff --git a/i18n/ja/docusaurus-plugin-content-docs/version-20-R7/commands/super.md b/i18n/ja/docusaurus-plugin-content-docs/version-20-R7/commands/super.md index 660c3e4239e768..168c0915a47981 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/version-20-R7/commands/super.md +++ b/i18n/ja/docusaurus-plugin-content-docs/version-20-R7/commands/super.md @@ -19,7 +19,7 @@ displayed_sidebar: docs `Super` は次の 2つの目的のために使います: -1. Inside a [constructor code]((../Concepts/classes.md#class-constructor), `Super` is a command that allows to call the constructor of the superclass. When used in a constructor, the `Super` command appears alone and must be used before the [`This`](this.md) keyword is used. +1. `Square` クラスには、スーパークラスメソッドを呼び出すメンバーメソッドを定義します: When used in a constructor, the `Super` command appears alone and must be used before the [`This`](this.md) keyword is used. - 継承ツリーにおいて、すべてのクラスコンストラクターが正しく呼び出されていない場合には、エラー -10748 が生成されます。 呼び出しが有効であることを確認するのは、開発者の役目となります。 - スーパークラスがコンストラクトされるより先に、`This` コマンドを使った場合には、エラー -10743 が生成されます。 @@ -41,7 +41,7 @@ Super.doSomething(42) // スーパークラスにて宣言されている #### 例題 1 -クラスコンストレクター内で `Super` を使う例です。 `Rectangle` と `Square` クラス の共通要素がコンストラクター内で重複しないよう、このコマンドを呼び出します。 +クラスコンストレクター内で `Super` を使う例です。 クラスコンストレクター内で `Super` を使う例です。 `Rectangle` と `Square` クラス の共通要素がコンストラクター内で重複しないよう、このコマンドを呼び出します。 ```4d // Class: Rectangle diff --git a/i18n/ja/docusaurus-plugin-content-docs/version-20-R7/commands/this.md b/i18n/ja/docusaurus-plugin-content-docs/version-20-R7/commands/this.md index b9d0a18bf5dfec..9fd993db32dc1e 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/version-20-R7/commands/this.md +++ b/i18n/ja/docusaurus-plugin-content-docs/version-20-R7/commands/this.md @@ -45,7 +45,7 @@ $o:=cs.ob.new() $val:=$o.a //42 ``` -> コンストラクター内で [Super](#super) キーワードを使ってスーパークラスのコンストラクターを呼び出す場合、必ず `This` より先にスーパークラスのコンストラクターを呼ぶ必要があることに留意してください。順番を違えるとエラーが生成されます。 See [this example](super.md#example-1). +> コンストラクター内で [Super](#super) キーワードを使ってスーパークラスのコンストラクターを呼び出す場合、必ず `This` より先にスーパークラスのコンストラクターを呼ぶ必要があることに留意してください。順番を違えるとエラーが生成されます。 こちらの [例題](#例題-1) を参照ください。 See [this example](super.md#example-1). 基本的に、`This` はメソッドの呼び出し元のオブジェクトを指します。 @@ -66,7 +66,7 @@ $val:=$o.f() //8 ``` -この例では、変数 $o に代入されたオブジェクトは *f* プロパティを持たないため、これをクラスより継承します。 *f* は $o のメソッドとして呼び出されるため、メソッド内の `This` は $o を指します。 +この例では、変数 $o に代入されたオブジェクトは *f* プロパティを持たないため、これをクラスより継承します。 *f* は $o のメソッドとして呼び出されるため、メソッド内の `This` は $o を指します。 *f* は $o のメソッドとして呼び出されるため、メソッド内の `This` は $o を指します。 #### フォーミュラオブジェクト diff --git a/i18n/ja/docusaurus-plugin-content-docs/version-20/API/DataClassClass.md b/i18n/ja/docusaurus-plugin-content-docs/version-20/API/DataClassClass.md index a613ad8b6b9a8b..ca5f27bb56e5bb 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/version-20/API/DataClassClass.md +++ b/i18n/ja/docusaurus-plugin-content-docs/version-20/API/DataClassClass.md @@ -927,7 +927,7 @@ attributePath|formula 比較演算子 値 | 含まれる | IN | コレクション、あるいは複数の値のうち、どれか一つの値と等しいデータを取得します。ワイルドカード (@) をサポートします。 | | キーワードを含む | % | キーワードは、文字列あるいはピクチャー型の属性内で使用されるものが対象です。 | -* **値**: コレクションの各要素、あるいはエンティティセレクションの各エンティティのプロパティのカレント値に対して比較する値。 **プレースホルダー** (後述の **プレースホルダーの使用** 参照) か、あるいはデータ型プロパティと同じ型の式を使用することができます。 定数値を使用する場合、以下の原則に従う必要があります: +* **値**: コレクションの各要素、あるいはエンティティセレクションの各エンティティのプロパティのカレント値に対して比較する値。 **プレースホルダー** (後述の **プレースホルダーの使用** 参照) か、あるいはデータ型プロパティと同じ型の式を使用することができます。 Note that, in case of type mismatch with scalar types (text, date, number...), 4D will try to convert the **value** type to the attribute data type whenever possible, for an easier handling of values coming from the Internet. For example, if the string "v20" is entered as **value** to compare with an integer attribute, it will be converted to 20. 定数値を使用する場合、以下の原則に従う必要があります: * **テキスト** テキスト型の定数値の場合は単一引用符つき、あるいはなしでも渡すことができます(後述の **引用符を使用する** 参照)。 文字列中の文字列を検索する ("含まれる" クエリ) には、ワイルドカード記号 (@) を使用して検索文字列を指定します (例: "@Smith@")。 また以下のキーワードはテキスト定数においては使用できません: true, false。 * **ブール** 型の定数値: **true** または **false** (文字の大小を区別します) * **数値** 型の定数値: 浮動小数点は '.' (ピリオド) で区切られます。 diff --git a/i18n/ja/docusaurus-plugin-content-docs/version-20/API/EntityClass.md b/i18n/ja/docusaurus-plugin-content-docs/version-20/API/EntityClass.md index 27626e785510b3..769372d6feeb23 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/version-20/API/EntityClass.md +++ b/i18n/ja/docusaurus-plugin-content-docs/version-20/API/EntityClass.md @@ -48,13 +48,13 @@ title: Entity #### 説明 -データクラス属性はすべて、エンティティのプロパティとして利用可能です。各エンティティのプロパティは、当該 エンティティの属性値を格納します。 +`.touchedAttributes()` 関数は、 メモリに読み込み後に変更されたエンティティの属性名を返します。 > データクラス属性は \[ ] を使用したシンタックスを使用することでもアクセス可能です。 この属性値タイプは属性の種類 ([](DataClassClass.md#attributename).kind; リレーションまたはストレージ) によります。 * *attributeName* で指定した属性がストレージ型の場合: `.attributeName` は *attributeName* と同じ型の値を返します。 -* *attributeName* で指定した属性がリレートエンティティ型の場合: `.attributeName` はリレートエンティティを返します。 リレートエンティティの値は、ドット記法でプロパティを繋げることでアクセス可能です。例: "myEntity.employer.employees[0].lastname" +* この関数は、種類 ([kind](DataClassClass.md#attributename)) が **storage** あるいは **relatedEntity** であるプロパティに適用されます。 リレート先のエンティティそのものが変更された場合 (外部キーの変更)、リレーションの名称とそのプライマリーキー名が *attributeName* プロパティに返されます (リレーション名についての *value* および *otherValue* は空になります)。 * *attributeName* で指定した属性がリレートエンティティズ型の場合: `.attributeName` はリレートエンティティの新しいエンティティセレクションを返します。 重複しているエンティティは取り除かれます (返されるのは順列なしのエンティティセレクションです)。 #### 例題 @@ -92,8 +92,10 @@ title: Entity #### 説明 -`.clone()` 関数は、 対象エンティティと同じレコードを参照する新規エンティティをメモリ内に作成します。 このメソッドを使用するとエンティティを個別に更新することができます。 -> エンティティに対して何らかの変更をおこなった場合、それらは [`.save( )`](#save) 関数が実行されたときのみ、参照先のレコードに保存されるという点に注意してください。 +`.clone()` 関数は、 対象エンティティと同じレコードを参照する新規エンティティをメモリ内に作成します。 + +This function allows you to update entities separately. Note however that, for performance reasons, the new entity shares the same reference of object attributes as the cloned entity. +> Keep in mind that any modifications done to entities will be saved in the referenced record only when the [`.save()`](#save) function is executed. この関数は、すでにデータベースに保存されているエンティティに対してのみ使用可能です。 新規に作成されたエンティティ([`.isNew()`](#isnew) が **true** を返すもの) に対して呼び出すことはできません。 @@ -151,7 +153,7 @@ title: Entity コレクションに含まれるのは異なる値を持っていた属性のみです。 差異が見つからない場合、`diff()` は空のコレクションを返します。 -この関数は、種類 ([kind](DataClassClass.md#attributename)) が **storage** あるいは **relatedEntity** であるプロパティに適用されます。 リレート先のエンティティそのものが変更された場合 (外部キーの変更)、リレーションの名称とそのプライマリーキー名が *attributeName* プロパティに返されます (リレーション名についての *value* および *otherValue* は空になります)。 +この関数は、種類 ([kind](DataClassClass.md#attributename)) が **storage** あるいは **relatedEntity** であるプロパティに適用されます。 *attributeName* で指定した属性がリレートエンティティ型の場合: `.attributeName` はリレートエンティティを返します。 比較するどちらかのエンティティが **Null** である場合、エラーが生成されます。 @@ -281,7 +283,7 @@ vCompareResult2 ($attributesToInspect についての差異のみ返されます ] ``` -vCompareResult3 ($e1 において更新された (touch された) 属性のみが返されます) +vCompareResult1 (すべての差異が返されています): ```4d [ @@ -335,9 +337,9 @@ vCompareResult3 ($e1 において更新された (touch された) 属性のみ #### 説明 -`.drop()` 関数は、 データストアからエンティティに格納されているデータを削除します。データクラスに対応するテーブルからエンティティが削除される一方、 エンティティそのものはメモリ内に残るという点に注意してください。 +`.drop()` 関数は、 データストアからエンティティに格納されているデータを削除します。 データクラスに対応するテーブルからエンティティが削除される一方、 エンティティそのものはメモリ内に残るという点に注意してください。 -マルチユーザー、あるいはマルチプロセスアプリケーションにおいて、`.drop()` 関数は ["オプティミスティック・ロック"](ORDA/entities.md#entity-locking) 機構のもとで実行されます。これはレコードが保存されるたびに内部的なロックスタンプが自動的に増分していくという機構です。 +マルチユーザー、あるいはマルチプロセスアプリケーションにおいて、`.drop()` 関数は ["オプティミスティック・ロック"](ORDA/entities.md#entity-locking) 機構のもとで実行されます。 これはレコードが保存されるたびに内部的なロックスタンプが自動的に増分していくという機構です。 *mode* 引数を渡さなかった場合のデフォルトでは、同エンティティが他のプロセスまたはユーザーによって変更されていた場合 (つまり、スタンプが変更されていた場合) にエラーを返します (以下参照)。 @@ -358,7 +360,7 @@ vCompareResult3 ($e1 において更新された (touch された) 属性のみ | lockInfo | | object | ロック元についての情報 | | | task_id | number | プロセスID | | | user_name | text | マシン上でのセッションユーザー名 | -| | user4d_alias | text | `SET USER ALIAS` で設定されていればユーザーエイリアス。それ以外は 4Dディレクトリのユーザー名 | +| | user4d_alias | text | `SET USER ALIAS` で設定されていればユーザーエイリアス。 それ以外は 4Dディレクトリのユーザー名 | | | host_name | text | マシン名 | | | task_name | text | プロセス名 | | | client_version | text | | @@ -374,7 +376,7 @@ vCompareResult3 ($e1 において更新された (touch された) 属性のみ | ----------------------------------------- | - | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | | `dk status entity does not exist anymore` | 5 | エンティティはもうデータ内に存在していません。 このエラーは以下のような場合に起きえます:
  • エンティティがドロップされている (スタンプが変更されていて、メモリ空間は解放されている)
  • エンティティがドロップされていて、他のプライマリーキー値を持つエンティティで置き換えられている (スタンプは変更されていて、新しいエンティティがメモリ空間を使用している)。 entity.drop( ) を使用するとき、このエラーは dk force drop if stamp changed オプションを使用した場合に返されることがあります。 entity.lock( ) を使用するとき、このエラーは dk reload drop if stamp changed オプションを使用した場合に返されることがあります。
  • **割り当てられた statusText**: "Entity does not exist anymore" (エンティティはもう存在しません) | | `dk status locked` | 3 | エンティティはペシミスティック・ロックでロックされています。
    **割り当てられた statusText**: "Already locked" (既にロックされています) | -| `dk status serious error` | 4 | 深刻なエラーとは、低レベルのデータベースエラー (例: 重複キー)、ハードウェアエラーなどです。
    **割り当てられた statusText**: "Other error" (その他のエラー) | +| `dk status serious error` | 4 | 深刻なエラーとは、低レベルのデータベースエラー (例: 重複キー)、ハードウェアエラーなどです。
    **割り当てられた statusText**: "その他のエラー" | | `dk status stamp has changed` | 2 | エンティティの内部的なスタンプ値がデータ内に保存されているエンティティのものと合致しません (オプティミスティック・ロック)。
  • entity.save( ) の場合: dk auto merge オプションが使用されていない場合に限りエラー
  • entity.drop( ) の場合: dk force drop if stamp changed オプションが使用されていない場合に限りエラー
  • entity.lock( ) の場合: dk reload if stamp changed オプションが使用されていない場合に限りエラー
  • **割り当てられた statusText**: "Stamp has changed"
  • | | `dk status wrong permission` | 1 | 現在の権限では、エンティティを削除することはできません。 **割り当てられた statusText**: "Permission Error" (権限エラー) | @@ -391,7 +393,7 @@ vCompareResult3 ($e1 において更新された (touch された) 属性のみ $status:=$employee.drop() Case of :($status.success) - ALERT($employee.firstName+" "+$employee.lastName+" をドロップしました。") // ドロップされたエンティティはメモリ内に残ります + ALERT($employee.firstName+" "+$employee.lastName+" をドロップしました。 ") // ドロップされたエンティティはメモリ内に残ります :($status.status=dk status stamp has changed) ALERT($status.statusText) End case @@ -410,7 +412,7 @@ vCompareResult3 ($e1 において更新された (touch された) 属性のみ $status:=$employee.drop(dk force drop if stamp changed) Case of :($status.success) - ALERT($employee.firstName+" "+$employee.lastName+" をドロップしました。") // ドロップされたエンティティはメモリ内に残ります + ALERT($employee.firstName+" "+$employee.lastName+" をドロップしました。 ") // ドロップされたエンティティはメモリ内に残ります :($status.status=dk status entity does not exist anymore) ALERT($status.statusText) End case @@ -701,9 +703,9 @@ $info:=$address.getRemoteContextAttributes() -| 引数 | 型 | | 説明 | -| --- | ------------------ |:--:| ------------------------------------------------------------------ | -| 戻り値 | 4D.EntitySelection | <- | エンティティが所属するエンティティセレクション (見つからなければ null)| +| 引数 | 型 | | 説明 | +| --- | ------------------ |:--:| --------------------------------------------------------------- | +| 戻り値 | 4D.EntitySelection | <- | エンティティのスタンプ (エンティティが作成されたばかりの場合には 0)| | @@ -744,9 +746,9 @@ $info:=$address.getRemoteContextAttributes() -| 引数 | 型 | | 説明 | -| --- | ------- |:--:| --------------------------------------------------------------- | -| 戻り値 | Integer | <- | エンティティのスタンプ (エンティティが作成されたばかりの場合には 0)| +| 引数 | 型 | | 説明 | +| --- | ------- |:--:| ------------------------------------------------------------------ | +| 戻り値 | Integer | <- | エンティティが所属するエンティティセレクション (見つからなければ null)| | @@ -754,7 +756,7 @@ $info:=$address.getRemoteContextAttributes() `.getStamp()` 関数は、 エンティティのスタンプの値を返します。 -内部スタンプは、エンティティが保存されるたびに 4D によって自動的にインクリメントされます。 これは同じエンティティに対する複数のユーザーの同時アクセス・編集を管理します。この機構の詳細については、[**エンティティロッキング**](ORDA/entities.md#エンティティロッキング) を参照ください。 +内部スタンプは、エンティティが保存されるたびに 4D によって自動的にインクリメントされます。 これは同じエンティティに対する複数のユーザーの同時アクセス・編集を管理します。 この機構の詳細については、[**エンティティロッキング**](ORDA/entities.md#エンティティロッキング) を参照ください。 > (一度も保存されていない) 新規エンティティに対しては、このメソッドは 0 を返します。 しかしながら、エンティティがまだ作成されたばかりかどうかを調べるには、[isNew()](#isnew) の使用が推奨されます。 #### 例題 @@ -838,9 +840,9 @@ $info:=$address.getRemoteContextAttributes() -| 引数 | 型 | | 説明 | -| --- | ------- |:--:| --------------------------------------------------------------------- | -| 戻り値 | Boolean | <- | エンティティが作成されたばかりで未保存の場合は true。 それ以外は false。| +| 引数 | 型 | | 説明 | +| --- | ------- |:--:| ---------------------------------------------------------------------- | +| 戻り値 | Boolean | <- | エンティティが作成されたばかりで未保存の場合は true。 それ以外は false。 | | @@ -856,7 +858,7 @@ $info:=$address.getRemoteContextAttributes() $emp:=ds.Employee.new() If($emp.isNew()) - ALERT("新規エンティティです。") + ALERT("新規エンティティです。 ") End if ``` @@ -978,7 +980,7 @@ $info:=$address.getRemoteContextAttributes() | 定数 | 値 | 説明 | | ----------------------------------------- | - | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | | `dk status entity does not exist anymore` | 5 | エンティティはもうデータ内に存在していません。 このエラーは以下のような場合に起きえます:
  • エンティティがドロップされている (スタンプが変更されていて、メモリ空間は解放されている)
  • エンティティがドロップされていて、他のプライマリーキー値を持つエンティティで置き換えられている (スタンプは変更されていて、新しいエンティティがメモリ空間を使用している)。 entity.drop( ) を使用するとき、このエラーは dk force drop if stamp changed オプションを使用した場合に返されることがあります。 entity.lock( ) を使用するとき、このエラーは dk reload drop if stamp changed オプションを使用した場合に返されることがあります。

  • **割り当てられた statusText**: "Entity does not exist anymore" (エンティティはもう存在しません) | -| `dk status locked` | 3 | エンティティはペシミスティック・ロックでロックされています。
    **割り当てられた statusText**: "既にロックされています" | +| `dk status locked` | 3 | エンティティはペシミスティック・ロックでロックされています。
    **割り当てられた statusText**: "既にロックされています" | | `dk status serious error` | 4 | 深刻なエラーとは、低レベルのデータベースエラー (例: 重複キー)、ハードウェアエラーなどです。
    **割り当てられた statusText**: "その他のエラー" | | `dk status stamp has changed` | 2 | エンティティの内部的なスタンプ値がデータ内に保存されているエンティティのものと合致しません (オプティミスティック・ロック)。
  • entity.save( ) の場合: dk auto merge オプションが使用されていない場合に限りエラー
  • entity.drop( ) の場合: dk force drop if stamp changed オプションが使用されていない場合に限りエラー
  • entity.lock( ) の場合: dk reload if stamp changed オプションが使用されていない場合に限りエラー

  • **割り当てられた statusText**: "スタンプが変更されています" | @@ -1125,24 +1127,24 @@ $info:=$address.getRemoteContextAttributes() #### 説明 -`.reload()` 関数は、 エンティティの中身をメモリ内にリロードします。この時、リロード元となるのはデータストアのデータクラスに対応するテーブルに保存されている情報です。 エンティティが同じプライマリーキーで存在している場合にのみリロードは実行されます。 +`.reload()` 関数は、 エンティティの中身をメモリ内にリロードしますこの時、リロード元となるのはデータストアのデータクラスに対応するテーブルに保存されている情報です。 エンティティが同じプライマリーキーで存在している場合にのみリロードは実行されます。 **戻り値** `.reload( )` によって返されるオブジェクトには以下のプロパティが格納されます: -| プロパティ | 型 | 説明 | -| ---------------- | ------- | --------------------------------------------------------------- | -| success | boolean | リロードが成功した場合には true、それ以外は false。
    ***エラーの場合にのみ利用可能***: | -| status(\*) | number | エラーコード、以下参照 | -| statusText(\*) | text | エラーの詳細、以下参照 | +| プロパティ | 型 | 説明 | +| ---------------- | ------- | ---------------------------------------------------------------- | +| success | boolean | リロードが成功した場合には true、それ以外は false。
    ***エラーの場合にのみ利用可能***: | +| status(\*) | number | エラーコード、以下参照 | +| statusText(\*) | text | エラーの詳細、以下参照 | (\*) エラー時には *Result* オブジェクトの *status* あるいは *statusText* プロパティに以下のいずれかの値が返されます: | 定数 | 値 | 説明 | | ----------------------------------------- | - | ------------------------------------------------------------------------------------------------------------------------------------------------------------------ | | `dk status entity does not exist anymore` | 5 | エンティティはもうデータ内に存在していません。 このエラーは以下のような場合に起きえます:
  • エンティティがドロップされている (スタンプが変更されていて、メモリ空間は解放されている)
  • エンティティがドロップされていて、他のプライマリーキー値を持つエンティティで置き換えられている (スタンプは変更されていて、新しいエンティティがメモリ空間を使用している)。 entity.drop( ) を使用するとき、このエラーは dk force drop if stamp changed オプションを使用した場合に返されることがあります。 entity.lock( ) を使用するとき、このエラーは dk reload drop if stamp changed オプションを使用した場合に返されることがあります。

  • ***割り当てられた statusText***: "エンティティはもう存在しません" | -| `dk status serious error` | 4 | 深刻なエラーとは、低レベルのデータベースエラー (例: 重複キー)、ハードウェアエラーなどです。
    ***割り当てられた statusText***: "その他のエラー" | +| `dk status serious error` | 4 | 深刻なエラーとは、低レベルのデータベースエラー (例: 重複キー)、ハードウェアエラーなどです。
    ***割り当てられた statusText***: "その他のエラー" | #### 例題 @@ -1189,11 +1191,11 @@ $info:=$address.getRemoteContextAttributes() #### 説明 -`.save()` 関数は、 エンティティの変更内容を保存します 。変更内容は、データクラスに対応するテーブル内に保存されます。 エンティティを作成したあと、あるいはエンティティに対して保存したい変更をおこなったあとにはこの関数を呼び出す必要があります。 +`.save()` 関数は、 エンティティの変更内容を保存します 。 変更内容は、データクラスに対応するテーブル内に保存されます。 エンティティを作成したあと、あるいはエンティティに対して保存したい変更をおこなったあとにはこの関数を呼び出す必要があります。 保存処理は、少なくとも一つのエンティティ属性が "touched" である (更新されている) 場合にのみ実行されます ([`.touched()`](#touched) および [`.touchedAttributes()`](#touchedattributes) 関数参照)。 そうでない場合、関数は何もしません (トリガーは呼び出されません)。 -マルチユーザー、あるいはマルチプロセスアプリケーションにおいて、`.save()` 関数は ["オプティミスティック・ロック"](ORDA/entities.md#entity-locking) 機構のもとで実行されます。これはレコードが保存されるたびに内部的なロックスタンプが自動的に増分していくという機構です。 +マルチユーザー、あるいはマルチプロセスアプリケーションにおいて、`.save()` 関数は ["オプティミスティック・ロック"](ORDA/entities.md#entity-locking) 機構のもとで実行されます。 これはレコードが保存されるたびに内部的なロックスタンプが自動的に増分していくという機構です。 *mode* 引数を渡さなかった場合のデフォルトでは、いずれの属性に関わらず同エンティティが他のプロセスまたはユーザーによって変更されていた場合にエラーを返します (以下参照)。 @@ -1217,7 +1219,7 @@ $info:=$address.getRemoteContextAttributes() | lockInfo | | object | ロック元についての情報 | | | task_id | number | プロセスID | | | user_name | text | マシン上でのセッションユーザー名 | -| | user4d_alias | text | `SET USER ALIAS` で設定されていればユーザーエイリアス。それ以外は 4Dディレクトリのユーザー名 | +| | user4d_alias | text | `SET USER ALIAS` で設定されていればユーザーエイリアス。 それ以外は 4Dディレクトリのユーザー名 | | | host_name | text | マシン名 | | | task_name | text | プロセス名 | | | client_version | text | | @@ -1233,9 +1235,9 @@ $info:=$address.getRemoteContextAttributes() | 定数 | 値 | 説明 | | ----------------------------------------- | - | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -| `dk status automerge failed` | 6 | (`dk auto merge` オプションが使用されたときのみ) エンティティを保存するときに自動マージオプションが失敗しました。
    **割り当てられた statusText**: "自動マージ失敗" | +| `dk status automerge failed` | 6 | ロック解除が成功した場合には true、それ以外は false ドロップされたエンティティや、ロックされてないレコード、あるいは他のプロセスや他のエンティティによってロックされたレコードに対してロック解除を実行した場合、success には false が返されます。 | | `dk status entity does not exist anymore` | 5 | エンティティはもうデータ内に存在していません。 このエラーは以下のような場合に起きえます:
  • エンティティがドロップされている (スタンプが変更されていて、メモリ空間は解放されている)
  • エンティティがドロップされていて、他のプライマリーキー値を持つエンティティで置き換えられている (スタンプは変更されていて、新しいエンティティがメモリ空間を使用している)。 entity.drop( ) を使用するとき、このエラーは dk force drop if stamp changed オプションを使用した場合に返されることがあります。 entity.lock( ) を使用するとき、このエラーは dk reload drop if stamp changed オプションを使用した場合に返されることがあります。

  • **割り当てられた statusText**: "エンティティはもう存在しません" | -| `dk status locked` | 3 | エンティティはペシミスティック・ロックでロックされています。
    **割り当てられた statusText**: "既にロックされています" | +| `dk status locked` | 3 | エンティティはペシミスティック・ロックでロックされています。
    **割り当てられた statusText**: "既にロックされています" | | `dk status serious error` | 4 | 深刻なエラーとは、低レベルのデータベースエラー (例: 重複キー)、ハードウェアエラーなどです。
    **割り当てられた statusText**: "その他のエラー" | | `dk status stamp has changed` | 2 | エンティティの内部的なスタンプ値がデータ内に保存されているエンティティのものと合致しません (オプティミスティック・ロック)。
  • entity.save( ) の場合: dk auto merge オプションが使用されていない場合に限りエラー
  • entity.drop( ) の場合: dk force drop if stamp changed オプションが使用されていない場合に限りエラー
  • entity.lock( ) の場合: dk reload if stamp changed オプションが使用されていない場合に限りエラー

  • **割り当てられた statusText**: "スタンプが変更されています" | | `dk status wrong permission` | 1 | 現在の権限では、エンティティを保存することはできません。 **割り当てられた statusText**: "Permission Error" (権限エラー) | @@ -1326,7 +1328,7 @@ $info:=$address.getRemoteContextAttributes() #### 説明 -`.toObject()` 関数は、 エンティティからビルドされたオブジェクトを返します。 オブジェクト内部のプロパティ名はエンティティの属性名と合致します。 +データクラス属性はすべて、エンティティのプロパティとして利用可能です。 各エンティティのプロパティは、当該。 エンティティの属性値を格納します *filterString* 引数が空の文字列、あるいは "*" の場合、以下のいずれかが返されます: @@ -1336,7 +1338,7 @@ $info:=$address.getRemoteContextAttributes() 最初の引数として、取得するエンティティ属性を渡します。 以下のものを渡すことができます: -* *filterString*: プロパティパスをカンマで区切った文字列: "propertyPath1, propertyPath2, ..." または +* リレートエンティティズの一部のプロパティを取得します: * *filterCol*: 文字列のコレクション: \["propertyPath1","propertyPath2";...] filter 引数がリレートエンティティ型の属性を指定する場合 ([kind](DataClassClass.md#attributename) が relatedEntity): @@ -1657,7 +1659,7 @@ employeeObject:=employeeSelected.toObject("directReports.*") #### 説明 -`.touchedAttributes()` 関数は、 メモリに読み込み後に変更されたエンティティの属性名を返します。 +`.toObject()` 関数は、 メモリに読み込み後に変更されたエンティティの属性名を返します。 この関数は、種類 ([kind](DataClassClass.md#attributename)) が `storage` あるいは `relatedEntity` である属性に適用されます。 @@ -1736,7 +1738,7 @@ employeeObject:=employeeSelected.toObject("directReports.*") > 詳細については [エンティティロッキング](ORDA/entities.md#エンティティロッキング) を参照ください。 ロックしているプロセス内のどのエンティティからもレコードが参照されなくなった場合、自動的にレコードロックが解除されます (たとえば、エンティティのローカル参照に対してのみロックがかかっていた場合、プロセスが終了すればエンティティおよびレコードのロックは解除されます)。 -> レコードがロックされている場合、ロックしているプロセスから、ロックされたエンティティ参照に対してロックを解除する必要があります: 例: +> レコードがロックされている場合、ロックしているプロセスから、ロックされたエンティティ参照に対してロックを解除する必要があります: 例: 例: ```4d $e1:=ds.Emp.all()[0] @@ -1765,7 +1767,7 @@ employeeObject:=employeeSelected.toObject("directReports.*") ... // 処理 $status:=$employee.unlock() If($status.success) - ALERT("エンティティのロックは解除されました。") + ALERT("エンティティのロックは解除されました。 ") End if ``` diff --git a/i18n/ja/docusaurus-plugin-content-docs/version-20/API/HTTPRequestClass.md b/i18n/ja/docusaurus-plugin-content-docs/version-20/API/HTTPRequestClass.md index 01cd5438c61828..d164a17dc0f247 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/version-20/API/HTTPRequestClass.md +++ b/i18n/ja/docusaurus-plugin-content-docs/version-20/API/HTTPRequestClass.md @@ -365,7 +365,7 @@ authentication オブジェクトは `options.serverAuthentication` または `o ## .wait() -**.wait**( { *time* : Real } ) : HTTPRequestClass +**.wait**( { *time* : Real } ) : 4D.HTTPRequest diff --git a/i18n/ja/docusaurus-plugin-content-docs/version-20/Concepts/classes.md b/i18n/ja/docusaurus-plugin-content-docs/version-20/Concepts/classes.md index bfeeddfdfa9dd1..537ef3d4e171e6 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/version-20/Concepts/classes.md +++ b/i18n/ja/docusaurus-plugin-content-docs/version-20/Concepts/classes.md @@ -87,8 +87,8 @@ Project フォルダー Project Sources Classes Polygon.4dm - コードエディター: - クラスは実行できません - クラスメソッドはコードのブロックです - - オブジェクトメンバーに対する **定義に移動** 操作はクラスの Function 宣言を探します。例: "$o.f()" の場合、"Function f" を見つけます。 - - クラスのメソッド宣言に対する **参照箇所を検索** 操作は、そのメソッドがオブジェクトメンバーとして使われている箇所を探します。例: "Function f" の場合 "$o.f()" を見つけます。 + - オブジェクトメンバーに対する **定義に移動** 操作はクラスの Function 宣言を探します。 例: "$o.f()" の場合、"Function f" を見つけます。 + - クラスのメソッド宣言に対する **参照箇所を検索** 操作は、そのメソッドがオブジェクトメンバーとして使われている箇所を探します。 例: "Function f" の場合 "$o.f()" を見つけます。 - ランタイムエクスプローラーおよびデバッガーにおいて、クラスメソッドは `` コンストラクターまたは `.` 形式で表示されます。 ## クラスストア @@ -153,13 +153,13 @@ $key:=4D.CryptoKey.new(New object("type";"ECDSA";"curve";"prime256v1")) また、Class オブジェクトは [`constructor`](#class-constructor) オブジェクトを参照することも可能です (任意)。 -Class オブジェクトは [共有オブジェクト](shared.md) です。したがって、異なる 4Dプロセスから同時にアクセスすることができます。 +Class オブジェクトは [共有オブジェクト](shared.md) です。 したがって、異なる 4Dプロセスから同時にアクセスすることができます。 ### 継承 クラス宣言において [Class extends](classes.md#class-extends-classname) キーワードを使うと、そのクラスは親クラス (つまり [`スーパークラス`](API/ClassClass.md#superclass)) を継承します。 -関数やプロパティがクラス内で見つからない場合、4D はそのクラスの [`スーパークラス`](API/ClassClass.md#superclass) 内を検索します。見つからない場合、4D はさらに、そのスーパークラスのスーパークラス内を探します。これは、スーパークラスが存在しなくなるまで続きます (すべてのオブジェクトは "Object" スーパークラスを継承しています)。 +関数やプロパティがクラス内で見つからない場合、4D はそのクラスの [`スーパークラス`](API/ClassClass.md#superclass) 内を検索します。 見つからない場合、4D はさらに、そのスーパークラスのスーパークラス内を探します。 これは、スーパークラスが存在しなくなるまで続きます (すべてのオブジェクトは "Object" スーパークラスを継承しています)。 ## クラスキーワード @@ -182,17 +182,17 @@ Function ({$parameterName : type; ...}){->$parameterName : type} :::note -There is no ending keyword for function code. The 4D language automatically detects the end of a function's code by the next `Function` keyword or the end of the class file. +There is no ending keyword for function code. There is no ending keyword for function code. ::: -クラス関数とは、当該クラスのプロパティです。 クラス関数は [4D.Function](API/FunctionClass.md) クラスのオブジェクトです。 +クラス関数とは、当該クラスのプロパティです。 クラス関数とは、当該クラスのプロパティです。 クラス定義ファイルでは、`Function` キーワードと関数名を使用して宣言をおこないます。 関数名は [プロパティ名の命名規則](Concepts/identifiers.md#オブジェクトプロパティ) に準拠している必要があります。 :::tip -アンダースコア ("_") 文字で関数名を開始すると、その関数は 4Dコードエディターの自動補完機能から除外されます。 たとえば、`MyClass` に `Function _myPrivateFunction` を宣言した場合、コードエディターにおいて `"cs.MyClass "` とタイプしても、候補として提示されません。 +アンダースコア ("_") 文字で関数名を開始すると、その関数は 4Dコードエディターの自動補完機能から除外されます。 たとえば、`MyClass` に `Function _myPrivateFunction` を宣言した場合、コードエディターにおいて `"cs.MyClass "` とタイプしても、候補として提示されません。 " とタイプしても、候補として提示されません。 ::: @@ -307,12 +307,12 @@ Class Constructor({$parameterName : type; ...}) :::note -There is no ending keyword for class constructor function code. The 4D language automatically detects the end of a function's code by the next `Function` keyword or the end of the class file. +There is no ending keyword for class constructor function code. There is no ending keyword for function code. ::: -クラスコンストラクター関数を使って、ユーザークラスのオブジェクトを生成・初期化することができます。 このコンストラクターは任意の [引数](#引数) を受け取ることができます。 +`Square` クラスには、スーパークラスメソッドを呼び出すメンバーメソッドを定義します: クラスコンストラクターが定義されていると、[`new()`](API/ClassClass.md#new) 関数を呼び出したときに、当該コンストラクターが呼び出されます (コンストラクターで引数を指定している場合は `new()` 関数に渡します)。 @@ -492,7 +492,7 @@ Class extends - ユーザークラスは、自身を継承することはできません。 - 間接的にも、自身を継承することはできません (例: "a" extends "b" かつ "b" extends "a")。 -コードエディターやインタープリターは、これらのルールが破られていても検知することはできません。コンパイラーおよび "シンタックスチェック" のみがエラーを生成します。 +コードエディターやインタープリターは、これらのルールが破られていても検知することはできません。 コンパイラーおよび "シンタックスチェック" のみがエラーを生成します。 派生クラスは、[`Super`](#super) コマンドを使って親クラスのコンストラクターを呼び出すことができます。 @@ -575,11 +575,15 @@ Class constructor($width : Integer; $height : Integer) Function sayName() ALERT("Hi, I am a "+This.name+".") -// 関数定義 -Function getArea() - var $0 : Integer +// クラス: Rectangle +Class constructor($width : Integer; $height : Integer) + This.name:="Rectangle" + This.height:=$height + This.width:=$width + - $0:=(This.height)*(This.width) +Function sayName() + ALERT("Hi, I am a "+This.name+".") ``` ```4d @@ -675,7 +679,7 @@ $val:=$o.a //42 ``` -> コンストラクター内で [Super](#super) キーワードを使ってスーパークラスのコンストラクターを呼び出す場合、必ず `This` より先にスーパークラスのコンストラクターを呼ぶ必要があることに留意してください。順番を違えるとエラーが生成されます。 こちらの [例題](#例題-1) を参照ください。 +> コンストラクター内で [Super](#super) キーワードを使ってスーパークラスのコンストラクターを呼び出す場合、必ず `This` より先にスーパークラスのコンストラクターを呼ぶ必要があることに留意してください。 こちらの [例題](#例題-1) を参照ください。 基本的に、`This` はメソッドの呼び出し元のオブジェクトを指します。 @@ -712,4 +716,4 @@ $val:=$o.f() //8 #### `OB Instance of ( object ; class ) -> Boolean` -`object` が `class`、またはその子クラスに属していれば、`OB Instance of` は `true` を返します。それ以外の場合は `false` を返します。 +`object` が `class`、またはその子クラスに属していれば、`OB Instance of` は `true` を返します。 diff --git a/i18n/pt/docusaurus-plugin-content-docs/current/API/DataClassClass.md b/i18n/pt/docusaurus-plugin-content-docs/current/API/DataClassClass.md index 87aa3197419882..a19744ea2aa39f 100644 --- a/i18n/pt/docusaurus-plugin-content-docs/current/API/DataClassClass.md +++ b/i18n/pt/docusaurus-plugin-content-docs/current/API/DataClassClass.md @@ -940,7 +940,7 @@ Fórmulas nas consultas podem receber parâmetros através de $1. Este ponto est | Incluído em | IN | Retorna dados iguais a ao menos um dos valores de uma coleção ou de um conjunto de valores, admite o coringa (@) | | Contém palavra chave | % | As palavras chaves podem ser usadas em atributos de string ou imagem | -- **value**: o valor a comparar ao valor atual da propriedade de cada entidade na seleção de entidade. Pode ser um **marcador** (ver **Uso de marcadores** abaixo) ou qualquer expressão que coincida com a propriedade de tipo de dados. +- **value**: o valor a comparar ao valor atual da propriedade de cada entidade na seleção de entidade. Pode ser um **marcador** (ver **Uso de marcadores** abaixo) ou qualquer expressão que coincida com a propriedade de tipo de dados. Note that, in case of type mismatch with scalar types (text, date, number...), 4D will try to convert the **value** type to the attribute data type whenever possible, for an easier handling of values coming from the Internet. For example, if the string "v20" is entered as **value** to compare with an integer attribute, it will be converted to 20. Quando usar um valor constante, as regras abaixo devem ser respeitadas: - A constante de tipo texto pode ser passada com ou sem aspas simples (ver **Uso de aspas mais abaixo**). Para pesquisar uma string dentro de uma string (uma pesquisa "contém") use o símbolo coringa (@) em valor para isolar a string a ser pesquisada como mostrado neste exemplo: "@Smith@". As palavras chaves abaixo são proibidas para constantes de texto: true, false. - Valores constantes de tipo **booleano**: **true** ou **false** (diferencia maiúscula de minúscula). diff --git a/i18n/pt/docusaurus-plugin-content-docs/current/API/EntityClass.md b/i18n/pt/docusaurus-plugin-content-docs/current/API/EntityClass.md index 4ed44e47abf465..4d7af6a78403ef 100644 --- a/i18n/pt/docusaurus-plugin-content-docs/current/API/EntityClass.md +++ b/i18n/pt/docusaurus-plugin-content-docs/current/API/EntityClass.md @@ -98,9 +98,11 @@ The attribute value type depends on the attribute [kind](DataClassClass.md#attri #### Descrição -The `.clone()` function creates in memory a new entity referencing the same record as the original entity. . +The `.clone()` function creates in memory a new entity referencing the same record as the original entity. -> Keep in mind that any modifications done to entities will be saved in the referenced record only when the [`.save( )`](#save) function is executed. +This function allows you to update entities separately. Note however that, for performance reasons, the new entity shares the same reference of object attributes as the cloned entity. + +> Keep in mind that any modifications done to entities will be saved in the referenced record only when the [`.save()`](#save) function is executed. Esta função só pode ser usada com entidades já salvas no banco de dados. Não pode ser chamado em uma entidade recém-criada (para a qual [`.isNew()`](#isnew) retorna **True**). diff --git a/i18n/pt/docusaurus-plugin-content-docs/current/API/HTTPRequestClass.md b/i18n/pt/docusaurus-plugin-content-docs/current/API/HTTPRequestClass.md index 07cf65cff533cf..071a37106d802c 100644 --- a/i18n/pt/docusaurus-plugin-content-docs/current/API/HTTPRequestClass.md +++ b/i18n/pt/docusaurus-plugin-content-docs/current/API/HTTPRequestClass.md @@ -472,7 +472,7 @@ The `.url` property contains the URL o ## .wait() -**.wait**( { *time* : Real } ) : HTTPRequestClass +**.wait**( { *time* : Real } ) : 4D.HTTPRequest diff --git a/i18n/pt/docusaurus-plugin-content-docs/current/API/IncomingMessageClass.md b/i18n/pt/docusaurus-plugin-content-docs/current/API/IncomingMessageClass.md new file mode 100644 index 00000000000000..64391e2e98a98f --- /dev/null +++ b/i18n/pt/docusaurus-plugin-content-docs/current/API/IncomingMessageClass.md @@ -0,0 +1,349 @@ +--- +id: IncomingMessageClass +title: IncomingMessage +--- + +The `4D.IncomingMessage` class allows you to handle the object received by a custom [**HTTP request handler**](../WebServer/http-request-handler.md). HTTP requests and their properties are automatically received as an instance of the `4D.IncomingMessage` class. Parameters given directly in the request with GET verb are handled by the [`.urlQuery`](#urlquery) property, while parameters passed in the body of the request are available through functions such as [`.getBlob()`](#getblob) or [`getText()`](#gettext). + +The HTTP request handler can return any value (or nothing). It usually returns an instance of the [`4D.OutgoingMessage`](OutgoingMessageClass.md) class. + +All properties of this class are read-only. They are automatically filled by the request handler. + +
    História + +| Release | Mudanças | +| ------- | ----------------- | +| 20 R8 | Classe adicionada | + +
    + +### Exemplo + +The following [**HTTPHandlers.json** file](../WebServer/http-request-handler.md) has been defined: + +```json +[ + { + "class": "GeneralHandling", + "method": "gettingStarted", + "pattern": "start", + "verbs": "get, post" + } +] +``` + +The `http://127.0.0.1/start/example?param=demo&name=4D` request is run with a `GET` verb in a browser. It is handled by the *gettingStarted* function of the following *GeneralHandling* singleton class: + +```4d +shared singleton Class constructor() + +Function gettingStarted($request : 4D.IncomingMessage) : 4D.OutgoingMessage + + var $result:=4D.OutgoingMessage.new() + var $body : Text + + $body:="Called URL: "+$request.url+"\n" + + $body+="The parameters are received as an object: \n"+JSON Stringify($request.urlQuery; *)+"\n" + + $body+="The verb is: "+$request.verb+"\n" + + $body+="There are "+String($request.urlPath.length)+" url parts - Url parts are: "\ + +$request.urlPath.join(" - ")+"\n\n" + + + $result.setBody($body) + $result.setHeader("Content-Type"; "text/plain") + + return $result + +``` + +The request is received on the server as *$request*, an object instance of the [4D.IncomingMessage class](../API/IncomingMessageClass.md). + +Here is the response: + +```json +Called URL: /start/example? param=demo&name=4D +The parameters are received as an object: +{ + "param": "demo", + "name": "4D" +} +The verb is: GET +There are 2 url parts - Url parts are: start - example +``` + +### IncomingMessage Object + +4D.IncomingMessage objects provide the following properties and functions: + +| | +| ----------------------------------------------------------------------------------------------------------------------------------------- | +| [](#getblob)
    | +| [](#getheader)
    | +| [](#getjson)
    | +| [](#getpicture)
    | +| [](#gettext)
    | +| [](#headers)
    | +| [](#url)
    | +| [](#urlPath)
    | +| [](#urlQuery)
    | +| [](#verb)
    | + +:::note + +A 4D.IncomingMessage object is a [non-sharable](../Concepts/shared.md) object. + +::: + + + +## .getBlob() + +**.getBlob**() : Blob + + + +| Parâmetro | Tipo | | Descrição | +| ---------- | ---- | --------------------------- | ----------------------------- | +| Resultados | Blob | <- | Body of the request as a Blob | + + + +#### Descrição + +The `.getBlob()` function returns the body of the request as a Blob. + +If the body has not been given as a binary content, the function tries to convert the value but it can give unexpected results. + + + + + +## .getHeader() + +**.getHeader**( *key* : Text ) : Text + + + +| Parâmetro | Tipo | | Descrição | +| ---------- | ---- | --------------------------- | ---------------------------- | +| \| | Text | -> | Header property to get | +| Resultados | Text | <- | Value of the header property | + + + +#### Descrição + +The `.getHeader()` function returns the value of the *key* header. + +:::note + +The *key* parameter is not case sensitive. + +::: + +#### Exemplo + +```4d +var $value : Text +var $request : 4D.IncomingMessage +$value := $request.getHeader("content-type") +``` + + + + + +## .getJSON() + +**.getJSON**() : Variant + + + +| Parâmetro | Tipo | | Descrição | +| ---------- | ------------ | --------------------------- | ------------------------------------------ | +| Resultados | Diferente de | <- | JSON resolution of the body of the request | + + + +#### Descrição + +The `.getJSON()` function returns the body of the request as a JSON resolution. + +If the body has not been given as JSON valid content, an error is raised. + + + + + +## .getPicture() + +**.getPicture**() : Picture + + + +| Parâmetro | Tipo | | Descrição | +| ---------- | ------ | --------------------------- | ------------------------------ | +| Resultados | Imagem | <- | Body of the request as picture | + + + +#### Descrição + +The `.getPicture()` function returns the body of the request as a picture (in case of a body sent as a picture). + +The content-type must be given in the headers to indicate that the body is a picture. + +:::note + +If the request is built using the [`HTTPRequest` class](HTTPRequestClass.md), the picture must be sent in the body as a Blob with the appropriate content-type. + +::: + +If the body is not received as a valid picture, the function returns null. + + + + + +## .getText() + +**.getText**() : Text + + + +| Parâmetro | Tipo | | Descrição | +| ---------- | ---- | --------------------------- | --------------------------- | +| Resultados | Text | <- | Body of the request as text | + + + +#### Descrição + +The `.getText()` function returns the body of the request as a text value. + +If the body has not been given as a string value, the function tries to convert the value but it can give unexpected results. + + + + + +## .headers + +**headers** : Object + +#### Descrição + +The `.headers` property contains the current headers of the incoming message as key/value pairs (strings). + +The `.headers` property is read-only. + +Header names (keys) are lowercased. Note header names are case sensitive. + + + + + +## .url + +**url** : Text + +#### Descrição + +The `.url` property contains the URL of the request without the *IP:port* part and as a string. + +For example, if the request is addressed to: "http://127.0.0.1:80/docs/invoices/today", the `.url` property is "/docs/invoices/today". + +The `.url` property is read-only. + +:::note + +The "host" part of the request (*IP:port*) is provided by the [`host` header](#headers). + +::: + + + + + +## .urlPath + +**urlPath** : Collection + +#### Descrição + +The `.urlPath` property contains the URL of the request without the *IP:port* part and as a collection of strings. + +For example, if the request is addressed to: "http://127.0.0.1:80/docs/invoices/today", the `.urlPath` property is ["docs", "invoices" ,"today"]. + +The `.urlPath` property is read-only. + + + + + +## .urlQuery + +**urlQuery** : Object + +#### Descrição + +The `.urlQuery` property contains the parameters of the request when they have been given in the URL as key/value pairs. + +The `.urlQuery` property is read-only. + +Parameters can be passed in the URL of requests **directly** or **as JSON contents**. + +#### Direct parameters + +Example: `http://127.0.0.1:8044/myCall?firstname=Marie&id=2&isWoman=true` + +In this case, parameters are received as stringified values in the `urlQuery` property: `urlQuery = {"firstname":"Marie" ,"id":"2" ,"isWoman":"true"}` + +#### JSON contents parameters + +Example: `http://127.0.0.1:8044/myCall/?myparams='[{"firstname": "Marie","isWoman": true,"id": 3}]'`. + +Parameters are passed in JSON format and enclosed within a collection. + +In this case, parameters are received as JSON text in the `urlQuery` property and can be parsed using [`JSON Parse`](../commands-legacy/json-parse.md). + +```4d +//urlQuery.myparams: "[{"firstname": "Marie","isWoman": true,"id": 3}]" +$test:=Value type(JSON Parse($r.urlQuery.myparams))=Is collection) //true +``` + +Special characters such as simple quotes or carriage returns must be escaped. + +Example: `http://127.0.0.1:8044/syntax/?mdcode=%60%60%604d` + +````4d +//urlQuery.mdcode = ```4d +$test:=Length($r.urlQuery.mdcode) //5 +```` + +:::note + +Parameters given in the body of the request using POST or PUT verbs are handled through dedicated functions: [`getText()`](#gettext), [`getPicture()`](#getpicture), [`getBlob()`](#getblob), [`getJSON()`](#getjson). + +::: + + + + + +## .verb + +**verb** : Text + +#### Descrição + +The `.verb` property contains the verb used by the request. + +HTTP and HTTPS request verbs include for example "get", "post", "put", etc. + +The `.verb` property is read-only. + + diff --git a/i18n/pt/docusaurus-plugin-content-docs/current/API/OutGoingMessageClass.md b/i18n/pt/docusaurus-plugin-content-docs/current/API/OutGoingMessageClass.md index 39f9b4f01dd1c2..1d4465815a17f9 100644 --- a/i18n/pt/docusaurus-plugin-content-docs/current/API/OutGoingMessageClass.md +++ b/i18n/pt/docusaurus-plugin-content-docs/current/API/OutGoingMessageClass.md @@ -5,7 +5,7 @@ title: OutgoingMessage The `4D.OutgoingMessage` class allows you to build messages to be returned by your application functions in response to [REST requests](../REST/REST_requests.md). If the response is of type `4D.OutgoingMessage`, the REST server does not return an object but the object instance of the `OutgoingMessage` class. -Typically, this class can be used in functions declared with the [`onHttpGet`](../ORDA/ordaClasses.md#onhttpget-keyword) keyword and designed to handle HTTP GET requests. Such requests are used, for example, to implement features such as download file, generate and download picture as well as receiving any content-type via a browser. +Typically, this class can be used in custom [HTTP request handler functions](../WebServer/http-request-handler.md#function-configuration) or in functions declared with the [`onHttpGet`](../ORDA/ordaClasses.md#onhttpget-keyword) keyword and designed to handle HTTP GET requests. Such requests are used, for example, to implement features such as download file, generate and download picture as well as receiving any content-type via a browser. An instance of this class is built on 4D Server and can be sent to the browser by the [4D REST Server](../REST/gettingStarted.md) only. This class allows to use other technologies than HTTP (e.g. mobile). diff --git a/i18n/pt/docusaurus-plugin-content-docs/current/API/OutgoingMessageClass.md b/i18n/pt/docusaurus-plugin-content-docs/current/API/OutgoingMessageClass.md index 39f9b4f01dd1c2..1d4465815a17f9 100644 --- a/i18n/pt/docusaurus-plugin-content-docs/current/API/OutgoingMessageClass.md +++ b/i18n/pt/docusaurus-plugin-content-docs/current/API/OutgoingMessageClass.md @@ -5,7 +5,7 @@ title: OutgoingMessage The `4D.OutgoingMessage` class allows you to build messages to be returned by your application functions in response to [REST requests](../REST/REST_requests.md). If the response is of type `4D.OutgoingMessage`, the REST server does not return an object but the object instance of the `OutgoingMessage` class. -Typically, this class can be used in functions declared with the [`onHttpGet`](../ORDA/ordaClasses.md#onhttpget-keyword) keyword and designed to handle HTTP GET requests. Such requests are used, for example, to implement features such as download file, generate and download picture as well as receiving any content-type via a browser. +Typically, this class can be used in custom [HTTP request handler functions](../WebServer/http-request-handler.md#function-configuration) or in functions declared with the [`onHttpGet`](../ORDA/ordaClasses.md#onhttpget-keyword) keyword and designed to handle HTTP GET requests. Such requests are used, for example, to implement features such as download file, generate and download picture as well as receiving any content-type via a browser. An instance of this class is built on 4D Server and can be sent to the browser by the [4D REST Server](../REST/gettingStarted.md) only. This class allows to use other technologies than HTTP (e.g. mobile). diff --git a/i18n/pt/docusaurus-plugin-content-docs/current/API/WebServerClass.md b/i18n/pt/docusaurus-plugin-content-docs/current/API/WebServerClass.md index 95d0333c7319f2..917b31e481b2a9 100644 --- a/i18n/pt/docusaurus-plugin-content-docs/current/API/WebServerClass.md +++ b/i18n/pt/docusaurus-plugin-content-docs/current/API/WebServerClass.md @@ -77,7 +77,7 @@ Path of the folder where t **.characterSet** : Number
    **.characterSet** : Text -The character set that the 4D Web Server should use to communicate with browsers connecting to the application. O valor padrão realmente depende da linguagem do SO. Can be a MIBEnum integer or a Name string, identifiers [defined by IANA](http://www.iana.org/assignments/character-sets/character-sets.xhtml). Aqui está a lista de identificadores correspondentes aos conjuntos de caracteres suportados pelo Servidor Web 4D: +The character set that the 4D Web Server should use to communicate with browsers connecting to the application. O valor padrão realmente depende da linguagem do SO. O valor padrão realmente depende da linguagem do SO. Aqui está a lista de identificadores correspondentes aos conjuntos de caracteres suportados pelo Servidor Web 4D: - 4 = ISO-8859-1 - 12 = ISO-8859-9 @@ -111,7 +111,7 @@ The cipher list used for the sec **.CORSEnabled** : Boolean -The CORS (*Cross-origin resource sharing*) service status for the web server. Por razões de segurança, solicitações de "cross-domain" são proibidas no nível do navegador por padrão. When enabled (True), XHR calls (e.g. REST requests) from Web pages outside the domain can be allowed in your application (you need to define the list of allowed addresses in the CORS domain list, see `CORSSettings` below). Quando desativado (False, padrão), todas as solicitações de cruzamento de sites enviadas com CORS são ignoradas. Quando habilitado (verdadeiro) e um domínio ou método não permitido envia uma solicitação de site cruzado, ele é rejeitado com uma resposta de erro "403 - proibido". +The CORS (*Cross-origin resource sharing*) service status for the web server. Por razões de segurança, solicitações de "cross-domain" são proibidas no nível do navegador por padrão. Por razões de segurança, solicitações de "cross-domain" são proibidas no nível do navegador por padrão. Quando desativado (False, padrão), todas as solicitações de cruzamento de sites enviadas com CORS são ignoradas. Quando habilitado (verdadeiro) e um domínio ou método não permitido envia uma solicitação de site cruzado, ele é rejeitado com uma resposta de erro "403 - proibido". Padrão: Falso (desabilitado) @@ -127,19 +127,19 @@ For more information about CORS, please refer to the [Cross-origin resource shar Contains the list of allowed hosts and methods for the CORS service (see [`CORSEnabled`](#corsenabled) property). Cada objeto deve conter uma propriedade **host** e, opcionalmente, uma propriedade **methods**: -- **host** (text, mandatory): Domain name or IP address from where external pages are allowed to send data requests to the Server via CORS. Vários atributos de domínio podem ser adicionados para criar uma lista branca. If *host* is not present or empty, the object is ignored. Várias sintaxes são suportadas: +- **host** (text, mandatory): Domain name or IP address from where external pages are allowed to send data requests to the Server via CORS. Vários atributos de domínio podem ser adicionados para criar uma lista branca. Vários atributos de domínio podem ser adicionados para criar uma lista branca. Várias sintaxes são suportadas: - 192.168.5.17:8081 - 192.168.5.17 - 192.168.\* - 192.168.\*:8081 - - - + - - - \*.myDomain.com - myProject.myDomain.com - \* -- **methods** (texto, opcional): métodos HTTP aceito(s) para o host CORS correspondente. Separar cada método com um ";" (por exemplo: "post;get"). If *methods* is empty, null, or undefined, all methods are enabled. +- **methods** (texto, opcional): métodos HTTP aceito(s) para o host CORS correspondente. Separar cada método com um ";" (por exemplo: "post;get"). Separar cada método com um ";" (por exemplo: "post;get"). @@ -175,7 +175,7 @@ The name of the default home **.HSTSEnabled** : Boolean -The HTTP Strict Transport Security (HSTS) status. O HSTS permite que o servidor declare que os navegadores só devem interagir com ele através de conexões HTTPS seguras. Navegadores gravarão as informações de HSTS na primeira vez que receberem uma resposta do servidor web, então quaisquer futuras solicitações HTTP serão automaticamente transformadas em solicitações HTTPS. The length of time this information is stored by the browser is specified with the `HSTSMaxAge` property. A HSTS requer que HTTPS esteja ativado no servidor. HTTP deve também ser habilitado para permitir conexões iniciais de clientes. +The HTTP Strict Transport Security (HSTS) status. O HSTS permite que o servidor declare que os navegadores só devem interagir com ele através de conexões HTTPS seguras. Navegadores gravarão as informações de HSTS na primeira vez que receberem uma resposta do servidor web, então quaisquer futuras solicitações HTTP serão automaticamente transformadas em solicitações HTTPS. O HSTS permite que o servidor declare que os navegadores só devem interagir com ele através de conexões HTTPS seguras. A HSTS requer que HTTPS esteja ativado no servidor. HTTP deve também ser habilitado para permitir conexões iniciais de clientes. diff --git a/i18n/pt/docusaurus-plugin-content-docs/current/Concepts/classes.md b/i18n/pt/docusaurus-plugin-content-docs/current/Concepts/classes.md index fe9a201b658938..43a0efa8078621 100644 --- a/i18n/pt/docusaurus-plugin-content-docs/current/Concepts/classes.md +++ b/i18n/pt/docusaurus-plugin-content-docs/current/Concepts/classes.md @@ -107,9 +107,9 @@ As classes disponíveis são acessíveis a partir das suas class stores. Estão -| Parâmetro | Tipo | | Descrição | | -| ---------- | ------ | ------------------------------ | --------------------------------------------------- | ---------------- | -| classStore | Object | &larr; | Class store de usuário para o projeto ou componente | | +| Parâmetro | Tipo | | Descrição | | +| ---------- | ------ | - | --------------------------------------------------- | ---------------- | +| classStore | Object | ← | Class store de usuário para o projeto ou componente | | O comando `cs` devolve a loja de classes de utilizadores para o projecto ou componente actual. Ele retorna todas as classes de usuários [definidas](#class-definition) no projeto ou componente aberto. Por padrão, apenas as classes [ORDA do projeto](ORDA/ordaClasses.md) estão disponíveis. @@ -127,9 +127,9 @@ $instance:=cs.myClass.new() -| Parâmetro | Tipo | | Descrição | | -| ---------- | ------ | ------------------------------ | -------------- | ---------------- | -| classStore | Object | &larr; | Class store 4D | | +| Parâmetro | Tipo | | Descrição | | +| ---------- | ------ | - | -------------- | ---------------- | +| classStore | Object | ← | Class store 4D | | O comando `4D` retorna a classe store para as classes 4D incorporadas disponíveis. Ele permite acesso a APIs específicas como [CryptoKey](API/CryptoKeyClass.md). @@ -199,7 +199,7 @@ There is no ending keyword for function code. The 4D language automatically dete As funções de classe são propriedades específicas da classe. Eles são objetos da classe [4D.Function](API/FunctionClass.md). No arquivo de definição de classe, as declarações de funções usam a palavra-chave `Function` seguida pelo nome da função. -Se a função for declarada em uma [classe compartilhada](#shared-classes), você pode usar a palavra-chave `shared` para que a função possa ser chamada sem [`Use. .Finalizar estrutura`](shared.md#useend-use). Para obter mais informações, consulte o parágrafo [Shared functions](#shared-functions) abaixo. +Usando a palavra-chave `compartilhado` cria uma **classe compartilhada**, usada apenas para instanciar objetos compartilhados. Para obter mais informações, consulte o parágrafo [Shared functions](#shared-functions) abaixo. O nome da função deve estar em conformidade com as [regras de nomenclatura de objetos](Concepts/identifiers.md#object-properties). @@ -276,7 +276,7 @@ Function add($x : Variant; $y : Integer)->$result : Integer Você também pode declarar o parâmetro de retorno adicionando apenas `: type` e usar a [`return expression`](parameters.md#return-expression) (ele também encerrará a execução da função). Por exemplo: ```4d -Function add($x : Variant; $y : Integer)->$result : Integer +Function add($x : Variant; $y : Integer)-&gt;$result : Integer ``` #### Exemplo 1 @@ -339,7 +339,7 @@ Uma função construtora de classe aceita [parâmetros](#parameters) opcionais e Quando você chama a função [`new()`](API/ClassClass.md#new), o construtor da classe é chamado com os parâmetros opcionalmente passados para a função `new()`. -Só pode haver uma função de construtor em uma classe (caso contrário um erro é retornado). Um construtor pode utilizar a palavra-chave [`Super`](#super) para chamar o construtor da superclasse. +Só pode haver uma função de construtor em uma classe (caso contrário um erro é retornado). The [`Super`](../commands/super.md) command allows calls to the [`superclass`](../API/ClassClass#superclass), i.e. the parent class of the function. É possível criar e digitar propriedades de instância dentro do construtor (ver exemplo). Em alternativa, se os valores das propriedades de instância não dependem dos parâmetros passados ao construtor, você pode defini-los usando a palavra-chave [`property`](#property). @@ -505,7 +505,7 @@ No arquivo de definição de classe, as declarações de propriedade computadas `A função get` devolve um valor do tipo de propriedade e `A função set` recebe um parâmetro do tipo de propriedade. Ambos os argumentos devem estar em conformidade com os [parâmetros de função] padrão (#parâmetros). -Quando ambas as funções são definidas, a propriedade computada é **read-write**. Se apenas uma `Function get` for definida, a propriedade computada será **somente leitura**. Neste caso, é devolvido um erro se o código tentar modificar a propriedade. Se apenas um `Function set` estiver definido, 4D devolve _undefined_ quando a propriedade é lida. +Quando ambas as funções são definidas, a propriedade computada é **read-write**. Se apenas uma `Function get` for definida, a propriedade computada será **somente leitura**. Neste caso, é devolvido um erro se o código tentar modificar a propriedade. Neste caso, é devolvido um erro se o código tentar modificar a propriedade. Se as funções forem declaradas em uma [classe compartilhada](#shared-class-constructor), você pode usar a palavra-chave `shared` com elas para que elas possam ser chamadas sem [`Use. .Finalizar estrutura`](shared.md#useend-use). Para obter mais informações, consulte o parágrafo [Shared functions](#shared-functions) abaixo. @@ -608,7 +608,7 @@ The following commands have specific features when they are used within class fu ### `Super` -The [`Super`](../commands/super.md) command allows calls to the [`superclass`](../API/ClassClass#superclass), i.e. the parent class of the function. It can be called in the [class constructor](#class-constructor) or in a class function code. +The [`Super`](../commands/super.md) command allows calls to the [`superclass`](../API/ClassClass#superclass), i.e. the parent class of the function. Só pode haver uma função de construtor em uma classe (caso contrário um erro é retornado). For more details, see the [`Super`](../commands/super.md) command description. diff --git a/i18n/pt/docusaurus-plugin-content-docs/current/Concepts/quick-tour.md b/i18n/pt/docusaurus-plugin-content-docs/current/Concepts/quick-tour.md index 76014902c704cc..4fb4325b425533 100644 --- a/i18n/pt/docusaurus-plugin-content-docs/current/Concepts/quick-tour.md +++ b/i18n/pt/docusaurus-plugin-content-docs/current/Concepts/quick-tour.md @@ -54,7 +54,7 @@ Even if it is usually not recommended, you can create variables simply by using MyOtherDate:=Current date+30 ``` -A linha de código lê “MyOtherDate gets the current date plus 30 days.” This line creates the variable, assigns it with both the (temporary) date type and a content. A variable created by assignment is interpreted as typeless, that is, it can be assigned with other types in other lines and change of type dynamically. This flexibility does not apply to variables declared with the `var` keyword (their type cannot change) and in [compiled mode](interpreted.md) where the type can never be changed, regardless of how the variable was created. +A linha de código lê “MyOtherDate gets the current date plus 30 days.” Essa linha cria a variável, atribui-lhe o tipo de data (temporária) e um conteúdo. A variable created by assignment is interpreted as typeless, that is, it can be assigned with other types in other lines and change of type dynamically. This flexibility does not apply to variables declared with the `var` keyword (their type cannot change) and in [compiled mode](interpreted.md) where the type can never be changed, regardless of how the variable was created. ## Comandos diff --git a/i18n/pt/docusaurus-plugin-content-docs/current/Debugging/debugger.md b/i18n/pt/docusaurus-plugin-content-docs/current/Debugging/debugger.md index 22380d9c7dc63f..c4953084cf0b28 100644 --- a/i18n/pt/docusaurus-plugin-content-docs/current/Debugging/debugger.md +++ b/i18n/pt/docusaurus-plugin-content-docs/current/Debugging/debugger.md @@ -3,10 +3,16 @@ id: debugger title: Depurador --- -O depurador é útil quando é necessário detetar erros ou monitorizar a execução de métodos. Permite-lhe percorrer o seu código lentamente e examinar a informação. Este processo é designado por "rastreio". +The 4D debugger is useful when you need to spot errors or monitor the execution of methods. Permite-lhe percorrer o seu código lentamente e examinar a informação. Este processo é designado por "rastreio". ![debugger-window-local](../assets/en/Debugging/debugger-window-intro.png) +:::info + +If you are used to coding with **VS Code**, you can also use this editor to debug 4D code on 4D Server after installing the [4D-Debugger](https://github.com/4d/4D-Debugger-VSCode) extension. + +::: + ## Chamando o depurador Há várias formas de exibir o depurador: diff --git a/i18n/pt/docusaurus-plugin-content-docs/current/Debugging/debugging-remote.md b/i18n/pt/docusaurus-plugin-content-docs/current/Debugging/debugging-remote.md index e650a483293220..8a9fa777aec84c 100644 --- a/i18n/pt/docusaurus-plugin-content-docs/current/Debugging/debugging-remote.md +++ b/i18n/pt/docusaurus-plugin-content-docs/current/Debugging/debugging-remote.md @@ -20,6 +20,9 @@ Apenas um depurador pode depurar uma aplicação 4D Server num determinado momen - o depurador local do Servidor 4D (padrão) - se o servidor não estiver sendo executado sem interface. - o depurador de um cliente 4D remoto - se a sessão remota tiver acesso ao modo Desenho. - the [Qodly debugger](../WebServer/qodly-studio.md#using-qodly-debugger-on-4d-server) on 4D Server - if the server allows access to Qodly Studio. +- the VS Code debugger, provided you installed the [4D-Debugger](https://github.com/4d/4D-Debugger-VSCode) extension. + +::: O depurador anexado é chamado sempre que um 4D Server se encontra: diff --git a/i18n/pt/docusaurus-plugin-content-docs/current/Desktop/building.md b/i18n/pt/docusaurus-plugin-content-docs/current/Desktop/building.md index 967e2ae15c2afe..16574e898b323b 100644 --- a/i18n/pt/docusaurus-plugin-content-docs/current/Desktop/building.md +++ b/i18n/pt/docusaurus-plugin-content-docs/current/Desktop/building.md @@ -20,7 +20,7 @@ O construtor de aplicações permite-lhe: A cria de um pacote de projetos pode ser efetuada utilizando: -- ou o comando [`BUILD APPLICATION`] (https://doc.4d.com/4dv20/help/command/en/page871.html), +- either the [`BUILD APPLICATION`](../commands-legacy/build-application.md) command, - ou na [caixa de diálogo Criar aplicativo] (#application-builder). :::tip @@ -45,9 +45,9 @@ A geração do banco de dados só pode ser realizado quando o banco de dados for Cada parâmetro do geração da aplicação é armazenado como uma chave XML no arquivo XML `buildApp.4DSettings`, localizado na [pasta `Settings` do projeto](../Project/architecture.md#settings-1). -Os parâmetros padrão são utilizados na primeira vez que a caixa de diálogo Criar aplicação é utilizada. O conteúdo do arquivo de projeto é atualizado, se necessário, quando você clica em **Build** ou **Save settings**. Você pode definir vários outros arquivos de configurações XML para o mesmo projeto e utilizá-los utilizando o comando [BUILD APPLICATION](https://doc.4d.com/4dv19/help/command/pt-BR/page871.html). +Os parâmetros padrão são utilizados na primeira vez que a caixa de diálogo Criar aplicação é utilizada. O conteúdo do arquivo de projeto é atualizado, se necessário, quando você clica em **Build** ou **Save settings**. You can define several other XML settings file for the same project and employ them using the [`BUILD APPLICATION`](../commands-legacy/build-application.md) command. -As chaves XML oferecem opções adicionais além daquelas exibidas na caixa de diálogo Criar aplicativo. A descrição dessas chaves estão detalhadas no manual [4D XML Keys BuildApplication](https://doc.4d.com/4Dv19/4D/19/4D-XML-Keys-BuildApplication.100-5447429.en.html). +As chaves XML oferecem opções adicionais além daquelas exibidas na caixa de diálogo Criar aplicativo. The description of these keys are detailed in the [4D XML Keys BuildApplication](https://doc.4d.com/4Dv20/4D/20/4D-XML-Keys-BuildApplication.100-6335734.en.html) manual. ### Arquivo histórico @@ -59,9 +59,9 @@ Quando uma aplicação é construída, 4D gera um arquivo de log chamado _BuildA - Todos os erros que forem produzidos. - Quaisquer problemas de assinatura (por exemplo, um plug-in não assinado). -A verificação desse arquivo pode ajudá-lo a economizar tempo durante as etapas de implantação subsequentes, por exemplo, se você pretende notarizar o aplicativo. +Checking this file may help you saving time during the subsequent deployment steps, for example if you intend to [notarize](#about-notarization) your application on macOS. -> Use o comando `Get 4D file (Build application log file)` para obter o local do arquivo de registro. +> Use the `Get 4D file(Build application log file)` statement to get the log file location. ## Nome da aplicação e pasta de destino @@ -87,7 +87,7 @@ Esta funcionalidad crea un archivo _.4dz_ en una carpeta `Compiled Database/ Quando gerar arquivos .4dz, 4D usa um formato zip **padrão** por padrão. A vantagem desse formato é que ele pode ser lido facilmente por todas as ferramentas de descompactação. Se não quiser usar esse formato padrão, adicione a chave XML `UseStandardZipFormat` com o valor `False` em seu arquivo [`buildApp.4DSettings`](#build-application-settings) (para obter mais informações, consulte o manual [4D XML Keys BuildApplication](https://doc.4d.com/4Dv19/4D/19/4D-XML-Keys-BuildApplication.100-5447429.en.html)). +> Quando gerar arquivos .4dz, 4D usa um formato zip **padrão** por padrão. A vantagem desse formato é que ele pode ser lido facilmente por todas as ferramentas de descompactação. If you do not want to use this standard format, add the `UseStandardZipFormat` XML key with value `False` in your [`buildApp.4DSettings`](#build-application-settings) file (for more information, see the [4D XML Keys BuildApplication](https://doc.4d.com/4Dv20/4D/20/4D-XML-Keys-BuildApplication.100-6335734.en.html) manual). #### Incluir pastas relacionadas @@ -99,16 +99,20 @@ Constrói um componente compilado a partir da estrutura. Um [componente](../Extensions/develop-components.md) é um projeto padrão 4D onde foram desenvolvidas funcionalidades específicas. Once the component has been configured and [installed in another 4D project](../Project/components.md#basics) (the host application project), its functionalities are accessible from the host project. -Se você nomeou seu aplicativo, _MyComponent_, 4D irá criar uma pasta de _Componentes_ contendo a pasta _MyComponent.4dbase_: +If you have named your application _MyComponent_, 4D will automatically create a _Components_ folder with the following structure: -`/Components/MyComponent.4dbase/MyComponent.4DZ`. +`/Components/MyComponent.4dbase/Contents/`. -A pasta _MyComponent.4dbase_ contém: +The _MyComponent.4dbase_ folder is the [package folder of the compiled component](../Project/components.md#package-folder). -- _MyComponent.4DZ_ file -- Uma pasta _Resources_ - quaisquer Recursos associados são automaticamente copiados para esta pasta. Quaisquer outros componentes e/ou pastas de plug-ins não são copiados (um componente não pode utilizar plug-ins ou outros componentes). +The _Contents_ folder contains: -A pasta _MyComponent.4dbase_ é a [pasta do pacote do componente compilado](../Project/components.md). +- _MyComponent.4DZ_ file - the [compiled structure](#build-compiled-structure). +- Uma pasta _Resources_ - quaisquer Recursos associados são automaticamente copiados para esta pasta. Quaisquer outros componentes e/ou pastas de plug-ins não são copiados (um componente não pode utilizar plug-ins ou outros componentes). +- An _Info.plist_ file - this file is required to build [notarizeable and stapleable](#about-notarization) components for macOS (it is ignored on Windows). The following [Apple bundle keys](https://developer.apple.com/documentation/bundleresources/information-property-list) are prefilled: + - `CFBundleDisplayName` and `CFBundleName` for the application name, + - `NSHumanReadableCopyright`, can be [set using an XML key](https://doc.4d.com/4Dv20/4D/20/CommonCopyright.300-6335859.en.html). + - `CFBundleShortVersionString` and `CFBundleVersion` for the application version (x.x.x format, e.g. 1.0.5), can be [set using an XML key](https://doc.4d.com/4Dv20/4D/20/CommonVersion.300-6335858.en.html). ## Página Aplicação @@ -174,7 +178,7 @@ Se você tiver especificado "MyProject" como o nome do aplicativo, encontrará o Todos estes itens devem ser mantidos na mesma pasta para que o executável possa operar. - _macOS_ - - Um pacote de software chamado MyProject.app que contém seu aplicativo e todos os itens necessários para sua operação, incluindo os plug-ins, componentes e licenças. Para obter mais informações sobre a integração de plug-ins e componentes, consulte a seção [Plugins e componentes](#plugins-and-components). Para obter mais informações sobre a integração de licenças, consulte a seção [Licenças e Certificado](#licenses-and-certificate). \*\*Nota: No macOS, o comando Application file do idioma 4D retorna o caminho do arquivo ApplicationName (localizado na pasta Contents:macOS do pacote do software) e não o do arquivo .comp (Pasta Contents:Resources do pacote de software). + - Um pacote de software chamado MyProject.app que contém seu aplicativo e todos os itens necessários para sua operação, incluindo os plug-ins, componentes e licenças. Para obter mais informações sobre a integração de plug-ins e componentes, consulte a seção [Plugins e componentes](#plugins-and-components). Para obter mais informações sobre a integração de licenças, consulte a seção [Licenças e Certificado](#licenses-and-certificate). **Note**: In macOS, the [Application file](../commands-legacy/application-file.md) command of the 4D language returns the pathname of the ApplicationName file (located in the Contents:macOS folder of the software package) and not that of the .comp file (Contents:Resources folder of the software package). #### Personalização da pasta 4D Volume Desktop @@ -222,7 +226,7 @@ Além disso, o aplicativo cliente/servidor é personalizado e fácil de usar: - Para iniciar a parte do cliente, o usuário simplesmente clica duas vezes no aplicativo cliente, que se conecta diretamente ao aplicativo do servidor. Você não precisa escolher um servidor em uma caixa de diálogo de conexão. O cliente direciona o servidor usando seu nome, quando o cliente e o servidor estão na mesma sub-rede, ou usando seu endereço IP, que é definido usando a chave `IPAddress` XML no arquivo buildapp.4DSettings. Se a conexão falhar, [mecanismos alternativos específicos](#management-of-client-connections) podem ser implementados). Você pode "forçar" a exibição da caixa de diálogo de conexão padrão segurando a tecla **Option** (macOS) ou **Alt** (Windows) enquanto inicia a aplicação cliente. Apenas a parte do cliente pode conectar à parte do servidor correspondente. Se um usuário tentar conectar à parte do servidor usando uma aplicação 4D padrão, uma mensagem de erro é retornada e a conexão é impossível. - Uma aplicação cliente/servidor pode ser configurada para que a parte do cliente [possa ser atualizada automaticamente através da rede](#cópia-dos-aplicativos-cliente-na-aplicação-servidor). Você só precisa criar e distribuir uma versão inicial do aplicativo cliente, atualizações subsequentes são tratadas usando o mecanismo de atualização automática. -- Também é possível automatizar a atualização da parte do servidor por meio do uso de uma sequência de comandos de linguagem ([SET UPDATE FOLDER](https://doc.4d.com/4dv19/help/command/en/page1291.html) e [RESTART 4D](https://doc.4d.com/4dv19/help/command/en/page1292.html)). +- It is also possible to automate the update of the server part through the use of a sequence of language commands ([SET UPDATE FOLDER](../commands-legacy/set-update-folder.md) and [RESTART 4D](../commands-legacy/restart-4d.md). ### Criar aplicação servidor @@ -298,7 +302,7 @@ Designa a localização no seu disco da aplicação 4D Volume Desktop a ser usad A Área de Trabalho de Volume 4D deve corresponder à plataforma atual (que também será a plataforma do aplicativo cliente). Se você deseja criar um aplicativo cliente para a plataforma "simultânea", você deve realizar uma operação de construção adicional usando uma aplicação 4D em execução nessa plataforma. -Se você deseja que o aplicativo cliente se conecte ao servidor usando um endereço específico (diferente do nome do servidor publicado na sub-rede), você deve usar a chave `IPAddress` XML no arquivo buildapp.4DSettings. Para obter mais informações sobre este arquivo, consulte a descrição do comando [`BUILD APPLICATION`](https://doc.4d.com/4dv19/help/command/en/page871.html). Você também pode implementar mecanismos específicos em caso de falha na conexão. Os diferentes cenários propostos são descritos no [Gerenciamento de conexões por aplicativos cliente](#management-of-client-connections) parágrafo. +Se você deseja que o aplicativo cliente se conecte ao servidor usando um endereço específico (diferente do nome do servidor publicado na sub-rede), você deve usar a chave `IPAddress` XML no arquivo buildapp.4DSettings. For more information about this file, refer to the description of the [`BUILD APPLICATION`](../commands-legacy/build-application.md) command. Você também pode implementar mecanismos específicos em caso de falha na conexão. Os diferentes cenários propostos são descritos no [Gerenciamento de conexões por aplicativos cliente](#management-of-client-connections) parágrafo. #### Cópia de aplicativos cliente dentro do aplicativo servidor @@ -418,7 +422,7 @@ O cenário básico é o seguinte: - a chave `PublishName` não é copiada no _info.plist_ do cliente mesclado - Se o aplicativo de usuário único não tiver uma pasta "Dados padrão", o cliente mesclado será executado sem dados. -Funções automáticas do servidor 4D ([Versão atual](#current-version) número, `SET UPDATE FOLDER`...) funciona com aplicação de usuário único como com aplicação remota padrão. Na conexão, o aplicativo de usuário único compara sua chave `CurrentVers` com o intervalo de versão do 4D Server. Se fora do intervalo, o aplicativo cliente atualizado será baixado do servidor e o atualizador iniciará o processo de atualização local. +Automatic update 4D Server features ([Current version](#current-version) number, [`SET UPDATE FOLDER`](../commands-legacy/set-update-folder.md) command...) funciona com aplicação de usuário único como com aplicação remota padrão. Na conexão, o aplicativo de usuário único compara sua chave `CurrentVers` com o intervalo de versão do 4D Server. Se fora do intervalo, o aplicativo cliente atualizado será baixado do servidor e o atualizador iniciará o processo de atualização local. ### Personalização dos nomes da pasta de cache cliente e/ou servidor @@ -505,7 +509,7 @@ Esta aba exibe a lista de licenças de implantação disponíveis que você pode Para remover ou adicionar uma licença, use os **[+]** e **[-]** botões na parte inferior da janela. -Quando você clicar no botão \[+], uma caixa de diálogo 'Abrir arquivo' aparece exibindo por padrão o conteúdo da pasta _Licenças_ do seu computador. Para mais informações sobre a localização desta pasta, consulte o comando [Obter pasta 4D](https://doc.4d.com/4Dv17R6/4D/17-R6/Get-4D-folder.301-4311294.en.html). +Quando você clicar no botão \[+], uma caixa de diálogo 'Abrir arquivo' aparece exibindo por padrão o conteúdo da pasta _Licenças_ do seu computador. For more information about the location of this folder, refer to the [Get 4D folder](../commands-legacy/get-4d-folder.md) command. Você deve designar os arquivos que contêm sua licença de desenvolvedor, bem como os que contém suas licenças de implantação. Estes arquivos foram gerados ou atualizados quando a licença _4D Developer Professional_ e as licenças de _Volume 4D Desktop_ foram adquiridas. @@ -524,11 +528,11 @@ Pode designar o número de ficheiros válidos que desejar. Ao construir uma apli Depois que o aplicativo é construído, um novo arquivo de licença de implantação é automaticamente incluído na pasta Licenças ao lado do aplicativo executável (Windows) ou no pacote (macOS). -### Certificação de aplicativos OS X +### macOS signing certificate O construtor de aplicativos pode assinar aplicativos 4D mesclados no macOS (aplicativos de usuário único, componentes, servidor 4D e partes de clientes sob macOS). A assinatura de um aplicativo autoriza que ele seja executado usando a funcionalidade de Gatekeeper do macOS quando a opção "Mac App Store e Desenvolvedores identificados" estiver selecionada (veja "Sobre Gatekeeper" abaixo). -- Verifique a opção **Assinar aplicativo** para incluir a certificação no procedimento de construção do aplicativo para o OS X. O 4D verificará a disponibilidade dos elementos necessários para a certificação quando a compilação ocorrer: +- Check the **Sign application** option to include certification in the application builder procedure for macOS. 4D will check the availability of elements required for certification when the build occurs: ![](../assets/en/Admin/buildapposxcertProj.png) @@ -550,7 +554,7 @@ Para obter um certificado de desenvolvedor da Apple, Inc., você pode usar os co #### Sobre Gatekeeper -Gatekeeper é um recurso de segurança do OS X que controla a execução de aplicativos baixados da internet. Se um aplicativo baixado não vem da Apple Store ou não estiver assinado, será rejeitado e não poderá ser iniciado. +Gatekeeper is a security feature of macOS that controls the execution of applications downloaded from the Internet. Se um aplicativo baixado não vem da Apple Store ou não estiver assinado, será rejeitado e não poderá ser iniciado. > Nas máquinas do Apple Silicon, os [componentes](#components) do 4D precisam ser realmente assinados. Um componente não assinado irá gerar um erro ao iniciar o aplicativo ("lib4d-arm64.dylib não pode ser aberto..."). @@ -560,10 +564,12 @@ A aplicação Sinal opção do construtor de aplicação 4D permite que você ge A notarização de aplicação é altamente recomendada pela Apple a partir do macOS 10.14.5 (Mojave) e 10. 5 (Catalina), pois aplicativos não notariados implantados através da internet são bloqueados por padrão. -Os [recursos de assinatura integrados](#os-x-signing-certificate) do 4D foram adaptados para atender a todos os requisitos da Apple para permitir o uso do serviço de notários da Apple. A notarização em si deve ser conduzida pelo desenvolvedor e é independente da 4D (note também que ela requer a instalação do Xcode). Por favor, consulte [este post no blog 4D](https://blog.4d.com/how-to-notarize-your-merged-4d-application/) que fornece uma descrição passo a passo do processo de notarização. +The 4D [built-in signing features](#macos-signing-certificate) have been adapted to meet all of Apple's requirements to allow using the Apple notary service. A notarização em si deve ser conduzida pelo desenvolvedor e é independente da 4D (note também que ela requer a instalação do Xcode). Por favor, consulte [este post no blog 4D](https://blog.4d.com/how-to-notarize-your-merged-4d-application/) que fornece uma descrição passo a passo do processo de notarização. Para mais informações sobre o conceito de notarização, por favor consulte [esta página no site de desenvolvedores da Apple](https://developer.apple.com/documentation/xcode/notarizing_your_app_before_distribution/customizing_the_notarization_workflow). +For more information on the stapling concept, please read [this Apple forum post](https://forums.developer.apple.com/forums/thread/720093). + ## Personalizar ícones de uma aplicação 4D associa um ícone padrão com sistema autônomo, servidor e aplicativos clientes, no entanto, você pode personalizar o ícone para cada aplicativo. @@ -578,7 +584,7 @@ Seu arquivo de ícone deve ter o mesmo nome do arquivo de projeto e incluir a ex Seu arquivo de ícone deve ter o mesmo nome do arquivo de projeto e incluir a extensão _.ico_. 4D leva este arquivo automaticamente em conta ao construir um aplicativo clicável duplo. -Você também pode definir as [chaves XML](https://doc.4d.com/4Dv17R6/4D/17-R6/4D-XML-Keys-BuildApplication.100-4465602.en.html) específicas no arquivo buildApp.4DSettings para designar cada ícone a usar. Estão disponíveis as seguintes chaves: +You can also set specific [XML keys](https://doc.4d.com/4Dv20/4D/20/4D-XML-Keys-BuildApplication.100-6335734.en.html) in the buildApp.4DSettings file to designate each icon to use. Estão disponíveis as seguintes chaves: - RuntimeVLIconWinPath - RuntimeVLIconMacPath @@ -696,12 +702,12 @@ userPrefs:=Get 4D folder(Pasta 4D activa) Este mecanismo aborda o caso de o servidor principal alvo estar temporariamente indisponível por algum motivo (modo de manutenção, por exemplo). Quando este caso ocorre pela primeira vez, a caixa de diálogo de seleção do servidor é exibida (se permitido, veja abaixo) e o usuário pode selecionar manualmente um servidor alternativo, cujo caminho é então salvo se a conexão for bem-sucedida. Qualquer não-disponibilidade subsequente seria tratada automaticamente através da informação do caminho "lastServer.xml". -> - Quando aplicativos do cliente não podem se beneficiar permanentemente do serviço de descoberta, por exemplo, por causa da configuração de rede, é recomendável que o desenvolvedor forneça um nome de host no tempo de compilação usando o [IPAddress](https://doc. d.com/4Dv17R6/4D/17-R6/IPAddress.300-4465710.en.html) no arquivo "BuildApp.4DSettings". O mecanismo aborda os casos de indisponibilidade temporária. +> - When client applications cannot permanently benefit from the discovery service, for example because of the network configuration, it is recommended that the developer provide a host name at build time using the [IPAddress](https://doc.4d.com/4Dv20/4D/20/IPAddress.300-6335763.en.html) key in the "BuildApp.4DSettings" file. O mecanismo aborda os casos de indisponibilidade temporária. > - Pressionar a tecla **Alt/Option** durante a inicialização para exibir a caixa de diálogo de seleção do servidor ainda é suportada em todos os casos. ### Disponibilidade da caixa de diálogo de seleção do servidor em caso de erro -Você pode escolher se deseja ou não exibir a caixa de diálogo de seleção padrão do servidor em aplicações cliente mescladas quando o servidor não pode ser alcançado. A configuração depende do valor da chave XML [ServerSelectionAllowed](https://doc.4d.com/4Dv17R6/4D/17-R6/ServerSelectionAllowed.300-4465714.en.html) no computador em que a aplicação foi criada: +Você pode escolher se deseja ou não exibir a caixa de diálogo de seleção padrão do servidor em aplicações cliente mescladas quando o servidor não pode ser alcançado. The configuration depends on the value of the [ServerSelectionAllowed](https://doc.4d.com/4Dv20/4D/20/ServerSelectionAllowed.300-6335767.en.html) XML key on the machine where the application was built: - **exibir uma mensagem de erro sem acesso possível à caixa de diálogo de seleção do servidor**. Operação padrão. A aplicação só pode encerrar.\ `ServerSelectionAllowed`: **False** or key omitted @@ -716,9 +722,9 @@ Você pode escolher se deseja ou não exibir a caixa de diálogo de seleção pa Em princípio, atualizar aplicativos do servidor ou fundir aplicativos de único usuário requer a intervenção do usuário (ou programar sistemas personalizados rotinas): sempre que uma nova versão do aplicativo mesclado estiver disponível, você tem que sair da aplicação em produção e substituir manualmente os arquivos antigos pelos novos; então reinicie o aplicativo e selecione o arquivo de dados atual. -Você pode automatizar este procedimento em grande medida usando os seguintes comandos de idioma: [`SET UPDATE FOLDER`](https://doc.4d.com/4dv19/help/command/en/page1291.html), [`RESTART 4D`](https://doc. d.com/4dv19/help/command/en/page1292.html), e também [`Obter última atualização log path`](https://doc.4d.com/4dv19/help/command/en/page1301.html) para operações de monitoramento. A ideia é implementar uma função em seu aplicativo 4D ativando a sequência de atualização automática descrita abaixo. Pode ser um comando de menu ou um processo sendo executado em segundo plano e verificando, em intervalos regulares, a presença de um arquivo em um servidor. +You can automate this procedure to a large extent using the following language commands: [`SET UPDATE FOLDER`](../commands-legacy/set-update-folder.md), [`RESTART 4D`](../commands-legacy/restart-4d.md), and also [`Get last update log path`](../commands-legacy/get-last-update-log-path.md) for monitoring operations. A ideia é implementar uma função em seu aplicativo 4D ativando a sequência de atualização automática descrita abaixo. Pode ser um comando de menu ou um processo sendo executado em segundo plano e verificando, em intervalos regulares, a presença de um arquivo em um servidor. -> Você também tem chaves XML para elevar os privilégios de instalação para que você possa usar arquivos protegidos no Windows (consulte o manual [4D Keys BuildApplication](https://doc.4d.com/4Dv19/4D/19/4D-XML-Keys-BuildApplication.100-5447429.en.html)). +> You also have XML keys to elevate installation privileges so that you can use protected files under Windows (see the [4D XML Keys BuildApplication](https://doc.4d.com/4Dv20/4D/20/4D-XML-Keys-BuildApplication.100-6335734.en.html) manual). Este é o cenário para atualizar um servidor ou aplicação mesclada usuário único: @@ -734,4 +740,4 @@ O procedimento de instalação produz um arquivo de log detalhando as operaçõe O log de atualização é chamado `YYYY-MM-DD_HH-MM-SS_log_X.txt`, por exemplo, `2021-08-25_14-23-00_log_1.txt` para um arquivo criado em 25 de agosto de 2021 às 14:23. -Este arquivo é criado na pasta de aplicativos "Atualizadores", dentro da pasta de usuário do sistema. Você pode descobrir a localização deste arquivo a qualquer momento usando o comando [`Obter último caminho de log de atualização`](https://doc.4d.com/4dv19/help/command/en/page1301.html). +Este arquivo é criado na pasta de aplicativos "Atualizadores", dentro da pasta de usuário do sistema. You can find out the location of this file at any time using the [`Get last update log path`](../commands-legacy/get-last-update-log-path.md) command. diff --git a/i18n/pt/docusaurus-plugin-content-docs/current/Extensions/develop-plug-ins.md b/i18n/pt/docusaurus-plugin-content-docs/current/Extensions/develop-plug-ins.md index 18694f844a4f16..92e280d4228570 100644 --- a/i18n/pt/docusaurus-plugin-content-docs/current/Extensions/develop-plug-ins.md +++ b/i18n/pt/docusaurus-plugin-content-docs/current/Extensions/develop-plug-ins.md @@ -5,11 +5,11 @@ title: Plug-ins de desenvolvimento ## Porquê a necessidade de um plug-in? -Although 4D provides hundred of built-in methods used to manipulate objects, records and implement user interface, some special use or feature (sometimes platform dependant) may be needed: one may need ODBC under Windows, another may need Apple services under macOS, while yet another may want to implement specific statistics tools, social network login, payment platform, file access over the network, a special user interface, or a private picture structure. +Embora 4D ofereça centenas de métodos integrados, para manipular objetos, registros e implementar a interface do usuário, pode ser necessário algum uso ou recurso especial (às vezes dependente da plataforma): alguém pode precisar de ODBC no Windows, ou pode precisar de serviços da Apple no macOS, enquanto outro ainda pode querer implementar ferramentas estatísticas específicas, login em redes sociais, plataforma de pagamento, acesso a arquivos pela rede, uma interface de usuário especial ou uma estrutura de imagem privada. It is obvious that covering all areas of both the macOS and Windows operating systems by way of 4D commands would certainly lead to a product with thousands of commands, and at the same time, most users would have no need for such a large set of capabilities. Also, creating such an all-encompassing tool would make the 4D environment incredibly complex and would take most users months of study before useful results could be expected. -The modular nature of the 4D environment allows the creation of basic applications but does not preclude the development of highly complex systems. The 4D Plug-in architecture opens the 4D environment to any type of application or user. Os 4D Plug-ins multiplicam o poder e a produtividade da aplicação ou do usuário. +A natureza modular do ambiente 4D permite a criação de aplicativos básicos, mas não impede o desenvolvimento de sistemas altamente complexos. A arquitetura 4D Plug-in abre o ambiente 4D para qualquer tipo de aplicação ou usuário. Os 4D Plug-ins multiplicam o poder e a produtividade da aplicação ou do usuário. ## Por que a necessidade de um plug-in? diff --git a/i18n/pt/docusaurus-plugin-content-docs/current/FormEditor/formEditor.md b/i18n/pt/docusaurus-plugin-content-docs/current/FormEditor/formEditor.md index 9d79db9a2ad046..8cfaf2e7ec412c 100644 --- a/i18n/pt/docusaurus-plugin-content-docs/current/FormEditor/formEditor.md +++ b/i18n/pt/docusaurus-plugin-content-docs/current/FormEditor/formEditor.md @@ -62,7 +62,7 @@ A barra de ferramentas contém os seguintes elementos: | ![](../assets/en/FormEditor/zoom.png) | [Zoom](#zoom) | Permite modificar a percentagem de visualização do formulário (100% por padrão). You can switch to “Zoom” mode by clicking on the magnifying glass or by clicking directly on the desired bar. Esta função é descrita em pormenor na secção anterior. | | ![](../assets/en/FormEditor/alignment.png) | [Alinhamento](#alinhamento-objetos) | This button is linked to a menu that allows changing the level of objects in the form. It is enabled (or not) depending on the objects selected.
    Disabled if one selected object position is locked by a CSS property | | ![](../assets/en/FormEditor/distribution.png) | [Distribuição](#distributing-objects) | Este botão está ligado a um menu que permite agrupar e desagrupar seleções de objetos no formulário. It is enabled (or not) depending on the objects selected.
    Disabled if one selected object position is locked by a CSS property | -| ![](../assets/en/FormEditor/level.png) | [Level](#layering-objects) | This button is linked to a menu that allows aligning objects in the form. É ativada (ou não) em função dos objetos selecionados. | +| ![](../assets/en/FormEditor/level.png) | [Level](#layering-objects) | This button is linked to a menu that allows changing the level of objects in the form. É ativada (ou não) em função dos objetos selecionados. | | ![](../assets/en/FormEditor/group.png) | [Group/Ungroup](#grouping-objects) | Este botão está ligado a um menu que permite agrupar e desagrupar seleções de objetos no formulário. É ativada (ou não) em função dos objetos selecionados. | | ![](../assets/en/FormEditor/displyAndPage.png) | [Display and page management](forms.html#form-pages) | Esta área permite passar de uma página de formulário para outra e adicionar páginas. Para navegar entre páginas de formulários, clique nos botões de seta, ou clique na área central e escolha a página a exibir a partir do menu que aparece. Se clicar no botão da seta para a direita enquanto é exibida a última página do formulário, 4D permite-lhe adicionar uma página. | | ![](../assets/en/FormEditor/cssPreviewicon.png) | [CSS Preview](#css-preview) | Este botão é utilizado para seleccionar o Modo CSS a utilizar. | @@ -70,7 +70,7 @@ A barra de ferramentas contém os seguintes elementos: | ![](../assets/en/FormEditor/shields2.png) | [Displaying shields](#shields) | Each click on this button causes the successive display of each type of form shield. The button is also linked to a menu that allows directly selecting the type of shield to display. | | ![](../assets/en/FormEditor/library.png) | [Preconfigured object library](objectLibrary.html) | This button displays the preconfigured object library that provides numerous objects with certain properties that have been predefined. | | ![](../assets/en/FormEditor/listBoxBuilder1.png) | [List Box Builder](#list-box-builder) | Este botão cria list boxes entity selection. | -| ![](../assets/en/FormEditor/insertFields.png) | [Insert fields](#insert-fields) | This button inserts all fields (except object and blob type fields) of the form table in the form, along with their labels and with respect to interface standards. | +| ![](../assets/en/FormEditor/insertFields.png) | [Insert fields](#insert-fields) | Esse botão insere todos os campos (exceto os campos do tipo objeto e bolha) da tabela do formulário no formulário, juntamente com seus rótulos e de acordo com os padrões de interface. | ### Barra de objetos @@ -90,7 +90,7 @@ The object bar contains all the active and inactive objects that can be used in | ![](../assets/en/FormEditor/splitter.png) | [Splitter](FormObjects/splitters.md) / [Controle de guia](FormObjects/tabControl.md) | D | | ![](../assets/en/FormEditor/plugin.png) | [Plug-in Area](FormObjects/pluginArea_overview.md) / [Subform](FormObjects/subform_overview.md) / [Web Area](FormObjects/webArea_overview.md) / [4D Write Pro](FormObjects/writeProArea_overview.md) / [4D View Pro](FormObjects/viewProArea_overview.md) | X | -To draw an object type, select the corresponding button and then trace the object in the form. Após criar um objeto, você pode modificar seu tipo utilizando a Lista de Propriedades. Mantenha pressionada a tecla **Shift** ao desenhar para restringir o objeto a uma forma regular. Lines are constrained to horizontal, 45°, or vertical, rectangles are constrained to squares, and ovals are constrained to circles. +To draw an object type, select the corresponding button and then trace the object in the form. Após criar um objeto, você pode modificar seu tipo utilizando a Lista de Propriedades. To draw an object type, select the corresponding button and then trace the object in the form. Lines are constrained to horizontal, 45°, or vertical, rectangles are constrained to squares, and ovals are constrained to circles. The current variant of the theme is the object that will be inserted in the form. Ao clicar no lado direito de um botão, você acessa o menu de variantes: @@ -136,7 +136,7 @@ Once the object is placed in the form, you can modify its characteristics using É possível trabalhar com dois tipos de objetos nos formulários: -- **Objetos estáticos** (linhas, quadros, imagens de fundo, etc.): Esses objetos são geralmente usados para definir a aparência do formulário e de seus rótulos, bem como para a interface gráfica. Estão disponíveis na barra de objetos do editor de formulários. Você também pode definir seus atributos gráficos (tamanho, cor, fonte, etc.) e suas propriedades de redimensionamento usando a Lista de propriedades. Os objetos estáticos não têm variáveis associadas como os objetos ativos. No entanto, é possível inserir objetos dinâmicos em objetos estáticos. +- **Objetos estáticos** (linhas, quadros, imagens de fundo, etc.): Esses objetos são geralmente usados para definir a aparência do formulário e de seus rótulos, bem como para a interface gráfica. Estão disponíveis na barra de objetos do editor de formulários. Estão disponíveis na barra de objetos do editor de formulários. Estão disponíveis na barra de objetos do editor de formulários. Os objetos estáticos não têm variáveis associadas como os objetos ativos. No entanto, é possível inserir objetos dinâmicos em objetos estáticos. - **Objetos ativos**: Esses objetos executam tarefas ou funções na interface e podem assumir várias formas: campos, botões, listas roláveis, etc. Cada objeto ativo é associado com um campo ou uma variável. @@ -144,11 +144,11 @@ Once the object is placed in the form, you can modify its characteristics using Before you can perform any operation on an object (such as changing a line width or font), you need to select the object that you want to modify. -Para seleccionar um objecto utilizando a barra de ferramentas: +To select an object using the toolbar: 1. Clique na ferramenta Seta na barra de ferramentas

    ![](../assets/en/FormEditor/selection.png)

    -

    Click the Arrow tool in the toolbar. When you move the pointer into the form area, it becomes a standard arrow-shaped pointer.

    . +

    Quando você move o ponteiro para a área do formulário, ele se torna um ponteiro padrão em forma de seta

    . 2. Clique no objecto que deseja selecionar. As alças de redimensionamento identificam o objeto selecionado

    ![](../assets/en/FormEditor/selectResize.png)

    @@ -157,7 +157,7 @@ Para selecionar um objecto utilizando a Lista de Propriedades: 1. Escolher o nome do objecto na lista pendente da Lista de Objectos localizada no topo da Lista de Propriedades. Usando estes dois métodos, pode seleccionar um objecto que esteja escondido por outros objectos ou localizado fora da área visível da janela actual. Para cancelar a seleção de um objeto, clique fora do limite do objeto ou **Shift+clique** no objeto. -> \> > It is also possible to select objects by double-clicking them in the result window of ""Find in design" operation. +> \> > > It is also possible to select objects by double-clicking them in the result window of ""Find in design" operation. ### Selecção de múltiplos objectos @@ -196,7 +196,7 @@ A caixa de diálogo "Duplicate Many" é exibida quando você seleciona um ou mai ![](../assets/en/FormEditor/duplcateMany.png) -- Na área superior, introduza o número de colunas e linhas (linhas) de objectos que pretende obter. Por exemplo, se quiser três colunas e duas linhas de objectos, introduza 3 na área de Coluna(s) e 2 na área de Linha(s). Se quiser três novas cópias horizontais de um objecto, introduza 4 na área de Coluna(s) e deixe o valor por defeito, 1, na área de Linha(s). +- Na área superior, introduza o número de colunas e linhas (linhas) de objectos que pretende obter. Por exemplo, se quiser três colunas e duas linhas de objectos, introduza 3 na área de Coluna(s) e 2 na área de Linha(s). Na área superior, introduza o número de colunas e linhas (linhas) de objectos que pretende obter. - Para linhas e colunas, defina o offset que deseja deixar entre cada cópia. O valor deve ser expresso em pontos. It will be applied to each copy, or copies, in relation to the original object. For example, if you want to leave a vertical offset of 20 points between each object and the height of the source object is 50 points, enter 70 in the column’s “Offset” area. @@ -277,7 +277,7 @@ Para exibir essa caixa de diálogo, selecione os objetos que deseja alinhar e es - Nas áreas "Alinhamento Esquerda/Direita" e/ou "Alinhamento Superior/Inferior", clique no ícone que corresponde ao alinhamento que você deseja executar.

    A área de exemplo exibe os resultados da sua seleção.

    -- Para executar um alinhamento que use o esquema de âncora padrão, clique em **Preview** ou **Apply**. In this case 4D uses the object that is the furthest in the alignment’s direction as the anchor and aligns the other objects to that object. Por exemplo, se quiser realizar um alinhamento correcto num conjunto de objectos, o objecto mais à direita será utilizado como âncora. OU:

    Para alinhar objetos a um objeto específico, selecione a opção **Alinhar em** e selecione o objeto ao qual você deseja que os outros objetos sejam alinhados na lista de objetos. In this case, the position of the reference object will not be altered.

    +- Para executar um alinhamento que use o esquema de âncora padrão, clique em **Preview** ou **Apply**. Nesse caso, 4D usa o objeto que está mais distante na direção do alinhamento como âncora e alinha os outros objetos a esse objeto. Por exemplo, se quiser realizar um alinhamento correcto num conjunto de objectos, o objecto mais à direita será utilizado como âncora. OU:

    Para alinhar objetos a um objeto específico, selecione a opção **Alinhar em** e selecione o objeto ao qual você deseja que os outros objetos sejam alinhados na lista de objetos. In this case, the position of the reference object will not be altered.

    Você pode visualizar os resultados do alinhamento clicando no botão **Preview**. Os objetos são então alinhados no editor de formulários, mas como a caixa de diálogo não desaparece, ainda é possível cancelar ou aplicar o alinhamento. @@ -314,7 +314,7 @@ Para distribuir objetos com igual espaçamento: 1. Selecione três ou mais objetos e clique na ferramenta Distribuir pretendida. -2. Na barra de ferramentas, clique na ferramenta de distribuição que corresponde à distribuição que você deseja aplicar.

    ![](../assets/en/FormEditor/distributionTool. ng)

    OU

    Selecione um comando de menu de distribuição no submenu **Alinhar** no menu **Objeto** ou no menu de contexto do editor.

    4D distribui os objetos apropriadamente. Objects are distributed using the distance to their centers and the largest distance between two consecutive objects is used as a reference. +2. Na barra de ferramentas, clique na ferramenta de distribuição que corresponde à distribuição que você deseja aplicar.

    ![](../assets/en/FormEditor/distributionTool.png)

    OU

    Selecione um comando de menu de distribuição no submenu **Alinhar** no menu **Objeto** ou no menu de contexto do editor.

    4D distribui os objetos apropriadamente. Objects are distributed using the distance to their centers and the largest distance between two consecutive objects is used as a reference. Para distribuir objetos utilizando a caixa de diálogo Alinhar e distribuir: @@ -322,7 +322,7 @@ Para distribuir objetos utilizando a caixa de diálogo Alinhar e distribuir: 2. Seleccione el comando **Alineación** del submenú **Alinear** del menú **Objeto** o del menú contextual del editor. A seguinte caixa de diálogo é exibida:![](../assets/en/FormEditor/alignmentAssistant.png) -3. Nas áreas de Alinhamento Esquerdo/Direita e/ou Topo/Bottom Alinhamento, clique no ícone de distribuição padrão: ![](../assets/en/FormEditor/horizontalDistribution. ng)

    (ícone padrão de distribuição horizontal)

    A área de exemplo exibe os resultados da sua seleção. +3. Nas áreas de Alinhamento Esquerdo/Direita e/ou Topo/Bottom Alinhamento, clique no ícone de distribuição padrão: ![](../assets/en/FormEditor/horizontalDistribution.png)

    (ícone padrão de distribuição horizontal)

    A área de exemplo exibe os resultados da sua seleção. 4. Para executar uma distribuição que use o esquema padrão, clique em **Preview** ou _Apply_.

    Nesse caso, o 4D executará uma distribuição padrão, de modo que os objetos sejam dispostos com uma quantidade igual de espaço entre eles

    . OU:

    Para executar uma distribuição específica, selecione a opção **Distribute** (por exemplo, se quiser distribuir os objetos com base na distância até o lado direito). Esta opção funciona como um interruptor. If the Distribute check box is selected, the icons located below it perform a different function:

    @@ -335,7 +335,7 @@ Você pode visualizar o resultado real de suas configurações clicando no botã ### Gerenciar os planos dos objetos -You will sometimes have to rearrange objects that are obstructing your view of other objects in the form. For example, you may have a graphic that you want to appear behind the fields in a form. O 4D oferece quatro itens de menu, **Mover para trás**, **Mover para frente**, **Subir um nível** e **Descer um nível**, que permitem que você coloque objetos em camadas no formulário. These layers also determine the default entry order (see Modifying data entry order). A figura abaixo mostra objetos à frente e atrás de outros objetos: +You will sometimes have to rearrange objects that are obstructing your view of other objects in the form. For example, you may have a graphic that you want to appear behind the fields in a form. You will sometimes have to rearrange objects that are obstructing your view of other objects in the form. These layers also determine the default entry order (see Modifying data entry order). A figura abaixo mostra objetos à frente e atrás de outros objetos: ![](../assets/en/FormEditor/layering.png) @@ -375,13 +375,13 @@ In cases such as this, a custom data entry order allows you to enter the informa You can view the current entry order either using the “Entry order” shields, or by using the “Entry order” mode. No entanto, você só pode modificar a ordem de entrada usando o modo “Ordem de entrada”. -This paragraph describes viewing and modifying the entry order using the “Entry order” mode. Para obter mais informações sobre como visualizar a ordem de entrada usando escudos, consulte [Using shields](#using-shields). +This paragraph describes viewing and modifying the entry order using the “Entry order” mode. You can view the current entry order either using the “Entry order” shields, or by using the “Entry order” mode. Para ver ou alterar a ordem de entrada: 1. Selecione **Pedido de entrada** no menu **Formulário** ou clique no botão na barra de ferramentas da janela:

    ![](../assets/en/FormEditor/zOrder.png)

    - Choose Entry Order from the Form menu or click on the Entry Order button in the toolbar of the window:The pointer turns into an entry order pointer and 4D draws a line in the form showing the order in which it selects objects during data entry. A visualização e alteração da ordem de introdução de dados são as únicas acções que pode realizar até clicar em qualquer ferramenta na paleta Ferramentas. + O ponteiro se transforma em um ponteiro de ordem de entrada e 4D desenha uma linha na forma mostrando a ordem em que ele seleciona objetos durante a entrada de dados. A visualização e alteração da ordem de introdução de dados são as únicas acções que pode realizar até clicar em qualquer ferramenta na paleta Ferramentas. 2. Para mudar a ordem de entrada de dados, posicione o ponteiro em um objeto no formulário e, enquanto mantém pressionado o botão do mouse, arraste o ponteiro para o objeto que deseja na ordem de entrada de dados.4D ajustará a ordem de entrada de acordo. 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 f35c506b742df1..8f612b74c41059 100644 --- a/i18n/pt/docusaurus-plugin-content-docs/current/FormEditor/forms.md +++ b/i18n/pt/docusaurus-plugin-content-docs/current/FormEditor/forms.md @@ -18,7 +18,7 @@ Os formulários também podem conter outros formulários através das seguintes - **Interface de Desenvolvedor 4D:** Crie novos formulários a partir do menu **Arquivo** ou da janela **Explorador**. - **Form Editor**: Modifique seus formulários usando o **[Form Editor] (FormEditor/formEditor.md)**. -- **Código JSON:** Crie e projete seus formulários usando JSON e salve os arquivos de formulário no [local apropriado] (Project/architecture.md#sources-folder). Exemplo: +- **Código JSON:** crie e projete seus formulários usando JSON e salve os arquivos de formulário no [local apropriado](Project/architecture.md#sources-folder). Exemplo: ``` { @@ -111,7 +111,7 @@ Quando um formulário é executado, os objetos são carregados e combinados na s 3. Página zero do formulário aberto 4. Página actual do formulário aberto. -Essa ordem determina a [ordem de entrada] padrão (../FormEditor/formEditor.html#data-entry-order) dos objetos no formulário. +Essa ordem determina a [ordem de entrada](../FormEditor/formEditor.html#data-entry-order) padrão dos objetos no formulário. > Apenas as páginas 0 e 1 de um formulário herdado podem aparecer noutros formulários. @@ -121,7 +121,7 @@ Para definir um formulário herdado, as propriedades [Inherited Form Name](prope Um formulário pode herdar de um formulário de projeto, definindo a propriedade [Inherited Form Table] (properties_FormProperties.md#inherited-form-table) como `\` na Property List (ou " " em JSON). -Para interromper a herança de um formulário, selecione `\` na Property List (ou " " em JSON) para a propriedade [Inherited Form Name] (properties_FormProperties.md#inherited-form-name). +Para interromper a herança de um formulário, selecione `\` na Property List (ou " " em JSON) para a propriedade [Inherited Form Name](properties_FormProperties.md#inherited-form-name). > É possível definir um formulário herdado em um formulário que eventualmente será usado como um formulário herdado para um terceiro formulário. A combinação de objetos é feita de forma recursiva. 4D detecta loops recursivos (por exemplo, se o formulário [table1]form1 é definido como o formulário herdado de [table1]form1, ou seja, ele mesmo) e interrompe a cadeia de formulários. diff --git a/i18n/pt/docusaurus-plugin-content-docs/current/FormEditor/pictures.md b/i18n/pt/docusaurus-plugin-content-docs/current/FormEditor/pictures.md index 45ddf8c9253460..00464df1778dd2 100644 --- a/i18n/pt/docusaurus-plugin-content-docs/current/FormEditor/pictures.md +++ b/i18n/pt/docusaurus-plugin-content-docs/current/FormEditor/pictures.md @@ -49,7 +49,7 @@ As imagens de alta resolução com a convenção @nx podem ser utilizadas nos se - [Cabeçalhos List box](FormObjects/listbox_overview.md#list-box-headers) - [Ícones de menu](Menus/properties.md#item-icon) -4D dá automaticamente prioridade às imagens com a resolução mais alta. Por exemplo, ao usar duas telas (uma de alta resolução e outra padrão) e mover um formulário de uma tela para outra, 4D renderiza automaticamente a resolução mais alta possível da imagem. Mesmo que um comando ou propriedade especifique _circle.png_, _circle@3x.png_ será usado (se existir). +4D dá automaticamente prioridade às imagens com a resolução mais alta. 4D dá automaticamente prioridade às imagens com a resolução mais alta. Mesmo que um comando ou propriedade especifique _circle.png_, _circle@3x.png_ será usado (se existir). > Note que a priorização da resolução ocorre apenas para a apresentação de imagens no ecrã, não havendo priorização automática durante a impressão. diff --git a/i18n/pt/docusaurus-plugin-content-docs/current/FormEditor/properties_FormSize.md b/i18n/pt/docusaurus-plugin-content-docs/current/FormEditor/properties_FormSize.md index 8a69ad5cf1f2ee..0a36bc5d6fb84f 100644 --- a/i18n/pt/docusaurus-plugin-content-docs/current/FormEditor/properties_FormSize.md +++ b/i18n/pt/docusaurus-plugin-content-docs/current/FormEditor/properties_FormSize.md @@ -41,7 +41,7 @@ Altura del formulario (en píxeles) cuando el [tamaño del formulario](#size-bas --- -## Margem hor. +## Margem Margem hor. Valor a añadir (en píxeles) al margen inferior del formulario cuando el [tamaño del formulario](#size-based-on) está definido en **Tamaño automático** o `\` @@ -55,7 +55,7 @@ This value also determines the right-hand margins of forms used in the Label edi --- -## Margem hor. +## Margem Margem hor. Valor a añadir (en píxeles) al margen inferior del formulario cuando el [tamaño del formulario](#size-based-on) está definido en **Tamaño automático** o `\`. diff --git a/i18n/pt/docusaurus-plugin-content-docs/current/FormObjects/button_overview.md b/i18n/pt/docusaurus-plugin-content-docs/current/FormObjects/button_overview.md index 97d407b520dfc0..8db387909cc54d 100644 --- a/i18n/pt/docusaurus-plugin-content-docs/current/FormObjects/button_overview.md +++ b/i18n/pt/docusaurus-plugin-content-docs/current/FormObjects/button_overview.md @@ -86,7 +86,7 @@ Somente os estilos Clássico e Plano oferecem a propriedade [Botão padrão](pro ### Barra de ferramentas -The Toolbar button style is primarily intended for integration in a toolbar. It includes the option to add a pop-up menu (indicated by an inverted triangle) which is generally used to display additional choices for the user to select. +The Toolbar button style is primarily intended for integration in a toolbar. Inclui a opção de adicionar um menu pop-up (indicado por um triângulo invertido), sendo geralmente usado para exibir opções adicionais para o usuário selecionar. By default, the Toolbar style has a transparent background with a label in the center. A aparência do botão pode ser diferente quando o cursor passar por cima dele, dependendo do SO: @@ -281,7 +281,7 @@ O estilo de botão Círculo aparece como um botão sistema redondo. Este estilo ![](../assets/en/FormObjects/button_circleM.png) -On Windows, it is identical to the “None” style (the circle in the background is not taken into account). +No Windows, ele é idêntico ao estilo "Nenhum" (o círculo no plano de fundo não é considerado). #### JSON Exemplo diff --git a/i18n/pt/docusaurus-plugin-content-docs/current/FormObjects/checkbox_overview.md b/i18n/pt/docusaurus-plugin-content-docs/current/FormObjects/checkbox_overview.md index e00f1d20435f1f..db52c872c767dd 100644 --- a/i18n/pt/docusaurus-plugin-content-docs/current/FormObjects/checkbox_overview.md +++ b/i18n/pt/docusaurus-plugin-content-docs/current/FormObjects/checkbox_overview.md @@ -32,7 +32,7 @@ Essa propriedade só está disponível para caixas de seleção clássicas e pla A variável associada à caixa de seleção devolve o valor 2 quando a caixa estiver no terceiro estado. -> In entry mode, the Three-States check boxes display each state sequentially, in the following order: unchecked / checked / intermediary / unchecked, etc. No modo de entrada, as caixas de seleção dos três estados mostram cada estado de forma sequencial na ordem abaixo: sem marcar/marcado/intermediário/sem marcar, etc. O estado intermediário não é geralmente muito útil no modo entrada; no código, simplesmente force o valor da variável para 0 quando tomar o valor de 2 para passar diretamente de um estado marcado para o estado desmarcado. +> In entry mode, the Three-States check boxes display each state sequentially, in the following order: unchecked / checked / intermediary / unchecked, etc. No modo de entrada, as caixas de seleção dos três estados mostram cada estado de forma sequencial na ordem abaixo: sem marcar/marcado/intermediário/sem marcar, etc. O estado intermediário não é geralmente muito útil no modo entrada; no código, simplesmente force o valor da variável para 0 quando tomar o valor de 2 para passar diretamente de um estado marcado para o estado desmarcado. No modo de entrada, as caixas de seleção dos três estados mostram cada estado de forma sequencial na ordem abaixo: sem marcar/marcado/intermediário/sem marcar, etc. O estado intermediário não é geralmente muito útil no modo entrada; no código, simplesmente force o valor da variável para 0 quando tomar o valor de 2 para passar diretamente de um estado marcado para o estado desmarcado. ## Usar uma ação padrão diff --git a/i18n/pt/docusaurus-plugin-content-docs/current/FormObjects/properties_Object.md b/i18n/pt/docusaurus-plugin-content-docs/current/FormObjects/properties_Object.md index 35749cdc61364e..27f1058792d3c5 100644 --- a/i18n/pt/docusaurus-plugin-content-docs/current/FormObjects/properties_Object.md +++ b/i18n/pt/docusaurus-plugin-content-docs/current/FormObjects/properties_Object.md @@ -92,7 +92,7 @@ Variables or expressions can be enterable or non-enterable and can receive data ### Expressões -You can use an [expression](Concepts/quick-tour.md#expressions) as data source for an object. Se permite toda expresión 4D válida: expresión simple, propiedad de objeto, fórmula, función 4D, nombre de método proyecto o campo que utilice la sintaxis estándar `[Table]Field`. The expression is evaluated when the form is executed and reevaluated for each form event. Tenga en cuenta que las expresiones pueden ser [asignables o no asignables](Concepts/quick-tour.md#expressions). +You can use an [expression](Concepts/quick-tour.md#expressions) as data source for an object. Se permite toda expresión 4D válida: expresión simple, propiedad de objeto, fórmula, función 4D, nombre de método proyecto o campo que utilice la sintaxis estándar `[Table]Field`. The expression is evaluated when the form is executed and reevaluated for each form event. The expression is evaluated when the form is executed and reevaluated for each form event. > If the value entered corresponds to both a variable name and a method name, 4D considers that you are indicating the method. @@ -148,7 +148,7 @@ No entanto, essa propriedade tem uma função de digitação nos seguintes casos - **[Variables dinámicas](#dynamic-variables)**: puede utilizar esta propiedad para declarar el tipo de variables dinámicas. - **[Columnas List Box ](listbox_overview.md#list-box-columns)**: esta propiedad se utiliza para asociar un formato de visualización a los datos de la columna. The formats provided will depend on the variable type (array type list box) or the data/field type (selection and collection type list boxes). The standard 4D formats that can be used are: Alpha, Numeric, Date, Time, Picture and Boolean. O tipo de texto não tem formatos de visualização específicos. Também estão disponíveis quaisquer formatos personalizados existentes. -- **[Variables imagen](input_overview.md)**: puede utilizar este menú para declarar las variables antes de cargar el formulario en modo interpretado. Specific native mechanisms govern the display of picture variables in forms. Estos mecanismos exigen una mayor precisión a la hora de configurar las variables: a partir de ahora, deberán haber sido declaradas antes de cargar el formulario -es decir, incluso antes del evento de formulario `On Load` - a diferencia de otros tipos de To do this, you need either for the statement `var varName : Picture` to have been executed before loading the form (typically, in the method calling the `DIALOG` command), or for the variable to have been typed at the form level using the expression type property. +- **[Variables imagen](input_overview.md)**: puede utilizar este menú para declarar las variables antes de cargar el formulario en modo interpretado. Specific native mechanisms govern the display of picture variables in forms. Estos mecanismos exigen una mayor precisión a la hora de configurar las variables: a partir de ahora, deberán haber sido declaradas antes de cargar el formulario -es decir, incluso antes del evento de formulario `On Load` - a diferencia de otros tipos de Estos mecanismos exigen una mayor precisión a la hora de configurar las variables: a partir de ahora, deberán haber sido declaradas antes de cargar el formulario -es decir, incluso antes del evento de formulario `On Load` - a diferencia de otros tipos de To do this, you need either for the statement `var varName : Picture` to have been executed before loading the form (typically, in the method calling the `DIALOG` command), or for the variable to have been typed at the form level using the expression type property. Otherwise, the picture variable will not be displayed correctly (only in interpreted mode). #### Gramática JSON diff --git a/i18n/pt/docusaurus-plugin-content-docs/current/FormObjects/properties_Subform.md b/i18n/pt/docusaurus-plugin-content-docs/current/FormObjects/properties_Subform.md index 4a961283aa8857..05d56a92eb0d5c 100644 --- a/i18n/pt/docusaurus-plugin-content-docs/current/FormObjects/properties_Subform.md +++ b/i18n/pt/docusaurus-plugin-content-docs/current/FormObjects/properties_Subform.md @@ -26,6 +26,7 @@ Especifica se o utilizador pode eliminar sub-registos num subformulário lista. Esta propriedade é utilizada para declarar o formulário detalhado a utilizar no subformulário. Pode ser: - um widget, ou seja, um subformulário de tipo página, dotado de funções específicas. In this case, the [list subform](#list-form) and [Source](#source) properties must be empty or not present.\ + You can select a component form name when it is published in the component.\ You can select a component form name when it is published in the component. > Para ello, basta con hacer dos clics en el campo a modificar para que pase al modo edición (asegúrese de dejar suficiente tiempo entre los dos clics para no generar un doble clic). diff --git a/i18n/pt/docusaurus-plugin-content-docs/current/FormObjects/webArea_overview.md b/i18n/pt/docusaurus-plugin-content-docs/current/FormObjects/webArea_overview.md index 0bd00e9bfc6170..42aa7d27729ebc 100644 --- a/i18n/pt/docusaurus-plugin-content-docs/current/FormObjects/webArea_overview.md +++ b/i18n/pt/docusaurus-plugin-content-docs/current/FormObjects/webArea_overview.md @@ -131,7 +131,7 @@ $4d.calcSum(33, 45, 75, 102.5, 7, function(theSum) ## Ações padrão -Four specific standard actions are available for managing web areas automatically: `Open Back URL`, `Open Forward URL`, `Refresh Current URL` and `Stop Loading URL`. Essas ações podem ser associadas com botões ou comandos de menu e permite implementação rápida de interfaces web básicas. These actions are described in [Standard actions](https://doc.4d.com/4Dv20/4D/20.2/Standard-actions.300-6750239.en.html). +Four specific standard actions are available for managing web areas automatically: `Open Back URL`, `Open Forward URL`, `Refresh Current URL` and `Stop Loading URL`. Essas ações podem ser associadas com botões ou comandos de menu e permite implementação rápida de interfaces web básicas. Essas ações podem ser associadas com botões ou comandos de menu e permite implementação rápida de interfaces web básicas. ## Eventos formulário diff --git a/i18n/pt/docusaurus-plugin-content-docs/current/Notes/updates.md b/i18n/pt/docusaurus-plugin-content-docs/current/Notes/updates.md index 20b47e671c7e18..6ae17f56507694 100644 --- a/i18n/pt/docusaurus-plugin-content-docs/current/Notes/updates.md +++ b/i18n/pt/docusaurus-plugin-content-docs/current/Notes/updates.md @@ -9,13 +9,19 @@ Read [**What’s new in 4D 20 R8**](https://blog.4d.com/en-whats-new-in-4d-v20-R #### Destaques +- Implement your own [**HTTP request handlers**](../WebServer/http-request-handler.md) using the new [`4D.IncomingMessage`](../API/IncomingMessageClass.md) class. - Expressions used in [form object properties](../FormObjects/properties_Reference.md) now benefit from syntax checking in the [Property list](../FormEditor/formEditor.md#property-list) and in the [Compiler](../Project/compiler.md#check-syntax). - You can [associate a class to a form](../FormEditor/properties_FormProperties.md#form-class) to enable code type-ahead and automatic instantiation of form data when using the [`Form`](../commands/form.md) command. - Support of [standalone sessions](../API/SessionClass.md) to simplify local coding for client/server applications. +- [New built component architecture](../Desktop/building.md#build-component) for a better compliance with Apple notarization guidelines. - 4D Language: - Modified commands: [`FORM EDIT`](../commands/form-edit.md) - [**Fixed bug list**](https://bugs.4d.fr/fixedbugslist?version=20_R8): list of all bugs that have been fixed in 4D 20 R8. +#### Mudanças de comportamento + +- Because of their [new architecture](../Desktop/building.md#build-component), components built with 4D 20 R8 and higher cannot be installed in previous 4D releases. + ## 4D 20 R7 Leia [**O que há de novo no 4D 20 R7**](https://blog.4d.com/en-whats-new-in-4d-v20-R7/), o post do blog que lista todos os novos recursos e aprimoramentos em 4D 20 R7. @@ -181,7 +187,7 @@ See [**Release Notes for 4D 20.x LTS**](../../versioned_docs/version-20/Notes/up | Biblioteca | Versão atual | Atualizado em 4D | Comentário | | ---------- | -------------------------------------- | ---------------- | ----------------------------------------------------------------------------------------------------------------------------------------- | | BoringSSL | 0aa300b | 20 R6 | Usado para QUIC | -| CEF | 128 | **20 R7** | Chromium 6613 | +| CEF | 121 | 20 R5 | Chromium 6167 | | Hunspell | 7.3.27 | 20 | Usado para verificação ortográfica em formulários 4D e 4D Write Pro | | ICU | 73.2 | 20 | Essa grande atualização força uma reconstrução automática dos índices alfanuméricos, de texto e de objetos. | | libldap | 2.6.7 | 20 R6 | | diff --git a/i18n/pt/docusaurus-plugin-content-docs/current/Project/architecture.md b/i18n/pt/docusaurus-plugin-content-docs/current/Project/architecture.md index 891b5c5011f1c9..84a4a69c74ce89 100644 --- a/i18n/pt/docusaurus-plugin-content-docs/current/Project/architecture.md +++ b/i18n/pt/docusaurus-plugin-content-docs/current/Project/architecture.md @@ -63,6 +63,7 @@ This text file can also contain configuration keys, in particular [`"tokenizedTe | lists.json | Listas definidas | JSON | | filters.json | Filtros definidos | JSON | | dependencies.json | Names of [components to load](components.md) in the project | JSON | +| HTTPHandlers.json | Custom [HTTP request handlers](../WebServer/http-request-handler.md) defined for the web server | JSON | | styleSheets.css | Folhas de estilo CSS | CSS | | styleSheets_mac.css | Folhas de estilo css para Mac (de um banco de dados binário convertido) | CSS | | styleSheets_windows.css | Folhas de estilo css em Windows (de um banco de dados binário convertido) | CSS | diff --git a/i18n/pt/docusaurus-plugin-content-docs/current/Project/code-overview.md b/i18n/pt/docusaurus-plugin-content-docs/current/Project/code-overview.md index f7e7f455d76058..e0091bc76dfbd4 100644 --- a/i18n/pt/docusaurus-plugin-content-docs/current/Project/code-overview.md +++ b/i18n/pt/docusaurus-plugin-content-docs/current/Project/code-overview.md @@ -5,7 +5,7 @@ title: Métodos e classes El código 4D utilizado en todo el proyecto está escrito en [métodos](../Concepts/methods.md) y [clases](../Concepts/classes.md). -O IDE 4D fornece vários recursos para criar, editar, exportar ou excluir seu código. Por lo general, utilizará el [editor de código](../code-editor/write-class-method.md) de 4D para trabajar con su código. +O IDE 4D fornece vários recursos para criar, editar, exportar ou excluir seu código. You will usually use the included 4D [code editor](../code-editor/write-class-method.md) to work with your code. You can also use other editors such as **VS Code**, for which the [4D-Analyzer extension](https://github.com/4d/4D-Analyzer-VSCode) is available. ## Criação de métodos diff --git a/i18n/pt/docusaurus-plugin-content-docs/current/Project/components.md b/i18n/pt/docusaurus-plugin-content-docs/current/Project/components.md index 684c0a625a22f9..7ff590e3a7624a 100644 --- a/i18n/pt/docusaurus-plugin-content-docs/current/Project/components.md +++ b/i18n/pt/docusaurus-plugin-content-docs/current/Project/components.md @@ -5,18 +5,31 @@ title: Componentes Um componente 4D é um conjunto de código 4D e/ou formulários que representam uma ou mais funcionalidades que pode adicionar e usar nos seus projetos. For example, the [4D SVG](https://github.com/4d/4D-SVG) component adds advanced commands and an integrated rendering engine that can be used to display SVG files. -You can [develop](../Extensions/develop-components.md) and [build](../Desktop/building.md) your own 4D components, or download public components shared by the 4D community that [can be found on GitHub](https://github.com/search?q=4d-component\&type=Repositories). +You can [develop](../Extensions/develop-components.md) and [build](../Desktop/building.md) your own 4D components, or download public components shared by the 4D community that [can be found on GitHub](https://github.com/search?q=4d-component\\&type=Repositories). When developing in 4D, the component files can be transparently stored in your computer or on a Github repository. ## Componentes interpretados e compilados -Components can be interpreted or [compiled](../Desktop/building.md). A pasta do pacote de um componente pode conter: +Components can be interpreted or [compiled](../Desktop/building.md). -- either a Project folder (interpreted component) -- ou um arquivo .4DZ (componente compilado) +- A 4D project running in interpreted mode can use either interpreted or compiled components. +- A 4D project running in compiled mode cannot use interpreted components. Por isso não pode ser usado em um componente. -A 4D project running in interpreted mode can use either interpreted or compiled components. A 4D project running in compiled mode cannot use interpreted components. Por isso não pode ser usado em um componente. +### Package folder + +The package folder of a component (_MyComponent.4dbase_ folder) can contain: + +- for **interpreted components**: a standard [Project folder](../Project/architecture.md) +- for **compiled components**: + - either a "Contents" folder containing a .4DZ file, a _Resources_ folder, an _Info.plist_ file (recommended architecture) + - or directly a .4DZ file with other folders such as _Resources_. + +:::note + +The "Contents" folder architecture is recommended for components if you want to [notarize](../Desktop/building.md#about-notarization) your applications on macOS. + +::: ## Carregando componentes @@ -211,7 +224,7 @@ Você declara um componente armazenado no GitHub no arquivo [**dependencies.json Ao criar uma versão no GitHub, você especifica uma **etiqueta** e uma **versão**. -- **Etiquetas** são textos que fazem referência exclusiva a uma versão. In the [**dependencies.json** file](#dependencyjson) and [**environment4d.json**](#environment4djson) files, you can indicate the release tag you want to use in your project. Por exemplo : +- **Etiquetas** são textos que fazem referência exclusiva a uma versão. **Etiquetas** são textos que fazem referência exclusiva a uma versão. In the [**dependencies.json** file](#dependencyjson) and [**environment4d.json**](#environment4djson) files, you can indicate the release tag you want to use in your project. Por exemplo : ```json { diff --git a/i18n/pt/docusaurus-plugin-content-docs/current/Project/overview.md b/i18n/pt/docusaurus-plugin-content-docs/current/Project/overview.md index 46b77d0d79de1d..af9d1f76c92fd6 100644 --- a/i18n/pt/docusaurus-plugin-content-docs/current/Project/overview.md +++ b/i18n/pt/docusaurus-plugin-content-docs/current/Project/overview.md @@ -7,7 +7,7 @@ Um projeto 4D contém todo o código fonte de uma aplicação 4D, qualquer que s ## Ficheiros do projecto -Os ficheiros de projeto 4D são abertos e editados usando aplicações normais da plataforma 4D (4D ou 4D Server). Com 4D, editores completos estão disponíveis para gerir ficheiros, incluindo um editor de estrutura, um editor de código, um editor de formulários, um editor de menus... +Os ficheiros de projeto 4D são abertos e editados usando aplicações normais da plataforma 4D (4D ou 4D Server). With 4D, full-featured editors are available to manage files, including a structure editor, a [Code Editor](../code-editor/write-class-method.md), a [form editor](../FormEditor/formEditor.md), a menu editor... Quando os projetos estão em ficheiros de texto simples legíveis (JSON, XML, etc.), podem ser lidos ou editados manualmente pelos programadores, utilizando qualquer editor de código. diff --git a/i18n/pt/docusaurus-plugin-content-docs/current/REST/ClassFunctions.md b/i18n/pt/docusaurus-plugin-content-docs/current/REST/ClassFunctions.md index b302d1e5f8b6c5..5a1810213eb535 100644 --- a/i18n/pt/docusaurus-plugin-content-docs/current/REST/ClassFunctions.md +++ b/i18n/pt/docusaurus-plugin-content-docs/current/REST/ClassFunctions.md @@ -35,13 +35,13 @@ The following ORDA and singleton functions can be called in REST: Functions are simply called on the appropriate ORDA interface or singleton class, without (). [Parameters](#parameters) are passed either in the body of the POST request (`POST` calls) or in the `params` collection in the URL (`GET` calls). -Por ejemplo, si ha definido una función `getCity()` en la dataclass City, podría llamarla utilizando la siguiente petición: +For example, if you have defined a `getCity()` function in the City dataclass class, you could call it using the following request: #### POST request `/rest/City/getCity` -con los datos en el cuerpo de la petición POST: `["Aguada"]` +with data in the body of the POST request: `["Aguada"]` #### GET request @@ -92,7 +92,7 @@ You can restrict calls to specific ORDA functions by configuring appropriate pri ## Parâmetros -You can send parameters to functions defined in ORDA user classes or singletons. Del lado del servidor, serán recibidos en los [parámetros declarados](../Concepts/parameters.md#declaring-parameters) de las funciones clase. +You can send parameters to functions defined in ORDA user classes or singletons. Do lado do servidor, eles serão recebidos nos [parâmetros declarados](../Concepts/parameters.md#declaring-parameters) das funções da classe. As regras abaixo são válidas: @@ -102,7 +102,7 @@ As regras abaixo são válidas: - Todos os tipos de dados escalares suportados nas coleções JSON podem ser passados como parâmetros. - A entidade e a seleção de entidades podem ser passadas como parâmetros. The parameter list must contain specific attributes used by the REST server to assign data to the corresponding ORDA objects: `__DATACLASS`, `__ENTITY`, `__ENTITIES`, `__DATASET`. -See [this example](#using-an-entity-to-be-created-on-the-server) and [this example](#receiving-an-entity-selection-as-parameter). +Veja [este exemplo](#using-an-entity-to-be-created-on-the-server) e [este exemplo](#receiving-an-entity-selection-as-parameter). ### Parâmetro de valor escalar @@ -114,7 +114,7 @@ For example, with a dataclass function `getCities()` receiving text parameters: `/rest/City/getCities` -**Parámetros en el cuerpo:** ["Aguada","Paris"] +**Parâmetros no corpo:** ["Aguda","Paris"] #### GET request @@ -122,7 +122,7 @@ For example, with a dataclass function `getCities()` receiving text parameters: ### Parâmetro da entidade -Las entidades pasadas en los parámetros son referenciadas en el servidor a través de su llave (_es decir,_ propiedad __KEY). If the key parameter is omitted in a request, a new entity is loaded in memory on the server. +As entidades passadas nos parâmetros são referenciadas no servidor através da sua chave (_ou seja_, a propriedade __KEY). As entidades passadas nos parâmetros são referenciadas no servidor através da sua chave (_ou seja_, a propriedade __KEY). Também é possível transmitir valores para quaisquer atributos da entidade. Estes valores serão automaticamente utilizados para a entidade tratada no servidor. > Se o pedido enviar valores de atributos modificados para uma entidade existente no servidor, a função de modelo de dados ORDA chamada será automaticamente executada no servidor com valores modificados. Esta caraterística permite-lhe, por exemplo, verificar o resultado de uma operação numa entidade, depois de aplicar todas as regras de negócio, a partir da aplicação cliente. O usuário pode então decidir guardar ou não a entidade no servidor. @@ -142,13 +142,13 @@ See an example of [contents downloading using an entity](#using-an-entity-to-dow #### Parâmetro de entidade relacionada -Las mismas propiedades que para un [parámetro de entidad](#entity-parameter). Além disso, a entidade relacionada deve existir e ser referenciada por __KEY que contém a sua chave primária. +Mesmas propriedades de um [parâmetro de entidade](#entity-parameter). Além disso, a entidade relacionada deve existir e ser referenciada por __KEY que contém a sua chave primária. -Ver los ejemplos para [creación](#creating-an-entity-with-a-related-entity) o [actualización](#updating-an-entity-with-a-related-entity) de las entidades con las entidades relacionadas. +Veja exemplos de [criação](#creating-an-entity-with-a-related-entity) ou [atualização](#updating-an-entity-with-a-related-entity) das entidades com entidades relacionadas. ### Parâmetro de seleção da entidade -La selección de entidades debe haber sido definida previamente utilizando [$method=entityset]($method.md#methodentityset). +A seleção da entidade deve ter sido definida previamente usando [$method=entityset]($method.md#methodentityset). > Se o pedido enviar uma seleção de entidade modificada para o servidor, a função de modelo de dados ORDA chamada será automaticamente executada no servidor com a seleção de entidade modificada. @@ -169,7 +169,7 @@ Esta base de dados é exposta como um datastore remoto no localhost (porta 8111) ### Utilizar uma função de classe do datastore -La clase de `DataStore` US_Cities ofrece una API: +A classe de `DataStore` US_Cities fornece uma API: ``` // DataStore class @@ -194,7 +194,7 @@ Pode então executar este pedido: ### Utilização de uma função de classe de dataclass -La clase de Dataclass `City` ofrece una PI que devuelve una entidad de ciudad a partir del nombre pasado en parámetro: +A classe Dataclass `City` fornece uma API que devolve uma entidade cidade a partir de um nome passado como parâmetro: ``` // City class @@ -241,7 +241,7 @@ Le résultat est une entité: ### Utilização de uma função de classe de uma entidade -La clase de entidad `CityEntity` ofrece una API: +A classe Entity `CityEntity` fornece uma API: ``` // CityEntity class @@ -266,7 +266,7 @@ Pode então executar este pedido: ### Usar uma função de classe de uma seleção de entidade -La clase de selección de entidad `CityEntity` ofrece una API: +A classe de selection de entidade `CitySelection` fornece uma API: ``` // CitySelection class @@ -291,7 +291,7 @@ Pode então executar este pedido: ### Usando uma função de classe entitySelection e um entitySet -La clase `StudentsSelection` tine una función `getAgeAverage`: +A classe `StudentsSelection` tem uma função `getAgeAverage`: ``` // StudentsSelection Class @@ -323,7 +323,7 @@ Uma vez criado um conjunto de entidades, é possível executar este pedido: ### Usando uma função de classe de seleção de entidades e um orderBy -La clase `StudentsSelection` tiene una función `getLastSummary`: +A classe `StudentsSelection` tem uma função `getLastSummary`: ``` // StudentsSelection Class @@ -352,7 +352,7 @@ Pode então executar este pedido: ### Utilizar uma entidade a ser criada no servidor -La clase de Dataclass `Students` tiene la función `pushData()` que recibe una entidad que contiene los datos del cliente. El método `checkData()` efectúa algunos controles. Se estiverem corretas, a entidade é guardada e devolvida. +A classe Dataclass `Students` tem a função `pushData()` recebendo uma entidade contendo dados do cliente. O método `checkData()` executa alguns controles. Se estiverem corretas, a entidade é guardada e devolvida. ``` // Students Class @@ -390,7 +390,7 @@ Corpo do pedido: }] ``` -Como ninguna `__KEY` es dada, una nueva entidad Students está cargada en el servidor **con los atributos del cliente**. Como la función `pushData()` ejecuta una acción `save()`, la nueva entidad es creada. +Já que não é dada nenhuma `__KEY`, é carregada uma nova entidade Students no servidor **com os atributos recebidos do cliente**. Como a função `pushData()` executa uma ação `save()`, a nova entidade foi criada. #### Resultados @@ -428,7 +428,7 @@ Corpo do pedido: }] ``` -Como `__KEY` es dada, la entidad Students está cargada con llave primaria 55 **con el valor lastname recibido por el cliente**. Como la función ejecuta una acción `save()`, la nueva entidad es actualizada. +Uma vez que `__KEY` é fornecido, a entidade Estudantes com a chave primária 55 é carregada **com o valor do sobrenome recebido do cliente**. Como a função executa uma ação `save()`, a entidade é atualizada. #### Resultados @@ -491,7 +491,7 @@ Corpo do pedido: ### Atualização de uma entidade com uma entidade relacionada -Neste exemplo, associamos uma escola existente a uma entidade Students. La clase `StudentsEntity` tiene una API: +Neste exemplo, associamos uma escola existente a uma entidade Students. A classe `StudentsEntity` tem uma API: ``` // StudentsEntity class @@ -501,9 +501,9 @@ Class extends Entity exposed Function putToSchool() var $1, $school , $0, $status : Object - //$1 is a Schools entity + //$1 é uma entidade Schools $school:=$1 - //Associate the related entity school to the current Students entity + //Associar a entidade escola relacionada à entidade Students atual This.school:=$school $status:=This.save() @@ -511,7 +511,9 @@ exposed Function putToSchool() $0:=$status ``` -You run this request, called on a Students entity : **POST** `http://127.0.0.1:8044/rest/Students(1)/putToSchool` Body of the request: +Você executa esta solicitação, chamada em uma entidade Students: +**POST** `http://127.0.0.1:8044/rest/Students(1)/putToSchool` +Corpo da solicitação: ``` [{ @@ -533,7 +535,7 @@ You run this request, called on a Students entity : **POST** `http://127.0.0.1:8 ### Receber uma seleção de entidade como parâmetro -En la clase de Dataclass `Students`, la función `setFinalExam()` actualiza una selección de entidad recibida ($1). En realidad, actualiza el atributo _finalExam_ con el valor recibido ($2). Devolve as chaves primárias das entidades atualizadas. +Na classe de Dataclass `Students`, a função `setFinalExam()` atualiza uma seleção de entidade recebida ($1). En realidad, actualiza el atributo _finalExam_ con el valor recibido ($2). Devolve as chaves primárias das entidades atualizadas. ``` // Students class @@ -603,7 +605,7 @@ As entidades com chaves primárias 1 e 2 foram atualizadas. ### Utilizar uma seleção de entidade actualizada no cliente -Utilizando la función `getAgeAverage()` [definida anteriormente](#using-an-entityselection-class-function-and-an-entityset). +Usando a função `getAgeAverage()` [definida acima](#using-an-entityselection-class-function-and-an-entityset). ```4d var $remoteDS, $newStudent, $students : Object diff --git a/i18n/pt/docusaurus-plugin-content-docs/current/REST/dataClass.md b/i18n/pt/docusaurus-plugin-content-docs/current/REST/dataClass.md index 1a6e8d05267987..a43a008455a538 100644 --- a/i18n/pt/docusaurus-plugin-content-docs/current/REST/dataClass.md +++ b/i18n/pt/docusaurus-plugin-content-docs/current/REST/dataClass.md @@ -16,7 +16,7 @@ Os nomes de dataclass podem ser utilizados diretamente nos pedidos REST para tra | [**\{dataClass\}/{EntitySelectionClassFunction}**](ClassFunctions.md#function-calls) | `/City/getPopulation/?$filter="ID<3"` | Executa uma função de classe de uma seleção de entidade | | [**\{dataClass\}[{key}]/{EntityClassFunction}**](ClassFunctions.md#function-calls) | `City[2]/getPopulation` | Executa uma função de classe de uma entidade | -> Las llamadas a las funciones se detallan en la sección [Llamar las funciones de la clase ORDA](ClassFunctions.md). +> Function calls are detailed in the [Calling ORDA class functions](ClassFunctions.md) section. ## \{dataClass\} @@ -44,7 +44,7 @@ Cada entidade contém as propriedades abaixo: | __TIMESTAMP | Date | Registro de hora da última modificação da entidade | | __STAMP | Number | Sello interno que se necesita cuando se modifica alguno de los valores de la entidad al utilizar `$method=update`. | -Si quiere especificar qué atributos quiere devolver, defínalos utilizando la siguiente sintaxis [{attribute1, attribute2, ...}](manData.md#selecting-attributes-to-get). Por exemplo: +If you want to specify which attributes you want to return, define them using the following syntax [{attribute1, attribute2, ...}](manData.md#selecting-attributes-to-get). Por exemplo: `GET /rest/Company/name,address` @@ -135,15 +135,15 @@ Retorna todas as datas para uma classe de dados específica. ## \{dataClass\}\[{key}] -Devuelve los datos de la entidad específica definida por la llave primaria de la clase de datos, _por ejemplo_, `Company[22]` o `Company[IT0911AB2200]` +Returns the data for the specific entity defined by the dataclass's primary key, _e.g._, `Company[22]` or `Company[IT0911AB2200]` ### Descrição -Passando a classe de dados e uma chave, pode recuperar toda a informação pública para a entidade. Passando a classe de dados e uma chave, pode recuperar toda a informação pública para a entidade. Para más información sobre la definición de una llave primaria, consulte la sección **Modifying the Primary Key** en el **Editor del modelo de datos**. +Passando a classe de dados e uma chave, pode recuperar toda a informação pública para a entidade. Passando a classe de dados e uma chave, pode recuperar toda a informação pública para a entidade. Passando a classe de dados e uma chave, pode recuperar toda a informação pública para a entidade. Para más información sobre los datos devueltos, consulte [\{dataClass\}](#dataclass). -Si quiere especificar qué atributos quiere devolver, defínalos utilizando la siguiente sintaxis [{attribute1, attribute2, ...}](manData.md#selecting-attributes-to-get). Por exemplo: +If you want to specify which attributes you want to return, define them using the following syntax [{attribute1, attribute2, ...}](manData.md#selecting-attributes-to-get). Por exemplo: `GET /rest/Company[1]/name,address` @@ -186,11 +186,11 @@ Retorna os dados para uma entidade na qual os valores de atributo são definidas ### Descrição -Pasando la _clase de datos_ y un _atributo_ junto con un valor, se puede recuperar toda la información pública de esa entidad. O valor é um valor único para o atributo, mas não é a chave primária. +By passing the _dataClass_ and an _attribute_ along with a value, you can retrieve all the public information for that entity. O valor é um valor único para o atributo, mas não é a chave primária. `GET /rest/Company:companyCode(Acme001)` -Si quiere especificar qué atributos quiere devolver, defínalos utilizando la siguiente sintaxis [{attribute1, attribute2, ...}](manData.md#selecting-attributes-to-get). Por exemplo: +If you want to specify which attributes you want to return, define them using the following syntax [{attribute1, attribute2, ...}](manData.md#selecting-attributes-to-get). Por exemplo: `GET /rest/Company:companyCode(Acme001)/name,address` diff --git a/i18n/pt/docusaurus-plugin-content-docs/current/REST/manData.md b/i18n/pt/docusaurus-plugin-content-docs/current/REST/manData.md index edc62db103ff19..8730b9f488e0a9 100644 --- a/i18n/pt/docusaurus-plugin-content-docs/current/REST/manData.md +++ b/i18n/pt/docusaurus-plugin-content-docs/current/REST/manData.md @@ -15,7 +15,7 @@ To query data directly, you can do so using the [`$filter`]($filter.md) function Com o REST API, pode realizar todas as manipulações de dados que quiser em 4D. -To add and modify entities, you can call [`$method=update`]($method.md#methodupdate). Se quiser excluir uma ou mais entidades, você pode usar [`$method=delete`]($method.md#methoddelete). +To add and modify entities, you can call [`$method=update`]($method.md#methodupdate). Sintaxe Besides retrieving a single entity in a dataclass using [\{dataClass\}({key})](dataClass.md#dataclasskey), you can also write a [class function](ClassFunctions.md#function-calls) that returns an entity selection (or a collection). @@ -63,7 +63,7 @@ Para computar todos os valores e retornar um objeto JSON: ## Chamar as funções de classe do modelo de dados -Puede llamar las [funciones de clase usuarios](ClassFunctions.md) ORDA del modelo de datos vía las peticiones POST, para poder beneficiarse del API de la aplicación objetivo. Por ejemplo, si ha definido una función `getCity()` en la dataclass City, podría llamarla utilizando la siguiente petición: +Puede llamar las [funciones de clase usuarios](ClassFunctions.md) ORDA del modelo de datos vía las peticiones POST, para poder beneficiarse del API de la aplicación objetivo. For example, if you have defined a `getCity()` function in the City dataclass class, you could call it using the following request: `/rest/City/getCity` diff --git a/i18n/pt/docusaurus-plugin-content-docs/current/ServerWindow/processes.md b/i18n/pt/docusaurus-plugin-content-docs/current/ServerWindow/processes.md index 5890a2b380a4b1..d60e139b018ce1 100644 --- a/i18n/pt/docusaurus-plugin-content-docs/current/ServerWindow/processes.md +++ b/i18n/pt/docusaurus-plugin-content-docs/current/ServerWindow/processes.md @@ -87,7 +87,7 @@ A página também tem cinco botões de controle que atuam nos processos selecion > You can also abort the selected process(es) directly without displaying the confirmation dialog box by holding down the **Alt** key while clicking on this button, or by using the [`ABORT PROCESS BY ID`](https://doc.4d.com/4dv19/help/command/en/page1634.html) command. -- **Pausar proceso**: permite pausar los procesos seleccionados. +- **Pause Process**: can be used to pause the selected process(es). - **Activar proceso**: permite reactivar los procesos seleccionados. Os processos devem ter sido colocados em pausa anteriormente (utilizando o botão acima ou por programação); caso contrário, este botão não tem qualquer efeito. - **Depurar proceso**: permite abrir en el equipo servidor una o varias ventanas de depuración para el proceso o procesos seleccionados. Quando clicar neste botão, aparece uma caixa de diálogo de aviso para que se possa confirmar ou cancelar a operação. Note que a janela do depurador só é exibida quando o código 4D for realmente executado na máquina do servidor (por exemplo, em um gatilho ou na execução de um método com o atributo "Execute on Server"). diff --git a/i18n/pt/docusaurus-plugin-content-docs/current/WebServer/authentication.md b/i18n/pt/docusaurus-plugin-content-docs/current/WebServer/authentication.md index 6e17532856ca41..1aa48784ff0fe1 100644 --- a/i18n/pt/docusaurus-plugin-content-docs/current/WebServer/authentication.md +++ b/i18n/pt/docusaurus-plugin-content-docs/current/WebServer/authentication.md @@ -77,13 +77,14 @@ Por tanto, se llama al método base `On Web Authentication`: - quando o servidor da Web recebe um URL solicitando um recurso que não existe - cuando el servidor web recibe una URL que empieza por `4DACTION/`, `4DCGI/`... -- cuando el servidor web recibe una URL de acceso a la raíz y no se ha definido ninguna página de inicio en la Configuración o mediante el comando `WEB SET HOME PAGE` +- when the web server receives a root access URL and no home page has been set in the Settings or by means of the [`WEB SET HOME PAGE`](../commands-legacy/web-set-home-page.md) command - cuando el servidor web procesa una etiqueta que ejecuta código (por ejemplo, `4DSCRIPT`) en una página semidinámica. Por tanto, NO se llama al método base `On Web Authentication`: - quando o servidor Web recebe um URL solicitando uma página estática válida. - quando o servidor da Web recebe um URL que começa com `rest/` e o servidor REST é iniciado (nesse caso, a autenticação é tratada por meio da função [`ds.authentify`](../REST/authUsers#force-login-mode) ou (obsoleto) o método de banco de dados [`On REST Authentication`](REST/configuration.md#using-the-on-rest-authentication-database-method) ou [Configurações de estrutura](REST/configuration.md#using-the-structure-settings)). +- when the web server receives a URL with a pattern triggering a [custom HTTP Request Handler](http-request-handler.md). ### Sintaxe diff --git a/i18n/pt/docusaurus-plugin-content-docs/current/WebServer/http-request-handler.md b/i18n/pt/docusaurus-plugin-content-docs/current/WebServer/http-request-handler.md index c6ef98a78745a9..28ad3a52072c03 100644 --- a/i18n/pt/docusaurus-plugin-content-docs/current/WebServer/http-request-handler.md +++ b/i18n/pt/docusaurus-plugin-content-docs/current/WebServer/http-request-handler.md @@ -66,10 +66,11 @@ The handler identifier is the couple [pattern + a verb among the verbs list]. URL patterns can be given as **prefixes** or using **regular expressions**. -- To declare a prefix pattern, use the "pattern" property name in the HTTPHandlers.json file. Prefixes are considered as regular expressions already containing starting and ending `/`.\ - Ex: `"pattern" : "docs"` or `"pattern" : "docs/invoices"` +- To declare a regular expression pattern, use the "regexPattern" property name in the HTTPHandlers.json file. Regular expressions patterns are handled directly.\ + Ex: `"regexPattern" : "/docs/**/index.html"` -- To declare a regular expression pattern, use the "regexPattern" property name in the HTTPHandlers.json file. Regular expressions patterns are handled directly. +- To declare a prefix pattern, use the "pattern" property name in the HTTPHandlers.json file. Regular expressions patterns are handled directly. + Regular expressions patterns are handled directly.\ Ex: `"regexPattern" : "/docs/**/index.html"` "Pattern" and "regexPattern" properties cannot be used in the same handler definition (in this case, only the "regexPattern" property is taken into account). @@ -251,7 +252,7 @@ Then, the request handler can use this information to trigger appropriate busine ### Output: an instance of the 4D.OutgoingMessage class -The request handler can return an object instance of the [4D.OutGoingMessage class](../API/OutGoingMessageClass.md), i.e. some full web content ready for a browser to handle, such as a file content. +The request handler can return an object instance of the [4D.OutGoingMessage class](../API/OutgoingMessageClass.md), i.e. some full web content ready for a browser to handle, such as a file content. ### Exemplo diff --git a/i18n/pt/docusaurus-plugin-content-docs/current/WebServer/httpRequests.md b/i18n/pt/docusaurus-plugin-content-docs/current/WebServer/httpRequests.md index 9fdd09c181d07f..81be229f1ec48f 100644 --- a/i18n/pt/docusaurus-plugin-content-docs/current/WebServer/httpRequests.md +++ b/i18n/pt/docusaurus-plugin-content-docs/current/WebServer/httpRequests.md @@ -335,6 +335,6 @@ The 4D web server supports files uploaded in chunked transfer encoding from any ## Método projeto COMPILER_WEB -O método COMPILER\_WEB, se existir, é chamado sistematicamente quando o servidor HTTP recebe uma solicitação dinâmica e chama ao motor 4D. This is the case, for example, when the 4D Web server receives a posted form or a URL to process in [`On Web Connection`](#on-web-connection). This method is intended to contain typing and/or variable initialization directives used during Web exchanges. É utilizado pelo compilador quando a aplicação é compilada. O método COMPILER\_WEB é comum a todos os formulários Web. Por defeito, o método COMPILER_WEB não existe. É necessário criá-lo explicitamente. +O método COMPILER\_WEB, se existir, é chamado sistematicamente quando o servidor HTTP recebe uma solicitação dinâmica e chama ao motor 4D. O método COMPILER\_WEB, se existir, é chamado sistematicamente quando o servidor HTTP recebe uma solicitação dinâmica e chama ao motor 4D. This method is intended to contain typing and/or variable initialization directives used during Web exchanges. É utilizado pelo compilador quando a aplicação é compilada. O método COMPILER\_WEB é comum a todos os formulários Web. Por defeito, o método COMPILER_WEB não existe. É necessário criá-lo explicitamente. > The COMPILER_WEB project method is also called, if it exists, for each SOAP request accepted. diff --git a/i18n/pt/docusaurus-plugin-content-docs/current/WebServer/qodly-studio.md b/i18n/pt/docusaurus-plugin-content-docs/current/WebServer/qodly-studio.md index 77ee5c04483335..4a0c1a4d4eaa30 100644 --- a/i18n/pt/docusaurus-plugin-content-docs/current/WebServer/qodly-studio.md +++ b/i18n/pt/docusaurus-plugin-content-docs/current/WebServer/qodly-studio.md @@ -118,7 +118,7 @@ The Qodly Studio documentation is available on the [Qodly documentation website] You can rely on this documentation and its associated resources for developing web applications powered by Qodly pages. However, depending on implementation stage, 4D developers will either use Qodly Studio or 4D IDE (see [Feature comparison](#feature-comparison)). -Code examples are provided in [QodlyScript](https://developer.qodly.com/docs/category/qodlyscript), but since QodlyScript inherits from the 4D Language, you won't be lost. For more information, see the [From QodlyScript to 4D Language](from-qodlyscript-to-4d.md) page. +Code examples are provided in [QodlyScript](https://developer.qodly.com/docs/category/qodlyscript), but since QodlyScript inherits from the 4D Language, you won't be lost. Code examples are provided in [QodlyScript](https://developer.qodly.com/docs/category/qodlyscript), but since QodlyScript inherits from the 4D Language, you won't be lost. :::info @@ -128,18 +128,18 @@ There is no direct compatibility between apps implemented with 4D and apps imple ### Comparação de funcionalidades -| | Qodly Studio in 4D | Qodly Studio in Qodly Cloud platform | -| --------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ----------------------------------------------------------------------------------- | -| Visualizar e editar tabelas (classes de dados), atributos e relações | Editor de estrutura 4D(1) | Qodly Studio Model Editor | -| Páginas Qodly | Editor de páginas Qodly Studio | Editor de páginas Qodly Studio | -| Formulários para desktop | 4D IDE | _não suportado_ | -| Linguagem de programação | Linguagem 4D com ORDA | [QodlyScript](https://developer.qodly.com/docs/category/qodlyscript) featuring ORDA | -| IDE de codificação | 4D IDE code editor _or_ VS Code with [4D extension](https://github.com/4d/4D-Analyzer-VSCode)
    _4D Server only_: Qodly Studio code editor (see (2)) | Editor de código Qodly Studio | -| Depurador | 4D IDE debugger
    _4D Server only_: Qodly Studio debugger (see [this paragraph](#using-qodly-debugger-on-4d-server)) | Depurador Qodly Studio | -| REST/Web roles and privileges | roles.json direct edit/Qodly Studio roles and privileges editor | Qodly Studio role and privileges editor | - -(1) The **Model** item is disabled in Qodly Studio.
    -(2) In 4D Server, opening 4D code with the Qodly Studio code editor is supported **for testing and debugging purposes** (see [this paragraph](#development-and-deployment)). Note that in 4D single-user, if you open some 4D code with the Qodly Studio code editor, syntax coloring is not available and a "Lsp not loaded" warning is displayed. +| | Qodly Studio in 4D | Qodly Studio in Qodly Cloud platform | +| --------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------- | +| Visualizar e editar tabelas (classes de dados), atributos e relações | Editor de estrutura 4D(1) | Qodly Studio Model Editor | +| Páginas Qodly | Editor de páginas Qodly Studio | Editor de páginas Qodly Studio | +| Formulários para desktop | 4D IDE | _não suportado_ | +| Linguagem de programação | Linguagem 4D com ORDA | [QodlyScript](https://developer.qodly.com/docs/category/qodlyscript) featuring ORDA | +| IDE de codificação | 4D IDE code editor _or_ VS Code with [4D-Analyzer extension](https://github.com/4d/4D-Analyzer-VSCode)
    _4D Server only_: Qodly Studio code editor (see (2)) | Editor de código Qodly Studio | +| Depurador | 4D IDE debugger
    _4D Server only_: Qodly Studio debugger (see [this paragraph](#using-qodly-debugger-on-4d-server)) | Depurador Qodly Studio | +| REST/Web roles and privileges | roles.json direct edit/Qodly Studio roles and privileges editor | Qodly Studio role and privileges editor | + +Note that in 4D single-user, if you open some 4D code with the Qodly Studio code editor, syntax coloring is not available and a "Lsp not loaded" warning is displayed. (1) The **Model** item is disabled in Qodly Studio.
    +(2) In 4D Server, opening 4D code with the Qodly Studio code editor is supported **for testing and debugging purposes** (see [this paragraph](#development-and-deployment)). ### Línguagem diff --git a/i18n/pt/docusaurus-plugin-content-docs/current/assets/en/Admin/buildapposxcertProj.png b/i18n/pt/docusaurus-plugin-content-docs/current/assets/en/Admin/buildapposxcertProj.png index 5f652b3e5a2356..0afc8cd3cd6be1 100644 Binary files a/i18n/pt/docusaurus-plugin-content-docs/current/assets/en/Admin/buildapposxcertProj.png and b/i18n/pt/docusaurus-plugin-content-docs/current/assets/en/Admin/buildapposxcertProj.png differ diff --git a/i18n/pt/docusaurus-plugin-content-docs/current/code-editor/write-class-method.md b/i18n/pt/docusaurus-plugin-content-docs/current/code-editor/write-class-method.md index ba8b9589b01ca1..8aaa302eeeb550 100644 --- a/i18n/pt/docusaurus-plugin-content-docs/current/code-editor/write-class-method.md +++ b/i18n/pt/docusaurus-plugin-content-docs/current/code-editor/write-class-method.md @@ -13,6 +13,12 @@ Você pode rolar através do conteúdo de métodos, classes e funções, que pod O Editor de código 4D fornece verificação básica de erros de sintaxe. É efetuada uma verificação de erros adicional quando o código é executado. Para obter mais informações sobre como lidar com erros, consulte [Depuração](../Debugging/basics.md). +:::note + +If you are used to coding with **VS Code**, you can also use this editor with 4D code after installing the [4D-Analyzer](https://github.com/4d/4D-Analyzer-VSCode) extension. + +::: + ## Interface ### Barra de ferramentas diff --git a/i18n/pt/docusaurus-plugin-content-docs/current/commands-legacy/array-text.md b/i18n/pt/docusaurus-plugin-content-docs/current/commands-legacy/array-text.md index aa163ad5f09f76..855a996975a766 100644 --- a/i18n/pt/docusaurus-plugin-content-docs/current/commands-legacy/array-text.md +++ b/i18n/pt/docusaurus-plugin-content-docs/current/commands-legacy/array-text.md @@ -54,7 +54,3 @@ Este exemplo cria um array de interprocesso de elementos do tipo texto e atribui     ◊atValores{$vlElem}:="Elemento #"+String($vlElem)  End for ``` - -#### Ver também - -*\_o\_ARRAY STRING* \ No newline at end of file diff --git a/i18n/pt/docusaurus-plugin-content-docs/current/commands-legacy/data-file.md b/i18n/pt/docusaurus-plugin-content-docs/current/commands-legacy/data-file.md index c6e0b5888cb281..b8714a107a14e1 100644 --- a/i18n/pt/docusaurus-plugin-content-docs/current/commands-legacy/data-file.md +++ b/i18n/pt/docusaurus-plugin-content-docs/current/commands-legacy/data-file.md @@ -30,6 +30,5 @@ Se você está trabalhando, por exemplo, com o banco na pasta Documentos:MeusCDs #### Ver também -*\_o\_DATA SEGMENT LIST* [Application file](application-file.md) [Structure file](structure-file.md) \ No newline at end of file diff --git a/i18n/pt/docusaurus-plugin-content-docs/current/commands-legacy/drop-position.md b/i18n/pt/docusaurus-plugin-content-docs/current/commands-legacy/drop-position.md index df9e11d3e67642..bd528b5193afb0 100644 --- a/i18n/pt/docusaurus-plugin-content-docs/current/commands-legacy/drop-position.md +++ b/i18n/pt/docusaurus-plugin-content-docs/current/commands-legacy/drop-position.md @@ -95,5 +95,4 @@ O método de objeto de list box da esquerda (destino) contém o código abaixo: #### Ver também -*\_o\_DRAG AND DROP PROPERTIES* *Arrastar e Soltar* \ No newline at end of file diff --git a/i18n/pt/docusaurus-plugin-content-docs/current/commands-legacy/filter-keystroke.md b/i18n/pt/docusaurus-plugin-content-docs/current/commands-legacy/filter-keystroke.md index b770b2adc03ca1..ea1e6f4ecfccdf 100644 --- a/i18n/pt/docusaurus-plugin-content-docs/current/commands-legacy/filter-keystroke.md +++ b/i18n/pt/docusaurus-plugin-content-docs/current/commands-legacy/filter-keystroke.md @@ -82,44 +82,41 @@ Em sua aplicação, tem algumas áreas de texto nas quais pode introduzir alguma Este exemplo implementa a segunda solução, baseado na tecla Ajuda. Como se explicou anteriormente, durante a edição da área de texto, o valor introduzido será atribuído à fonte de dados para esta área depois que a entrada de dados seja confirmada. Para poder recuperar e inserir entradas do dicionário na área de texto, enquanto esta área é editada, deve criar uma segunda área para colocar os valores introduzidos. Se passam como primeiros parâmetros os ponteiros até a área de entrada e até a variável, depois como terceiro parâmetro a string de caracteres “proibidos”. Sem importar como se trate a teclagem, o método retorna a teclagem original. Os caracteres “proibidos” são aqueles que você não deseja inserir na área editável e deseja tratar como caracteres especiais. - ```4d   // Método de projeto Teclado sombra   // Teclado sombra ( Ponteiro ; Ponteiro ; Alfa) -> Alfa   // Teclado sombra ( -> srcArea ; -> curValor ; Filtro ) -> Antigo valor teclado - C_STRING(1;$0) - var $1;$2 : Pointer - var $vtNovoValor : Text - C_STRING(255;$3) -  // Retorna o caractere original - $0:=Keystroke + #DECLARE ($srcArea : Pointer ; $curVal : Pointer ; $filter : Text) -> $old : Text + var $vtNewValue : Text +   // Retorna o caractere original + $old:=Keystroke   // Obter a seleção de texto na área editável - GET HIGHLIGHT($1->;$vlInicio;$vlFim) + GET HIGHLIGHT($srcArea->;$vlStart;$vlEnd)   //Começar a trabalhar com o valor atual - $vtNuevoValor:=$2-> + $vtNewValue:=$curVal->   // Dependendo da tecla pressionada ou do caractere introduzida,   // Efetuar as ações apropriadas  Case of   // a tecla Retorno (eliminar) foi pressionada -    :(Character code($0)=Backspace) +   :(Character code($old)=Backspace)   // Eliminar os caracteres selecionados ou o caractere a esquerda do cursor        $vtNovoValor:=Eliminar texto($vtNovoValor;$vlInicio;$vlFim)   // Uma tecla flecha foi pressionada   // Não fazer nada, mas aceitar o caractere teclado -    :(Character code($0)=Left arrow key) -    :(Character code($0)=Right arrow key) -    :(Character code($0)=Up arrow key) -    :(Character code($0)=Down arrow key) +    :(Character code($old)=Left arrow key) + :(Character code($old)=Right arrow key) + :(Character code($old)=Up arrow key) + :(Character code($old)=Down arrow key)     // Um caractere válido foi introduzido -    :(Position($0;$3)=0) +    :(Position($old;$filter)=0)        $vtNovoValor:=Inserir texto($vtNovoValor;$vlInicio;$vlFim;$0)     Else   // O caractere não foi aceito        FILTER KEYSTROKE("")  End case   // Devolver o valor para a próxima gestão de keystroke - $2->:=$vtNovoValor + $curVal->:=$vtNewValue ``` Este método utiliza os seguintes dois sub-métodos: @@ -128,28 +125,25 @@ Este método utiliza os seguintes dois sub-métodos:   // Método de projeto Apagar texto   // Apagar texto ( Alfa; Long ; Long ) -> Alfa   // Apagar texto ( -> Texto ; SelInicio ; SelFim ) -> Novo texto - var $0;$1 : Text - var $2;$3 : Integer - $0:=Substring($1;1;$2-1-Num($2=$3))+Substring($1;$3) + #DECLARE ($src : Text ; $start : Integer ; $end : Integer) -> $new : Text + $new:=Substring($src;1;$start-1-Num($start=$end))+Substring($src;$end) ``` - -```4d +```4d   // Método de projeto Inserir texto   // Inserir texto ( Alfa ; Long ; Long ; Alfa) -> Alfa   // Inserir texto ( -> srcText ; SelInicio ; SelFin ; Texto a inserir ) -> Novo texto - var $0;$1;$4 : Text - var $2;$3 : Integer - $0:=$1 - If($2#$3) -    $0:=Substring($0;1;$2-1)+$4+Substring($0;$3) + #DECLARE ($src : Text ; $start : Integer ; $end : Integer ; $toInsert : Text) -> $new : Text + $new:=$src + If($start # $end) + $new:=Substring($new;1;$start-1)+$toInsert+Substring($new;$end)  Else     Case of -       :($2<=1) -          $0:=$4+$0 -       :($2>Length($0)) -          $0:=$0+$4 +       :($start<=1) + $new:=$toInsert+$new + :($start>Length($new)) + $new:=$new+$toInsert        Else -          $0:=Substring($0;1;$2-1)+$4+Substring($0;$2) +          $new:=Substring($new;1;$start-1)+$toInsert+Substring($new;$start)     End case  End if ``` @@ -183,13 +177,13 @@ O método de projeto LOOKUP DICTIONARY é listado a seguir. Seu propósito é ut   // CONSULTAR DICIONARIO ( Ponteiro ; Ponteiro )   // CONSULTAR DICIONARIO ( -> Area editavel ; ->ShadowVariable )   - var $1;$2 : Pointer + #DECLARE ($area : Pointer ; $shadow : Pointer)  var $vlInicio;$vlFin : Integer     // Obter a seleção de texto na área editável - GET HIGHLIGHT($1->;$vlInicio;$vlFin) + GET HIGHLIGHT($area->;$vlStart;$vlEnd)   // Obter o texto selecionado ou a palavbra localizada a esquerda do cursor - $vtHighlightedText:=ObterTextoSelecionado($2->;$vlInicio;$vlFin) + $vtHighlightedText:=Get highlighted text($shadow->;$vlStart;$vlEnd)   //Há algo que buscar?  If($vtHighlightedText#"")   // Se a seleção de texto era o cursor @@ -202,9 +196,9 @@ O método de projeto LOOKUP DICTIONARY é listado a seguir. Seu propósito é ut   // Há alguma?     If(Records in selection([Dicionario])>0)   // Se houver alguma entrada disponível, inserí-la no texto shadow -       $2->:=Insert text($2->;$vlInicio;$vlFin;[Dicionario]Entry) +       $shadow->:=Insert text($shadow->;$vlStart;$vlEnd;[Dictionary]Entry)   // Copiar o texto shadow na área editável -       $1->:=$2-> +       $area->:=$shadow->   // Fixar a seleção logo após inserir a entrada do dicionario        $vlFin:=$vlInicio+Length([Dicionario]Entry)        HIGHLIGHT TEXT(vsComments;$vlFin;$vlFin) @@ -224,23 +218,22 @@ O método ObterTextoSelecionado é o seguinte:   // Método de objeto ObterTextoSelecionado   // ObterTextoSelecionado( Alfa ; Long ; Long ) -> Alfa   // ObterTextoSelecionado ( Text ; SelInicio ; SelEnd ) -> texto selecionado - var $0;$1 : Text - var $2;$3 : Integer - If($2<$3) -    $0:=Substring($1;$2;$3-$2) + #DECLARE ($text : Text ; $start : Integer ; $end : Integer) -> $highlight : Text + If($start<$end) + $highlight:=Substring($text;$start;$end-$start)  Else -    $0:="" -    $2:=$2-1 +    $highlight:="" + $start:=$start-1     Repeat -       If($2>0) -          If(Position($1[[$2]];"  ,.!?:;()-_–—")=0) -             $0:=$1[[$2]]+$0 -             $2:=$2-1 +       If($start>0) + If(Position($text[[$start]];" ,.!?:;()-_–—")=0) + $highlight:=$text[[$start]]+$highlight + $start:=$start-1           Else -             $2:=0 +             $start:=0           End if        End if -    Until($2=0) +    Until($start=0)  End if ``` @@ -249,4 +242,4 @@ O método ObterTextoSelecionado é o seguinte: [Form event code](../commands/form-event-code.md) [Get edited text](get-edited-text.md) [Is editing text](is-editing-text.md) -[Keystroke](keystroke.md) \ No newline at end of file +[Keystroke](keystroke.md) diff --git a/i18n/pt/docusaurus-plugin-content-docs/current/commands-legacy/font-list.md b/i18n/pt/docusaurus-plugin-content-docs/current/commands-legacy/font-list.md index 06df4a0016f64c..8a54c622bd0774 100644 --- a/i18n/pt/docusaurus-plugin-content-docs/current/commands-legacy/font-list.md +++ b/i18n/pt/docusaurus-plugin-content-docs/current/commands-legacy/font-list.md @@ -70,7 +70,6 @@ Você quer obter uma lista de fontes recentes: #### Ver também -*\_o\_Font name* [FONT STYLE LIST](font-style-list.md) [OBJECT SET FONT](object-set-font.md) [SET RECENT FONTS](set-recent-fonts.md) diff --git a/i18n/pt/docusaurus-plugin-content-docs/current/commands-legacy/form-set-input.md b/i18n/pt/docusaurus-plugin-content-docs/current/commands-legacy/form-set-input.md index 086c54153b6c66..30354d32e544a4 100644 --- a/i18n/pt/docusaurus-plugin-content-docs/current/commands-legacy/form-set-input.md +++ b/i18n/pt/docusaurus-plugin-content-docs/current/commands-legacy/form-set-input.md @@ -96,7 +96,6 @@ o que retorna: #### Ver também -*\_o\_CREATE USER FORM* [ADD RECORD](add-record.md) [DISPLAY RECORD](display-record.md) [DISPLAY SELECTION](display-selection.md) diff --git a/i18n/pt/docusaurus-plugin-content-docs/current/commands-legacy/form-set-output.md b/i18n/pt/docusaurus-plugin-content-docs/current/commands-legacy/form-set-output.md index cb00e6780248cc..59bd5d2e057771 100644 --- a/i18n/pt/docusaurus-plugin-content-docs/current/commands-legacy/form-set-output.md +++ b/i18n/pt/docusaurus-plugin-content-docs/current/commands-legacy/form-set-output.md @@ -64,7 +64,6 @@ Os exemplos abaixo usam a rota a um formulário json para imprimir os registros #### Ver também -*\_o\_CREATE USER FORM* [DISPLAY SELECTION](display-selection.md) [EXPORT DIF](export-dif.md) [EXPORT SYLK](export-sylk.md) diff --git a/i18n/pt/docusaurus-plugin-content-docs/current/commands-legacy/get-document-properties.md b/i18n/pt/docusaurus-plugin-content-docs/current/commands-legacy/get-document-properties.md index 9b0bb738c644ce..2271a553eb749b 100644 --- a/i18n/pt/docusaurus-plugin-content-docs/current/commands-legacy/get-document-properties.md +++ b/i18n/pt/docusaurus-plugin-content-docs/current/commands-legacy/get-document-properties.md @@ -209,6 +209,4 @@ Quando esse método tiver sido implementado no banco de dados, nóste mos todo o #### Ver também -*\_o\_Document creator* -*\_o\_Document type* [SET DOCUMENT PROPERTIES](set-document-properties.md) \ No newline at end of file diff --git a/i18n/pt/docusaurus-plugin-content-docs/current/commands-legacy/get-highlight.md b/i18n/pt/docusaurus-plugin-content-docs/current/commands-legacy/get-highlight.md index b1244ead17327e..182cb720646607 100644 --- a/i18n/pt/docusaurus-plugin-content-docs/current/commands-legacy/get-highlight.md +++ b/i18n/pt/docusaurus-plugin-content-docs/current/commands-legacy/get-highlight.md @@ -41,8 +41,10 @@ Se o objeto designado pelo parâmetro *objeto* não é encontrado no formulário O exemplo abaixo obtém o texto selecionado no campo \[Produtos\]Comentarios: ```4d - GET HIGHLIGHT([Produtos]Comentarios;vFirst;vLast) - If(vFirst +GET HIGHLIGHT([Products]Comments;vFirst;vLast) +If(vFirst < vlast) + ALERT("The selected text is:"+Substring([Products]Comments;vFirst;vLast-vFirst)) +End if ``` #### Exemplo 2 diff --git a/i18n/pt/docusaurus-plugin-content-docs/current/commands-legacy/get-process-variable.md b/i18n/pt/docusaurus-plugin-content-docs/current/commands-legacy/get-process-variable.md index d854213d8abcb0..9707fed1729dcd 100644 --- a/i18n/pt/docusaurus-plugin-content-docs/current/commands-legacy/get-process-variable.md +++ b/i18n/pt/docusaurus-plugin-content-docs/current/commands-legacy/get-process-variable.md @@ -115,7 +115,6 @@ Ver o exemplo do comando DRAG AND DROP PROPERTIES. #### Ver também -*\_o\_DRAG AND DROP PROPERTIES* *Arrastar e Soltar* [POST OUTSIDE CALL](post-outside-call.md) *Processos* diff --git a/i18n/pt/docusaurus-plugin-content-docs/current/commands-legacy/in-break.md b/i18n/pt/docusaurus-plugin-content-docs/current/commands-legacy/in-break.md index cf5cc19cbedd33..9a6b609e1d1cbe 100644 --- a/i18n/pt/docusaurus-plugin-content-docs/current/commands-legacy/in-break.md +++ b/i18n/pt/docusaurus-plugin-content-docs/current/commands-legacy/in-break.md @@ -26,6 +26,5 @@ Para que seja gerado o ciclo de execução **In break**, tenha certeza de que o #### Ver também -*\_o\_During* [In footer](in-footer.md) [In header](in-header.md) \ No newline at end of file diff --git a/i18n/pt/docusaurus-plugin-content-docs/current/commands-legacy/in-footer.md b/i18n/pt/docusaurus-plugin-content-docs/current/commands-legacy/in-footer.md index d426b1a4bbcf4e..89770a4abe2bb1 100644 --- a/i18n/pt/docusaurus-plugin-content-docs/current/commands-legacy/in-footer.md +++ b/i18n/pt/docusaurus-plugin-content-docs/current/commands-legacy/in-footer.md @@ -26,6 +26,5 @@ Para que seja gerado o ciclo de execução **In footer** tenha certeza de que o #### Ver também -*\_o\_During* [In break](in-break.md) [In header](in-header.md) \ No newline at end of file diff --git a/i18n/pt/docusaurus-plugin-content-docs/current/commands-legacy/in-header.md b/i18n/pt/docusaurus-plugin-content-docs/current/commands-legacy/in-header.md index f9640287205e33..4d87f5d67febf8 100644 --- a/i18n/pt/docusaurus-plugin-content-docs/current/commands-legacy/in-header.md +++ b/i18n/pt/docusaurus-plugin-content-docs/current/commands-legacy/in-header.md @@ -26,6 +26,5 @@ Para que seja gerado o ciclo de execução **In header**, tenha certeza de que o #### Ver também -*\_o\_During* [In break](in-break.md) [In footer](in-footer.md) \ No newline at end of file diff --git a/i18n/pt/docusaurus-plugin-content-docs/current/commands-legacy/integrate-mirror-log-file.md b/i18n/pt/docusaurus-plugin-content-docs/current/commands-legacy/integrate-mirror-log-file.md index 957138c32f9cee..21552ea16ec7d4 100644 --- a/i18n/pt/docusaurus-plugin-content-docs/current/commands-legacy/integrate-mirror-log-file.md +++ b/i18n/pt/docusaurus-plugin-content-docs/current/commands-legacy/integrate-mirror-log-file.md @@ -101,6 +101,4 @@ Se a integração é efetuada corretamente, a variável sistema OK recebe o valo #### Ver também - -*\_o\_INTEGRATE LOG FILE* [LOG FILE TO JSON](log-file-to-json.md) \ No newline at end of file diff --git a/i18n/pt/docusaurus-plugin-content-docs/current/commands-legacy/is-a-list.md b/i18n/pt/docusaurus-plugin-content-docs/current/commands-legacy/is-a-list.md index 51335f8668fd37..3dd73ed2186a42 100644 --- a/i18n/pt/docusaurus-plugin-content-docs/current/commands-legacy/is-a-list.md +++ b/i18n/pt/docusaurus-plugin-content-docs/current/commands-legacy/is-a-list.md @@ -28,7 +28,3 @@ Ver o exemplo do comando [CLEAR LIST](clear-list.md "CLEAR LIST"). #### Exemplo 2 Ver os exemplos do comando DRAG AND DROP PROPERTIES. - -#### Ver também - -*\_o\_DRAG AND DROP PROPERTIES* \ No newline at end of file diff --git a/i18n/pt/docusaurus-plugin-content-docs/current/commands-legacy/new-log-file.md b/i18n/pt/docusaurus-plugin-content-docs/current/commands-legacy/new-log-file.md index 40260034027780..522a3be91b1ebf 100644 --- a/i18n/pt/docusaurus-plugin-content-docs/current/commands-legacy/new-log-file.md +++ b/i18n/pt/docusaurus-plugin-content-docs/current/commands-legacy/new-log-file.md @@ -30,6 +30,3 @@ O arquivo é renomeado com os números de backups atuais do banco de dados e o a Caso se apresente um erro, o comando gera um código que pode ser interceptado utilizando o comando [ON ERR CALL](on-err-call.md "ON ERR CALL"). -#### Ver também - -*\_o\_INTEGRATE LOG FILE* \ No newline at end of file diff --git a/i18n/pt/docusaurus-plugin-content-docs/current/commands-legacy/object-set-action.md b/i18n/pt/docusaurus-plugin-content-docs/current/commands-legacy/object-set-action.md index 5d1edca7da5ec0..9fb767dcce5508 100644 --- a/i18n/pt/docusaurus-plugin-content-docs/current/commands-legacy/object-set-action.md +++ b/i18n/pt/docusaurus-plugin-content-docs/current/commands-legacy/object-set-action.md @@ -91,5 +91,4 @@ Se quiser associar a ação padrão **Validate** com um botão: #### Ver também -*\_o\_OBJECT Get action* [OBJECT Get action](object-get-action.md) \ No newline at end of file diff --git a/i18n/pt/docusaurus-plugin-content-docs/current/commands-legacy/object-set-rgb-colors.md b/i18n/pt/docusaurus-plugin-content-docs/current/commands-legacy/object-set-rgb-colors.md index 6e7592e51f11b9..6993d449cd268b 100644 --- a/i18n/pt/docusaurus-plugin-content-docs/current/commands-legacy/object-set-rgb-colors.md +++ b/i18n/pt/docusaurus-plugin-content-docs/current/commands-legacy/object-set-rgb-colors.md @@ -105,6 +105,5 @@ Muda o fundo transparente com uma cor de fonte clara: #### Ver também -*\_o\_OBJECT SET COLOR* [OBJECT GET RGB COLORS](object-get-rgb-colors.md) [Select RGB Color](select-rgb-color.md) \ No newline at end of file diff --git a/i18n/pt/docusaurus-plugin-content-docs/current/commands-legacy/picture-to-blob.md b/i18n/pt/docusaurus-plugin-content-docs/current/commands-legacy/picture-to-blob.md index 16681e094f5d44..1a96762a0970b7 100644 --- a/i18n/pt/docusaurus-plugin-content-docs/current/commands-legacy/picture-to-blob.md +++ b/i18n/pt/docusaurus-plugin-content-docs/current/commands-legacy/picture-to-blob.md @@ -47,7 +47,6 @@ Se quiser converter uma imagem de um formato proprietário a formato GIF e mostr #### Ver também -*\_o\_PICTURE TO GIF* [BLOB TO PICTURE](blob-to-picture.md) [PICTURE CODEC LIST](picture-codec-list.md) [WRITE PICTURE FILE](write-picture-file.md) \ No newline at end of file diff --git a/i18n/pt/docusaurus-plugin-content-docs/current/commands-legacy/print-selection.md b/i18n/pt/docusaurus-plugin-content-docs/current/commands-legacy/print-selection.md index ccabf7a515e985..88a6eff91ca394 100644 --- a/i18n/pt/docusaurus-plugin-content-docs/current/commands-legacy/print-selection.md +++ b/i18n/pt/docusaurus-plugin-content-docs/current/commands-legacy/print-selection.md @@ -59,7 +59,6 @@ O exemplo a seguir seleciona todos os registros na tabela \[Pessoas\]. O comando #### Ver também -*\_o\_PAGE SETUP* [ACCUMULATE](accumulate.md) [BREAK LEVEL](break-level.md) [Level ](level.md) diff --git a/i18n/pt/docusaurus-plugin-content-docs/current/commands-legacy/resolve-pointer.md b/i18n/pt/docusaurus-plugin-content-docs/current/commands-legacy/resolve-pointer.md index 8f91d2259336da..146269c5e39fe6 100644 --- a/i18n/pt/docusaurus-plugin-content-docs/current/commands-legacy/resolve-pointer.md +++ b/i18n/pt/docusaurus-plugin-content-docs/current/commands-legacy/resolve-pointer.md @@ -103,7 +103,6 @@ Este é um exemplo de ponteiro a um array 2D: #### Ver também -*\_o\_DRAG AND DROP PROPERTIES* [Field](field.md) [Get pointer](get-pointer.md) [Is a variable](is-a-variable.md) diff --git a/i18n/pt/docusaurus-plugin-content-docs/current/commands-legacy/set-document-properties.md b/i18n/pt/docusaurus-plugin-content-docs/current/commands-legacy/set-document-properties.md index 573d1a572be471..03adec908ae581 100644 --- a/i18n/pt/docusaurus-plugin-content-docs/current/commands-legacy/set-document-properties.md +++ b/i18n/pt/docusaurus-plugin-content-docs/current/commands-legacy/set-document-properties.md @@ -34,6 +34,4 @@ As datas e horas de criação e última modificação são administradas pelo ad #### Ver também -*\_o\_SET DOCUMENT CREATOR* -*\_o\_SET DOCUMENT TYPE* [GET DOCUMENT PROPERTIES](get-document-properties.md) \ No newline at end of file diff --git a/i18n/pt/docusaurus-plugin-content-docs/current/commands-legacy/structure-file.md b/i18n/pt/docusaurus-plugin-content-docs/current/commands-legacy/structure-file.md index 9b795c29a477dd..86bfca487706ab 100644 --- a/i18n/pt/docusaurus-plugin-content-docs/current/commands-legacy/structure-file.md +++ b/i18n/pt/docusaurus-plugin-content-docs/current/commands-legacy/structure-file.md @@ -70,7 +70,6 @@ O exemplo a seguir pode ser usado para descobrir se o método é chamado de um c #### Ver também -*\_o\_DATA SEGMENT LIST* [Application file](application-file.md) [COMPONENT LIST](component-list.md) [Data file](data-file.md) \ No newline at end of file diff --git a/i18n/pt/docusaurus-plugin-content-docs/current/commands-legacy/use-character-set.md b/i18n/pt/docusaurus-plugin-content-docs/current/commands-legacy/use-character-set.md index 236d56d4c38c17..ea5cf6a50217cf 100644 --- a/i18n/pt/docusaurus-plugin-content-docs/current/commands-legacy/use-character-set.md +++ b/i18n/pt/docusaurus-plugin-content-docs/current/commands-legacy/use-character-set.md @@ -43,8 +43,6 @@ A variável de sistema OK é definida como 1 se o mapa é carregado corretamente #### Ver também -*\_o\_Mac to Win* -*\_o\_Win to Mac* [EXPORT DIF](export-dif.md) [EXPORT SYLK](export-sylk.md) [EXPORT TEXT](export-text.md) diff --git a/i18n/pt/docusaurus-plugin-content-docs/current/commands/4d.md b/i18n/pt/docusaurus-plugin-content-docs/current/commands/4d.md index b411a27320dd9b..7f9902d4ef9dba 100644 --- a/i18n/pt/docusaurus-plugin-content-docs/current/commands/4d.md +++ b/i18n/pt/docusaurus-plugin-content-docs/current/commands/4d.md @@ -6,8 +6,8 @@ displayed_sidebar: docs **4D** -> Objeto -| Parâmetro | Tipo | | Descrição | -| ---------- | ------ | - | ---------------------------------------------- | -| classStore | Object | ← | Class Store containing all built-in 4D classes | +| Parâmetro | Tipo | | Descrição | +| ---------- | ------ | - | --------------------------------------------------- | +| classStore | Object | ← | Class Store contendo todas as classes 4D integradas | -The **4D** keyword is described in the [**Concept page for Classes**](../Concepts/classes.md#4d). +A palavra-chave **4D** está descrita na [**Página de conceito para as Classes**](../Concepts/classes.md#4d). diff --git a/i18n/pt/docusaurus-plugin-content-docs/current/commands/compile-project.md b/i18n/pt/docusaurus-plugin-content-docs/current/commands/compile-project.md index 94d1bc5f2a115a..f8c8a3abcbaf29 100644 --- a/i18n/pt/docusaurus-plugin-content-docs/current/commands/compile-project.md +++ b/i18n/pt/docusaurus-plugin-content-docs/current/commands/compile-project.md @@ -9,31 +9,31 @@ displayed_sidebar: docs -| Parâmetro | Tipo | | Descrição | -| ----------- | ------------------------ | - | ------------------------------------------------------- | -| projectFile | 4D. File | → | .4DProject file to compile | -| options | Object | → | Object that specifies compilation options | -| Resultado | Object | ← | Object containing information on the compilation status | +| Parâmetro | Tipo | | Descrição | +| ----------- | ------------------------ | - | -------------------------------------------------------- | +| projectFile | 4D. File | → | Arquivo .4DProject para compilar | +| options | Object | → | Objeto que especifica as opções de compilação | +| Resultado | Object | ← | Objeto contendo informações sobre o estado de compilação | -*This command is not thread-safe, it cannot be used in preemptive code.* +*Esse comando não é thread-safe, não pode ser usado em código preventivo.*
    História | Release | Mudanças | | ------- | ---------------------------------------- | -| 20 R8 | Support of `type` "formObjectExpression" | +| 20 R8 | Suporte do `type` "formObjectExpression" |
    #### Descrição -**Compile project** allows you to compile the current host project or the project specified in the *projectFile* parameter. For more information on compilation, check the [Compilation page](../Project/compiler.md). +**Compile project** permite que você compile o projeto host atual ou o projeto especificado no parâmetro *projectFile*. Para obter mais informações sobre a compilação, verifique a [página de compilação](../Project/compiler.md). -By default, the command uses the compiler options defined in the Structure Settings. You can override them by passing an *options* parameter. As seguintes sintaxes são suportadas: +Por padrão, o comando usa as opções do compilador definidas nas Configurações da estrutura. Você pode substituí-los passando um parâmetro *options*. As seguintes sintaxes são suportadas: -- **Compile project**(): compiles the opened project using the options defined in the Structure Settings +- **Compile project**(): compila o projeto aberto usando as opções definidas nas Configurações da Estrutura - **Compile project**(*options*): compiles the opened project. The *options* defined override the Structure Settings - **Compile project**(*projectFile*): compiles the *projectFile* 4DProject using the options defined in the Structure Settings - **Compile project**(*projectFile*; *options*): compiles the *projectFile* 4DProject and the *options* defined override the Structure Settings @@ -50,19 +50,19 @@ Compilation errors, if any, are returned as objects in the *errors* collection. **Note:** You cannot call this command when another compilation is running (for example, a compilation launched from the Compilation window). -##### options Parameter +##### Parâmetro opções The *options* parameter is an object. Here are the available compilation options: -| **Property** | **Type** | **Description** | +| **Propriedade** | **Tipo** | **Description** | | ---------------------------------------------------------------------------------- | -------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -| components | Collection | Collection of 4D.File objects to dependent components (must be already compiled) | +| components | Collection | Coleção de objetos 4D.File para componentes dependentes (deve já estar compilado) | | defaultTypeForButtons | Integer | Possible value: Is real or Is longint | | defaultTypeForNumerics | Integer | Possible value: Is real or Is longint | | generateSymbols | Parâmetros | True to generate symbol information in the .symbols returned object | | generateSyntaxFile | Parâmetros | True to generate a [syntax file for code completion](../settings/general.md).md#generate-syntax-file-for-code-completion-when-compiled) in the \\Resources\\en.lproj folder of the project | | generateTypingMethods | Text | "reset" or "append" to generate typing methods. If value is "append", existing variable declarations won't be modified (compiler window behavior). If value is "reset" existing variable declarations are removed beforehand. | -| plugins | 4D.Folder object | Plug-ins folder to be used instead of the [Plugins folder of the current project](../Project/architecture.md#plugins). This property is only available with the *projectFile* syntax. | +| plugins | Objeto 4D.Folder | Plug-ins folder to be used instead of the [Plugins folder of the current project](../Project/architecture.md#plugins). This property is only available with the *projectFile* syntax. | | targets | Coleção de strings | Possible values: "x86_64_generic", "arm64_macOS_lib". Pass an empty collection to execute syntax check only | | typeInference | Text | "all": The compiler deduces the types of all variables not explicitly declared, "locals": The compiler deduces the types of local variables not explicitly declared, "none": All variables must be explicitly declared in the code (legacy mode), "direct": All variables must be explicitly declared in the code ([direct typing](../Project/compiler.md#enabling-direct-typing)). | | warnings | Uma coleção de objetos | Defines the warnings state | @@ -76,7 +76,7 @@ The *options* parameter is an object. Here are the available compilation options The object returned by **Compile project** has up to three properties: -| **Property** | **Type** | **Description** | +| **Propriedade** | **Tipo** | **Description** | | ---------------------------------------------------------------------------------------------------------------------- | ---------------------- | ---------------------------------------------------------------------------------------------------------------------------------------- | | success | Parâmetros | True se a ação salvar tiver sucesso, senão False | | errors | Uma coleção de objetos | **Available only in case of error or warning**. Collection of objects describing compilation errors or warnings | @@ -95,43 +95,43 @@ The object returned by **Compile project** has up to three properties: | symbols.localVariables | Uma coleção de objetos | List of local variables per method | | symbols.localVariables[].code | Object | [objeto código](#code-object) | | symbols.localVariables[].variables | Collection | Coleção de [objetos variáveis](#variable-objects) | -| symbols.methods | Uma coleção de objetos | List of methods | +| symbols.methods | Uma coleção de objetos | Lista de métodos | | symbols.methods\[\].code | Object | [objeto código](#code-object) | | symbols.methods\[\].callCount | Number | Number of times this method has been called | | symbols.methods\[\].params | Collection | Collection of parameter types (Value type numerical codes) | | symbols.methods\[\]. threadSafe | Parâmetros | Indicates if this method is thread safe | -For more information, see [Compilation tools](../Project/compiler.md#compilation-tools). +Para obter mais informações, consulte [Ferramentas de compilação](../Project/compiler.md#compilation-tools). ###### variable objects `interprocessVariables.variables` and `processVariables.variables` contain objects with the following structure: -| **Property** | **Type** | **Description** | -| -------------- | -------- | --------------------------------------------------------------------------------------------------------- | -| name | Text | Name of the variable | -| type | number | Type of the variable (like Value type command) | -| arrayDimension | number | For arrays only: 1 for mono dimension arrays, 2 for two-dimension arrays | -| code | Object | For process and interprocess variables: descriptor of where the variable has been defined | +| **Propriedade** | **Tipo** | **Description** | +| --------------- | -------- | --------------------------------------------------------------------------------------------------------- | +| name | Text | Name of the variable | +| type | number | Type of the variable (like Value type command) | +| arrayDimension | number | For arrays only: 1 for mono dimension arrays, 2 for two-dimension arrays | +| code | Object | For process and interprocess variables: descriptor of where the variable has been defined | ###### code object The `code` property in `methods.code` and `errors.code` is an object with the following properties: -| **Property** | **Type** | **Description** | -| --------------------------------------------------------------------------------------------------------------------------- | ------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | -| type | Text | "projectMethod", "formObjectMethod", "formMethod", "databaseMethod", "triggerMethod", "executeOnServer" (when calling a project method with the *Execute on Server attribute*), "executeFormula" (when executing a formula via [PROCESS 4D TAGS](process-4d-tags.md) or evaluation of a formula in a 4D Write Pro document), "class", "classFunction", "formObjectExpression" (for errors occuring in expressions associated to form objects) | -| path | Text | Method path (same format as [METHOD OPEN PATH](method-open-path.md)) | -| file | 4D. File | Method file | -| | | **Returned depending on the value of the `type` property:** | -| methodName | Text | Métodos proyecto | -| tabela | Number | Number of the table (returned for a trigger, a table form method or a table form object method) | -| formName | Text | Form name (returned for a form method) | -| objectName | Text | Form object name (returned for an object method) | -| Esta propriedade só está disponível quando não estiver selecionado tema de fonte. | Text | Form object property name (returned for a form object expression) | -| className | Text | Class name | -| functionName | Text | Nome da função de classe | -| databaseMethod | Number | Database method index | +| **Propriedade** | **Tipo** | **Description** | +| --------------------------------------------------------------------------------------------------------------------------- | ------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| type | Text | "projectMethod", "formObjectMethod", "formMethod", "databaseMethod", "triggerMethod", "executeOnServer" (when calling a project method with the *Execute on Server attribute*), "executeFormula" (when executing a formula via [PROCESS 4D TAGS](../commands-legacy/process-4d-tags.md) or evaluation of a formula in a 4D Write Pro document), "class", "classFunction", "formObjectExpression" (for errors occuring in expressions associated to form objects) | +| path | Text | Method path (same format as [METHOD OPEN PATH](../commands-legacy/method-open-path.md)) | +| file | 4D. File | Method file | +| | | **Returned depending on the value of the `type` property:** | +| methodName | Text | Métodos proyecto | +| table | Number | Number of the table (returned for a trigger, a table form method or a table form object method) | +| formName | Text | Form name (returned for a form method) | +| objectName | Text | Form object name (returned for an object method) | +| Esta propriedade só está disponível quando não estiver selecionado tema de fonte. | Text | Form object property name (returned for a form object expression) | +| className | Text | Class name | +| functionName | Text | Nome da função de classe | +| databaseMethod | Number | Database method index | #### Exemplos @@ -191,4 +191,4 @@ var $result:=Compile project($options) #### Veja também -[BUILD APPLICATION](build-application.md) +[BUILD APPLICATION](../commands-legacy/build-application.md) diff --git a/i18n/pt/docusaurus-plugin-content-docs/current/commands/create-entity-selection.md b/i18n/pt/docusaurus-plugin-content-docs/current/commands/create-entity-selection.md index c5e936d0f4e8cd..92eb70ec8eb626 100644 --- a/i18n/pt/docusaurus-plugin-content-docs/current/commands/create-entity-selection.md +++ b/i18n/pt/docusaurus-plugin-content-docs/current/commands/create-entity-selection.md @@ -18,11 +18,11 @@ displayed_sidebar: docs #### Descrição -The `Create entity selection` command builds and returns a new, [alterable](../ORDA/entities.md#shareable-or-alterable-entity-selections) entity selection related to the dataclass matching the given *dsTable*, according to the current selection of this table. +O comando `Create entity selection` cria e retorna uma nova seleção de entidade [alterável](../ORDA/entities.md#shareable-or-alterable-entity-selections) relacionada à classe de dados correspondente à *dsTable* fornecida, de acordo com a seleção atual dessa tabela. -If the current selection is sorted, an [ordered](../ORDA/dsMapping.md#ordered-or-unordered-entity-selection) entity selection is created (the order of the current selection is kept). Se a seleção atual não for ordenada, se cria uma seleção de entidades não ordenada. +Se a seleção atual for ordenada, uma entidade [ordenada](../ORDA/dsMapping.md#ordered-or-unordered-entity-selection) é criada (a ordem da seleção atual é mantida). Se a seleção atual não for ordenada, se cria uma seleção de entidades não ordenada. -If the *dsTable* is not exposed in [`ds`](ds.md), an error is returned. Esse comando não pode usado com uma datastore remota. +Se *dsTable* não for exposta em [`ds`](ds.md), um erro será retornado. Esse comando não pode usado com uma datastore remota. No parâmetro opcional *settings*, você pode passar um objeto que contenha a seguinte propriedade: diff --git a/i18n/pt/docusaurus-plugin-content-docs/current/commands/cs.md b/i18n/pt/docusaurus-plugin-content-docs/current/commands/cs.md index ee2d7b029405c5..2e758f2649517a 100644 --- a/i18n/pt/docusaurus-plugin-content-docs/current/commands/cs.md +++ b/i18n/pt/docusaurus-plugin-content-docs/current/commands/cs.md @@ -8,4 +8,4 @@ displayed_sidebar: docs | ---------- | ------ | - | --------------------------------------------------- | | classStore | Object | ← | Class store de usuário para o projeto ou componente | -The **cs** keyword is described in the [**Concept page for Classes**](../Concepts/classes.md#cs). +A palavra-chave **cs** está descrita na [**Página Conceito para Classes**](../Concepts/classes.md#cs). diff --git a/i18n/pt/docusaurus-plugin-content-docs/current/commands/dialog.md b/i18n/pt/docusaurus-plugin-content-docs/current/commands/dialog.md index c299de44d06bda..06898188e00839 100644 --- a/i18n/pt/docusaurus-plugin-content-docs/current/commands/dialog.md +++ b/i18n/pt/docusaurus-plugin-content-docs/current/commands/dialog.md @@ -61,12 +61,13 @@ The dialog is closed by the user either with an "accept" action (triggered by th Keep in mind that validation does not equal saving: if the dialog includes fields, you must explicitly call the [SAVE RECORD](../commands-legacy/save-record.md) command to save any data that has been modified. +If you pass the optional *\** parameter, the form is loaded and displayed in the last open window of the current process and the command finishes its execution while leaving the active form on the screen.\ If you pass the optional *\** parameter, the form is loaded and displayed in the last open window of the current process and the command finishes its execution while leaving the active form on the screen.\ This form then reacts “normally” to user actions and is closed using a standard action or when 4D code related to the form (object method or form method) calls the [CANCEL](../commands-legacy/cancel.md) or [ACCEPT](../commands-legacy/accept.md) command. If the current process terminates, the forms created in this way are automatically closed in the same way as if a [CANCEL](../commands-legacy/cancel.md) command had been called. This opening mode is particularly useful for displaying a floating palette with a document, without necessarily requiring another process. **Notas:** -- You can combine the use of the **DIALOG**(form;\*) syntax with the [CALL FORM](call-form.md) command to establish communication between the forms. +- You can combine the use of the **DIALOG**(form;\*) syntax with the [CALL FORM](../commands-legacy/call-form.md) command to establish communication between the forms. - You must create a window before calling the **DIALOG**(form;\*) statement. It is not possible to use the current dialog window in the process nor the window created by default for each process. Otherwise, error -9909 is generated. - When the *\** parameter is used, the window is closed automatically following a standard action or a call to the [CANCEL](../commands-legacy/cancel.md) or [ACCEPT](../commands-legacy/accept.md) command. You do not have to manage the closing of the window itself. @@ -169,7 +170,7 @@ After a call to **DIALOG**, if the dialog is accepted, OK is set to 1; if it is [ACCEPT](../commands-legacy/accept.md)\ [ADD RECORD](../commands-legacy/add-record.md)\ -[CALL FORM](call-form.md)\ +[CALL FORM](../commands-legacy/call-form.md)\ [CANCEL](../commands-legacy/cancel.md)\ [Form](form.md)\ [Open window](../commands-legacy/open-window.md) diff --git a/i18n/pt/docusaurus-plugin-content-docs/current/commands/ds.md b/i18n/pt/docusaurus-plugin-content-docs/current/commands/ds.md index 51f54aa89ca031..26cf5854cd7d9c 100644 --- a/i18n/pt/docusaurus-plugin-content-docs/current/commands/ds.md +++ b/i18n/pt/docusaurus-plugin-content-docs/current/commands/ds.md @@ -21,13 +21,13 @@ O comando `ds` retorna uma referência ao data Se omitir o parâmetro localID (ou se passa uma string vazia ""), o comando devolve uma referência ao armazém de dados que coincide com a base de dados local de 4D (ou a base de datos de 4D Server em caso de abrir uma base de dados remota em 4D Server). O repositório de dados é aberto automaticamente e está disponível diretamente por meio do `ds`. -Você também pode obter uma referência em um datastore remoto aberto passando seu ID local no parâmetro *localID*. The datastore must have been previously opened with the [`Open datastore`](open-datastore.md) command by the current database (host or component). A identificação local se define quando se utilizar este comando. +Você também pode obter uma referência em um datastore remoto aberto passando seu ID local no parâmetro *localID*. O datastore deve ter sido aberto anteriormente com o comando [`Open datastore`](open-datastore.md) pelo banco de dados atual (host ou componente). A identificação local se define quando se utilizar este comando. > O escopo do id local do banco de dados no qual o armazen de dados foi aberto. Se nenhum datastore *localID* for encontrado, o comando retornará **Null**. -Objects available in the `cs.Datastore` are mapped from the target database with respect to the [ORDA general rules](../ORDA/dsMapping.md#general-rules). +Os objetos disponíveis no `cs.Datastore` são mapeados a partir do banco de dados de destino conforme as [regras gerais do ORDA](../ORDA/dsMapping.md#general-rules). #### Exemplo 1 diff --git a/i18n/pt/docusaurus-plugin-content-docs/current/commands/form-event-code.md b/i18n/pt/docusaurus-plugin-content-docs/current/commands/form-event-code.md index 295ef82dca3895..2c92e471d0aa1f 100644 --- a/i18n/pt/docusaurus-plugin-content-docs/current/commands/form-event-code.md +++ b/i18n/pt/docusaurus-plugin-content-docs/current/commands/form-event-code.md @@ -102,7 +102,7 @@ This example is a template for a form method. It shows each of the possible even #### Exemplo -This example shows the template of a form method that handles the events that can occur for a form displayed using the [DISPLAY SELECTION](display-selection.md) or [MODIFY SELECTION](modify-selection.md) commands. For didactic purposes, it displays the nature of the event in the title bar of the form window. +This example shows the template of a form method that handles the events that can occur for a form displayed using the [DISPLAY SELECTION](../commands-legacy/display-selection.md) or [MODIFY SELECTION](../commands-legacy/modify-selection.md) commands. For didactic purposes, it displays the nature of the event in the title bar of the form window. ```4d   //A form method @@ -141,7 +141,7 @@ This example shows the template of a form method that handles the events that ca #### Exemplo 2 -For examples on how to handle [`On Before Keystroke`](../Events/onBeforeKeystroke.md) and [`On After Keystroke`](../Events/onAfterKeystroke.md) events, see examples for the [Get edited text](get-edited-text.md), [Keystroke](keystroke.md) and [FILTER KEYSTROKE](filter-keystroke.md) commands. +For examples on how to handle [`On Before Keystroke`](../Events/onBeforeKeystroke.md) and [`On After Keystroke`](../Events/onAfterKeystroke.md) events, see examples for the [Get edited text](../commands-legacy/get-edited-text.md), [Keystroke](../commands-legacy/keystroke.md) and [FILTER KEYSTROKE](../commands-legacy/filter-keystroke.md) commands. #### Exemplo 6 @@ -342,11 +342,11 @@ As a result, the red rectangle follows the scrolling of the list box: #### Veja também [Form Events](../Events/overview.md) -[CALL SUBFORM CONTAINER](call-subform-container.md)\ -[Current form table](current-form-table.md)\ -[FILTER KEYSTROKE](filter-keystroke.md)\ +[CALL SUBFORM CONTAINER](../commands-legacy/call-subform-container.md)\ +[Current form table](../commands-legacy/current-form-table.md)\ +[FILTER KEYSTROKE](../commands-legacy/filter-keystroke.md)\ [FORM Event](form-event.md)\ -[Get edited text](get-edited-text.md)\ -[Keystroke](keystroke.md)\ -[POST OUTSIDE CALL](post-outside-call.md)\ -[SET TIMER](set-timer.md) +[Get edited text](../commands-legacy/get-edited-text.md)\ +[Keystroke](../commands-legacy/keystroke.md)\ +[POST OUTSIDE CALL](../commands-legacy/post-outside-call.md)\ +[SET TIMER](../commands-legacy/set-timer.md) diff --git a/i18n/pt/docusaurus-plugin-content-docs/version-18/Backup/backup.md b/i18n/pt/docusaurus-plugin-content-docs/version-18/Backup/backup.md index 7675e530113590..16b376cbeff09e 100644 --- a/i18n/pt/docusaurus-plugin-content-docs/version-18/Backup/backup.md +++ b/i18n/pt/docusaurus-plugin-content-docs/version-18/Backup/backup.md @@ -65,25 +65,25 @@ Pode acontecer que uma cópia de segurança não seja executada corretamente. Po Em todos os casos, lembre que o estado da última copia de segurança (correta ou com falha) se armazena na área de informação da [página de cópias de segurança em CSM](MSC/backup.md) ou na **página de manutenção** de 4D Server, assim como no banco de dados **Backup journal.txt**. - **Interrupção pelo usuário**: o **Botão Parar** na caixa de diálogo de progresso permite aos usuários interromper o processo de cópia de segurança a qualquer momento. Nesse caso, a cópia de elementos para sendo gerado o erro 1406. Pode interceptar esse erro no método database `On Backup Shutdown`. -- **Attached file not found**: When an attached file cannot be found, 4D performs a partial backup (backup of database files and accessible attached files) and returns an error. -- **Backup impossible** (disk is full or write-protected, missing disk, disk failure, incomplete transaction, database not launched at time of scheduled automatic backup, etc.): If this is a first-time error, 4D will then make a second attempt to perform the backup. The wait between the two attempts is defined on the **Backup/Backup & Restore** page of the Database Settings. Se a segunda tentativa falhar, um diálogo de alerta de sistema é exibido e um erro é gerado. Pode interceptar esse erro no método database `On Backup Shutdown`. +- **Arquivo anexado não encontrado**: quando um arquivo anexado não pode ser encontrado, 4D realiza um backup parcial (backup de arquivos de banco de dados e arquivos anexados acessíveis) e retorna um erro. +- **Backup impossível** (o disco está cheio ou protegido contra gravação, falta de disco, falha de disco, transação incompleta, banco de dados não iniciado no momento do backup automático programado, etc.): Se esse for um erro de primeira vez, 4D fará uma segunda tentativa de realizar o backup. O tempo de espera entre as duas tentativas é definido na página **Backup/Backup & Restaurar** das configurações do banco de dados. Se a segunda tentativa falhar, um diálogo de alerta de sistema é exibido e um erro é gerado. Pode interceptar esse erro no método database `On Backup Shutdown`. ## Página de Backup -To make following up and verifying database backups easier, the backup module writes a summary of each operation performed in a special file, which is similar to an activity journal. Da mesma forma que no manual de bordo, todas as operações (backups, restaurações, integrações de histórico) são escritas nesse arquivo, não importa se a operação foi programada ou manual. A data e hora em que essas operações acontecem também é anotada no histórico. +Para facilitar o acompanhamento e a verificação dos backups dos bancos de dados, o módulo de backup grava um resumo de cada operação executada em um arquivo especial, semelhante a um diário de atividade. Da mesma forma que no manual de bordo, todas as operações (backups, restaurações, integrações de histórico) são escritas nesse arquivo, não importa se a operação foi programada ou manual. A data e hora em que essas operações acontecem também é anotada no histórico. -The backup journal is named "Backup Journal[001].txt" and is placed in the "Logs" folder of the database. O histórico de cópias de segurança pode ser aberto com o editor de texto. +O histórico de cópia de segurança é chamado "Backup Journal[001].txt" e fica na pasta "Logs" do banco de dados. O histórico de cópias de segurança pode ser aberto com o editor de texto. #### Gerenciamento do tamanho de histórico de cópias de segurança. Em determinadas estratégias de copia de segurança (por exemplo, no caso de que se realizem copias de segurança de numerosos arquivos anexos), o histórico de cópias de segurança pode alcançar rapidamente um grande tamanho. Dois mecanismos podem ser usados para controlar este tamanho: - **Copia de segurança automática**: antes de cada copia de segurança, a aplicação examina o tamanho do arquivo historial de cópia de segurança atual. Se for superior a 10 MB, se arquiva o arquivo atual e é criado um arquivo com o número [xxx] incrementado, por exemplo "Backup Journal[002].txt”. Quando o arquivo número 999 for alcançado, a numeração volta para 1 e os arquivos existentes começam a ser substituídos. -- **Possibility of reducing the amount of information recorded**: To do this, simply modify the value of the `VerboseMode` key in the *Backup.4DSettings* file of the database. Como padrão, essa chave é definida como True. Se mudar o valor desta chave a False, só se armazenará no diário de copias de segurança a informação principal: data e hora de inicio da operação e os erros encontrados. As chaves XML relativas a configuração da cópia de segurança são descritos no manual *Backup das chaves XML 4D*. +- **Possibilidade de reduzir a quantidade de informação gravada**: para fazer isso, modifique o valor da chave `VerboseMode` no arquivo *Backup.4DSettings* do banco de dados. Como padrão, essa chave é definida como True. Se mudar o valor desta chave a False, só se armazenará no diário de copias de segurança a informação principal: data e hora de inicio da operação e os erros encontrados. As chaves XML relativas a configuração da cópia de segurança são descritos no manual *Backup das chaves XML 4D*. ## backupHistory.json -All information regarding the latest backup and restore operations are stored in the database's **backupHistory.json** file. Registra a rota de cada arquivo guardado (incluídos os anexos), assim como o número, a data, a hora, a duração e o estado de cada operação. Para limitar o tamanho do arquivo, o número de operações registradas é o mesmo que o número de backups disponíveis ("Keep only the last X backup files") definido nas configurações de backup. +Todas as informações sobre as últimas operações de backup e restauração são armazenadas no arquivo **backupHistory.json** do banco de dados. Registra a rota de cada arquivo guardado (incluídos os anexos), assim como o número, a data, a hora, a duração e o estado de cada operação. Para limitar o tamanho do arquivo, o número de operações registradas é o mesmo que o número de backups disponíveis ("Keep only the last X backup files") definido nas configurações de backup. O arquivo **backupHistory.json** é criado na pasta de destino do backup atual. Pode obter a rota para esse arquivo usando a declaração abaixo: diff --git a/i18n/pt/docusaurus-plugin-content-docs/version-18/Backup/log.md b/i18n/pt/docusaurus-plugin-content-docs/version-18/Backup/log.md index 028759c39cf9e3..025aa9ca485833 100644 --- a/i18n/pt/docusaurus-plugin-content-docs/version-18/Backup/log.md +++ b/i18n/pt/docusaurus-plugin-content-docs/version-18/Backup/log.md @@ -5,15 +5,15 @@ title: Arquivo de Log (.journal) A continuously-used database is always record changes, additions or deletions. Realizar backups ou cópias de segurança regularmente é importante mas lembre que não permite (em caso de problemas) restaurar os dados registrados depois do último backup. Para responder à essa necessidade, 4D oferece agora uma ferramenta específica: o arquivo de log. Este arquivo permite garantir a segurança permanente dos dados do banco de dados. Este ficheiro permite garantir a segurança permanente dos dados do banco de dados. -Além disso, 4D trabalha constantemente com dados cache em memória. Any changes made to the data of the database are stored temporarily in the cache before being written to the hard disk. Isso acelera a operação das aplicações; na verdade, acessar a memória é mais rápido que acessar o disco rígido. If an incident occurs in the database before the data stored in the cache could be written to the disk, you must include the current log file in order to restore the database entirely. +Além disso, 4D trabalha constantemente com dados cache em memória. Todas as mudanças realizadas nos dados do banco de dados são armazenados temporariamente na cache antes de serem escritas no disco duro. Isso acelera a operação das aplicações; na verdade, acessar a memória é mais rápido que acessar o disco rígido. Se acontecer algo no banco de dados antes que armazenagem dos dados na cache possa ser gravada no disco duro, precisa incluir o arquivo de histórico atual para poder restaurar o banco de dados por completo. -Finally, 4D has functions that analyze the contents of the log file, making it possible to rollback the operations carried out on the data of the database. Essa funções estão disponíveis no MSC: veja a página de[Análise de atividade](MSC/analysis.md) e a página [Rollback](MSC/rollback.md). +Por último, 4D possui funções que analisam os conteúdos do arquivo de histórico, tornando possível reverter as operações realizadas sobre os dados do banco de dados. Essa funções estão disponíveis no MSC: veja a página de[Análise de atividade](MSC/analysis.md) e a página [Rollback](MSC/rollback.md). ## como o arquivo de histórico funciona -The log file generated by 4D contains a descrption of all operations performed on the data of journaled tables of the database, which are logged sequentially. Como padrão, todas as tabelas são registradas, ou seja, incluidas no arquivo de histórico, mas pode desmarcar as tabelas individuais usando a propriedade de tabela **Incluir no arquivo de histórico**. +O arquivo de histórico gerado por 4D contém uma descrição de todas as operações realizadas nos dados das tabelas registradas no diário do banco de dados, as quais são registradas de forma sequencial. Como padrão, todas as tabelas são registradas, ou seja, incluidas no arquivo de histórico, mas pode desmarcar as tabelas individuais usando a propriedade de tabela **Incluir no arquivo de histórico**. -As such, each operation performed by a user causes two simultaneous actions: the first one in the database (instruction is executed normally) and the second one in the log file (the description of the operation is recorded). O arquivo de historial se cria de forma independente, sem perturbar nem ralentar o trabalho do usuário. Um banco de dados só pode trabalhar com um ficheiro de registo de cada vez. O arquivo de historial registra os seguintes tipos de ações: +Dessa forma, cada operação realizada por um usuário causa duas ações simultâneas: a primeira no banco de dados (instrução é realizada normalmente) e a segunda ação no arquivo de histórico (a descrição da ação é registrada). O arquivo de historial se cria de forma independente, sem perturbar nem ralentar o trabalho do usuário. Um banco de dados só pode trabalhar com um ficheiro de registo de cada vez. O arquivo de historial registra os seguintes tipos de ações: - Abertura e fechamento de arquivos de dados, - Abertura e fechamento de processos (contextos), @@ -33,44 +33,44 @@ A instrução abaixo resume o funcionamento do arquivo de historial: O arquivo de historial atual se guarda automaticamente com o arquivo de dados atual. Este mecanismo tem duas vantagens distintas: - Evitar a saturação do volume de disco onde se armazena o arquivo de historial. Sem uma cópia de segurança, o arquivo de histórico ficaria cada vez maior com o uso, e acabaria utilizando todo o espaço disponível no disco. Para cada cópia de segurnça do arquivo de dados, 4D ou 4D Server fecha o arquivo de histórico atual e imediatamente inicia um novo arquivo vazio, evitando assim o riesco de saturação. A continuação, o arquivo de historial antigo se arquiva e, finalmente, se destrói em função do mecanismo de gestão dos conjuntos de cópias de seguriança. -- It keeps log files corresponding to backups in order to be able to parse or repair a database at a later point in time. The integration of a log file can only be done in the database to which it corresponds. Para poder integrar corretamente um arquivo de historial em uma cópia de segurança, é importante que as cópias de segurança e os arquivos de historial se arquivem simultaneamente. +- Conserva os arquivos de histórico correspondentes às cópias de segurança para poder analisar ou reparar um banco de dados em um momento posterior. A integração de um arquivo de histórico só pode ser realizada no banco de dados ao qual corresponde. Para poder integrar corretamente um arquivo de historial em uma cópia de segurança, é importante que as cópias de segurança e os arquivos de historial se arquivem simultaneamente. ## Criar o arquivo de histórico -By default, any database created with 4D uses a log file (option set in the **General** page of the Preferences). O arquivo de histórico é chamado *data.journal* e está na pasta Data. +Como padrão, todo banco de dados criado com 4D utiliza um arquivo de histórico (opção definida na página **Geral** das Preferências). O arquivo de histórico é chamado *data.journal* e está na pasta Data. -You can find out if your database uses a log file at any time: just check whether the **Use Log** option is selected on the **Backup/Configuration** page of the Database Settings. If you deselected this option, or if you use a database without a log file and wish to set up a backup strategy with a log file, you will have to create one. +Pode averiguar se seu banco de dados utiliza um arquivo de histórico a qualquer momento: só precisa comprovar se a opção **Utilizar o arquivo de histórico** estiver selecionada na página **Backup/Configuración** das Propriedades do banco. Se desmarcar essa opção, ou se usar um banco de dados sem arquivo de histórico, e quiser estabelecer uma estratégia de backup com um arquivo de histórico, vai precisar criar um. Para criar um arquivo de histórico: -1. On the **Backup/Configuration** page of the Database Settings, check the **Use Log** option. O programa exibe um caixa de diálogo abrir/novo arquivo. Como padrão, o nome arquivo é chamado *data.journal*. +1. Na página **Cópia de segurança/Configuração** das Propriedades do banco de dados, marque a opção **Utilizar o arquivo de histórico**. O programa exibe um caixa de diálogo abrir/novo arquivo. Como padrão, o nome arquivo é chamado *data.journal*. -2. Mantém o nome padrão ou renomeia, e daí seleciona o local do arquivo. If you have at least two hard drives, it is recommended that you place the log file on a disk other than the one containing the database. Se o disco duro do banco de dados for perdido, você ainda poderá recuperar o arquivo de histórico. +2. Mantém o nome padrão ou renomeia, e daí seleciona o local do arquivo. Se tiver pelo menos dois discos duros, é recomendado que coloque o arquivo de histórico no disco que não tenha seu banco de dados. Se o disco duro do banco de dados for perdido, você ainda poderá recuperar o arquivo de histórico. 3. Clique **Salvar**. O disco e o nome do arquivo de histórico aberto agora estão exibidos na área **Usar histórico** da caixa de diálogo. Pode clicar nessa área para exibir um menu pop-up contendo a rota de histórico no disco. 4. Validar a caixa de diálogo Propriedades da base de dados. -In order for you to be able to create a log file directly, the database must be in one of the following situations: +Para poder criar um arquivo de histórico diretamente, o banco de dados deve estar em uma das situações abaixo: - O arquivo de dados está em branco, - Acabou de efetuar uma cópia de segurança da base de dados e ainda não foram feitas quaisquer alterações aos dados. -In all other cases, when you validate the Database Settings dialog box, an alert dialog box will appear to inform you that it is necessary to perform a backup. Se clicar em **Aceitar**, a cópia de segurança começa imediatamente, e depois se ativa o arquivo de histórico. If you click **Cancel**, the request is saved but the creation of the log file is postponed and it will actually be created only after the next backup of the database. This precaution is indispensable because, in order to restore a database after any incidents, you will need a copy of the database into which the operations recorded in the log file will be integrated. +Em todos os outros casos, quando validar a caixa de diálogo Propriedades de Banco de Dados, um diálogo de alerta informará ser necessário fazer um backup. Se clicar em **Aceitar**, a cópia de segurança começa imediatamente, e depois se ativa o arquivo de histórico. Se você clicar em **Cancelar**, a solicitação é salva, mas a criação do arquivo de log foi adiada e ela será realmente criada somente após o próximo backup do banco de dados. Esta precaução é indispensável porque, para restaurar um banco de dados após quaisquer incidentes, você precisará de uma cópia do banco de dados onde as operações registradas no arquivo de log serão integradas. -Without having to do anything else, all operations performed on the data are logged in this file and it will be used in the future when the database is opened. +Sem ter que fazer nada a mais, todas as operações realizadas sobre os dados são registradas nesse arquivo, usadas no futuro quando abrir o banco de dados. Precisa criar outro arquivo de histórico se criar um novo arquivo de dados. Precisa estabelecer ou criar outro arquivo de shitórico se abrir outro arquivo de dados que não estiver linnkado a um arquivo de histórico (ou se o arquivo de histórico estiver faltando). ## Parando um arquivo de log -If you would like to stop logging operations to the current log file, simply deselect the **Use Log** option on the **Backup/Configuration** page of the Database Settings. +Se quiser parar as operações de registro no arquivo de histórico atual, apenas desmarque a opção **Usar o arquivo de histórico** na página **Backup/Configuração** das Propriedades do banco de dados. 4D então exibe uma mensagem de alerta para avisar que a ação evita de aproveitar as vantagens de segurança de ter um arquivo de histórico: ![](../assets/en/Backup/backup06.png) -If you click **Stop**, the current log file is immediately closed (the Database Settings dialog box does not need to be validated afterwards). +Se clicar **Stop**, o arquivo de histórico é imediatamente fechado (a caixa de diálogo Propriedades do banco de dados não precisa ser validada depois). Se quiser fechar o arquivo de histórico atual porque é muito grande, pode considerar realizar um backup de arquivo de dados, o que vai fazer com que também se crie uma cópia de segurança do arquivo de histórico diff --git a/i18n/pt/docusaurus-plugin-content-docs/version-18/Backup/overview.md b/i18n/pt/docusaurus-plugin-content-docs/version-18/Backup/overview.md index cd8d6f7750a890..42348a4b3d41c4 100644 --- a/i18n/pt/docusaurus-plugin-content-docs/version-18/Backup/overview.md +++ b/i18n/pt/docusaurus-plugin-content-docs/version-18/Backup/overview.md @@ -5,15 +5,15 @@ title: Visão Geral 4D inclui um módulo completo de backup e restauração de banco de dados. -This module allows backing up a database currently in use without having to exit it. Cada cópia de segurança ou backup inclui a pasta de projeto, o arquivo de dados e qualquer arquivo ou pastas adicionais. Estes parâmetros são definidos primeiro nas definições da base de dados. +Esse módulo permite a cópia de segurança do banco de dados atualmente em uso sem ter que sair dela. Cada cópia de segurança ou backup inclui a pasta de projeto, o arquivo de dados e qualquer arquivo ou pastas adicionais. Estes parâmetros são definidos primeiro nas definições da base de dados. Cópias de segurança ou backups podem ser começadas de forma manual ou de forma automatica em intervalores regulares sem qualquer intervenção do usuário. Comandos específicos da linguagem, assim como métodos de bancos de dados específicos, permitem integrar funções de backup em uma interface personalizada. A restauração de um banco de dados após um incidente pode ser feita automaticamente quando um banco de dados danificado é aberto. -Além disso, o módulo de cópia de segurança integrada pode aproveitar o arquivo .journal ([de histórico](log.md)). Esse arquivo mantém um registro de todas as operações realizadas nos dados e também assegura a segurança total entre dois backups. In case of problems with a database in use, any operations missing in the data file are automatically reintegrated the next time the database is opened. Pode ver os conteúdos do arquivo journal a qualquer momento. +Além disso, o módulo de cópia de segurança integrada pode aproveitar o arquivo .journal ([de histórico](log.md)). Esse arquivo mantém um registro de todas as operações realizadas nos dados e também assegura a segurança total entre dois backups. Em caso de problemas com o banco de dados em uso, quaisquer operações faltando no arquivo de dados são automaticamente reintegradas na próxima vez que a base de dados for aberta. Pode ver os conteúdos do arquivo journal a qualquer momento. -> You can also implement alternative solutions for replicating and synchronizing data in order to maintain identical versions of databases for backup purposes. These solutions can be based on the following mechanisms and technologies: +> Pode implementar também soluções alternativas para replicar e sincronizar dados para manter versões idênticas de bancos de dados por razões de backup. These solutions can be based on the following mechanisms and technologies: > - Setting up a logical mirror with 4D Server (using the integrated backup module mechanisms) > - Synchronization using SQL - Synchronization using HTTP (/rest/url) diff --git a/i18n/pt/docusaurus-plugin-content-docs/version-18/Backup/restore.md b/i18n/pt/docusaurus-plugin-content-docs/version-18/Backup/restore.md index 3c661b8264acb9..c3fde4b6515de6 100644 --- a/i18n/pt/docusaurus-plugin-content-docs/version-18/Backup/restore.md +++ b/i18n/pt/docusaurus-plugin-content-docs/version-18/Backup/restore.md @@ -3,23 +3,23 @@ id: restore title: Restaurar um backup --- -4D allows you to restore entire sets of database data in case of any incidents, regardless of the cause of the incident. Podem ocorrer dois tipos principais de incidentes: +4D lhe permite restaurar conjuntos inteiros de dados de um banco de dados no caso de que se apresente um incidente, independentemente da causa do mesmo. Podem ocorrer dois tipos principais de incidentes: -- A interrupção inesperada de um banco de dados durante o uso. Esse incidente pode ocorrer por causa de uma falha de energia, erro em um elemento do sistema, etc. In this case, depending on the current state of the data cache at the moment of the incident, the restore of the database can require different operations: +- A interrupção inesperada de um banco de dados durante o uso. Esse incidente pode ocorrer por causa de uma falha de energia, erro em um elemento do sistema, etc. Esse incidente pode ocorrer por causa de uma falha de energia, erro em um elemento do sistema, etc. Esse incidente pode ocorrer por causa de uma falha de energia, erro em um elemento do sistema, etc. In this case, depending on the current state of the data cache at the moment of the incident, the restore of the database can require different operations: - Se a cache estiver vazia, a base de dados abre-se normalmente. Todas as alterações efectuadas na base de dados foram registadas. Este caso não exige nenhuma operação particular - Se a cache conter operações, o arquivo de dados está intacto mas exige integrar o arquivo de histórico atual. - Se a cache estiver no processo de ser escrita, o arquivo de dados está provavelmente danificado. When restoring a backup and integrating the current log file in a encrypted database: -- A perda de ficheiro(s) de base de dados. This incident can occur because of defective sectors on the disk containing the database, a virus, manipulation error, etc. O último backup deve ser restaurado e o arquivo de histórico atual deve ser integrado. To find out if a database was damaged following an incident, simply relaunch the database using 4D. O programa realiza um autodiagnóstico e detalha as operações de restauração necessárias. Em modo automático, essas operações são realizadas diretamente sem precisar de ajuda da parte do usuário. If a regular backup strategy was put into place, the 4D restore tools will allow you to recover (in most cases) the database in the exact state it was in before the incident. +- A perda de ficheiro(s) de base de dados. This incident can occur because of defective sectors on the disk containing the database, a virus, manipulation error, etc. O último backup deve ser restaurado e o arquivo de histórico atual deve ser integrado. O último backup deve ser restaurado e o arquivo de histórico atual deve ser integrado. Para descobrir se uma base de dados foi danificada após um incidente, simplesmente reinicie a base de dados usando 4D. O programa realiza um autodiagnóstico e detalha as operações de restauração necessárias. Em modo automático, essas operações são realizadas diretamente sem precisar de ajuda da parte do usuário. Se usar uma estratégia de backup regulares, as ferramentas de restauração de 4D permite recuperar (geralmente) o banco de dados na mesma situação que estava antes do incidente. -> 4D can launch procedures automatically to recover databases following incidents. These mechanisms are managed using two options available on the **Backup/Backup & Restore** page of the Database Settings. For more information, refer to the [Automatic Restore](settings.md#automatic-restore) paragraph. -> If the incident is the result of an inappropriate operation performed on the data (deletion of a record, for example), you can attempt to repair the database using the "rollback" function in the log file. Essa função está disponível na página [Rollback](MSC/rollback.md) do MSC. +> 4D pode lançar procedimentos automaticamente para recuperar os bancos de dados depois de um incidente. Estes mecanismos são gerenciados usando duas opções disponíveis no **Backup/Backup & Restaurar** página das configurações do banco de dados. Para mais informações, veja o parágrafo [Restauração automatica ](settings.md#automatic-restore). +> Se o incidente for resultado de uma operação inadequada realizadas nos dados (eliminação de um registro, por exemplo) pode tentar reparar o banco de dados usando a função "rollback" do arquivo de histórico. Essa função está disponível na página [Rollback](MSC/rollback.md) do MSC. ## Restaurar manualmente o backup (diálogo padrão) Pode restaurar manualmente os conteúdos de um arquivo gerado pelo módulo de cópia de segurança. Uma restauração manual pode ser necessária, por exemplo, para restaurar os conteúdos completos de um arquivo (arquivos projetos e arquivos anexos) ou, para o propósito de realizar pesquisas entre os arquivos. A restauração manual pode também ser realizada junto com a integração do arquivo de histórico atual. -The manual restore of backups can be carried out either via the standard Open document dialog box, or via the [Restore](MSC/restore) page of the MSC. A restauração através do MSC oferece mais opções e permite pré-visualizar os conteúdos dos arquivos. On the other hand, only archives associated with the open database can be restored. +A restauração manual de backups pode ser realizada via a caixa de diálogo de Abertura de documento ou através da página [Restaurar](MSC/restore) do CSM. A restauração através do MSC oferece mais opções e permite pré-visualizar os conteúdos dos arquivos. Por outro lado, apenas os arquivos associados com o banco de dados aberto podem ser restaurados. Para restaurar um banco de dados manualmente via uma caixa de diálogo padrão: @@ -29,16 +29,16 @@ Para restaurar um banco de dados manualmente via uma caixa de diálogo padrão: ![](../assets/en/Backup/backup07.png) You can also click on the **Browse...** button found just under the area in order to open any other archive file from a different location. -3. The **Restore** button launches the manual restoration of the selected element(s). 4D extrai todos os arquivos de backup do local especificado. Se o arquivo de histórico atual ou um arquivo de histórico de backup com o mesmo número que o arquivo de cópia de segurança for armazenado na mesma pasta, 4D examina seus conteúdos. Se conter operações não presentes no arquivo de dados, o programa vai perguntar se deseja integrar essas operações. A integração é feita automaticamente se a opção **Integrar último arquivo de histórico...** for marcada (ver [Restauração automática](settings.md#automatic-restore)). 4.(Optional) Click **OK** to integrate the log file into the restored database. Se a restauração e integração forem realizadas corretamente, 4D exibe uma caixa de diálogo indicando que a operação foi feita com sucesso. +3. The **Restore** button launches the manual restoration of the selected element(s). 4D extrai todos os arquivos de backup do local especificado. Se o arquivo de histórico atual ou um arquivo de histórico de backup com o mesmo número que o arquivo de cópia de segurança for armazenado na mesma pasta, 4D examina seus conteúdos. Se conter operações não presentes no arquivo de dados, o programa vai perguntar se deseja integrar essas operações. A integração é feita automaticamente se a opção **Integrar último arquivo de histórico...** for marcada (ver [Restauração automática](settings.md#automatic-restore)). 4. (Opcional) Clique em **OK** para integrar o arquivo de log no banco de dados restaurado. Se a restauração e integração forem realizadas corretamente, 4D exibe uma caixa de diálogo indicando que a operação foi feita com sucesso. 5. **Date and Time**: Date and time of backup. A pasta de destino é mostrada. Durante a restauração, 4D coloca todos os arquivos de backup nessa pasta, independente da posição dos arquivos originais no disco quando o backup começou. Dessa forma seus arquivos serão mais fáceis de encontrar. ## Restaurar manualmente a cópia de segurança (MSC) -You can manually restore an archive of the current database using the [Restore page](MSC/restore.md) of the Maintenance and Security Center (MSC). +Pode restaurar manualmente um arquivo do banco de dados atual utilizando a página [Restauração](MSC/restore.md) do Centro de Manutenção e Segurança (CMS). ## Integração manual do histórico -If you have not checked the option for the automatic integration of the log file on the Restore page of the MSC (see [Successive integration of several log files](MSC/restore.md#successive-integration-of-several-data-log-files)), a warning dialog box appears during the opening of the database when 4D notices that the log file contains more operations than have been carried out in the database. +Se você não tiver marcado a opção para a integração automática do arquivo de registro na página Restore do MSC (consulte [Integração sucessiva de vários arquivos de registro](MSC/restore.md#successive-integration-of-several-data-log-files)), uma caixa de diálogo de aviso será exibida durante a abertura do banco de dados quando o 4D perceber que o arquivo de registro contém mais operações do que as que foram executadas no banco de dados. ![](../assets/en/Backup/backup08.png) diff --git a/i18n/pt/docusaurus-plugin-content-docs/version-18/Backup/settings.md b/i18n/pt/docusaurus-plugin-content-docs/version-18/Backup/settings.md index 9a7850dc2fcc7d..f8bc6bac4b3cb0 100644 --- a/i18n/pt/docusaurus-plugin-content-docs/version-18/Backup/settings.md +++ b/i18n/pt/docusaurus-plugin-content-docs/version-18/Backup/settings.md @@ -3,7 +3,7 @@ id: settings title: Backups periódicos --- -Backup settings are defined through three pages in the Database Settings dialog box. Pode estabelecer: +As configurações de backup são definidas através de três páginas na caixa de diálogo Configurações do Banco de Dados. Pode estabelecer: - a periodicidade das cópias de segurança automáticas - os arquivos a incluir em cada backup @@ -13,15 +13,15 @@ Backup settings are defined through three pages in the Database Settings dialog ## Backups periódicos -You can automate the backup of databases opened with 4D or 4D Server (even when no client machines are connected). Isso implica definir uma frequência de cópia de segurança (horas, dias, semanas ou meses): para cada sessão, 4D automaticamente inicia uma cópia de segurança usando as configurações atuais de backup. +Pode automatizar a cópia de segurança dos bancos de dados abertos com 4D ou 4D Server (mesmo quando não houver máquinas cliente conectadas). Isso implica definir uma frequência de cópia de segurança (horas, dias, semanas ou meses): para cada sessão, 4D automaticamente inicia uma cópia de segurança usando as configurações atuais de backup. -If this application was not launched at the theoretical moment of the backup, the next time 4D is launched, it considers the backup as having failed and proceeds as set in the Database Settings (refer to [Handling backup issues](backup.md#handling-backup-issues)). +Se essa aplicação não for lançada no momento teórico do backup, na próxima vez que 4D for lançado, considera o backup como tendo falhado e continua como estabelecido nas propriedades do banco de dados (ver [Manejo de problemas da cópia de segurança](backup.md#handling-backup-issues)). -The scheduler backup settings are defined on the **Backup/Scheduler** page of the Database Settings: +Os parâmetros da cópia de segurança programador são definidos na página **Backup/Periodicidade** das Propriedades do banco de dados: ![](../assets/en/Backup/backup02.png) -The options found on this tab let you set and configure scheduled automatic backups of the database. Pode escolher uma configuração rápida padrão ou pode personalizá-la completamente. Aparecem várias opções em função da escolha realizada no menu **Cópia de segurança automática**: +As opções encontradas nessa aba permitem estabelecer e configurar as cópias de segurança automáticas programadas do banco de dados. Pode escolher uma configuração rápida padrão ou pode personalizá-la completamente. Aparecem várias opções em função da escolha realizada no menu **Cópia de segurança automática**: - **Nunca**: A função de cópia de segurança está inativa. - **Cada hora**: programa uma cópia de segurança automática a cada hora, a partir da hora seguinte. @@ -38,7 +38,7 @@ The options found on this tab let you set and configure scheduled automatic back ## Configuração -The Backup/Configuration page of the Database Settings lets you set the backup files and their location, as well as that of the log file. These parameters are specific to each database opened by the 4D application. +A página Cópia de segurança| Configuração das propriedades do banco de dados permite determinar os arquivos de cópia de segurança e sua localização, assim como a do arquivo de histórico. Esses parâmetros são específicos para cada banco de dados aberto pela aplicação 4D. ![](../assets/en/Backup/backup03.png) @@ -48,12 +48,12 @@ The Backup/Configuration page of the Database Settings lets you set the backup f Essa área lhe permite determinar quais os arquivos ou pastas que devem ser copiados durante o backup. -- **Dados**: Arquivo de dados do banco de dados. When this option is checked, the current log file of the database, if it exists, is backed up at the same time as the data. -- **Structure**: Database project folders and files. In cases where databases are compiled, this option allows you to backup the .4dz file. +- **Dados**: Arquivo de dados do banco de dados. Quando esta opção é marcada, o arquivo de registro atual da base de dados, se existir, é salvo enquanto os dados. +- **Estrutura**: arquivos e pastas do banco de dados. No caso de bancos de dados compilados, essa opção permite fazer o backup do arquivo .4dz. - **Arquivo de estrutura usuário (só para bancos binários)**: *funcionalidade obsoleta* -- **Attachments**: This area allows you to specify a set of files and/or folders to be backed up at the same time as the database. Esses arquivos podem ser de qualquer tipo (documentos ou modelos de plug-ins, etiquetas, relatórios, imagens, etc). Pode estabelecer arquivos ou pastas individuais cujos conteúdos serão respaldados completamente. Cada elemento anexado é listado com sua rota de acesso completa na área "Anexos". +- **Arquivos anexos**: esta área permite especificar um conjunto de arquivos ou pastas que sofrerão o backup no mesmo momento que o banco de dados. Esses arquivos podem ser de qualquer tipo (documentos ou modelos de plug-ins, etiquetas, relatórios, imagens, etc). Pode estabelecer arquivos ou pastas individuais cujos conteúdos serão respaldados completamente. Cada elemento anexado é listado com sua rota de acesso completa na área "Anexos". - **Eliminar**: retira o arquivo selecionado da lista de arquivos anexos. - - **Adicionar pasta...**: mostra uma caixa de diálogo que permite selecionar uma pasta para adicionar à cópia de segurança. No caso de uma restauração, a pasta vai recuperar sua estrutura interna. You can select any folder or volume connected to the machine, with the exception of the folder containing the database files. + - **Adicionar pasta...**: mostra uma caixa de diálogo que permite selecionar uma pasta para adicionar à cópia de segurança. No caso de uma restauração, a pasta vai recuperar sua estrutura interna. Pode selecionar toda pasta ou volume conectado à máquina, exceto a pasta que conter os arquivos do banco de dados. - **Adicionar pasta...**: mostra uma caixa de diálogo que permite selecionar um arquivo para adicionar à cópia de segurança. ### Pasta de destino de arquivo de cópia de segurança @@ -66,11 +66,11 @@ Para modificar o local onde se armazenam esses arquivos, clique no botão **...* ### Gestão do arquivo de histórico -The **Use Log** option, when checked, indicates that the database uses a log file. Sua rota de acesso é especificada debaixo da opção. When this option is checked, it is not possible to open the database without a log file. +A opção **Utilizar o arquivo de histórico**, quando estiver marcada, indica que o banco de dados utiliza um arquivo de histórico. Sua rota de acesso é especificada debaixo da opção. Quando essa opção for marcada, não é possível abrir o banco de dados sem um arquivo de histórico. -By default, any database created with 4D uses a log file (option checked in the **General Page** of the **Preferences**). O arquivo de histórico é chamado *data.journal* e está na pasta Data. +Por padrão, qualquer banco de dados criado com 4D usa um arquivo de log (opção marcada na **Página Geral** do **Preferências**). O arquivo de histórico é chamado *data.journal* e está na pasta Data. -> Activating a new log file requires the data of the database to be backed up beforehand. Quando você marcar esta opção, uma mensagem de aviso informa que um backup é necessário. The creation of the log file is postponed and it will actually be created only after the next backup of the database. +> Ativar um novo arquivo de log requer que os dados do banco de dados sejam salvos previamente. Quando você marcar esta opção, uma mensagem de aviso informa que um backup é necessário. A criação dos arquivos de histórico é adiada e será feita somente depois do próximo backup do banco de dados. ## Cópia de segurança e restauração @@ -83,7 +83,7 @@ Modificar as opções de cópia de segurança e restauração é opcional. Seus - **Conservar unicamente os últimos X arquivos de cópia de segurança**: este parâmetro ativa e configura o mecanismo utilizado para eliminar os arquivos de cópia de segurança mais antigos, o que evita o risco de saturar a unidade de disco. Esta funcionalidade opera da seguinte maneira: uma vez finalizado o backup atual, 4D elimina o arquivo mais antigo se for encontrado no mesmo local que o arquivo do qual se está fazendo o backup e tiver o mesmo nome (pode solicitar que o arquivo mais antigo se elimine antes do backup para poupar espaço). Se, por exemplo, o número de conjuntos se definir como 3, as três primeiras cópias de segurança criam os arquivos MyBase-0001, MyBase-0002 e MyBase-0003 respectivamente. Durante o quarto backup, o arquivo MyBase-0004 é criado e MyBase-0001 é apagado. Como padrão, o mecanismo de eliminação de conjuntos está ativado e 4D salva 3 conjuntos de cópias de segurança. Para desativar o mecanismo, simplesmente desmarque a opção. > Este parâmetro diz respeito às cópias de segurança do banco de dados e dos ficheiros de registo. -- **Backup only if the data file has been modified**: When this option is checked, 4D starts scheduled backups only if data has been added, changed or deleted in the database since the last backup. Senão, o backup programado é cancelado e abandonado até o próximo backup programado. Nenhum erro é gerado, entretanto o diário de cópias de segurança assinala que a cópia de segurança foi adiada. This option also allows saving machine time for the backup of databases principally used for viewing purposes. Lembre que ao ativar esta opção não se levam em consideração as modificações realizadas nos arquivos de estrutura ou nos arquivos anexos. +- **Fazer Cópia de segurança só se o arquivo de dados tiver sido modificado**: quando marcar esta opção, 4D inicia as cópias de segurança programadas só dados tiverem sido adicionados, modificados ou eliminados no banco de dados desde o último backup. Senão, o backup programado é cancelado e abandonado até o próximo backup programado. Nenhum erro é gerado, entretanto o diário de cópias de segurança assinala que a cópia de segurança foi adiada. Esta opção também permite poupar o tempo da máquina para o backup dos bancos de dados usados principalmente para fins de visualização. Lembre que ao ativar esta opção não se levam em consideração as modificações realizadas nos arquivos de estrutura ou nos arquivos anexos. > Este parâmetro diz respeito às cópias de segurança do banco de dados e dos ficheiros de registo. @@ -94,13 +94,13 @@ Modificar as opções de cópia de segurança e restauração é opcional. Seus - **Tentar novamente depois de X segundo(s), minuto(s) ou hora(s)**: Quando essa opção for marcada, um nova tentativa de backup é executada depois do período de espera. Este mecanismo permite antecipar certas circunstancias que possam bloquear a cópia de segurança. Pode estabelecer um período de espera em segundos, minutos ou horas utilizando o menu correspondente. Se a nova tentativa também falhar, um erro é gerado e a falha é notada na área de status do último backup e no arquivo de histórico de backup. - **Cancelar a operação depois de X intentos**: este parâmetro se utiliza para definir o número máximo de tentativas de cópia de segurança que falharam. Se o backup não tiver sido realizado com sucesso depois do número máximo de tentativas estabelecido tiver sido alcançado, ele será cancelado e o erro 1401 é gerado ("Número máximo de tentativas de backup foi alcançado; backup automático foi desativado temporariamente"). Nesse caso, não se fará mais backups automáticos até que a aplicação seja reiniciada ou um backup manual se realize com sucesso. Este parâmetro é útil para evitar um caso em que um problema prolongado (que exija a intervenção humana) que impedisse a realização de uma cópia de segurança levasse a aplicação a tentar repetidamente a cópia de segurança, comprometendo seu rendimento geral. Como padrão, esse parâmetro não é marcado. -> 4D considers a backup as failed if the database was not launched at the time when the scheduled automatic backup was set to be carried out. +> 4D considera um backup como tendo falhado se o banco de dados não tiver sido lançado na hora programada o backup automático. ### Arquivo Essas opções se aplicam aos arquivos de cópia de segurança principais e aos arquivos de cópia de segurança do histórico. -- **Segment Size (Mb)** 4D allows you to segment archives, i.e., to cut it up into smaller sizes. Esse funcionamento permite, por exemplo, armazenar uma cópia de segurança em vários discos diferentes (DVD, dispositivos usb pendrive, etc). Durante a restauração, 4D vai fusionar automaticamente os segmentos. Each segment is called MyDatabase[xxxx-yyyy].4BK, where xxxx is the backup number and yyyy is the segment number. For example, the three segments of the MyDatabase database backup are called MyDatabase[0006-0001].4BK, MyDatabase[0006-0002].4BK and MyDatabase[0006-0003].4BK. O menu **Tamanho do segmento** é um combo box que permite estabelecer o tamanho em MB de cada segmento da cópia de segurança. Pode escolher um dos tamanhos pré-estabelecidos ou digitar um tamanho específico entre 0 e 2048. Se passar 0, não se produz nenhuma segmentação (isso equivale a passar **Nenhum**). +- **Segment Size (Mb)** 4D allows you to segment archives, i.e., to cut it up into smaller sizes. Esse funcionamento permite, por exemplo, armazenar uma cópia de segurança em vários discos diferentes (DVD, dispositivos usb pendrive, etc). Durante a restauração, 4D vai fusionar automaticamente os segmentos. Cada segmento é chamado MyDatabase[xxxx-yyyy].4BK, onde xxxx é o número do backup e yyyy é o número do segmento. Por exemplo, os três segmentos do backup do banco de dados do MyDatabase[0006-0001].4BK, MyDatabase[0006-0002].4BK e MyDatabase[0006-0003].4BK. O menu **Tamanho do segmento** é um combo box que permite estabelecer o tamanho em MB de cada segmento da cópia de segurança. Pode escolher um dos tamanhos pré-estabelecidos ou digitar um tamanho específico entre 0 e 2048. Se passar 0, não se produz nenhuma segmentação (isso equivale a passar **Nenhum**). - **Compression Rate** By default, 4D compresses backups to help save disk space. Entretanto, a fase de compressão de arquivo pode retardar o processo de backup quando lidar com grandes volumes de dados. A opção **Compression Rate** permite ajustar a compressão de arquivo: - **Nenhum:** Não se aplica compressão de arquivos. O backup é mais rápido, mas os arquivos são bem maiores. @@ -113,11 +113,11 @@ Essas opções se aplicam aos arquivos de cópia de segurança principais e aos ### Restauração automática -- **Restore last backup if database is damaged**: When this option is checked, the program automatically starts the restore of the data file of the last valid backup of the database, if an anomaly is detected (corrupted file, for example) during database launch. Nenhuma intervenção do usuário é necessária, mas a operação é gravada no diário da cópia de segurança. +- **Restaura a última cópia de segurança se o banco de dados for danificado**: Quando essa opção for marcada, o programa inicia automaticamente a restauração do arquivo de dados do último backup válido do banco, se uma anomalia for detectada (arquivo corrupto por exemplo) durante a o lançamento do banco de dados. Nenhuma intervenção do usuário é necessária, mas a operação é gravada no diário da cópia de segurança. -> No caso de uma restauração automática, somente o arquivo de dados é restaurado. If you wish to get the attached files or the project files, you must perform a manual restore. +> No caso de uma restauração automática, somente o arquivo de dados é restaurado. Caso deseje obter os arquivos anexados ou os arquivos do projeto, você deve executar uma restauração manual. -- **Integrate last log file if database is incomplete**: When this option is checked, the program automatically integrates the log file when opening or restoring the database. +- **Integrar o último arquivo de log se o banco de dados estiver incompleto**: quando esta opção estiver marcada, o programa integra automaticamente o arquivo de log ao abrir ou restaurar o banco de dados. - When opening a database, the current log file is automatically integrated if 4D detects that there are operations stored in the log file that are not present in the data. This situation arises, for example, if a power outage occurs when there are operations in the data cache that have not yet been written to the disk. - When restoring a database, if the current log file or a log backup file having the same number as the backup file is stored in the same folder, 4D examines its contents. If it contains operations not found in the data file, the program automatically integrates it. diff --git a/i18n/pt/docusaurus-plugin-content-docs/version-18/Concepts/about.md b/i18n/pt/docusaurus-plugin-content-docs/version-18/Concepts/about.md index 854fb775028315..fa6efb70ca2c1b 100644 --- a/i18n/pt/docusaurus-plugin-content-docs/version-18/Concepts/about.md +++ b/i18n/pt/docusaurus-plugin-content-docs/version-18/Concepts/about.md @@ -41,7 +41,7 @@ The language lets you take complete control over the design and operation of you A linguagem 4D lhe permite tomar o controle total de seus dados de uma maneira poderosa e elegante. A linguagem é fácil o suficiente para os iniciantes e sofisticada o bastante para os desenvolvedores com experiência. It provides smooth transitions from built-in database functions to a completely customized database. -Os comandos da linguagem 4D oferecem acesso aos editores padrão de gestão de registros. For example, when you use the command, you are presented with the Query Editor (which can be accessed in the Design mode using the Query command in the Records menu. Pode dizer ao comando para pesquisar por dados descritos explicitamente. Por exemplo, ([People];[People]Last Name="Smith") encontrará todas as pessoas chamadas Smith em seu banco de dados. +Os comandos da linguagem 4D oferecem acesso aos editores padrão de gestão de registros. Por exemplo, quando usar o comando, é apresentado o Editor de Consultas (ao qual se pode acessar no modo Desenho, usando o comando Query do menu Registros). Pode dizer ao comando para pesquisar por dados descritos explicitamente. Por exemplo, ([People];[People]Last Name="Smith") encontrará todas as pessoas chamadas Smith em seu banco de dados. A linguagem 4D é bem poderosa - um comando pode substituir centenas ou até milhares de linhas de códigos escritas nas linguagens tradicionais. Surpreendentemente, esse poder vem com bastante simplicidade - comandos com nomes em inglês comum. Por exemplo, para realizar uma pesquisa, se utiliza o comando `QUERY`; para adicionar um novo registro, se utiliza o comando `ADD RECORD`. diff --git a/i18n/pt/docusaurus-plugin-content-docs/version-18/Concepts/cf_branching.md b/i18n/pt/docusaurus-plugin-content-docs/version-18/Concepts/cf_branching.md index 4a78555ac4db0d..921dbce5123a46 100644 --- a/i18n/pt/docusaurus-plugin-content-docs/version-18/Concepts/cf_branching.md +++ b/i18n/pt/docusaurus-plugin-content-docs/version-18/Concepts/cf_branching.md @@ -137,11 +137,11 @@ Esse exemplo testa uma variável numérica e exibe uma caixa de alerta com uma a Else //Se não for 1, 2, ou 3, exibe um alerta ALERT("It was not one, two, or three.") //statement(s) - End case //If it is 2, display an alert - :(vResult=3) //Test if the number is 3 - ALERT("Three.") //If it is 3, display an alert - Else //If it is not 1, 2, or 3, display an alert - ALERT("It was not one, two, or three.") + End case //Se for 2, mostrar um alerta + :(vResult=3) //Testar se o número é 3 + ALERT("Three.") //Se for 3, exiba um alerta + Else //Se não for 1, 2 ou 3, exibir um alerta + ALERT("Não foram um, dois ou três.") //statement(s) End case ``` @@ -162,12 +162,12 @@ For comparison, here is the `If... Else... End if` version of the same method: ALERT("It was not one, two, or three.") End if End if - End if //If it is 2, display an alert + End if //Se for 2, exibir um alerta Else - If(vResult=3) //Test if the number is 3 - ALERT("Three.") //If it is 3, display an alert - Else //If it is not 1, 2, or 3, display an alert - ALERT("It was not one, two, or three.") + If(vResult=3) //Testa se o número é 3 + ALERT("Três.") //Se for 3, exiba um alerta + Else //Se não for 1, 2 ou 3, exibir um alerta + ALERT("Não foram um, dois ou três.") End if End if End if diff --git a/i18n/pt/docusaurus-plugin-content-docs/version-18/Concepts/components.md b/i18n/pt/docusaurus-plugin-content-docs/version-18/Concepts/components.md index 09a0e9baf4d4e4..4b6148990ffdf0 100644 --- a/i18n/pt/docusaurus-plugin-content-docs/version-18/Concepts/components.md +++ b/i18n/pt/docusaurus-plugin-content-docs/version-18/Concepts/components.md @@ -7,7 +7,7 @@ A 4D component is a set of 4D methods and forms representing one or more functio Criar e instalar componentes 4D é realizado diretamente a partir de 4D. Basically, components are managed like [plug-ins](Concepts/plug-ins.md) according to the following principles: -- A component consists of a regular structure file (compiled or not) having the standard architecture or in the form of a package (see .4dbase Extension). +- Um componente consiste em um arquivo de estrutura regular (compilado ou não) que tem a arquitetura padrão ou na forma de um pacote (ver extensão .4dbase). - To install a component in a database, you simply need to copy it into the "Components" folder of the database, placed next to the structure file or next to the 4D executable application. - A component can call on most of the 4D elements: project methods, project forms, menu bars, choice lists, pictures from the library, and so on. Não pode chamar métodos de bancos de dados e triggers. - Não é possível utilizar tabelas standard ou ficheiros de dados em componentes 4D. Entretanto um componente não pode criar ou usar tabelas, campos e arquivos de dados usando mecanismos de bancos de dados externos. São bancos 4D independentes com as que se trabalha utilizando comandos SQL. @@ -16,7 +16,7 @@ Criar e instalar componentes 4D é realizado diretamente a partir de 4D. Basical The component management mechanisms in 4D require the implementation of the following terms and concepts: -- **Matrix Database**: 4D database used for developing the component. O banco de dados matriz é um banco de dados padrão sem atributos específicos. Uma base matriz forma um único componente. The matrix database is intended to be copied, compiled or not, into the Components folder of the 4D application or the database that will be using the component (host database). +- **Matrix Database**: 4D database used for developing the component. O banco de dados matriz é um banco de dados padrão sem atributos específicos. Uma base matriz forma um único componente. A base de dados matrix destina-se a ser copiada, compilada ou não, na pasta Components da aplicação 4D ou do banco de dados que usará o componente (banco de dados de host). - **Host Database**: Database in which a component is installed and used. - **Component**: Matrix database, compiled or not, copied into the Components folder of the 4D application or the host database and whose contents are used in the host databases. @@ -29,16 +29,16 @@ By default, all the project methods of a matrix database installed as a componen - The shared project methods are found on the Methods Page of the Explorer and can be called in the methods of the host database. Seu conteúdo pode ser selecionado e copiado na área de vista prévia do Explorador. Também podem ser vistos no depurador. However, it is not possible to open them in the Method editor nor to modify them. - The other project methods of the matrix database do not appear in the Explorer but they too can be viewed in the debugger of the host database. -To protect the project methods of a component effectively, simply compile the matrix database and provide it in the form of a .4dc file (compiled database that does not contain the interpreted code). Quando um banco de dados matriz compilado é instalado como um componente: +Para proteger os métodos projeto de um componente de forma eficaz, basta compilar a base de dados matrix e fornecê-la na forma de um arquivo .4dc (banco de dados compilado que não contém o código interpretado). Quando um banco de dados matriz compilado é instalado como um componente: - The shared project methods are shown on the Methods Page of the Explorer and can be called in the methods of the host database. However, their contents will not appear in the preview area nor in the debugger. - Os outros métodos projeto do banco de dados de matriz nunca aparecerão. ## Partilhar os métodos de projeto -All the project methods of a matrix database are by definition included in the component (the database is the component), which means that they can be called and executed by the component. +Todos os métodos projeto de um banco de dados matrix são, por definição, incluídos no componente (o banco de dados é o componente), que significa que eles podem ser chamados e executados pelo componente. -On the other hand, by default these project methods will not be visible, nor can they be called in the host database. In the matrix database, you must explicitly designate the methods that you want to share with the host database. These project methods can be called in the code of the host database (but they cannot be modified in the Method editor of the host database). Esses métodos formam **pontos de entrada** no componente. +On the other hand, by default these project methods will not be visible, nor can they be called in the host database. In the matrix database, you must explicitly designate the methods that you want to share with the host database. Esses métodos projeto podem ser chamados no código do banco de dados host (mas eles não podem ser modificados no editor de métodos da base de dados host). Esses métodos formam **pontos de entrada** no componente. **Note:** Conversely, for security reasons, by default a component cannot execute project methods belonging to the host database. In certain cases, you may need to allow a component to access the project methods of your host database. To do this, you must explicitly designate the project methods of the host database that you want to make accessible to the components. @@ -72,11 +72,11 @@ When you use pointers to allow components and the host database to communicate, - The `Get pointer` command will not return a pointer to a variable of the host database if it is called from a component and vice versa. -- The component architecture allows the coexistence, within the same interpreted database, of both interpreted and compiled components (conversely, only compiled components can be used in a compiled database). Para utilizar apontadores neste caso, deve respeitar o seguinte princípio: o intérprete pode desconectar um ponteiro construído em modo compilado; no entanto, em modo compilado, não pode deconectar um ponteiro construído em modo interpretado. Let’s illustrate this principle with the following example: given two components, C (compiled) and I (interpreted), installed in the same host database. +- A arquitetura de componentes permite a coexistência, no mesmo banco de dados interpretado, de componentes interpretados e compilados (por outro lado, somente componentes compilados podem ser usados em um banco de dados compilado). Para utilizar apontadores neste caso, deve respeitar o seguinte princípio: o intérprete pode desconectar um ponteiro construído em modo compilado; no entanto, em modo compilado, não pode deconectar um ponteiro construído em modo interpretado. Vamos ilustrar esse princípio com o seguinte exemplo: dados dois componentes, C (compilados) e eu (interpretados), instalados no mesmo banco de dados host. - Se o componente C definir a variável `myCvar` , o componente I pode acessar ao valor desta variável utilizando o ponteiro `->myCvar`. - Se o componente I definir a variável `myIvar` , o componente C não pode acessar essa variável usando o ponteiro `->myIvar`. Esta sintaxe causa um erro de execução. -- The comparison of pointers using the `RESOLVE POINTER` command is not recommended with components since the principle of partitioning variables allows the coexistence of variables having the same name but with radically different contents in a component and the host database (or another component). O tipo da variável pode mesmo ser diferente em ambos os contextos. Se o `myptr1` e `myptr2` apontar cada ponto para uma variável, a comparação seguinte produzirá um resultado incorrecto: +- A comparação de ponteiros usando o comando `RESOLVE POINTER` não é recomendada com componentes, uma vez que o princípio da partição de variáveis permite a coexistência de variáveis com o mesmo nome, mas com conteúdos radicalmente diferentes em um componente e o banco de dados host (ou outro componente). O tipo da variável pode mesmo ser diferente em ambos os contextos. Se o `myptr1` e `myptr2` apontar cada ponto para uma variável, a comparação seguinte produzirá um resultado incorrecto: ```4d RESOLVE POINTER(myptr1;vVarName1;vtablenum1;vfieldnum1) @@ -119,17 +119,17 @@ SAVE RECORD($tablepointer->) Exceto pelos [Comandos não utilizáveis](#unusable-commands), um componente não pode usar qualquer comando da linguagem 4D. -When commands are called from a component, they are executed in the context of the component, except for the `EXECUTE METHOD` command that uses the context of the method specified by the command. Also note that the read commands of the “Users and Groups” theme can be used from a component but will read the users and groups of the host database (a component does not have its own users and groups). +When commands are called from a component, they are executed in the context of the component, except for the `EXECUTE METHOD` command that uses the context of the method specified by the command. Observe também que os comandos de leitura do tema "Usuários e grupos" podem ser usados a partir de um componente, mas lerão os usuários e grupos do banco de dados host (um componente não tem seus próprios usuários e grupos). -The `SET DATABASE PARAMETER` and `Get database parameter` commands are an exception: their scope is global to the database. When these commands are called from a component, they are applied to the host database. +The `SET DATABASE PARAMETER` and `Get database parameter` commands are an exception: their scope is global to the database. Quando esses comandos são chamados de um componente, eles são aplicados ao banco de dados host. Além disso, medidas especificas foram criadas para os comandos `Structure file` e `Get 4D folder` quando utilizados no marco dos componentes. -The `COMPONENT LIST` command can be used to obtain the list of components that are loaded by the host database. +O comando `COMPONENT LIST` pode ser utilizado para obter a lista de componentes carregados pelo banco de dados host. ### Comandos não utilizáveis -Os comandos abaixo não são compatíveis para seu uso dentro de um componente porque modificam o arquivo de estrutura - que está aberto em apenas leitura. Their execution in a component will generate the error -10511, “The CommandName command cannot be called from a component”: +Os comandos abaixo não são compatíveis para seu uso dentro de um componente porque modificam o arquivo de estrutura - que está aberto em apenas leitura. Sua execução em um componente irá gerar erro -10511, "O comando CommandName não pode ser chamado a partir de um componente”: - `ON EVENT CALL` - `Method called on event` @@ -152,24 +152,24 @@ Os comandos abaixo não são compatíveis para seu uso dentro de um componente p **Notas:** - O comando `Current form table` devolve `Nil` quando chamado no contexto de um formulário projeto. Por isso não pode ser usado em um componente. -- SQL data definition language commands (`CREATE TABLE`, `DROP TABLE`, etc.) cannot be used on the component database. Entretanto são compatíveis com bancos de dados externos (ver o comando SQL`CREATE DATABASE`). +- Os comandos da linguagem de definição de dados SQL(`CREATE TABLE`, `DROP TABLE`, etc.) não podem ser usados no banco de dados nos componentes. Entretanto são compatíveis com bancos de dados externos (ver o comando SQL`CREATE DATABASE`). ## Gestão de erros -An [error-handling method](Concepts/error-handling.md) installed by the `ON ERR CALL` command only applies to the running database. In the case of an error generated by a component, the `ON ERR CALL` error-handling method of the host database is not called, and vice versa. +Um [método de tratamento de erros](Concepts/error-handling.md) instalado pelo comando `ON ERR CALL` só se aplica ao banco de dados em execução. No caso de um erro gerado por um componente, o método de tratamento de erros `ON ERR CALL` do banco de dados host não é chamado, e vice-versa. ## Uso de formulários -- Só os "formulários projeto" (formulários que não estejam associados a nenhuma tabela específica) podem ser utilizados em um componente. Any project forms present in the matrix database can be used by the component. +- Só os "formulários projeto" (formulários que não estejam associados a nenhuma tabela específica) podem ser utilizados em um componente. Qualquer formulário projeto presente no banco de dados matrix pode ser usado pelo componente. - Um componente pode chamar formulários tabela do banco de dados local. Note que nesse caso é necessário usar ponteiros ao invés de nomes de tabelas entre colchetes [] para especificar os formulários no código do componente. -**Note:** If a component uses the `ADD RECORD` command, the current Input form of the host database will be displayed, in the context of the host database. Consequently, if the form includes variables, the component will not have access to it. +**Nota:** se um componente usa o comando `ADD RECORD`, a forma atual de entrada do banco de dados host será exibida, no contexto do banco de dados host. Por isso se o formulário incluir variáveis, o componente não terá acesso às mesmas. - Pode publicar formulários componentes como subformulários nos bancos de dados locais. Pode publicar formulários componentes como subformulários no banco de dados local Isso significa que pode desenvolver componentes oferecendo objetos gráficos. Por exemplo, Widgets fornecidos por 4D são baseados no uso de subformulários em componentes. ## Uso de tabelas e campos -A component cannot use the tables and fields defined in the 4D structure of the matrix database. Mas pode criar e usar bancos de dados externos e então usar suas tabelas e campos de acordo com suas necessidades. Pode criar e gerenciar bancos de dados externos usando SQL. An external database is a 4D database that is independent from the main 4D database, but that you can work with from the main 4D database. Usar um banco externo significa designar temporariamente esse banco de dados como o banco atual, em outras palavras, o banco alvo para as pesquisas SQL executadas por 4D. Pode criar bancos externos usando o comando SQL `CREATE DATABASE`. +Um componente não pode usar as tabelas e os campos definidos na estrutura 4D do banco de dados matriz. Mas pode criar e usar bancos de dados externos e então usar suas tabelas e campos de acordo com suas necessidades. Pode criar e gerenciar bancos de dados externos usando SQL. Uma base de dados externa é uma base de dados 4D independente da base de dados principal da 4D, mas com isso você pode trabalhar a partir da base de dados principal 4D. Usar um banco externo significa designar temporariamente esse banco de dados como o banco atual, em outras palavras, o banco alvo para as pesquisas SQL executadas por 4D. Pode criar bancos externos usando o comando SQL `CREATE DATABASE`. ### Exemplo @@ -249,16 +249,16 @@ Lendo de um banco externo: ## Uso de recursos -Os componentes podem utilizar recursos. In conformity with the resource management principle, if the component is of the .4dbase architecture (recommended architecture), the Resources folder must be placed inside this folder. +Os componentes podem utilizar recursos. Em conformidade com o princípio da gestão dos recursos, se a componente for de arquitetura .4dbase (arquitetura recomendada), a pasta Recursos deve ser colocada dentro desta pasta. Os mecanismos automáticos estão operacionais: os arquivos XLIFF encontrados na pasta Recursos de um componente serão carregados por este componente. -In a host database containing one or more components, each component as well as the host databases has its own “resources string.” Resources are partitioned between the different databases: it is not possible to access the resources of component A from component B or the host database. +Em um banco de dados host contendo um ou mais componentes, cada componente, bem como os bancos de dados de host tem sua própria "string de recursos." Os recursos são particionados entre os diferentes bancos de dados: não é possível acessar os recursos do componente A do componente B ou do banco de dados host. ## Ajuda on-line para componentes -A specific mechanism has been implemented in order to allow developers to add on-line help to their components. O princípio é o mesmo que o previsto para os bancos de dados 4D: +Um mecanismo específico foi implementado para permitir que desenvolvedores adicionem ajuda on-line a seus componentes. O princípio é o mesmo que o previsto para os bancos de dados 4D: -- The component help must be provided as a file suffixed .htm, .html or (Windows only) .chm, -- The help file must be put next to the structure file of the component and have the same name as the structure file, -- This file is then automatically loaded into the Help menu of the application with the title “Help for...” followed by the name of the help file. +- A ajuda do componente deve ser fornecida como um arquivo com sufixo .htm, .html ou (apenas Windows) .chm, +- O arquivo de ajuda deve ser colocado ao lado do arquivo de estrutura do componente e ter o mesmo nome que o arquivo de estrutura +- Este arquivo é então carregado automaticamente no menu Ajuda da aplicação com o título "Ajuda..” seguido pelo nome do arquivo de ajuda. diff --git a/i18n/pt/docusaurus-plugin-content-docs/version-18/Concepts/data-types.md b/i18n/pt/docusaurus-plugin-content-docs/version-18/Concepts/data-types.md index 39fd5d392d3c10..668e702b11a399 100644 --- a/i18n/pt/docusaurus-plugin-content-docs/version-18/Concepts/data-types.md +++ b/i18n/pt/docusaurus-plugin-content-docs/version-18/Concepts/data-types.md @@ -33,34 +33,34 @@ Apesar de geralmente serem equivalentes, alguns tipos de dados disponíveis no n ## Valor padrão -When variables are typed by means of a compiler directive, they receive a default value, which they will keep during the session as long as they have not been assigned. +Quando as variáveis são digitadas por uma diretiva de compilador, elas recebem um valor padrão, que eles manterão durante a sessão, desde que não tenham sido atribuídos. -The default value depends on the variable type and category, its execution context (interpreted or compiled), as well as, for compiled mode, the compilation options defined on the Compiler page of the Database settings: +O valor padrão depende da variável e categoria, seu contexto de execução (interpretado ou compilado), bem como, para o modo compilado, as opções de compilação definidas na página Compilador das configurações do banco de dados: -- Process and interprocess variables are always set "to zero" (which means, depending on the case, "0", an empty string, an empty Blob, a Nil pointer, a blank date (00-00-00), etc.) +- As variáveis processo e interprocessos são sempre definidos "para zero" (que significa, dependendo do caso, "0", uma linha vazia, um Blob, um ponteiro Nil, uma data em branco (00-00-00), etc.) - As variáveis locais são definidas: - em modo interpretado: a zero - - in compiled mode, depending on the **Initialize local variables** option of the Database settings: + - no modo compilado, dependendo da opção **Inicializar variáveis locais** das configurações do banco de dados: - "a zero": a zero (ver acima), - - "to a random value": 0x72677267 for numbers and times, always True for Booleans, the same as "to zero" for the others, - - "no": no initialization, meaning whatever is in RAM is used for the variables, like values used before for other variables. **Nota:** 4D recomenda a utilização de "em zero". + - "para um valor aleatório": 0x72677267 para números e vezes, sempre True para Booleanos, o mesmo que "para zero" para os outros, + - "no": nenhuma inicialização, significando o que quer que esteja na RAM é usado para as variáveis, como valores usados antes para outras variáveis. **Nota:** 4D recomenda a utilização de "em zero". A tabela seguinte ilustra estes valores por defeito: -| Tipo | Interprocess/Process (interpreted/compiled), Local (interpreted/compiled "to zero") | Local compilado "aleatório" | Local compilado "não" | -| ------------ | ----------------------------------------------------------------------------------- | --------------------------- | --------------------------- | -| Booleano | False | True | True (varia) | -| Date | 00-00-00 | 00-00-00 | 00-00-00 | -| Integer | 0 | 1919382119 | 909540880 (varia) | -| Hora | 00:00:00 | 533161:41:59 | 249345:34:24 (varia) | -| Imagem | tamanho da imagem=0 | tamanho da imagem=0 | tamanho da imagem=0 | -| Real | 0 | 1.250753659382e+243 | 1,972748538022e-217 (varia) | -| Ponteiro | Nil=true | Nil=true | Nil=true | -| Text | "" | "" | "" | -| Blob | Tamanho do Blob =0 | Tamanho do Blob =0 | Tamanho do Blob =0 | -| Object | null | null | null | -| Collection | null | null | null | -| Diferente de | indefinido | indefinido | indefinido | +| Tipo | Interprocesso/Processo (interpretado/compilado), Local (interpretado/compilado "para zero") | Local compilado "aleatório" | Local compilado "não" | +| ------------ | ------------------------------------------------------------------------------------------- | --------------------------- | --------------------------- | +| Booleano | False | True | True (varia) | +| Date | 00-00-00 | 00-00-00 | 00-00-00 | +| Integer | 0 | 1919382119 | 909540880 (varia) | +| Hora | 00:00:00 | 533161:41:59 | 249345:34:24 (varia) | +| Imagem | tamanho da imagem=0 | tamanho da imagem=0 | tamanho da imagem=0 | +| Real | 0 | 1.250753659382e+243 | 1,972748538022e-217 (varia) | +| Ponteiro | Nil=true | Nil=true | Nil=true | +| Text | "" | "" | "" | +| Blob | Tamanho do Blob =0 | Tamanho do Blob =0 | Tamanho do Blob =0 | +| Object | null | null | null | +| Collection | null | null | null | +| Diferente de | indefinido | indefinido | indefinido | ## Conversão de tipos de dados diff --git a/i18n/pt/docusaurus-plugin-content-docs/version-18/Concepts/dt_blob.md b/i18n/pt/docusaurus-plugin-content-docs/version-18/Concepts/dt_blob.md index 5a1e0c0d46097c..e8b481752c8043 100644 --- a/i18n/pt/docusaurus-plugin-content-docs/version-18/Concepts/dt_blob.md +++ b/i18n/pt/docusaurus-plugin-content-docs/version-18/Concepts/dt_blob.md @@ -3,18 +3,18 @@ id: blob title: BLOB --- -- A BLOB (Binary Large OBjects) field, variable or expression is a contiguous series of bytes which can be treated as one whole object or whose bytes can be addressed individually. Um BLOB pode estar vazio (comprimento nulo) ou conter até 2147483647 bytes (2 GB). +- O campo, a variável ou a expressão BLOB (Binary Large OBjects) é uma série contígua de bytes que pode ser tratada como um único objeto ou cujos bytes podem ser endereçados individualmente. Um BLOB pode estar vazio (comprimento nulo) ou conter até 2147483647 bytes (2 GB). -> By default, 4D sets the maximum blob size to 2GB, but this size limit may be lower depending on your OS and how much space is available. +> Por padrão, 4D define o tamanho máximo de blob para 2 GB, mas este limite de tamanho pode ser menor, dependendo do seu Sistema Operacional e da quantidade de espaço disponível. -- Um BLOB é carregado na memória na sua totalidade. Uma variável BLOB é mantida e existe apenas na memória. A BLOB field is loaded into memory from the disk, like the rest of the record to which it belongs. -- Like the other field types that can retain a large amount of data (such as the Picture field type), BLOB fields are not duplicated in memory when you modify a record. Consequently, the result returned by the `Old` and `Modified` commands is not significant when applied to a BLOB field. +- Um BLOB é carregado na memória na sua totalidade. Uma variável BLOB é mantida e existe apenas na memória. Um campo BLOB é carregado na memória desde o disco, como o resto do registro ao que pertence. +- Como os outros tipos de campo que podem reter uma grande quantidade de dados (tais como tipo de campo Imagem), os campos BLOB não são duplicados na memória quando um registro for modificado. Consequentemente o resultado devolvido pelos comandos `Old` e `Modified` não é significativo quando for aplicado a um campo BLOB. ## Passagem de parâmetros, ponteiros e resultados de funções -4D BLOBs can be passed as parameters to 4D commands or plug-in routines that expect BLOB parameters. BLOBS can also be passed as parameters to a user method or be returned as a function result. +BLOBs 4D podem ser passados como parâmetros para comandos 4D ou rotinas de plugin que esperam por parâmetros BLOB. Os BLOBS também pode ser passado como parâmetros para um método usuário ou ser retornado como um resultado de função. -To pass a BLOB to your own methods, you can also define a pointer to the BLOB and pass the pointer as parameter. +Para passar um BLOB para seus próprios métodos, você também pode definir um ponteiro para a BLOB e passar o ponteiro como parâmetro. **Exemplos:** ```4d @@ -38,11 +38,11 @@ To pass a BLOB to your own methods, you can also define a pointer to the BLOB an **Exemplo:** ```4d - ` Declare two variables of type BLOB - C_BLOB(vBlobA;vBlobB) - ` Set the size of the first BLOB to 10K - SET BLOB SIZE(vBlobA;10*1024) - ` Assign the first BLOB to the second one + ` Declarar duas variáveis do tipo BLOB + C_BLOB(vBlobA; BlobB) + ` Definir o tamanho do primeiro BLOB para 10K + SET BLOB SIZE(vBlobA; 10*1024) + ` Atribua o primeiro BLOB ao segundo vBlobB:=vBlobA ``` @@ -50,15 +50,15 @@ No entanto, nenhum operador pode ser aplicado a BLOBs. ## Endereçamento do conteúdo de um BLOB -You can address each byte of a BLOB individually using the curly brackets symbols {...}. Within a BLOB, bytes are numbered from 0 to N-1, where N is the size of the BLOB. Exemplo: +Você pode endereçar cada byte de um BLOB individualmente usando os símbolos de chaves {...}. Em um BLOB, os bytes são numerados de 0 a N-1, onde N é o tamanho do BLOB. Exemplo: ```4d - ` Declare a variable of type BLOB + ` Declare uma variável do tipo BLOB C_BLOB(vBlob) - ` Set the size of the BLOB to 256 bytes + ` Definir o tamanho do BLOB para 256 bytes SET BLOB SIZE(vBlob;256) - ` The loop below initializes the 256 bytes of the BLOB to zero + ` O loop abaixo inicializa os 256 bytes do BLOB a zero For(vByte;0;BLOB size(vBlob)-1) vBlob{vByte}:=0 End for ``` -Because you can address all the bytes of a BLOB individually, you can actually store whatever you want in a BLOB field or variable. +Porque você pode endereçar todos os bytes de um BLOB individualmente, você pode realmente armazenar o que quiser em uma variável ou campo BLOB. diff --git a/i18n/pt/docusaurus-plugin-content-docs/version-18/Concepts/dt_collection.md b/i18n/pt/docusaurus-plugin-content-docs/version-18/Concepts/dt_collection.md index a7e046a8a622b1..ee6d80e41ab5f2 100644 --- a/i18n/pt/docusaurus-plugin-content-docs/version-18/Concepts/dt_collection.md +++ b/i18n/pt/docusaurus-plugin-content-docs/version-18/Concepts/dt_collection.md @@ -3,9 +3,9 @@ id: collection title: Collection --- -Collections are ordered lists of values of similar or mixed types (text, number, object, boolean, collection, or null). +Coleções são listas ordenadas de valores de tipos diferentes ou não (texto, número, objeto, booleano, coleção ou null). -To manage Collection type variables you must use object notation (see [Syntax basics](Concepts/dt_object.md#syntax-basics)). +Para gerenciar variáveis do tipo Coleção, você deve usar notação objeto (veja [Noções básicas de Sintaxe](Concepts/dt_object.md#syntax-basics)). Para acessar a um elemento de coleção, é necessário passar o número do elemento dentro de parênteses rectos: @@ -13,7 +13,7 @@ Para acessar a um elemento de coleção, é necessário passar o número do elem collectionRef[expression] ``` -You can pass any valid 4D expression which returns a positive integer in expression. Exemplos: +Você pode passar qualquer expressão 4D válida que retorne um inteiro positivo em expressão. Exemplos: ```4d myCollection[5] //aceso ao 6º elemento da coleção @@ -22,7 +22,7 @@ You can pass any valid 4D expression which returns a positive integer in express **Atenção:** os elementos da coleção estão numerados desde 0. -You can assign a value to a collection element or get a collection element value using object notation: +Você pode atribuir um valor a um elemento de coleção ou obter um valor de elemento de coleção usando notação objeto: ```4d myCol[10]:="My new element" @@ -42,7 +42,7 @@ Se atribuir um índice de elemento que ultrapasse o último elemento existente d ## Inicialização -Collections must have been initialized, for example using the `New collection` command, otherwise trying to read or modify their elements will generate a syntax error. +Coleções devem ter sido inicializadas, por exemplo, usando o comando `New collection`, caso contrário, tentar ler ou modificar seus elementos gerará um erro de sintaxe. Exemplo: ```4d @@ -54,16 +54,16 @@ Exemplo: Pode criar dois tipos de coleções: -- regular (non-shared) collections, using the `New collection` command. Essas coleções podem ser editadas sem qualquer controle de acesso específico mas não podem ser compartilhadas entre processos. -- coleções compartilhadas, usando o comando `New shared collection`. Essas coleções podem ser partilhadas entre processos, incluindo threads preemptivos. Access to these collections is controlled by `Use...End use` structures. For more information, refer to the [Shared objects and collections](Concepts/shared.md) section. +- coleções regulares (não compartilhadas) usando o comando `New collection`. Essas coleções podem ser editadas sem qualquer controle de acesso específico mas não podem ser compartilhadas entre processos. +- coleções compartilhadas, usando o comando `New shared collection`. Essas coleções podem ser partilhadas entre processos, incluindo threads preemptivos. Acesso a estas coleções é controlado por estruturas `Use...End use`. Para saber mais, consulte a seção [Objetos e coleções compartidos](Concepts/shared.md). ## Métodos de coleção -4D collection references benefit from special methods (sometimes named *member functions*). Thanks to object notation, these methods can be applied to collection references using the following syntax: +As referências a coleções 4D se beneficiam de métodos especiais (às vezes chamados *funções membro*). Graças a notação objeto, esses métodos podem ser aplicados às referências de coleções usando a seguinte sintaxe: > {$result:=}myCollection.memberFunction( {params} ) -Note that, even if it does not have parameters, a member function must be called with () parenthesis, otherwise a syntax error is generated. +Observe que, mesmo que ele não tenha parâmetros, uma função membro deve ser chamada com parênteses (), caso contrário, um erro de sintaxe é gerado. Por exemplo: @@ -72,7 +72,7 @@ $newCol:=$col.copy() //cópia de $col a $newCol $col.push(10;100) //adiciona 10 e 100 para a coleção ``` -Some methods return the original collection after modification, so that you can run the calls in a sequence: +Alguns métodos retornam a coleção original após modificação, para poder rodar as chamadas em sequência: ```4d $col:=New collection(5;20) @@ -88,7 +88,7 @@ Vários métodos aceitam um _propertyPath_ como parâmetro. Este parâmetro sign - um nome de objeto propriedade por exemplo "Sobrenome" - ou uma rota de propriedades de objeto, ou seja, uma sequência hierárquica de subpropriedades vinculadas com caracteres de ponto, por exemplo "empregado.filhos.nome". -**Warning:** When using methods and propertyPath parameters, you cannot use ".", "[ ]", or spaces in property names since it will prevent 4D from correctly parsing the path: +**Advertência:** ao usar métodos e parâmetros propertyPath, não se pode usar ".", "[ ]", ou espaços nos nomes das propriedades, dado que isso impedirá que 4D analise corretamente o caminho: ```4d $vmin:=$col.min("My.special.property") //indefinido diff --git a/i18n/pt/docusaurus-plugin-content-docs/version-18/Concepts/dt_date.md b/i18n/pt/docusaurus-plugin-content-docs/version-18/Concepts/dt_date.md index 3370fd07c53a71..64f8ee3e45604c 100644 --- a/i18n/pt/docusaurus-plugin-content-docs/version-18/Concepts/dt_date.md +++ b/i18n/pt/docusaurus-plugin-content-docs/version-18/Concepts/dt_date.md @@ -20,7 +20,7 @@ Uma constante literal de tipo data está cercada de sinais de exclamação (!... Uma data nula é especificada por _!00-00-00!_. -**Tip:** The Method Editor includes a shortcut for entering a null date. Para escrever uma data nula, introduza o caractere de exclamação (!) e aperte Enter.. +**Dica:** O editor de métodos inclui um acesso direto para introduzir uma data nula. Para escrever uma data nula, introduza o caractere de exclamação (!) e aperte Enter.. **Notas:** diff --git a/i18n/pt/docusaurus-plugin-content-docs/version-18/Concepts/dt_number.md b/i18n/pt/docusaurus-plugin-content-docs/version-18/Concepts/dt_number.md index 626469bd99c0c7..2b23273b1b22ad 100644 --- a/i18n/pt/docusaurus-plugin-content-docs/version-18/Concepts/dt_number.md +++ b/i18n/pt/docusaurus-plugin-content-docs/version-18/Concepts/dt_number.md @@ -126,7 +126,7 @@ O quadro seguinte lista os operadores bitwise e os seus efeitos: | OU (inclusive) | Cada bit resultante é o OR lógico dos bits nos dois operandos. Aqui está a tabela do OR lógico:
    • 1 | 1 --> 1
    • 0 | 1 --> 1
    • 1 | 0 --> 1
    • 0 | 0 --> 0
    Em outras palavras, o bit resultante é 1 se pelo menos um dos dois bits do operando for 1; caso contrário, o bit resultante é 0. | | Bitwise OR (exclusivo) | Cada bit resultante é o XOR lógico dos bits nos dois operandos. Aqui está a tabela XOR lógica:
    • 1 \^| 1 --> 0
    • 0 \^| 1 --> 1
    • 1 \^| 0 --> 1
    • 0 \^| 0 --> 0
    Em outras palavras, o bit resultante é 1 se apenas um dos dois bits do operando for 1; caso contrário, o bit resultante é 0. | | Left Bit Shift | O valor resultante é definido como o valor do primeiro operando e, em seguida, os bits resultantes são deslocados para a esquerda pelo número de posições indicado pelo segundo operando. Os bits à esquerda são perdidos e os novos bits à direita são estabelecidos como 0. **Nota:** Considerando apenas valores positivos, deslocar-se para a esquerda por N bits é o mesmo que multiplicar por 2^N. | -| Right Bit Shift | O valor resultante é definido como o valor do primeiro operando e, em seguida, os bits resultantes são deslocados para a direita pelo número de posições indicado pelo segundo operando. Os bits à direita são perdidos e os novos bits à esquerda são definidos como 0. **Note:** Taking into account only positive values, shifting to the right by N bits is the same as dividing by 2^N. | +| Right Bit Shift | O valor resultante é definido como o valor do primeiro operando e, em seguida, os bits resultantes são deslocados para a direita pelo número de posições indicado pelo segundo operando. Os bits à direita são perdidos e os novos bits à esquerda são definidos como 0. **Nota:** considerando apenas valores positivos, deslocar-se para a direita por N bits é o mesmo que dividir por 2^N. | | Bit Set | O valor resultante é definido como o valor do primeiro operando e, em seguida, o bit resultante, cujo número é indicado pelo segundo operando, é definido como 1. Os outros bits permanecem inalterados. | | Bit Clear | O valor resultante é definido como o valor do primeiro operando e, em seguida, o bit resultante, cujo número é indicado pelo segundo operando, é definido como 0. Os outros bits permanecem inalterados. | | Bit Test | Retorna True se, no primeiro operando, o bit cujo número é indicado pelo segundo operando for igual a 1. Retorna False se, no primeiro operando, o bit cujo número é indicado pelo segundo operando for igual a 0. | diff --git a/i18n/pt/docusaurus-plugin-content-docs/version-18/Concepts/dt_object.md b/i18n/pt/docusaurus-plugin-content-docs/version-18/Concepts/dt_object.md index fa069651753e5d..8196f5b252ab61 100644 --- a/i18n/pt/docusaurus-plugin-content-docs/version-18/Concepts/dt_object.md +++ b/i18n/pt/docusaurus-plugin-content-docs/version-18/Concepts/dt_object.md @@ -3,7 +3,7 @@ id: object title: Objetos --- -Variáveis, campos ou expressões do tipo Objecto podem conter vários tipos de dados. The structure of "native" 4D objects is based on the classic principle of "property/value" pairs. A sintaxe desses objetos é baseada na notação JSON: +Variáveis, campos ou expressões do tipo Objecto podem conter vários tipos de dados. A estrutura dos objetos 4D "nativos" baseia-se no princípio clássico dos pares "propriedade/valor". A sintaxe desses objetos é baseada na notação JSON: - Um nome de uma propriedade é sempre um texto, por exemplo "nome". @@ -18,21 +18,21 @@ Variáveis, campos ou expressões do tipo Objecto podem conter vários tipos de - imagem(*) - collection -(*)When exposed as text in the debugger or exported to JSON, picture object properties print "[object Picture]". +(*)Quando se expõe como texto no depurador ou se exporta a JSON, as propriedades dos objetos imagem imprimem "[objeto Imagem]". -**Warning:** Keep in mind that attribute names differentiate between upper and lower case. +**Aviso:** tenha em mente que os nomes de atributo diferenciam entre maiúsculas e minúsculas. -You manage Object type variables, fields or expressions using the commands available in the **Objects (Language)** theme or through the object notation (see [Syntax basics](Concepts/dt_object.md#syntax-basics)). Note that specific commands of the Queries theme such as `QUERY BY ATTRIBUTE`, `QUERY SELECTION BY ATTRIBUTE`, or `ORDER BY ATTRIBUTE` can be used to carry out processing on object fields. +Para gerenciar variáveis, campos ou expressões de tipo de objeto, você pode usar a notação de objeto (cf. [Usando a notação objeto](Concepts/dt_object.md#syntax-basics)) ou os comandos 4D na seção **Objetos (Linguagem)**. Note que comandos específicos do tema Queries tais como `QUERY BY ATTRIBUTE`, `QUERY SELECTION BY ATTRIBUTE`, ou `ORDER BY ATTRIBUTE` pode ser usado para realizar processamento em campos objeto. -Cada valor de propriedade acessado através da notação de objeto é considerado uma expressão. When the object notation is enabled in your database (see below), you can use such values wherever 4D expressions are expected: +Cada valor de propriedade acessado através da notação de objeto é considerado uma expressão. Quando a notação objeto estiver ativa no seu banco de dados (veja abaixo), você pode usar esses valores sempre que forem esperadas expressões 4D: -- in 4D code, either written in the methods (Method editor) or externalized (formulas, 4D tags files processed by PROCESS 4D TAGS or the Web Server, export files, 4D Write Pro documents...), +- em código 4D, quer escritos nos métodos (Editor de método) ou externalizados (fórmulas, ficheiros de etiquetas 4D processados por PROCESS 4D TAGS ou no Servidor Web, arquivos de exportação, documentos 4D Write Pro...), - nas áreas de expressão do depurador e do explorador de Runtime, - na lista de propriedades do editor de formulários para objectos de formulários: Variável ou Campo de expressão, bem como várias caixas de selecção e expressões de colunas (Fonte de dados, cor de fundo, estilo, ou cor da fonte). ## Inicialização -Objects must have been initialized, for example using the `New object` command, otherwise trying to read or modify their properties will generate a syntax error. +Objetos devem ter sido inicializadas, por exemplo, usando o comando `New object`, caso contrário, tentar ler ou modificar suas propriedades gerará um erro de sintaxe. Exemplo: ```4d @@ -44,8 +44,8 @@ Exemplo: Pode criar dois tipos de objetos: -- regular (non-shared) objects, using the `New object` command. Estes objetos podem ser editados sem qualquer controle de acesso específico, mas não podem ser compartilhados entre processos. -- objetos compartilhados, usando o comando `New shared object`. Estes objetos podem ser compartidos entre processos, incluidos os threads preemptivos. Access to these objects is controlled by `Use... End use` structures. For more information, refer to the [Shared objects and collections](Concepts/shared.md) section. +- objetos regulares (não compartilhados) usando o comando `New object`. Estes objetos podem ser editados sem qualquer controle de acesso específico, mas não podem ser compartilhados entre processos. +- objetos compartilhados, usando o comando `New shared object`. Estes objetos podem ser compartidos entre processos, incluidos os threads preemptivos. Access to these objects is controlled by `Use... End use` structures. Para saber mais, consulte a seção [Objetos e coleções compartidos](Concepts/shared.md). ## Noções básicas de sintaxe @@ -143,13 +143,13 @@ Quando se usar a notação de objeto, o valore **null** se torna compatível com If(myColl[2]=Null) ``` -For more information, please refer to the `Null` command description. +Para mais informações, consulte a descrição de comando `Null`. ### Valor não definido A avaliação de uma propriedade de um objeto pode produzir às vezes um valor indefinido. Normalmente ao tentar ler ou atribuir expressões indefinidas, 4D gera erros. Isso não acontece nos casos abaixo: -- Reading a property of an undefined object or value returns undefined; assigning an undefined value to variables (except arrays) has the same effect as calling with them: +- Lendo uma propriedade de um objeto indefinido ou valor retorna indefinido; atribuir um valor indefinido para variáveis (exceto arrays) tem o mesmo efeito que chamar com eles: ```4d C_OBJECT($o) @@ -215,16 +215,16 @@ Quando expressões de um certo tipo são esperadas em seu código 4D, pode garan ## Identificadores de propriedade de objetos -Token member names (i.e., object property names accessed using the object notation) are more restrictive than standard 4D object names. Devem estar em conformidade com a gramática de identificadores JavaScript (consulte [ECMA Script standard](https://www.ecma-international.org/ecma-262/5.1/#sec-7.6)): +As regras de nomenclatura dos tokens (ou seja, nomes de propriedades de objetos acessados usando a notação objeto) são mais restritivos do que nomes de objetos 4D padrão. Devem estar em conformidade com a gramática de identificadores JavaScript (consulte [ECMA Script standard](https://www.ecma-international.org/ecma-262/5.1/#sec-7.6)): - o primeiro caractere deve ser uma letra, um sublinhado (_) ou um cifrão ($), -- subsequent characters may be any letter, digit, an underscore or dollar sign (space characters are NOT allowed), +- os caracteres podem ser qualquer letra, dígito, um sinal de sublinhado ou dólar (não são permitidos caracteres de espaço), - eles são sensíveis às maiúsculas e minúsculas. **Nota:** -- Using a table field as a collection index, for example a.b[[Table1]Id], is not allowed. É necessário utilizar uma variável intermédia. -- Creating object attributes using a string in square brackets allows you to override the ECMA Script rules. Por exemplo, o atributo $o["My Att"] é válido em 4D, apesar do espaço. In this case, however, it will not be possible to use dot notation with this attribute. +- Usar um campo de tabela como um índice de coleção, por exemplo, a.b[[Table1]Id], não é permitido. É necessário utilizar uma variável intermédia. +- Criar atributos de objeto usando uma string entre colchetes quadradas permite que você substitua as regras de ECMA Script. Por exemplo, o atributo $o["My Att"] é válido em 4D, apesar do espaço. No entanto, neste caso, não será possível usar uma notação de ponto com esse atributo. ## Exemplos @@ -233,21 +233,21 @@ Usar notação de objeto simplifica o código 4D no manejo dos mesmos. Entretant - Escrita e leitura das propriedades de objetos (este exemplo compara a notação de objetos e anotação de comandos): ```4d - // Using the object notation - C_OBJECT($myObj) //declares a 4D variable object - $myObj:=New object //creates an object and assigns to the variable - $myObj.age:=56 - $age:=$myObj.age //56 - - // Using the command notation - C_OBJECT($myObj2) //declares a 4D variable object - OB SET($myObj2;"age";42) //creates an object and adds the age property - $age:=OB Get($myObj2;"age") //42 - - // Of course, both notations can be mixed + // Usando a notação de objeto + C_OBJECT($myObj) //declara um objeto de variável 4D + $myObj:=New object //cria um objeto e atribui à variável + $myObj. idade: =56 + $age:=$myObj. ge //56 + + // Usando a notação de comando + C_OBJECT($myObj2) /declara um objeto de variável 4D + OB SET($myObj2; idade";42) /cria um objeto e adiciona a propriedade de idade + $age:=OB Get($myObj2; idade") /42 + + // É claro, ambas as notações podem ser misturadas C_OBJECT($myObj3) - OB SET($myObj3;"age";10) - $age:=$myObj3.age //10 + OB SET($myObj3; idade";10) + $age:=$myObj3. de //10 ``` - Criar uma propriedade e atribuir valores, incluindo objetos: @@ -270,12 +270,12 @@ Usar notação de objeto simplifica o código 4D no manejo dos mesmos. Entretant - É possível acessar as propriedades como strings usando o operador [] ```4d - $Emp["city"]:="Berlin" //modifies the city property - //this can be useful for creating properties through variables - C_TEXT($addr) + $Emp["city"]:="Berlin" //modifica a propriedade city + //isso pode ser útil para criar propriedades por meio de variáveis + var $addr : Text $addr:="address" For($i;1;4) $Emp[$addr+String($i)]:="" End for - // creates 4 empty properties "address1...address4" in the $Emp object + // cria 4 propriedades vazias "address1...address4" no objeto $Emp ``` diff --git a/i18n/pt/docusaurus-plugin-content-docs/version-18/Concepts/identifiers.md b/i18n/pt/docusaurus-plugin-content-docs/version-18/Concepts/identifiers.md index 4b05b57a2ac82c..b90f69bfc00ab2 100644 --- a/i18n/pt/docusaurus-plugin-content-docs/version-18/Concepts/identifiers.md +++ b/i18n/pt/docusaurus-plugin-content-docs/version-18/Concepts/identifiers.md @@ -208,7 +208,7 @@ DIALOG([Storage];"Note box"+String($vlStage)) ## Objectos de formulário -You designate a form object by passing its name as a string, preceded by the * parameter. O nome de um objeto de formulário pode conter até 255 caracteres. +Você designa um objeto de formulário passando o nome dele como uma string, precedido pelo parâmetro *. O nome de um objeto de formulário pode conter até 255 caracteres. Exemplo: diff --git a/i18n/pt/docusaurus-plugin-content-docs/version-18/Concepts/methods.md b/i18n/pt/docusaurus-plugin-content-docs/version-18/Concepts/methods.md index 6fb9dcb641bed7..607113c6a2f36e 100644 --- a/i18n/pt/docusaurus-plugin-content-docs/version-18/Concepts/methods.md +++ b/i18n/pt/docusaurus-plugin-content-docs/version-18/Concepts/methods.md @@ -108,9 +108,9 @@ Depois `myAlert` pode ser encapsulado em qualquer objecto e chamado: ```4d C_OBJECT($o) $o:=New object("full_name";Formula(fullName)) -$result:=$o.full_name("John";"Smith") +$result:=$o.full_name("John"; "Smith") //$result = "John Smith" -// equivalent to $result:=fullName("param1";"param2") +// equivalente a $result:=fullName("param1"; "param2") ``` Combinado com a função`This`, tais métodos de objectos permitem escrever um poderoso código genérico. Por exemplo: @@ -122,10 +122,10 @@ Então o método atua como um novo atributo calculado que pode ser adicionado a ```4d C_OBJECT($o) -$o:=New object("firstName";"Jim";"lastName";"Wesson") -$o.fullName:=Formula(fullName2) //add the method +$o:=New object("firstName"; "Jim"; "lastName"; "Wesson") +$o.fullName:=Formula(fullName2) //adicionar o método -$result:=$o.fullName() +$result:=$o.fullName() //$result = "Jim Wesson" ``` diff --git a/i18n/pt/docusaurus-plugin-content-docs/version-18/Concepts/parameters.md b/i18n/pt/docusaurus-plugin-content-docs/version-18/Concepts/parameters.md index e54a8304f65210..156d5b55033cba 100644 --- a/i18n/pt/docusaurus-plugin-content-docs/version-18/Concepts/parameters.md +++ b/i18n/pt/docusaurus-plugin-content-docs/version-18/Concepts/parameters.md @@ -312,7 +312,7 @@ Utilizando o comando `Count parameters` desde dentro do método chamado, pode de O exemplo abaixo mostra uma mensagem de texto e pode inserir o texto em um documento no disco ou em uma área de 4D Write Pro: ```4d -// APPEND TEXT Project Method +// Método projeto APPEND TEXT // APPEND TEXT ( Text { ; Text { ; Object } } ) // APPEND TEXT ( Message { ; Path { ; 4DWPArea } } ) @@ -342,7 +342,7 @@ APPEND TEXT(vtSomeText) //Will only display the message APPEND TEXT(vtSomeText; In the following example, the project method `SEND PACKETS` accepts a time parameter followed by a variable number of text parameters: ```4d - //SEND PACKETS Project Method + //Método projeto SEND PACKETS //SEND PACKETS ( Time ; Text { ; Text2... ; TextN } ) //SEND PACKETS ( docRef ; Data { ; Data2... ; DataN } ) @@ -393,6 +393,6 @@ Da mesma forma que com outras variáveis locais, não é obrigatório declarar o C_LONGINT(${4}) ``` -This command means that starting with the fourth parameter (included), the method can receive a variable number of parameters of longint type. $1, $2 e $3 podem ser de qualquer tipo de dados. Entretanto, se usar $2 por indireção, o tipo de dados usados será do tipo genérico. Thus, it will be of the data type Longint, even if for you it was, for instance, of the data type Real. +Esse comando significa que a partir do quarto parâmetro (incluído), o método pode receber um número variável de parâmetros de tipo longint. $1, $2 e $3 podem ser de qualquer tipo de dados. Entretanto, se usar $2 por indireção, o tipo de dados usados será do tipo genérico. Thus, it will be of the data type Longint, even if for you it was, for instance, of the data type Real. **Note:** The number in the declaration has to be a constant and not a variable. diff --git a/i18n/pt/docusaurus-plugin-content-docs/version-18/Concepts/plug-ins.md b/i18n/pt/docusaurus-plugin-content-docs/version-18/Concepts/plug-ins.md index 04ef7994e412ce..d35b0119185548 100644 --- a/i18n/pt/docusaurus-plugin-content-docs/version-18/Concepts/plug-ins.md +++ b/i18n/pt/docusaurus-plugin-content-docs/version-18/Concepts/plug-ins.md @@ -7,11 +7,11 @@ Ao desenvolver uma aplicação 4D, irá descobrir muitas capacidades que não no ## Porquê a necessidade de um plug-in? -Although 4D provides hundred of built-in methods used to manipulate objects, records and implement user interface, some special use or feature (sometimes platform dependant) may be needed: one may need ODBC under Windows, another may need Apple services under macOS, while yet another may want to implement specific statistics tools, social network login, payment platform, file access over the network, a special user interface, or a private picture structure. +Embora 4D ofereça centenas de métodos integrados, para manipular objetos, registros e implementar a interface do usuário, pode ser necessário algum uso ou recurso especial (às vezes dependente da plataforma): alguém pode precisar de ODBC no Windows, ou pode precisar de serviços da Apple no macOS, enquanto outro ainda pode querer implementar ferramentas estatísticas específicas, login em redes sociais, plataforma de pagamento, acesso a arquivos pela rede, uma interface de usuário especial ou uma estrutura de imagem privada. It is obvious that covering all areas of both the macOS and Windows operating systems by way of 4D commands would certainly lead to a product with thousands of commands, and at the same time, most users would have no need for such a large set of capabilities. Also, creating such an all-encompassing tool would make the 4D environment incredibly complex and would take most users months of study before useful results could be expected. -The modular nature of the 4D environment allows the creation of basic applications but does not preclude the development of highly complex systems. The 4D Plug-in architecture opens the 4D environment to any type of application or user. Os 4D Plug-ins multiplicam o poder e a produtividade da aplicação ou do usuário. +A natureza modular do ambiente 4D permite a criação de aplicativos básicos, mas não impede o desenvolvimento de sistemas altamente complexos. A arquitetura 4D Plug-in abre o ambiente 4D para qualquer tipo de aplicação ou usuário. Os 4D Plug-ins multiplicam o poder e a produtividade da aplicação ou do usuário. ## Por que a necessidade de um plug-in? @@ -30,7 +30,7 @@ Um plug-in contém normalmente um conjunto de rotinas dadas ao Desenvolvedor 4D. ### Nota importante -Um plug-in pode ser muito simples, com apenas uma rotina executando uma tarefa muito pequena, ou pode ser muito complexo, envolvendo centenas de rotinas e áreas. Não há praticamente nenhum limite para o que um plug-in pode fazer, no entanto cada desenvolvedor de plug-in deve lembrar-se que um plug-in é uma peça de código de "amostra". É o plug-in que funciona dentro do 4D, e não o contrário. Como peça de código, é o anfitrião do 4D; não é uma aplicação isolada. Partilha o tempo e a memória da CPU com 4D e outros plug-ins, portanto, deve ser um código bem educado, utilizando apenas o que é necessário para rodar. For example, in long loops, a plug-in should call `PA_Yield()` to give time to the 4D scheduler unless its task is critical for both it and the database. +Um plug-in pode ser muito simples, com apenas uma rotina executando uma tarefa muito pequena, ou pode ser muito complexo, envolvendo centenas de rotinas e áreas. Não há praticamente nenhum limite para o que um plug-in pode fazer, no entanto cada desenvolvedor de plug-in deve lembrar-se que um plug-in é uma peça de código de "amostra". É o plug-in que funciona dentro do 4D, e não o contrário. Como peça de código, é o anfitrião do 4D; não é uma aplicação isolada. Partilha o tempo e a memória da CPU com 4D e outros plug-ins, portanto, deve ser um código bem educado, utilizando apenas o que é necessário para rodar. Por exemplo, nos loops longos, um plug-in deve chamar a `PA_Yield()` para dar tempo ao planificador 4D, a menos que sua tarefa seja crítica tanto para ele quanto para o banco de dados. ## Como criar um plug-in? @@ -41,20 +41,20 @@ Um plug-in pode ser muito simples, com apenas uma rotina executando uma tarefa m ## Como instalar um plug-in? -You install plug-ins in the 4D environment by copying their files into the appropriate folder. +Você instala plug-ins no ambiente 4D copiando seus arquivos para a pasta apropriada. -“PluginName.bundle” folders contain both Windows and macOS versions of 4D plug-ins. Their specific internal architecture lets 4D Server load the appropriate version according to the platform where the client machine will be run. To install a plug-in in your environment, you just need to put the “PluginName.bundle” folder or package concerned into the desired **PlugIns** folder. +As pastas "PluginName.bundle" contêm versões Windows e macOS de plugins 4D. Sua arquitetura interna específica permite que 4D Server carregue a versão apropriada conforme a plataforma onde a máquina do cliente será executada. Para instalar um plug-in em seu ambiente, você só precisa colocar a pasta "PluginName.bundle" ou pacote em questão na pasta **PlugIns** desejada. Você pode colocar a pasta PlugIns em dois locais diferentes: - Ao nível da aplicação 4D executável, ou seja: - No Windows: junto ao ficheiro .exe - - Under macOS: at the first level of the Contents folder inside the application package. - In this case, plug-ins are available in every database opened by this application. + - No macOS: no primeiro nível da pasta Contents no pacote da aplicação. + Neste caso, os plugins e os componentes estão disponíveis em cada banco de dados aberto por esta aplicação. - No mesmo nível do arquivo de estrutura do banco de dados. Nesse caso, os plug-ins só estão disponíveis nesse banco de dados específico. A escolha do ubicação depende de como você deseja usar o plug-in. -If the same plug-in is placed in both locations, 4D will only load the one located next to the structure. In an application that is compiled and merged using 4D Volume Desktop, if there are several instances of the same plug-in present, this will prevent the application from opening. +Se o mesmo plug-in for colocado em ambos os locais, 4D só carregará o localizado ao lado da estrutura. Em uma aplicação compilada e fundida usando 4D Volume Desktop, se houver várias instâncias do mesmo plug-in presente, isso impedirá que a aplicação seja aberta. -Os plug-ins são carregados por 4D quando a aplicação for lançada, pelo que terá de abandonar a sua aplicação 4D antes de os instalar. Então abra seu banco de dados com 4D. If any plug-in requires a specific license for use, it will be loaded but not available for use. +Os plug-ins são carregados por 4D quando a aplicação for lançada, pelo que terá de abandonar a sua aplicação 4D antes de os instalar. Então abra seu banco de dados com 4D. Se qualquer plug-in necessitar de uma licença específica para utilização, será carregado, mas não estará disponível para utilização. diff --git a/i18n/pt/docusaurus-plugin-content-docs/version-18/Concepts/quick-tour.md b/i18n/pt/docusaurus-plugin-content-docs/version-18/Concepts/quick-tour.md index 2ed426229808cf..9d8da345636445 100644 --- a/i18n/pt/docusaurus-plugin-content-docs/version-18/Concepts/quick-tour.md +++ b/i18n/pt/docusaurus-plugin-content-docs/version-18/Concepts/quick-tour.md @@ -10,7 +10,7 @@ Usando a linguagem 4D, imprimir a mensagem tradicional ""Hello, world!" na tela ALERT("Hello, World!") ``` -Esse código vai exibir um alerta normal de plataforma com a mensagem "hello world" contendo um botão OK. To execute the code, you just need to click on the execution button in the Method editor: +Esse código vai exibir um alerta normal de plataforma com a mensagem "hello world" contendo um botão OK. Para executar o código, precisa clicar no botão de execução do editor de Método: ![alt-text](../assets/en/Concepts/helloworld.png) @@ -40,13 +40,13 @@ A linguagem 4D é baseada em tipos, mas com alguma flexibilidade. Cria-se uma va C_DATE(MyDate) //Tipo de data para a variável MyDate ``` -Even if it is usually not recommended, you can create variables simply by using them; you do not necessarily need to formally define them as you do with fields. Por exemplo, se quiser criar uma variável que contenha a data atual mais 30 dias, pode escrever: +Mesmo se não é geralmente recomendado, você pode criar variáveis simplesmente usando-as; não é necessariamente necessário defini-los formalmente, como se faz com os campos. Por exemplo, se quiser criar uma variável que contenha a data atual mais 30 dias, pode escrever: ```4d MyOtherDate:=Current date+30 ``` -A linha de código lê “MyOtherDate gets the current date plus 30 days.” This line creates the variable, assigns it with both the (temporary) date type and a content. A variable created by assignment is interpreted as typeless, that is, it can be assigned with other types in other lines and then changes the type dynamically. Uma variável digitada com `C_XXX` não pode alterar o tipo. In compiled mode, the type can never be changed, regardless of how the variable was created. +A linha de código lê “MyOtherDate gets the current date plus 30 days.” Essa linha cria a variável, atribui-lhe o tipo de data (temporária) e um conteúdo. A variable created by assignment is interpreted as typeless, that is, it can be assigned with other types in other lines and then changes the type dynamically. Uma variável digitada com `C_XXX` não pode alterar o tipo. In compiled mode, the type can never be changed, regardless of how the variable was created. ## Comandos @@ -178,7 +178,7 @@ Para aceder a um elemento da collection, é necessário passar o número do elem ```4d C_COLLECTION(myColl) myColl:=New collection("A";"B";1;2;Current time) -myColl[3] //access to 4th element of the collection +myColl[3] //access ao quarto elemento da coleção ``` ## Operadores diff --git a/i18n/pt/docusaurus-plugin-content-docs/version-18/FormObjects/button_overview.md b/i18n/pt/docusaurus-plugin-content-docs/version-18/FormObjects/button_overview.md index 8d44238b7b2970..be877a68bbf93b 100644 --- a/i18n/pt/docusaurus-plugin-content-docs/version-18/FormObjects/button_overview.md +++ b/i18n/pt/docusaurus-plugin-content-docs/version-18/FormObjects/button_overview.md @@ -31,7 +31,7 @@ Com excepção do [propriedades disponíveis](#supported-properties), muitos obj ### Clássico -The Regular button style is a standard system button (*i.e.*, a rectangle with a descriptive label) which executes code when a user clicks on it. +O estilo de botão Clássico é um botão padrão do sistema (*ou seja*, um retângulo com um rótulo descritivo) que executa o código quando o usuário clica nele. ![](../assets/en/FormObjects/button_regular.png) @@ -41,23 +41,23 @@ By default, the Regular style has a light gray background with a label in the ce ```4d "myButton": { - "type": "button", //define the type of object - "style":"regular", //define the style of the button - "defaultButton":"true" //define button as the default choice - "text": "OK", //text to appear on the button - "action": "Cancel", //action to be be performed - "left": 60, //left position on the form - "top": 160, //top position on the form - "width": 100, //width of the button - "height": 20 //height of the button - } + "type": "button", //define o tipo de objeto + "style": "regular", //define o estilo do botão + "defaultButton": "true" //define o botão como a opção predefinida + "text": "OK", //texto a aparecer no botão + "action": "Cancel", //ação a executar + "left": 60, //posição esquerda no formulário + "top": 160, //posição superior no formulário + "width": 100, //largura do botão + "height": 20 //altura do botão +} ``` Only the Regular and Flat styles offer the [Default Button](properties_Appearance.md#default-button) property. ### Plano -The Flat button style is a standard system button (*i.e.*, a rectangle with a descriptive label) which executes code when a user clicks on it. +O estilo de botão Plano é um botão padrão do sistema (*ou seja*, um retângulo com um rótulo descritivo) que executa o código quando o usuário clica nele. ![](../assets/en/FormObjects/button_flat.png) @@ -84,7 +84,7 @@ Only the Regular and Flat styles offer the [Default Button](properties_Appearanc ### Barra de ferramentas -The Toolbar button style is primarily intended for integration in a toolbar. It includes the option to add a pop-up menu (indicated by an inverted triangle) which is generally used to display additional choices for the user to select. +The Toolbar button style is primarily intended for integration in a toolbar. Inclui a opção de adicionar um menu pop-up (indicado por um triângulo invertido), sendo geralmente usado para exibir opções adicionais para o usuário selecionar. By default, the Toolbar style has a transparent background with a label in the center. A aparência do botão pode ser diferente quando o cursor passar por cima dele, dependendo do SO: @@ -279,7 +279,7 @@ O estilo de botão Círculo aparece como um botão sistema redondo. Este estilo ![](../assets/en/FormObjects/button_circleM.png) -On Windows, it is identical to the “None” style (the circle in the background is not taken into account). +No Windows, ele é idêntico ao estilo "Nenhum" (o círculo no plano de fundo não é considerado). #### JSON Exemplo diff --git a/i18n/pt/docusaurus-plugin-content-docs/version-18/FormObjects/checkbox_overview.md b/i18n/pt/docusaurus-plugin-content-docs/version-18/FormObjects/checkbox_overview.md index 5ce85250b0100d..fd2192a8b5ff91 100644 --- a/i18n/pt/docusaurus-plugin-content-docs/version-18/FormObjects/checkbox_overview.md +++ b/i18n/pt/docusaurus-plugin-content-docs/version-18/FormObjects/checkbox_overview.md @@ -33,7 +33,7 @@ Para ativar este terceiro estado, deve selecionar a propriedade [Três estados]( Essa propriedade só está disponível para caixas de seleção regulares e planas associadas a [variáveis ou expressões](properties_Object.md#variable-or-expression) — as caixas de seleção de expressões booleanas não podem usar a propriedade [Três Estados](properties_Display.md#three-states) (uma expressão Booleana não pode estar em um estado intermediário). A variável associada à caixa de seleção devolve o valor 2 quando a caixa estiver no terceiro estado. -> In entry mode, the Three-States check boxes display each state sequentially, in the following order: unchecked / checked / intermediary / unchecked, etc. No modo de entrada, as caixas de seleção dos três estados mostram cada estado de forma sequencial na ordem abaixo: sem marcar/marcado/intermediário/sem marcar, etc. O estado intermediário não é geralmente muito útil no modo entrada; no código, simplesmente force o valor da variável para 0 quando tomar o valor de 2 para passar diretamente de um estado marcado para o estado desmarcado. +> In entry mode, the Three-States check boxes display each state sequentially, in the following order: unchecked / checked / intermediary / unchecked, etc. No modo de entrada, as caixas de seleção dos três estados mostram cada estado de forma sequencial na ordem abaixo: sem marcar/marcado/intermediário/sem marcar, etc. O estado intermediário não é geralmente muito útil no modo entrada; no código, simplesmente force o valor da variável para 0 quando tomar o valor de 2 para passar diretamente de um estado marcado para o estado desmarcado. No modo de entrada, as caixas de seleção dos três estados mostram cada estado de forma sequencial na ordem abaixo: sem marcar/marcado/intermediário/sem marcar, etc. O estado intermediário não é geralmente muito útil no modo entrada; no código, simplesmente force o valor da variável para 0 quando tomar o valor de 2 para passar diretamente de um estado marcado para o estado desmarcado. ## Usar uma ação padrão diff --git a/i18n/pt/docusaurus-plugin-content-docs/version-19/API/DataClassClass.md b/i18n/pt/docusaurus-plugin-content-docs/version-19/API/DataClassClass.md index b6891ec0d9a1b8..593ed67924ecab 100644 --- a/i18n/pt/docusaurus-plugin-content-docs/version-19/API/DataClassClass.md +++ b/i18n/pt/docusaurus-plugin-content-docs/version-19/API/DataClassClass.md @@ -721,7 +721,7 @@ onde: | Não se aplica à condição de uma sentença | NOT | Parentesis são obrigatórios quando usar NOT antes de uma instrução que contenha vários operadores | | Contém palavra chave | % | As palavras chaves podem ser usadas em atributos de string ou imagem | -* **value**: o valor a comparar ao valor atual da propriedade de cada entidade na seleção de entidade ou elemento na coleção. Pode ser um **marcador** (ver **Uso de marcadores** mais adiante) ou qualquer expressão que coincida com a propriedad de tipo de dados. Quando usar um valor constante, as regras abaixo devem ser respeitadas: +* **value**: o valor a comparar ao valor atual da propriedade de cada entidade na seleção de entidade ou elemento na coleção. Pode ser um **marcador** (ver **Uso de marcadores** mais adiante) ou qualquer expressão que coincida com a propriedad de tipo de dados. Note that, in case of type mismatch with scalar types (text, date, number...), 4D will try to convert the **value** type to the attribute data type whenever possible, for an easier handling of values coming from the Internet. For example, if the string "v20" is entered as **value** to compare with an integer attribute, it will be converted to 20. Quando usar um valor constante, as regras abaixo devem ser respeitadas: * A constante de tipo **texto** pode ser passada com ou sem aspas simples (ver **Uso de aspas** mais abaixo). Para pesquisar uma stirng dentro de uma string (uma pesquisa "contém") use o símbolo coringa (@) em valor para isolar a string a ser pesquisada como mostrado neste exemplo: "@Smith@". As palavras chaves abaixo são proibidas para constantes de texto: true, false. * Valores constantes de tipo **booleano** : **true** ou **false** (diferencia maiuscula de minúscula). * Valores constantes de tipo **numérico**: os decimais se separam com um '.' (ponto). constantes de tipo data: formato "YYYY-MM-DD" diff --git a/i18n/pt/docusaurus-plugin-content-docs/version-19/API/EntityClass.md b/i18n/pt/docusaurus-plugin-content-docs/version-19/API/EntityClass.md index aa5d7f109e55e0..92b7d91d3ad846 100644 --- a/i18n/pt/docusaurus-plugin-content-docs/version-19/API/EntityClass.md +++ b/i18n/pt/docusaurus-plugin-content-docs/version-19/API/EntityClass.md @@ -92,8 +92,10 @@ O tipo de valor do atributo depende do atributo [kind](DataClassClass.md#attribu #### Descrição -A função `.isNew()` retorna True se a entidade a qual for aplicada foi recém criada e não foi ainda salva na datastore.. . -> Tenha em mente que quaisquer modificações feitas a entidades serão salvas no registro referenciado somente quando o [`. ave( )`](#save) função for executada. +A função `.isNew()` retorna True se a entidade a qual for aplicada foi recém criada e não foi ainda salva na datastore.. + +This function allows you to update entities separately. Note however that, for performance reasons, the new entity shares the same reference of object attributes as the cloned entity. +> Keep in mind that any modifications done to entities will be saved in the referenced record only when the [`.save()`](#save) function is executed. Esta função só pode ser usada com entidades já salvas no banco de dados. Ele não pode ser chamado em uma entidade recém-criada (para a qual [`.isNew()`](#isnew) retorna **Verdadeiro**). diff --git a/i18n/pt/docusaurus-plugin-content-docs/version-19/Backup/restore.md b/i18n/pt/docusaurus-plugin-content-docs/version-19/Backup/restore.md index ffbbeebda4e920..c1bdf6e2591977 100644 --- a/i18n/pt/docusaurus-plugin-content-docs/version-19/Backup/restore.md +++ b/i18n/pt/docusaurus-plugin-content-docs/version-19/Backup/restore.md @@ -19,7 +19,7 @@ title: Restaurar um backup Pode restaurar manualmente os conteúdos de um arquivo gerado pelo módulo de cópia de segurança. Uma restauração manual pode ser necessária, por exemplo, para restaurar os conteúdos completos de um arquivo (arquivos projetos e arquivos anexos) ou, para o propósito de realizar pesquisas entre os arquivos. A restauração manual pode também ser realizada junto com a integração do arquivo de histórico atual. -The manual restore of backups can be carried out either via the standard Open document dialog box, or via the [Restore](MSC/restore) page of the MSC. A restauração através do MSC oferece mais opções e permite pré-visualizar os conteúdos dos arquivos. Restoring via the MSC provides more options and allows the archive contents to be previewed. +A restauração manual de backups pode ser realizada via a caixa de diálogo de Abertura de documento ou através da página [Restaurar](MSC/restore) do CSM. A restauração através do MSC oferece mais opções e permite pré-visualizar os conteúdos dos arquivos. Restoring via the MSC provides more options and allows the archive contents to be previewed. Para restaurar um banco de dados manualmente via uma caixa de diálogo padrão: diff --git a/i18n/pt/docusaurus-plugin-content-docs/version-19/Concepts/cf_branching.md b/i18n/pt/docusaurus-plugin-content-docs/version-19/Concepts/cf_branching.md index b1c02c35fc1e4a..f8463d44db50d8 100644 --- a/i18n/pt/docusaurus-plugin-content-docs/version-19/Concepts/cf_branching.md +++ b/i18n/pt/docusaurus-plugin-content-docs/version-19/Concepts/cf_branching.md @@ -140,11 +140,11 @@ Esse exemplo testa uma variável numérica e exibe uma caixa de alerta com uma a Else //Se não for 1, 2, ou 3, exibe um alerta ALERT("It was not one, two, or three.") //statement(s) - End case //If it is 2, display an alert - :(vResult=3) //Test if the number is 3 - ALERT("Three.") //If it is 3, display an alert - Else //If it is not 1, 2, or 3, display an alert - ALERT("It was not one, two, or three.") + End case //Se for 2, mostrar um alerta + :(vResult=3) //Testar se o número é 3 + ALERT("Three.") //Se for 3, exiba um alerta + Else //Se não for 1, 2 ou 3, exibir um alerta + ALERT("Não foram um, dois ou três.") //statement(s) End case ``` @@ -165,12 +165,12 @@ For comparison, here is the `If... Else... End if` version of the same method: ALERT("It was not one, two, or three.") End if End if - End if //If it is 2, display an alert + End if //Se for 2, exibir um alerta Else - If(vResult=3) //Test if the number is 3 - ALERT("Three.") //If it is 3, display an alert - Else //If it is not 1, 2, or 3, display an alert - ALERT("It was not one, two, or three.") + If(vResult=3) //Testa se o número é 3 + ALERT("Três.") //Se for 3, exiba um alerta + Else //Se não for 1, 2 ou 3, exibir um alerta + ALERT("Não foram um, dois ou três.") End if End if End if diff --git a/i18n/pt/docusaurus-plugin-content-docs/version-19/Concepts/components.md b/i18n/pt/docusaurus-plugin-content-docs/version-19/Concepts/components.md index 057895a9691795..8659a2615c41e2 100644 --- a/i18n/pt/docusaurus-plugin-content-docs/version-19/Concepts/components.md +++ b/i18n/pt/docusaurus-plugin-content-docs/version-19/Concepts/components.md @@ -38,7 +38,7 @@ O comando `COMPONENT LIST` pode ser utilizado para obter a lista de componentes ### Comandos não utilizáveis -Os comandos abaixo não são compatíveis para seu uso dentro de um componente porque modificam o arquivo de estrutura - que está aberto em apenas leitura. Their execution in a component will generate the error -10511, “The CommandName command cannot be called from a component”: +Os comandos abaixo não são compatíveis para seu uso dentro de um componente porque modificam o arquivo de estrutura - que está aberto em apenas leitura. Sua execução em um componente irá gerar erro -10511, "O comando CommandName não pode ser chamado a partir de um componente”: - `ON EVENT CALL` - `Method called on event` @@ -258,7 +258,7 @@ Lendo de um banco externo: - Só os "formulários projeto" (formulários que não estejam associados a nenhuma tabela específica) podem ser utilizados em um componente. Só os "formulários de projeto" (formulários que não estejam associados a nenhuma tabela específica) podem ser utilizados em um componente. - Um componente pode chamar formulários tabela do projeto host. Note que nesse caso é necessário usar ponteiros ao invés de nomes de tabelas entre colchetes [] para especificar os formulários no código do componente. -> Se um componente utilizar o comando `ADD RECORD`, se mostrará o formulário de entrada atual do projeto local, no contexto do projeto local. Consequently, if the form includes variables, the component will not have access to it. +> Se um componente utilizar o comando `ADD RECORD`, se mostrará o formulário de entrada atual do projeto local, no contexto do projeto local. Por isso se o formulário incluir variáveis, o componente não terá acesso às mesmas. - Pode publicar formulários componentes como subformulários no projeto local. Pode publicar formulários componentes como subformulários no banco de dados local Isso significa que pode desenvolver componentes oferecendo objetos gráficos. Por exemplo, Widgets fornecidos por 4D são baseados no uso de subformulários em componentes. diff --git a/i18n/pt/docusaurus-plugin-content-docs/version-19/Concepts/dt_blob.md b/i18n/pt/docusaurus-plugin-content-docs/version-19/Concepts/dt_blob.md index 6b44105552efa3..be31448ed2279f 100644 --- a/i18n/pt/docusaurus-plugin-content-docs/version-19/Concepts/dt_blob.md +++ b/i18n/pt/docusaurus-plugin-content-docs/version-19/Concepts/dt_blob.md @@ -3,19 +3,19 @@ id: blob title: BLOB --- -A BLOB (Binary Large OBjects) field, variable or expression is a contiguous series of bytes which can be treated as one whole object or whose bytes can be addressed individually. A BLOB can be empty (null length) or can contain up to 2147483647 bytes (2 GB). +O campo, a variável ou a expressão BLOB (Binary Large OBjects) é uma série contígua de bytes que pode ser tratada como um único objeto ou cujos bytes podem ser endereçados individualmente. A BLOB can be empty (null length) or can contain up to 2147483647 bytes (2 GB). -> By default, 4D sets the maximum blob size to 2GB, but this size limit may be lower depending on your OS and how much space is available. +> Por padrão, 4D define o tamanho máximo de blob para 2 GB, mas este limite de tamanho pode ser menor, dependendo do seu Sistema Operacional e da quantidade de espaço disponível. -Um BLOB é carregado na memória na sua totalidade. Uma variável BLOB é mantida e existe apenas na memória. A BLOB field is loaded into memory from the disk, like the rest of the record to which it belongs. +Um BLOB é carregado na memória na sua totalidade. Uma variável BLOB é mantida e existe apenas na memória. Um campo BLOB é carregado na memória desde o disco, como o resto do registro ao que pertence. -Like the other field types that can retain a large amount of data (such as the Picture field type), BLOB fields are not duplicated in memory when you modify a record. Consequently, the result returned by the `Old` and `Modified` commands is not significant when applied to a BLOB field. +Como os outros tipos de campo que podem reter uma grande quantidade de dados (tais como tipo de campo Imagem), os campos BLOB não são duplicados na memória quando um registro for modificado. Consequentemente o resultado devolvido pelos comandos `Old` e `Modified` não é significativo quando for aplicado a um campo BLOB. ## Passagem de parâmetros, ponteiros e resultados de funções -4D BLOBs can be passed as parameters to 4D commands or plug-in routines that expect BLOB parameters. BLOBS can also be passed as parameters to a user method or be returned as a function result. +BLOBs 4D podem ser passados como parâmetros para comandos 4D ou rotinas de plugin que esperam por parâmetros BLOB. Os BLOBS também pode ser passado como parâmetros para um método usuário ou ser retornado como um resultado de função. -To pass a BLOB to your own methods, you can also define a pointer to the BLOB and pass the pointer as parameter. +Para passar um BLOB para seus próprios métodos, você também pode definir um ponteiro para a BLOB e passar o ponteiro como parâmetro. **Exemplos:** ```4d @@ -39,11 +39,11 @@ To pass a BLOB to your own methods, you can also define a pointer to the BLOB an **Exemplo:** ```4d - ` Declare two variables of type BLOB - C_BLOB(vBlobA;vBlobB) - ` Set the size of the first BLOB to 10K - SET BLOB SIZE(vBlobA;10*1024) - ` Assign the first BLOB to the second one + ` Declarar duas variáveis do tipo BLOB + C_BLOB(vBlobA; BlobB) + ` Definir o tamanho do primeiro BLOB para 10K + SET BLOB SIZE(vBlobA; 10*1024) + ` Atribua o primeiro BLOB ao segundo vBlobB:=vBlobA ``` @@ -51,15 +51,15 @@ No entanto, nenhum operador pode ser aplicado a BLOBs. ## Endereçamento do conteúdo de um BLOB -You can address each byte of a BLOB individually using the curly brackets symbols {...}. Within a BLOB, bytes are numbered from 0 to N-1, where N is the size of the BLOB. Exemplo: +Você pode endereçar cada byte de um BLOB individualmente usando os símbolos de chaves {...}. Em um BLOB, os bytes são numerados de 0 a N-1, onde N é o tamanho do BLOB. Exemplo: ```4d - ` Declare a variable of type BLOB + ` Declare uma variável do tipo BLOB C_BLOB(vBlob) - ` Set the size of the BLOB to 256 bytes + ` Definir o tamanho do BLOB para 256 bytes SET BLOB SIZE(vBlob;256) - ` The loop below initializes the 256 bytes of the BLOB to zero + ` O loop abaixo inicializa os 256 bytes do BLOB a zero For(vByte;0;BLOB size(vBlob)-1) vBlob{vByte}:=0 End for ``` -Because you can address all the bytes of a BLOB individually, you can actually store whatever you want in a BLOB field or variable. +Porque você pode endereçar todos os bytes de um BLOB individualmente, você pode realmente armazenar o que quiser em uma variável ou campo BLOB. diff --git a/i18n/pt/docusaurus-plugin-content-docs/version-19/Concepts/dt_collection.md b/i18n/pt/docusaurus-plugin-content-docs/version-19/Concepts/dt_collection.md index 005cd50903ee4a..7f842da6d06852 100644 --- a/i18n/pt/docusaurus-plugin-content-docs/version-19/Concepts/dt_collection.md +++ b/i18n/pt/docusaurus-plugin-content-docs/version-19/Concepts/dt_collection.md @@ -42,7 +42,7 @@ Se atribuir um índice de elemento que ultrapasse o último elemento existente d ## Inicialização -Collections must have been initialized, for example using the `New collection` command, otherwise trying to read or modify their elements will generate a syntax error. +Coleções devem ter sido inicializadas, por exemplo, usando o comando `New collection`, caso contrário, tentar ler ou modificar seus elementos gerará um erro de sintaxe. Exemplo: @@ -58,7 +58,7 @@ Pode criar dois tipos de coleções: - regular (non-shared) collections, using the [`New collection`](API/CollectionClass.md#new-collection) command. Essas coleções podem ser editadas sem qualquer controle de acesso específico mas não podem ser compartilhadas entre processos. - coleções compartidas, utilizando o comando `New shared collection`. Essas coleções podem ser partilhadas entre processos, incluindo threads preemptivos. Access to these collections is controlled by [`Use... End use`](Concepts/shared.md#useend-use) structures. -For more information, refer to the [Shared objects and collections](Concepts/shared.md) section. +Para saber mais, consulte a seção [Objetos e coleções compartidos](Concepts/shared.md). ## Funções de Collection diff --git a/i18n/pt/docusaurus-plugin-content-docs/version-19/Concepts/dt_object.md b/i18n/pt/docusaurus-plugin-content-docs/version-19/Concepts/dt_object.md index aedd25e78138f8..0fcce1ac677308 100644 --- a/i18n/pt/docusaurus-plugin-content-docs/version-19/Concepts/dt_object.md +++ b/i18n/pt/docusaurus-plugin-content-docs/version-19/Concepts/dt_object.md @@ -3,7 +3,7 @@ id: object title: Object --- -Variáveis, campos ou expressões do tipo Objecto podem conter vários tipos de dados. The structure of "native" 4D objects is based on the classic principle of "property/value" pairs. A sintaxe desses objetos é baseada na notação JSON: +Variáveis, campos ou expressões do tipo Objecto podem conter vários tipos de dados. A estrutura dos objetos 4D "nativos" baseia-se no princípio clássico dos pares "propriedade/valor". A sintaxe desses objetos é baseada na notação JSON: - Um nome de uma propriedade é sempre um texto, por exemplo "nome". Deve seguir [regras específicas](identifiers.md#object-properties). @@ -22,7 +22,7 @@ Variáveis, campos ou expressões do tipo Objecto podem conter vários tipos de (*)Quando se expõe como texto no depurador ou se exporta a JSON, as propriedades dos objetos imagem imprimem "[objeto Imagem]". -**Warning:** Keep in mind that attribute names differentiate between upper and lower case. +**Aviso:** tenha em mente que os nomes de atributo diferenciam entre maiúsculas e minúsculas. You manage Object type variables, fields or expressions using the [object notation](dt_object.md#syntax-basics) or the classic commands available in the **Objects (Language)** theme. Gerencia variáveis do tipo Objecto, campos ou expressões usando a notação de objecto [](dt_object.md#syntax-basics) ou os comandos clássicos disponíveis no tema **Objects (Language)** . @@ -34,7 +34,7 @@ Cada valor de propriedade acessado através da notação de objeto é considerad ## Inicialização -Objects must have been initialized, for example using the `New object` command, otherwise trying to read or modify their properties will generate a syntax error. +Objetos devem ter sido inicializadas, por exemplo, usando o comando `New object`, caso contrário, tentar ler ou modificar suas propriedades gerará um erro de sintaxe. Exemplo: ```4d @@ -46,8 +46,8 @@ Exemplo: Pode criar dois tipos de objetos: -- regular (non-shared) objects, using the `New object` command. Estes objetos podem ser editados sem qualquer controle de acesso específico, mas não podem ser compartilhados entre processos. -- objetos compartilhados, usando o comando `New shared object`. Estes objetos podem ser compartidos entre processos, incluidos os threads preemptivos. Access to these objects is controlled by `Use... End use` structures. For more information, refer to the [Shared objects and collections](Concepts/shared.md) section. +- objetos regulares (não compartilhados) usando o comando `New object`. Estes objetos podem ser editados sem qualquer controle de acesso específico, mas não podem ser compartilhados entre processos. +- objetos compartilhados, usando o comando `New shared object`. Estes objetos podem ser compartidos entre processos, incluidos os threads preemptivos. Access to these objects is controlled by `Use... End use` structures. Para saber mais, consulte a seção [Objetos e coleções compartidos](Concepts/shared.md). ## Noções básicas de sintaxe @@ -147,7 +147,7 @@ Quando se usar a notação de objeto, o valore **null** se torna compatível com If(myColl[2]=Null) ``` -For more information, please refer to the `Null` command description. +Para mais informações, consulte a descrição de comando `Null`. ### Valor não definido @@ -225,21 +225,21 @@ Usar notação de objeto simplifica o código 4D no manejo dos mesmos. Entretant - Escrita e leitura das propriedades de objetos (este exemplo compara a notação de objetos e anotação de comandos): ```4d - // Using the object notation - C_OBJECT($myObj) //declares a 4D variable object - $myObj:=New object //creates an object and assigns to the variable - $myObj.age:=56 - $age:=$myObj.age //56 - - // Using the command notation - C_OBJECT($myObj2) //declares a 4D variable object - OB SET($myObj2;"age";42) //creates an object and adds the age property - $age:=OB Get($myObj2;"age") //42 - - // Of course, both notations can be mixed + // Usando a notação de objeto + C_OBJECT($myObj) //declara um objeto de variável 4D + $myObj:=New object //cria um objeto e atribui à variável + $myObj. idade: =56 + $age:=$myObj. ge //56 + + // Usando a notação de comando + C_OBJECT($myObj2) /declara um objeto de variável 4D + OB SET($myObj2; idade";42) /cria um objeto e adiciona a propriedade de idade + $age:=OB Get($myObj2; idade") /42 + + // É claro, ambas as notações podem ser misturadas C_OBJECT($myObj3) - OB SET($myObj3;"age";10) - $age:=$myObj3.age //10 + OB SET($myObj3; idade";10) + $age:=$myObj3. de //10 ``` - Criar uma propriedade e atribuir valores, incluindo objetos: @@ -262,12 +262,12 @@ Usar notação de objeto simplifica o código 4D no manejo dos mesmos. Entretant - É possível acessar as propriedades como strings usando o operador [] ```4d - $Emp["city"]:="Berlin" //modifies the city property - //this can be useful for creating properties through variables - C_TEXT($addr) + $Emp["city"]:="Berlin" //modifica a propriedade city + //isso pode ser útil para criar propriedades por meio de variáveis + var $addr : Text $addr:="address" For($i;1;4) $Emp[$addr+String($i)]:="" End for - // creates 4 empty properties "address1...address4" in the $Emp object + // cria 4 propriedades vazias "address1...address4" no objeto $Emp ``` diff --git a/i18n/pt/docusaurus-plugin-content-docs/version-19/Concepts/plug-ins.md b/i18n/pt/docusaurus-plugin-content-docs/version-19/Concepts/plug-ins.md index 805414d2896bbc..d6f9863a9b8433 100644 --- a/i18n/pt/docusaurus-plugin-content-docs/version-19/Concepts/plug-ins.md +++ b/i18n/pt/docusaurus-plugin-content-docs/version-19/Concepts/plug-ins.md @@ -7,11 +7,11 @@ Ao desenvolver uma aplicação 4D, irá descobrir muitas capacidades que não no ## Porquê a necessidade de um plug-in? -Although 4D provides hundred of built-in methods used to manipulate objects, records and implement user interface, some special use or feature (sometimes platform dependant) may be needed: one may need ODBC under Windows, another may need Apple services under macOS, while yet another may want to implement specific statistics tools, social network login, payment platform, file access over the network, a special user interface, or a private picture structure. +Embora 4D ofereça centenas de métodos integrados, para manipular objetos, registros e implementar a interface do usuário, pode ser necessário algum uso ou recurso especial (às vezes dependente da plataforma): alguém pode precisar de ODBC no Windows, ou pode precisar de serviços da Apple no macOS, enquanto outro ainda pode querer implementar ferramentas estatísticas específicas, login em redes sociais, plataforma de pagamento, acesso a arquivos pela rede, uma interface de usuário especial ou uma estrutura de imagem privada. It is obvious that covering all areas of both the macOS and Windows operating systems by way of 4D commands would certainly lead to a product with thousands of commands, and at the same time, most users would have no need for such a large set of capabilities. Also, creating such an all-encompassing tool would make the 4D environment incredibly complex and would take most users months of study before useful results could be expected. -The modular nature of the 4D environment allows the creation of basic applications but does not preclude the development of highly complex systems. The 4D Plug-in architecture opens the 4D environment to any type of application or user. Os 4D Plug-ins multiplicam o poder e a produtividade da aplicação ou do usuário. +A natureza modular do ambiente 4D permite a criação de aplicativos básicos, mas não impede o desenvolvimento de sistemas altamente complexos. A arquitetura 4D Plug-in abre o ambiente 4D para qualquer tipo de aplicação ou usuário. Os 4D Plug-ins multiplicam o poder e a produtividade da aplicação ou do usuário. ## Por que a necessidade de um plug-in? @@ -41,9 +41,9 @@ Um plug-in pode ser muito simples, com apenas uma rotina executando uma tarefa m ## Como instalar um plug-in? -You install plug-ins in the 4D environment by copying their files into the appropriate folder. +Você instala plug-ins no ambiente 4D copiando seus arquivos para a pasta apropriada. -“PluginName.bundle” folders contain both Windows and macOS versions of 4D plug-ins. Their specific internal architecture lets 4D Server load the appropriate version according to the platform where the client machine will be run. To install a plug-in in your environment, you just need to put the “PluginName.bundle” folder or package concerned into the desired **Plugins** folder. +As pastas "PluginName.bundle" contêm versões Windows e macOS de plugins 4D. Sua arquitetura interna específica permite que 4D Server carregue a versão apropriada conforme a plataforma onde a máquina do cliente será executada. To install a plug-in in your environment, you just need to put the “PluginName.bundle” folder or package concerned into the desired **Plugins** folder. Pode colocar a pasta Plugins em dois locais diferentes: @@ -54,6 +54,6 @@ Pode colocar a pasta Plugins em dois locais diferentes: A escolha do ubicação depende de como você deseja usar o plug-in. -If the same plug-in is placed in both locations, 4D will only load the one located next to the structure. In an application that is compiled and merged using 4D Volume Desktop, if there are several instances of the same plug-in present, this will prevent the application from opening. +Se o mesmo plug-in for colocado em ambos os locais, 4D só carregará o localizado ao lado da estrutura. Em uma aplicação compilada e fundida usando 4D Volume Desktop, se houver várias instâncias do mesmo plug-in presente, isso impedirá que a aplicação seja aberta. -Os plug-ins são carregados por 4D quando a aplicação for lançada, pelo que terá de abandonar a sua aplicação 4D antes de os instalar. Então abra seu projeto com 4D. If any plug-in requires a specific license for use, it will be loaded but not available for use. \ No newline at end of file +Os plug-ins são carregados por 4D quando a aplicação for lançada, pelo que terá de abandonar a sua aplicação 4D antes de os instalar. Então abra seu projeto com 4D. Se qualquer plug-in necessitar de uma licença específica para utilização, será carregado, mas não estará disponível para utilização. \ No newline at end of file diff --git a/i18n/pt/docusaurus-plugin-content-docs/version-19/FormEditor/formEditor.md b/i18n/pt/docusaurus-plugin-content-docs/version-19/FormEditor/formEditor.md index 7290ff3bd047bb..dc21ca5b5d7cff 100644 --- a/i18n/pt/docusaurus-plugin-content-docs/version-19/FormEditor/formEditor.md +++ b/i18n/pt/docusaurus-plugin-content-docs/version-19/FormEditor/formEditor.md @@ -16,10 +16,10 @@ You can show or hide several interface elements on the current page of the form: - **Inherited Form**: Inherited form objects (if there is an [inherited form](forms.md#inherited-forms)). - **Page 0**: Objects from [page 0](forms.md#form-pages). This option allows you to distinguish between the objects on the form’s current page and those on page 0. -- **Paper**: Borders of the printing page, which are shown as gray lines. This element can only be displayed by default in ["for printing" type](properties_FormProperties.md#form-type) forms. +- **Paper**: Borders of the printing page, which are shown as gray lines. Este elemento só pode ser exibido por padrão em formulários do tipo ["para impressão"](properties_FormProperties.md#form-type). - **Réguas**: réguas da janela do editor de formulários. -- **Markers**: Output control lines and associated markers that show the limits of the form’s different areas. This element can only be displayed by default in [list forms](properties_FormProperties.md#form-type). -- **Marker Labels**: Marker labels, available only when the output control lines are displayed. This element can only be displayed by default in [list forms](properties_FormProperties.md#form-type). +- **Markers**: Output control lines and associated markers that show the limits of the form’s different areas. Esse elemento só pode aparecer por padrão nos [formulários lista](properties_FormProperties.md#form-type). +- **Marker Labels**: Marker labels, available only when the output control lines are displayed. Esse elemento só pode aparecer por padrão nos [formulários lista](properties_FormProperties.md#form-type). - **Limites**: Limites do formulário. When this option is selected, the form is displayed in the Form editor as it appears in Application mode. This way you can adjust your form without having to switch to the Application mode in order to see the result. > > The [**Size Based on**](properties_FormSize.md#size-based-on), [**Hor margin**](properties_FormSize.md#hor-margin) and [**Vert margin**](properties_FormSize.md#vert-margin) settings of the form properties affect the form’s limits. When using these settings, the limits are based on the objects in the form. When you modify the size of an object that is located next to the form’s border, it is modified to reflect that change. @@ -29,7 +29,7 @@ You can show or hide several interface elements on the current page of the form: When a form is opened in the editor, interface elements are displayed or hidden by default, depending on: - the **New form default display** options set in the Preferences - unchecked options cannot be displayed by default. -- the current [form type](properties_FormProperties.md#form-type): +- o [tipo de formulário](properties_FormProperties.md#form-type) atual: - Marcadores e rótulos de marcadores são sempre exibidos por padrão em formulários lista - O papel é apresentado por defeito nos formulários "para impressão". @@ -56,13 +56,13 @@ A barra de ferramentas contém os seguintes elementos: | Ícone | Nome | Descrição | | ------------------------------------------------ | --------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | | ![](../assets/en/FormEditor/execute.png) | Executar o formulário | Utilizado para testar a execução do formulário. When you click on this button, 4D opens a new window and displays the form in its context (list of records for a list form and current record page for a detail form). O formulário é executado no processo principal. | -| ![](../assets/en/FormEditor/selection.png) | [Ferramenta de selecção](#selecting-objects) | Permite selecionar, mover e redimensionar os objetos do formulário.

    Allows selecting, moving and resizing form objects.Note: When an object of the Text or Group Box type is selected, pressing the Enter key lets you switch to editing mode.

    | +| ![](../assets/en/FormEditor/selection.png) | [Ferramenta de selecção](#selecting-objects) | Permite selecionar, mover e redimensionar os objetos do formulário.

    **Nota**: quando um objeto do tipo Texto ou Group Box é selecionado, pressionando a tecla **Enter** permite que você mude para o modo de edição.

    | | ![](../assets/en/FormEditor/zOrder.png) | [Ordem de entrada](#selecting-objects) | Switches to “Entry order” mode, where it is possible to view and change the current entry order of the form. Note that shields allow viewing the current entry order, while still working in the form. | | ![](../assets/en/FormEditor/moving.png) | [Deslocamento](#moving-objects) | Switches to “Move” mode, where it is possible to reach any part of the form quickly by using drag and drop in the window. O cursor assume a forma de uma mão. Este modo de navegação é particularmente útil ao ampliar o formulário. | | ![](../assets/en/FormEditor/zoom.png) | [Zoom](#zoom) | Permite modificar a percentagem de visualização do formulário (100% por padrão). You can switch to “Zoom” mode by clicking on the magnifying glass or by clicking directly on the desired bar. Esta função é descrita em pormenor na secção anterior. | | ![](../assets/en/FormEditor/alignment.png) | [Alinhamento](#aligning-objects) | This button is linked to a menu that allows changing the level of objects in the form. It is enabled (or not) depending on the objects selected.
    Disabled if one selected object position is locked by a CSS property | | ![](../assets/en/FormEditor/distribution.png) | [Distribuição](#distributing-objects) | Este botão está ligado a um menu que permite agrupar e desagrupar seleções de objetos no formulário. It is enabled (or not) depending on the objects selected.
    Disabled if one selected object position is locked by a CSS property | -| ![](../assets/en/FormEditor/level.png) | [Nível](#layering-objects) | This button is linked to a menu that allows aligning objects in the form. É ativada (ou não) em função dos objetos selecionados. | +| ![](../assets/en/FormEditor/level.png) | [Nível](#layering-objects) | This button is linked to a menu that allows changing the level of objects in the form. É ativada (ou não) em função dos objetos selecionados. | | ![](../assets/en/FormEditor/group.png) | [Grupo/Ungrupo](#grouping-objects) | Este botão está ligado a um menu que permite agrupar e desagrupar seleções de objetos no formulário. É ativada (ou não) em função dos objetos selecionados. | | ![](../assets/en/FormEditor/displyAndPage.png) | [Visualização e gestão de páginas](forms.html#form-pages) | Esta área permite passar de uma página de formulário para outra e adicionar páginas. Para navegar entre páginas de formulários, clique nos botões de seta, ou clique na área central e escolha a página a exibir a partir do menu que aparece. Se clicar no botão da seta para a direita enquanto é exibida a última página do formulário, 4D permite-lhe adicionar uma página. | | ![](../assets/en/FormEditor/cssPreviewicon.png) | [Pré-visualização CSS](#css-preview) | Este botão é utilizado para seleccionar o Modo CSS a utilizar. | @@ -70,7 +70,7 @@ A barra de ferramentas contém os seguintes elementos: | ![](../assets/en/FormEditor/shields2.png) | [Mostrando escudos](#shields) | Each click on this button causes the successive display of each type of form shield. The button is also linked to a menu that allows directly selecting the type of shield to display. | | ![](../assets/en/FormEditor/library.png) | [Librería de objetos preconfigurada](objectLibrary.html) | This button displays the preconfigured object library that provides numerous objects with certain properties that have been predefined. | | ![](../assets/en/FormEditor/listBoxBuilder1.png) | [Criação de list box](#list-box-builder) | Este botão cria list boxes entity selection. | -| ![](../assets/en/FormEditor/insertFields.png) | [Inserir campos](#insert-fields) | This button inserts all fields (except object and blob type fields) of the form table in the form, along with their labels and with respect to interface standards. | +| ![](../assets/en/FormEditor/insertFields.png) | [Inserir campos](#insert-fields) | Esse botão insere todos os campos (exceto os campos do tipo objeto e bolha) da tabela do formulário no formulário, juntamente com seus rótulos e de acordo com os padrões de interface. | ### Barra de objetos @@ -138,24 +138,24 @@ Once the object is placed in the form, you can modify its characteristics using - **Static objects** (lines, frames, background pictures, etc.): These objects are generally used for setting the appearance of the form and its labels as well as for the graphic interface. Estão disponíveis na barra de objetos do editor de formulários. You can also set their graphic attributes (size, color, font, etc.) and their resizing properties using the Property List. Os objetos estáticos não têm variáveis associadas como os objetos ativos. No entanto, é possível inserir objetos dinâmicos em objetos estáticos. -- **Active objects**: These objects perform tasks or functions in the interface and can take many forms: fields, buttons, scrollable lists, etc. Each active object is associated with either a field or a variable. Cada objeto ativo é associado com um campo ou uma variável. +- **Active objects**: These objects perform tasks or functions in the interface and can take many forms: fields, buttons, scrollable lists, etc. Cada objeto ativo é associado com um campo ou uma variável. ### Selecção de objectos Before you can perform any operation on an object (such as changing a line width or font), you need to select the object that you want to modify. -Para seleccionar um objecto utilizando a barra de ferramentas: +To select an object using the toolbar: 1. Clique na ferramenta Seta na barra de ferramentas.

    ![](../assets/en/FormEditor/selection.png)

    -

    Click the Arrow tool in the toolbar. When you move the pointer into the form area, it becomes a standard arrow-shaped pointer.

    . +

    Quando você move o ponteiro para a área do formulário, ele se torna um ponteiro padrão em forma de seta

    . 2. Clique no objecto que deseja selecionar. As pegas de redimensionamento identificam o objeto selecionado.

    ../assets/en/FormEditor/selectResize.png

    Para selecionar um objecto utilizando a Lista de Propriedades: -1. Escolher o nome do objecto na lista pendente da Lista de Objectos localizada no topo da Lista de Propriedades. Usando estes dois métodos, pode seleccionar um objecto que esteja escondido por outros objectos ou localizado fora da área visível da janela actual. Para desmarcar um objecto, clicar fora dos limites do objecto ou **Shift+click** o objecto. -> > > It is also possible to select objects by double-clicking them in the result window of ""Find in design" operation. +1. Escolher o nome do objecto na lista pendente da Lista de Objectos localizada no topo da Lista de Propriedades. Usando estes dois métodos, pode seleccionar um objecto que esteja escondido por outros objectos ou localizado fora da área visível da janela actual. To deselect an object that is part of a set of selected objects, hold down the **Shift** key and click the object. +> > > > It is also possible to select objects by double-clicking them in the result window of ""Find in design" operation. ### Selecção de múltiplos objectos @@ -171,7 +171,7 @@ A figura abaixo mostra um marque sendo desenhado para selecionar dois objetos: ![](../assets/en/FormEditor/selectMultiple.png) -To deselect an object that is part of a set of selected objects, hold down the **Shift** key and click the object. Os outros objetos permanecem selecionados. To deselect all the selected objects, click outside the boundaries of all the objects. +Para desmarcar um objecto, clicar fora dos limites do objecto ou **Shift+click** o objecto. Os outros objetos permanecem selecionados. To deselect all the selected objects, click outside the boundaries of all the objects. ### Duplicação de objectos @@ -193,7 +193,7 @@ A caixa de diálogo "Duplicar muitos" aparece quando se seleciona um ou mais obj ![](../assets/en/FormEditor/duplcateMany.png) -- Na área superior, introduza o número de colunas e linhas (linhas) de objectos que pretende obter. Por exemplo, se quiser três colunas e duas linhas de objectos, introduza 3 na área de Coluna(s) e 2 na área de Linha(s). Se quiser três novas cópias horizontais de um objecto, introduza 4 na área de Coluna(s) e deixe o valor por defeito, 1, na área de Linha(s). +- Na área superior, introduza o número de colunas e linhas (linhas) de objectos que pretende obter. Por exemplo, se quiser três colunas e duas linhas de objectos, introduza 3 na área de Coluna(s) e 2 na área de Linha(s). Na área superior, introduza o número de colunas e linhas (linhas) de objectos que pretende obter. - Para linhas e colunas, defina o offset que deseja deixar entre cada cópia. O valor deve ser expresso em pontos. It will be applied to each copy, or copies, in relation to the original object. For example, if you want to leave a vertical offset of 20 points between each object and the height of the source object is 50 points, enter 70 in the column’s “Offset” area. @@ -235,13 +235,13 @@ O agrupamento só afeta os objetos no editor de formulários. Quando o formulár Para agrupar objectos: 1. Selecione o objecto agrupado que pretende desagrupar. -2. Selecione **Grupo** no menu Objeto. OR Click the Group button in the toolbar of the Form editor:

    ![](../assets/en/FormEditor/group.png)

    -Choose **Group** from the Object menu.OR Click the Group button in the toolbar of the Form editor:![](../assets/en/FormEditor/group.png) 4D marks the boundary of the newly grouped objects with handles. No handles mark the boundary of any of the individual objects within the group. Now, when you modify the grouped object, you change all the objects that make up the group. +2. Selecione **Grupo** no menu Objeto. OU Clique no botão do Grupo na barra de ferramentas no editor de formulário:

    ![](../assets/en/FormEditor/group.png)

    +4D marca a borda dos objetos recém-agrupados com alças. No handles mark the boundary of any of the individual objects within the group. Now, when you modify the grouped object, you change all the objects that make up the group. Para desagrupar objetos: 1. Seleccione o objecto ou objectos que pretende duplicar. -2. Choose **Ungroup** from the **Object** menu.ORClick the **Ungroup** button (variant of the **Group** button) in the toolbar of the Form editor.

    OU

    Click the **Ungroup** button (variant of the **Group** button) in the toolbar of the Form editor.

    If Ungroup is dimmed, this means that the selected object is already separated into its simplest form.4D marks the boundaries of the individual objects with handles.

    4D marca os limites dos objetos individuais com alças. +2. Escolher **Desagrupar** a partir do menu **Objetos**.

    OU

    Clique no botão **Desagrupamento** (variante do botão **Grupo**) na barra de ferramentas do editor do formulário.

    Se **Desagrupamento** for escurecido, isso significa que o objeto selecionado já está separado em sua forma mais simples.

    4D marca os limites dos objetos individuais com alças. ### Alinhamento de objetos @@ -268,9 +268,9 @@ The Alignment Assistant allows you to perform any type of alignment and/or distr To display this dialog box, select the objects you want to align then choose the **Alignment** command from the **Align** submenu in the **Object** menu or from the context menu of the editor. -- In the “Left/Right Alignment” and/or “Top/Bottom Alignment” areas, click the icon that corresponds to the alignment you want to perform.

    A área de exemplo apresenta os resultados da sua seleção.

    +- Nas áreas "Alinhamento Esquerda/Direita" e/ou "Alinhamento Superior/Inferior", clique no ícone que corresponde ao alinhamento que você deseja executar.

    A área de exemplo apresenta os resultados da sua seleção.

    -- To perform an alignment that uses the standard anchor scheme, click **Preview** or **Apply**. In this case 4D uses the object that is the furthest in the alignment’s direction as the anchor and aligns the other objects to that object. Por exemplo, se quiser realizar um alinhamento correcto num conjunto de objectos, o objecto mais à direita será utilizado como âncora. For instance, if you want to perform a right alignment on a set of objects, the rightmost object will be used as the anchor.OR:To align objects to a specific object, select the **Align on** option and select the object to which you want the other objects to be aligned from the object list.

    Para alinhar objetos a um objeto específico, selecione a opção **Alinhar em** e selecione o objeto ao qual deseja que os outros objetos sejam alinhados na lista de objetos. Neste caso, a posição do objeto de referência não será alterada.

    +- Para executar um alinhamento que use o esquema de âncora padrão, clique em **Prévia** ou **Aplicar**. Nesse caso, 4D usa o objeto que está mais distante na direção do alinhamento como âncora e alinha os outros objetos a esse objeto. Por exemplo, se quiser realizar um alinhamento correcto num conjunto de objectos, o objecto mais à direita será utilizado como âncora. OU:

    Para alinhar objetos a um objeto específico, selecione a opção **Alinhar em** e selecione o objeto ao qual deseja que os outros objetos sejam alinhados na lista de objetos. Neste caso, a posição do objeto de referência não será alterada.

    Pode pré-visualizar os resultados do alinhamento clicando no botão **Pré-visualização**. Os objetos são então alinhados no editor de formulários, mas como a caixa de diálogo não desaparece, ainda é possível cancelar ou aplicar o alinhamento. > Esta caixa de diálogo permite-lhe alinhar e distribuir objetos numa única operação. Para mais informações sobre como distribuir objetos, consultar [Distribuir objetos](#distributing-objects). @@ -304,17 +304,17 @@ Para distribuir objetos com igual espaçamento: 1. Selecione três ou mais objetos e clique na ferramenta Distribuir pretendida. -2. In the toolbar, click on the distribution tool that corresponds to the distribution you want to apply.

    ![](../assets/en/FormEditor/distributionTool.png)

    OU

    Selecione um comando de distribuição no submenu **Alinear** do menu **Objeto** ou no menu contextual do editor.

    In the toolbar, click on the distribution tool that corresponds to the distribution you want to apply.![](../assets/en/FormEditor/distributionTool.png)ORSelect a distribution menu command from the **Align** submenu in the **Object** menu or from the context menu of the editor.4D distributes the objects accordingly. Objects are distributed using the distance to their centers and the largest distance between two consecutive objects is used as a reference. +2. Na barra de ferramentas, clique na ferramenta de distribuição que corresponde à distribuição que você deseja aplicar.

    ![](../assets/en/FormEditor/distributionTool.png)

    OU

    Selecione um comando de distribuição no submenu **Alinear** do menu **Objeto** ou no menu contextual do editor.

    4D distribui os objetos em conformidade. Objects are distributed using the distance to their centers and the largest distance between two consecutive objects is used as a reference. Para distribuir objetos utilizando a caixa de diálogo Alinhar e distribuir: 1. Seleccione os objectos que pretende distribuir. -2. Choose the **Alignment** command from the **Align** submenu in the **Object** menu or from the context menu of the editor. Aparece a seguinte caixa de diálogo:![](../assets/en/FormEditor/alignmentAssistant.png) +2. Escolha o comando **Alinhamento** do submenu **Alinhar** no menu **Objeto** ou no menu de contexto do editor. Aparece a seguinte caixa de diálogo:![](../assets/en/FormEditor/alignmentAssistant.png) -3. In the Left/Right Alignment and/or Top/Bottom Alignment areas, click the standard distribution icon: ![](../assets/en/FormEditor/horizontalDistribution.png)(Standard horizontal distribution icon)The example area displays the results of your selection.![](../assets/en/FormEditor/horizontalDistribution.png)

    (Ícone de distribuição horizontal standard)

    A área de exemplo apresenta os resultados da sua seleção. +3. Nas áreas Alinhamento Esquerdo/Direita e/ou Alinhamento Superior/Inferior, clique no ícone de distribuição padrão: ![](../assets/en/FormEditor/horizontalDistribution.png)

    (Ícone de distribuição horizontal standard)

    A área de exemplo apresenta os resultados da sua seleção. -4. To perform a distribution that uses the standard scheme, click **Preview** or *Apply*.

    In this case 4D will perform a standard distribution, so that the objects are set out with an equal amount of space between them.OR:To execute a specific distribution, select the Distribute option (for example if you want to distribute the objects based on the distance to their right side).

    For instance, if you want to perform a right alignment on a set of objects, the rightmost object will be used as the anchor.OR:To align objects to a specific object, select the **Align on** option and select the object to which you want the other objects to be aligned from the object list.

    Para executar uma distribuição específica, selecione a opção **Distribuir** (por exemplo, se você quiser distribuir os objetos com base na distância até o lado direito). Esta opção funciona como um interruptor. If the Distribute check box is selected, the icons located below it perform a different function:

    +4. Para realizar uma distribuição que use o esquema padrão, clique em **Pré-visualizar** ou *Aplicar*.

    Neste caso 4D irá executar uma distribuição padrão, de modo que os objetos sejam definidos com a mesma quantidade de espaço entre eles.

    OU:

    Para executar uma distribuição específica, selecione a opção **Distribuir** (por exemplo, se você quiser distribuir os objetos com base na distância até o lado direito). Esta opção funciona como um interruptor. If the Distribute check box is selected, the icons located below it perform a different function:

    - Horizontally, the icons correspond to the following distributions: evenly with respect to left sides, centers (hor.) and right sides of the selected objects. - Vertically, the icons correspond to the following distributions: evenly with respect to top edges, centers (vert.) and bottom edges of the selected objects. @@ -367,11 +367,11 @@ This paragraph describes viewing and modifying the entry order using the “Entr Para ver ou alterar a ordem de entrada: -1. When you are satisfied with the data entry order, click any unselected tool in the toolbar or choose **Entry Order** from the **Form** menu.4D returns to normal operation of the Form editor.

    ![](../assets/en/FormEditor/zOrder.png)

    +1. Escolha **Ordem de Entrada** a partir do menu **Formulário** ou clique no botão da Ordem de Entrada na barra de ferramentas da janela:

    ![](../assets/en/FormEditor/zOrder.png)

    - Choose **Entry Order** from the **Form** menu or click on the Entry Order button in the toolbar of the window:![](../assets/en/FormEditor/zOrder.png)The pointer turns into an entry order pointer and 4D draws a line in the form showing the order in which it selects objects during data entry. A visualização e alteração da ordem de introdução de dados são as únicas acções que pode realizar até clicar em qualquer ferramenta na paleta Ferramentas. + O ponteiro se transforma em um ponteiro de ordem de entrada e 4D desenha uma linha na forma mostrando a ordem em que ele seleciona objetos durante a entrada de dados. A visualização e alteração da ordem de introdução de dados são as únicas acções que pode realizar até clicar em qualquer ferramenta na paleta Ferramentas. -2. To change the data entry order, position the pointer on an object in the form and, while holding down the mouse button, drag the pointer to the object you want next in the data entry order.![](../assets/en/FormEditor/entryOrder3.png)4D will adjust the entry order accordingly.

    ![](../assets/en/FormEditor/entryOrder3.png)

    4D irá ajustar a ordem de entrada em conformidade. +2. Para alterar a ordem de entrada de dados, posicionar o ponteiro sobre um objeto na forma e, mantendo pressionado o botão do rato, arrastar o ponteiro para o objeto que se pretende a seguir na ordem de entrada de dados.

    ![](../assets/en/FormEditor/entryOrder3.png)

    4D irá ajustar a ordem de entrada em conformidade. 3. Repita a etapa 2 tantas vezes quantas forem necessárias para definir a ordem de introdução de dados que desejar. @@ -502,17 +502,17 @@ O list box final: ## Inserir campos -The **Insert fields** button inserts all fields (except object and blob type fields) of the form table in the form, along with their labels and with respect to interface standards. Esse assistente é um atalho para projetar formulários básicos de entrada ou formulários lista. +O botão **Inserir campos** insere todos os campos (exceto os campos do tipo objeto e bolha) da tabela do formulário no formulário, com seus rótulos e conforme os padrões de interface. Esse assistente é um atalho para projetar formulários básicos de entrada ou formulários lista. -The **Insert fields** button is only available with table forms. +O botão **Inserir campos** só está disponível em formulários de tabela. O desenho do formulário resultante depende do formulário: -- **Detail form**: clicking on the **Insert fields** button generates a form with a page design: +- **Formulário detalhado**: clicar no botão **Inserir campos** gera um formulário com um design de página: ![](../assets/en/FormEditor/insertFields2.png) -- **List form**: clicking on the **Insert fields** button generates a list form design with fields organized on a single line and area markers: +- **Formulário de lista**: clicar no botão **Inserir campos** gera um design de formulário de lista com campos organizados em uma única linha e marcadores de área: ![](../assets/en/FormEditor/insertFields3.png) diff --git a/i18n/pt/docusaurus-plugin-content-docs/version-19/FormEditor/pictures.md b/i18n/pt/docusaurus-plugin-content-docs/version-19/FormEditor/pictures.md index b143e4e10b5112..155a3748b00249 100644 --- a/i18n/pt/docusaurus-plugin-content-docs/version-19/FormEditor/pictures.md +++ b/i18n/pt/docusaurus-plugin-content-docs/version-19/FormEditor/pictures.md @@ -49,7 +49,7 @@ As imagens de alta resolução com a convenção @nx podem ser utilizadas nos se * [Cabeçalhos de list box](FormObjects/listbox_overview.md#list-box-headers) * [Ícones de menu](Menus/properties.md#item-icon) -4D dá automaticamente prioridade às imagens com a resolução mais alta. Por exemplo, ao usar duas telas (uma de alta resolução e outra padrão) e mover um formulário de uma tela para outra, 4D renderiza automaticamente a resolução mais alta possível da imagem. Mesmo que um comando ou propriedade especifique *circle.png*, *circle@3x.png* será utilizado (se existir). +4D dá automaticamente prioridade às imagens com a resolução mais alta. 4D dá automaticamente prioridade às imagens com a resolução mais alta. Mesmo que um comando ou propriedade especifique *circle.png*, *circle@3x.png* será utilizado (se existir). > Note que a priorização da resolução ocorre apenas para a apresentação de imagens no ecrã, não havendo priorização automática durante a impressão. ### DPI (macOS and Windows) @@ -58,7 +58,7 @@ Embora 4D priorize automaticamente a resolução mais alta, há, no entanto, alg | Operação | Comportamento | | ------------------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------ | -| Soltar o pegar | Se a imagem tiver:
    • **72dpi ou 96dpi** - A imagem é "[Center](FormObjects/properties_Picture.md#center--truncated-non-centered)" formatada e o objeto que contém a imagem tem o mesmo número de pixels.
    • **Outros dpi** - A imagem está formatada como "[Scaled to fit](FormObjects/properties_Picture.md#scaled-to-fit)" e o objeto que contém a imagem é igual a (número de pixels da imagem * dpi da tela) / (dpi da imagem)
    • **No dpi** - A imagem é formatada como "[Scaled to fit](FormObjects/properties_Picture.md#scaled-to-fit)".
    | +| Soltar o pegar | Se a imagem tiver:
    • **72dpi ou 96dpi** - A imagem é "[Center](FormObjects/properties_Picture.md#center--truncated-non-centered)" formatada e o objeto que contém a imagem tem o mesmo número de píxeis.
    • **Outros dpi** - A imagem está formatada como "[Scaled to fit](FormObjects/properties_Picture.md#scaled-to-fit)" e o objeto que contém a imagem é igual a (número de pixels da imagem * dpi da tela) / (dpi da imagem)
    • **No dpi** - A imagem é formatada como "[Scaled to fit](FormObjects/properties_Picture.md#scaled-to-fit)".
    | | [Tamanho automático](https://doc.4d.com/4Dv19/4D/19/Setting-object-display-properties.300-5416671.en.html#148057) (menu contextual do Editor de formulários) | Se o formato de apresentação da imagem é:
    • **[Scaled](FormObjects/properties_Picture.md#scaled-to-fit)** - O objeto que contém a imagem é redimensionado de acordo com (número de pixels da imagem * dpi da tela) / (dpi da imagem)
    • **Não dimensionado** - O objeto que contém a imagem tem o mesmo número de pixels que a imagem.
    | *(\*) Normalmente, macOS = 72 dpi, Windows = 96 dpi* @@ -80,6 +80,6 @@ Em tempo de execução, 4D carregará automaticamente a imagem clara ou escura d 4D permite recuperar as coordenadas locais do mouse em um [objeto de entrada](FormObjects/input_overview.md) associado a uma [expressão de imagem](FormObjects/properties_Object.md#expression-type), no caso de que clique ou passe o cursor por cima, mesmo se não tiver aplicado um deslocamento ou zoom na imagem. Esse mecanismo, similar ao de um mapa de imagens, pode ser utilizado, por exemplo, para manejar barras de botões deslocáveis ou a interface de um software de cartografia. -The coordinates are returned in the *MouseX* and *MouseY* [System Variables](../Concepts/variables.md#system-variables). As coordenadas são expressas em píxeis em relação ao canto superior esquerdo da imagem (0,0). Se o mouse estiver fora do sistema de coordenadas da imagem, se devolverá -1 em *MouseX* e *MouseY*. +As coordenadas são retornadas na *MouseX* e *MouseY* [Variáveis de sistema](../Concepts/variables.md#system-variables). As coordenadas são expressas em píxeis em relação ao canto superior esquerdo da imagem (0,0). Se o mouse estiver fora do sistema de coordenadas da imagem, se devolverá -1 em *MouseX* e *MouseY*. Pode obter o valor dessas variáveis como parte dos eventos formulário `On Clicked`, `On Double Clicked`, `On Mouse up`, `On Mouse Enter`, ou `On Mouse Move`. diff --git a/i18n/pt/docusaurus-plugin-content-docs/version-19/FormEditor/properties_FormSize.md b/i18n/pt/docusaurus-plugin-content-docs/version-19/FormEditor/properties_FormSize.md index e487a21ddc335d..6ae379569182b5 100644 --- a/i18n/pt/docusaurus-plugin-content-docs/version-19/FormEditor/properties_FormSize.md +++ b/i18n/pt/docusaurus-plugin-content-docs/version-19/FormEditor/properties_FormSize.md @@ -12,7 +12,7 @@ As opções de tamanho dependem do valor da opção **Tamanho baseado em**. ## Tamanho baseado em -* **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. You can choose this option when you want to use active objects placed in an offscreen area (*i.e.*, outside the bounding rectangle of the window) with an automatic size window. Thanks to this option, the presence of these objects will not modify the size of the window. +* **Tamanho automático**: o tamanho do formulário será necessário para exibir todos os objetos, ao qual serão adicionados os valores de margem (em pixels) inseridos nos campos [**Hor Margin**](#hor-margin) e [**Margem Vert**](#vert-margin). You can choose this option when you want to use active objects placed in an offscreen area (*i.e.*, outside the bounding rectangle of the window) with an automatic size window. Thanks to this option, the presence of these objects will not modify the size of the window. * **Set Size**: The size of the form will be based on what you enter (in pixels) in the [**Width**](#width) and [**Height**](#height) fields. @@ -40,7 +40,7 @@ Altura do formulário (em pixéis) quando o [tamanho do formulário](#size-based --- -## Margem hor. +## Margem Margem hor. Value to add (in pixels) to the right margin of the form when the [form size](#size-based-on) is **Automatic size** or `\<object name>` @@ -54,7 +54,7 @@ This value also determines the right-hand margins of forms used in the Label edi --- -## Margem hor. +## Margem Margem hor. Value to add (in pixels) to the bottom margin of the form when the [form size](#size-based-on) is **Automatic size** or `\<object name>`. diff --git a/i18n/pt/docusaurus-plugin-content-docs/version-19/FormObjects/button_overview.md b/i18n/pt/docusaurus-plugin-content-docs/version-19/FormObjects/button_overview.md index f03008d8181bad..771a68ffe31af0 100644 --- a/i18n/pt/docusaurus-plugin-content-docs/version-19/FormObjects/button_overview.md +++ b/i18n/pt/docusaurus-plugin-content-docs/version-19/FormObjects/button_overview.md @@ -31,7 +31,7 @@ Com excepção do [propriedades disponíveis](#supported-properties), muitos obj ### Clássico -The Regular button style is a standard system button (*i.e.*, a rectangle with a descriptive label) which executes code when a user clicks on it. +O estilo de botão Clássico é um botão padrão do sistema (*ou seja*, um retângulo com um rótulo descritivo) que executa o código quando o usuário clica nele. ![](../assets/en/FormObjects/button_regular.png) @@ -58,7 +58,7 @@ Only the Regular and Flat styles offer the [Default Button](properties_Appearanc ### Plano -The Flat button style is a standard system button (*i.e.*, a rectangle with a descriptive label) which executes code when a user clicks on it. +O estilo de botão Plano é um botão padrão do sistema (*ou seja*, um retângulo com um rótulo descritivo) que executa o código quando o usuário clica nele. ![](../assets/en/FormObjects/button_flat.png) @@ -85,7 +85,7 @@ Only the Regular and Flat styles offer the [Default Button](properties_Appearanc ### Barra de ferramentas -The Toolbar button style is primarily intended for integration in a toolbar. It includes the option to add a pop-up menu (indicated by an inverted triangle) which is generally used to display additional choices for the user to select. +The Toolbar button style is primarily intended for integration in a toolbar. Inclui a opção de adicionar um menu pop-up (indicado por um triângulo invertido), sendo geralmente usado para exibir opções adicionais para o usuário selecionar. By default, the Toolbar style has a transparent background with a label in the center. A aparência do botão pode ser diferente quando o cursor passar por cima dele, dependendo do SO: @@ -280,7 +280,7 @@ O estilo de botão Círculo aparece como um botão sistema redondo. Este estilo ![](../assets/en/FormObjects/button_circleM.png) -On Windows, it is identical to the “None” style (the circle in the background is not taken into account). +No Windows, ele é idêntico ao estilo "Nenhum" (o círculo no plano de fundo não é considerado). #### JSON Exemplo diff --git a/i18n/pt/docusaurus-plugin-content-docs/version-19/FormObjects/checkbox_overview.md b/i18n/pt/docusaurus-plugin-content-docs/version-19/FormObjects/checkbox_overview.md index c35c648d0e54a3..0939222e6d726a 100644 --- a/i18n/pt/docusaurus-plugin-content-docs/version-19/FormObjects/checkbox_overview.md +++ b/i18n/pt/docusaurus-plugin-content-docs/version-19/FormObjects/checkbox_overview.md @@ -31,7 +31,7 @@ Para ativar este terceiro estado, deve selecionar a propriedade [Três estados]( Essa propriedade só está disponível para caixas de seleção regulares e planas associadas a [variáveis ou expressões](properties_Object.md#variable-or-expression) — as caixas de seleção de expressões booleanas não podem usar a propriedade [Três Estados](properties_Display.md#three-states) (uma expressão Booleana não pode estar em um estado intermediário). A variável associada à caixa de seleção devolve o valor 2 quando a caixa estiver no terceiro estado. -> In entry mode, the Three-States check boxes display each state sequentially, in the following order: unchecked / checked / intermediary / unchecked, etc. No modo de entrada, as caixas de seleção dos três estados mostram cada estado de forma sequencial na ordem abaixo: sem marcar/marcado/intermediário/sem marcar, etc. O estado intermediário não é geralmente muito útil no modo entrada; no código, simplesmente force o valor da variável para 0 quando tomar o valor de 2 para passar diretamente de um estado marcado para o estado desmarcado. +> In entry mode, the Three-States check boxes display each state sequentially, in the following order: unchecked / checked / intermediary / unchecked, etc. No modo de entrada, as caixas de seleção dos três estados mostram cada estado de forma sequencial na ordem abaixo: sem marcar/marcado/intermediário/sem marcar, etc. O estado intermediário não é geralmente muito útil no modo entrada; no código, simplesmente force o valor da variável para 0 quando tomar o valor de 2 para passar diretamente de um estado marcado para o estado desmarcado. No modo de entrada, as caixas de seleção dos três estados mostram cada estado de forma sequencial na ordem abaixo: sem marcar/marcado/intermediário/sem marcar, etc. O estado intermediário não é geralmente muito útil no modo entrada; no código, simplesmente force o valor da variável para 0 quando tomar o valor de 2 para passar diretamente de um estado marcado para o estado desmarcado. ## Usar uma ação padrão diff --git a/i18n/pt/docusaurus-plugin-content-docs/version-19/Notes/updates.md b/i18n/pt/docusaurus-plugin-content-docs/version-19/Notes/updates.md index d6e7b933b74f69..3dfb5303f127dc 100644 --- a/i18n/pt/docusaurus-plugin-content-docs/version-19/Notes/updates.md +++ b/i18n/pt/docusaurus-plugin-content-docs/version-19/Notes/updates.md @@ -56,7 +56,7 @@ If your 4D applications use TLS connections, it is recommended that you upgrade - [File Class](../API/FileClass.md): new `setAppInfo()` and `getAppInfo()` functions. - New [4DEACH](../Tags/tags.md#4deach-and-4dendeach) transformation tag. - Web Server: new [SameSite session cookie](../WebServer/webServerConfig.md#session-cookie-samesite) setting. -- Dark and light color scheme support for [forms](../FormEditor/properties_FormProperties.md#color-scheme) and [style sheets](../FormEditor/stylesheets#media-queries) +- Suporte ao esquema de cores escura e clara para [formulários](../FormEditor/properties_FormProperties.md#color-scheme) e [folhas de estilo](../FormEditor/stylesheets#media-queries) - New default dark and light themes in [Code Editor preferences](../Preferences/methods.md#theme-list). - [Native compilation](../Project/compiler.md#compiler-methods-for) for Silicon processors. - [Cálculo de variável](../FormObjects/properties_Object.md#variable-calculation) agora é suportado pelas colunas list box da entity selection selecionada. diff --git a/i18n/pt/docusaurus-plugin-content-docs/version-20-R6/API/DataClassClass.md b/i18n/pt/docusaurus-plugin-content-docs/version-20-R6/API/DataClassClass.md index 43a26d5397d8e3..aafe1162e27c9d 100644 --- a/i18n/pt/docusaurus-plugin-content-docs/version-20-R6/API/DataClassClass.md +++ b/i18n/pt/docusaurus-plugin-content-docs/version-20-R6/API/DataClassClass.md @@ -845,9 +845,9 @@ Este exemplo cria uma nova entidade na classe de dados "Log" e registra a inform A função `.newSelection()` cria uma nova seleção de entidades em branco, não compartilhável, relacionada à dataclass, na memória. -> Para informações sobre seleções de entidades não compartilháveis, consulte [esta seção](ORDA/entities.md#seleções-de-entidades-compartilháveis-ou-não-compartilháveis). +> Para informações sobre seleções de entidades não compartilháveis, consulte [esta seção](ORDA/entities.md#shareable-or-non-shareable-entity-selections). -Se quiser criar uma seleção de entidades ordenada, passe o seletor `dk keep ordered` no parâmetro *keepOrder*. Por padrão, se você omitir este parâmetro, ou se passar o seletor `dk non ordered`, o método cria uma seleção de entidades não ordenada. As seleções de entidades desordenadas são mais rápidas mas não se pode confiar nas posições das entidades. Para mais informações, por favor consulte [Seleções de entidades ordenadas vs não ordenadas](ORDA/dsMapping.md#seleção-de-entidades-ordenadas-ou-não-ordenadas). +Se quiser criar uma seleção de entidades ordenada, passe o seletor `dk keep ordered` no parâmetro *keepOrder*. Por padrão, se você omitir este parâmetro, ou se passar o seletor `dk non ordered`, o método cria uma seleção de entidades não ordenada. As seleções de entidades desordenadas são mais rápidas mas não se pode confiar nas posições das entidades. Para mais informações, por favor consulte [Seleções de entidades ordenadas vs não ordenadas](ORDA/dsMapping.md#ordered-or-unordered-entity-selection). Quando criada, a seleção de entidades não contém nenhuma entidade (`mySelection.length` retorna 0). Este método permite construir seleções de entidades gradualmente fazendo chamadas subsequentes à função [`add()`](EntitySelectionClass.md#add). @@ -940,7 +940,7 @@ Fórmulas nas consultas podem receber parâmetros através de $1. Este ponto est | Incluído em | IN | Retorna dados iguais a ao menos um dos valores de uma coleção ou de um conjunto de valores, admite o coringa (@) | | Contém palavra chave | % | As palavras chaves podem ser usadas em atributos de string ou imagem | -- **value**: o valor a comparar ao valor atual da propriedade de cada entidade na seleção de entidade. Pode ser um **marcador** (ver **Uso de marcadores** abaixo) ou qualquer expressão que coincida com a propriedade de tipo de dados. +- **value**: o valor a comparar ao valor atual da propriedade de cada entidade na seleção de entidade. Pode ser um **marcador** (ver **Uso de marcadores** abaixo) ou qualquer expressão que coincida com a propriedade de tipo de dados. Observe que, em caso de incompatibilidade de tipo com tipos escalares (texto, data, número...), 4D tentará converter o tipo de **valor** para o tipo de atributo sempre que possível, para um tratamento mais fácil de valores vindos da Internet. Por exemplo, se a string "v20" for digitada como **valor** para comparar com um atributo inteiro, ela será convertida em 20. Quando usar um valor constante, as regras abaixo devem ser respeitadas: - A constante de tipo texto pode ser passada com ou sem aspas simples (ver **Uso de aspas mais abaixo**). Para pesquisar uma stirng dentro de uma string (uma pesquisa "contém") use o símbolo coringa (@) em valor para isolar a string a ser pesquisada como mostrado neste exemplo: "@Smith@". As palavras chaves abaixo são proibidas para constantes de texto: true, false. - Valores constantes de tipo **booleano**: **true** ou **false** (diferencia maiúscula de minúscula). diff --git a/i18n/pt/docusaurus-plugin-content-docs/version-20-R6/API/EntityClass.md b/i18n/pt/docusaurus-plugin-content-docs/version-20-R6/API/EntityClass.md index 4ed44e47abf465..4d7af6a78403ef 100644 --- a/i18n/pt/docusaurus-plugin-content-docs/version-20-R6/API/EntityClass.md +++ b/i18n/pt/docusaurus-plugin-content-docs/version-20-R6/API/EntityClass.md @@ -98,9 +98,11 @@ The attribute value type depends on the attribute [kind](DataClassClass.md#attri #### Descrição -The `.clone()` function creates in memory a new entity referencing the same record as the original entity. . +The `.clone()` function creates in memory a new entity referencing the same record as the original entity. -> Keep in mind that any modifications done to entities will be saved in the referenced record only when the [`.save( )`](#save) function is executed. +This function allows you to update entities separately. Note however that, for performance reasons, the new entity shares the same reference of object attributes as the cloned entity. + +> Keep in mind that any modifications done to entities will be saved in the referenced record only when the [`.save()`](#save) function is executed. Esta função só pode ser usada com entidades já salvas no banco de dados. Não pode ser chamado em uma entidade recém-criada (para a qual [`.isNew()`](#isnew) retorna **True**). diff --git a/i18n/pt/docusaurus-plugin-content-docs/version-20-R6/API/HTTPRequestClass.md b/i18n/pt/docusaurus-plugin-content-docs/version-20-R6/API/HTTPRequestClass.md index 6b698419076b51..b063b03cad2068 100644 --- a/i18n/pt/docusaurus-plugin-content-docs/version-20-R6/API/HTTPRequestClass.md +++ b/i18n/pt/docusaurus-plugin-content-docs/version-20-R6/API/HTTPRequestClass.md @@ -472,7 +472,7 @@ The `.url` property contains the URL o ## .wait() -**.wait**( { *time* : Real } ) : HTTPRequestClass +**.wait**( { *time* : Real } ) : 4D.HTTPRequest diff --git a/i18n/pt/docusaurus-plugin-content-docs/version-20-R6/API/WebServerClass.md b/i18n/pt/docusaurus-plugin-content-docs/version-20-R6/API/WebServerClass.md index 76e61ebd4e0579..9e2aa8c3336d65 100644 --- a/i18n/pt/docusaurus-plugin-content-docs/version-20-R6/API/WebServerClass.md +++ b/i18n/pt/docusaurus-plugin-content-docs/version-20-R6/API/WebServerClass.md @@ -171,7 +171,7 @@ Path of the folder where t **.characterSet** : Number
    **.characterSet** : Text -The character set that the 4D Web Server should use to communicate with browsers connecting to the application. O valor padrão realmente depende da linguagem do SO. Can be a MIBEnum integer or a Name string, identifiers [defined by IANA](http://www.iana.org/assignments/character-sets/character-sets.xhtml). Aqui está a lista de identificadores correspondentes aos conjuntos de caracteres suportados pelo Servidor Web 4D: +The character set that the 4D Web Server should use to communicate with browsers connecting to the application. O valor padrão realmente depende da linguagem do SO. O valor padrão realmente depende da linguagem do SO. Aqui está a lista de identificadores correspondentes aos conjuntos de caracteres suportados pelo Servidor Web 4D: - 4 = ISO-8859-1 - 12 = ISO-8859-9 @@ -205,7 +205,7 @@ The cipher list used for the sec **.CORSEnabled** : Boolean -The CORS (*Cross-origin resource sharing*) service status for the web server. Por razões de segurança, solicitações de "cross-domain" são proibidas no nível do navegador por padrão. When enabled (True), XHR calls (e.g. REST requests) from Web pages outside the domain can be allowed in your application (you need to define the list of allowed addresses in the CORS domain list, see `CORSSettings` below). Quando desativado (False, padrão), todas as solicitações de cruzamento de sites enviadas com CORS são ignoradas. Quando habilitado (verdadeiro) e um domínio ou método não permitido envia uma solicitação de site cruzado, ele é rejeitado com uma resposta de erro "403 - proibido". +The CORS (*Cross-origin resource sharing*) service status for the web server. Por razões de segurança, solicitações de "cross-domain" são proibidas no nível do navegador por padrão. Por razões de segurança, solicitações de "cross-domain" são proibidas no nível do navegador por padrão. Quando desativado (False, padrão), todas as solicitações de cruzamento de sites enviadas com CORS são ignoradas. Quando habilitado (verdadeiro) e um domínio ou método não permitido envia uma solicitação de site cruzado, ele é rejeitado com uma resposta de erro "403 - proibido". Padrão: Falso (desabilitado) @@ -221,19 +221,19 @@ For more information about CORS, please refer to the [Cross-origin resource shar Contains the list of allowed hosts and methods for the CORS service (see [`CORSEnabled`](#corsenabled) property). Cada objeto deve conter uma propriedade **host** e, opcionalmente, uma propriedade **methods**: -- **host** (text, mandatory): Domain name or IP address from where external pages are allowed to send data requests to the Server via CORS. Vários atributos de domínio podem ser adicionados para criar uma lista branca. If *host* is not present or empty, the object is ignored. Várias sintaxes são suportadas: +- **host** (text, mandatory): Domain name or IP address from where external pages are allowed to send data requests to the Server via CORS. Vários atributos de domínio podem ser adicionados para criar uma lista branca. Vários atributos de domínio podem ser adicionados para criar uma lista branca. Várias sintaxes são suportadas: - 192.168.5.17:8081 - 192.168.5.17 - 192.168.\* - 192.168.\*:8081 - - - + - - - \*.myDomain.com - myProject.myDomain.com - \* -- **methods** (texto, opcional): métodos HTTP aceito(s) para o host CORS correspondente. Separar cada método com um ";" (por exemplo: "post;get"). If *methods* is empty, null, or undefined, all methods are enabled. +- **methods** (texto, opcional): métodos HTTP aceito(s) para o host CORS correspondente. Separar cada método com um ";" (por exemplo: "post;get"). Separar cada método com um ";" (por exemplo: "post;get"). @@ -269,7 +269,7 @@ The name of the default home **.HSTSEnabled** : Boolean -The HTTP Strict Transport Security (HSTS) status. O HSTS permite que o servidor declare que os navegadores só devem interagir com ele através de conexões HTTPS seguras. Navegadores gravarão as informações de HSTS na primeira vez que receberem uma resposta do servidor web, então quaisquer futuras solicitações HTTP serão automaticamente transformadas em solicitações HTTPS. The length of time this information is stored by the browser is specified with the `HSTSMaxAge` property. A HSTS requer que HTTPS esteja ativado no servidor. HTTP deve também ser habilitado para permitir conexões iniciais de clientes. +The HTTP Strict Transport Security (HSTS) status. O HSTS permite que o servidor declare que os navegadores só devem interagir com ele através de conexões HTTPS seguras. Navegadores gravarão as informações de HSTS na primeira vez que receberem uma resposta do servidor web, então quaisquer futuras solicitações HTTP serão automaticamente transformadas em solicitações HTTPS. O HSTS permite que o servidor declare que os navegadores só devem interagir com ele através de conexões HTTPS seguras. A HSTS requer que HTTPS esteja ativado no servidor. HTTP deve também ser habilitado para permitir conexões iniciais de clientes. diff --git a/i18n/pt/docusaurus-plugin-content-docs/version-20-R6/Concepts/classes.md b/i18n/pt/docusaurus-plugin-content-docs/version-20-R6/Concepts/classes.md index 2a3598da14530e..4ea0b15464d854 100644 --- a/i18n/pt/docusaurus-plugin-content-docs/version-20-R6/Concepts/classes.md +++ b/i18n/pt/docusaurus-plugin-content-docs/version-20-R6/Concepts/classes.md @@ -183,13 +183,13 @@ As palavras-chave 4D específicas podem ser utilizadas nas definições de class :::note -There is no ending keyword for function code. The 4D language automatically detects the end of a function's code by the next `Function` keyword or the end of the class file. +Não existe uma palavra-chave final para o código de função. A linguagem 4D detecta automaticamente o fim do código de uma função pela próxima palavra-chave `Function` ou pelo fim do arquivo de classe. ::: As funções de classe são propriedades específicas da classe. Eles são objetos da classe [4D.Function](API/FunctionClass.md). No arquivo de definição de classe, as declarações de funções usam a palavra-chave `Function` seguida pelo nome da função. -Se a função for declarada em uma [classe compartilhada](#shared-classes), você pode usar a palavra-chave `shared` para que a função possa ser chamada sem [`Use. .Finalizar estrutura`](shared.md#useend-use). Para obter mais informações, consulte o parágrafo [Shared functions](#shared-functions) abaixo. +Usando a palavra-chave `compartilhado` cria uma **classe compartilhada**, usada apenas para instanciar objetos compartilhados. Para obter mais informações, consulte o parágrafo [Shared functions](#shared-functions) abaixo. O nome da função deve estar em conformidade com as [regras de nomenclatura de objetos](Concepts/identifiers.md#object-properties). @@ -321,7 +321,7 @@ Function getRectArea($width : Integer; $height : Integer) : Integer :::note -There is no ending keyword for class constructor function code. The 4D language automatically detects the end of a function's code by the next `Function` keyword or the end of the class file. +Não existe uma palavra-chave final para o código de função do construtor de classe. A linguagem 4D detecta automaticamente o fim do código de uma função pela próxima palavra-chave `Function` ou pelo fim do arquivo de classe. ::: @@ -329,7 +329,7 @@ Uma função construtora de classe aceita [parâmetros](#parameters) opcionais e Quando você chama a função [`new()`](API/ClassClass.md#new), o construtor da classe é chamado com os parâmetros opcionalmente passados para a função `new()`. -Só pode haver uma função de construtor em uma classe (caso contrário um erro é retornado). Um construtor pode utilizar a palavra-chave [`Super`](#super) para chamar o construtor da superclasse. +Só pode haver uma função de construtor em uma classe (caso contrário um erro é retornado). The [`Super`](../commands/super.md) command allows calls to the [`superclass`](../API/ClassClass#superclass), i.e. the parent class of the function. É possível criar e digitar propriedades de instância dentro do construtor (ver exemplo). Em alternativa, se os valores das propriedades de instância não dependem dos parâmetros passados ao construtor, você pode defini-los usando a palavra-chave [`property`](#property). @@ -437,13 +437,13 @@ Se uma classe [estende](#class-extends-classname) outra classe, as propriedades :::note -If you initialize a property in its declaration line with an object or a collection in a [shared class](#shared-classes), the value is automatically transformed into a shared value: +Se você inicializar uma propriedade em sua linha de declaração com um objeto ou uma coleção em uma [classe compartilhada](#shared-classes), o valor é automaticamente transformado em um valor compartilhado: ```4d -// in a shared class +// em uma classe compartilhada property myCollection := ["something"] -// myCollection will be a shared collection -// equivalent to: +// myCollection será uma coleção compartilhada +// equivalente a: myCollection := New shared collection("something") ``` @@ -495,7 +495,7 @@ No arquivo de definição de classe, as declarações de propriedade computadas `A função get` devolve um valor do tipo de propriedade e `A função set` recebe um parâmetro do tipo de propriedade. Ambos os argumentos devem estar em conformidade com os [parâmetros de função] padrão (#parâmetros). -Quando ambas as funções são definidas, a propriedade computada é **read-write**. Se apenas uma `Function get` for definida, a propriedade computada será **somente leitura**. Neste caso, é devolvido um erro se o código tentar modificar a propriedade. Se apenas um `Function set` estiver definido, 4D devolve *undefined* quando a propriedade é lida. +Quando ambas as funções são definidas, a propriedade computada é **read-write**. Se apenas uma `Function get` for definida, a propriedade computada será **somente leitura**. Neste caso, é devolvido um erro se o código tentar modificar a propriedade. Neste caso, é devolvido um erro se o código tentar modificar a propriedade. Se as funções forem declaradas em uma [classe compartilhada](#shared-class-constructor), você pode usar a palavra-chave `shared` com elas para que elas possam ser chamadas sem [`Use. .Finalizar estrutura`](shared.md#useend-use). Para obter mais informações, consulte o parágrafo [Shared functions](#shared-functions) abaixo. @@ -833,7 +833,7 @@ Se a palavra-chave da função `shared` for usada em uma classe de usuário não ## Classes Singleton -Uma **classe singleton** é uma classe de usuário que produz apenas uma única instância. Para más información sobre los singletons, por favor consulte la [página Wikipedia sobre los singletons](https://en.wikipedia.org/wiki/Singleton_pattern). A singleton has a unique instance for the process in which it is instantiated, while a *shared* singleton has a unique instance for all processes on the machine. Singletons são úteis para definir valores que precisam estar disponíveis em qualquer lugar em um aplicativo ou processo. +Uma **classe singleton** é uma classe de usuário que produz apenas uma única instância. Para obter mais informações sobre singletons, consulte a [página da Wikipedia sobre singletons](https://en.wikipedia.org/wiki/Singleton_pattern). Um singleton tem uma instância exclusiva para o processo onde é instanciado, enquanto um singleton *compartilhado* tem uma instância exclusiva para todos os processos na máquina. Singletons são úteis para definir valores que precisam estar disponíveis em qualquer lugar em um aplicativo ou processo. A classe singleton é instanciada na primeira chamada da propriedade [`cs..me`](../API/ClassClass.md#me). A classe singleton instanciada é então sempre retornada quando a propriedade [`me`](../API/ClassClass.md#me) é usada. @@ -843,15 +843,15 @@ O [`.isSingleton`](../API/ClassClass.md#issingleton) propriedade de objetos de c ### Âmbito -The scope of a singleton instance can be the process where it is instantiated or all processes on the machine, depending on its *shared* property. +O escopo de uma instância singleton pode ser o processo em que ela é instanciada ou todos os processos na máquina, dependendo de sua propriedade *compartilhada*. -| Singleton criado em | Scope if not shared | Scope if shared | -| ------------------- | ---------------------------------------------------------------------------------------------------------- | ----------------- | -| 4D usuário único | Processo | Aplicação | -| 4D Server | Processo | Máquina 4D Server | -| Modo remoto 4D | Process (*nota*: os singletons não são sincronizados no processo gêmeo) | Máquina remota 4D | +| Singleton criado em | Escopo se não for compartilhado | Escopo se compartilhado | +| ------------------- | ---------------------------------------------------------------------------------------------------------- | ----------------------- | +| 4D usuário único | Processo | Aplicação | +| 4D Server | Processo | Máquina 4D Server | +| Modo remoto 4D | Process (*nota*: os singletons não são sincronizados no processo gêmeo) | Máquina remota 4D | -Once instantiated, a singleton class (and its singleton) exists as long as a reference to it exists somewhere in the application running on the machine. +Uma vez instanciada, uma classe singleton (e seu singleton) existe enquanto houver uma referência a ela em algum lugar da aplicação em execução na máquina. :::info @@ -861,7 +861,7 @@ As classes Singleton não são suportadas por [classes baseadas em ORDA](../ORDA ### Criação de um singleton -To create a singleton class, add the `singleton` keyword before [`Class Constructor`](#class-constructor). Por exemplo: +Para criar uma classe singleton, adicione a palavra-chave `singleton` antes do [`Class Constructor`](#class-constructor). Por exemplo: ```4d //class: ProcessTag @@ -892,7 +892,7 @@ var $myOtherSingleton := cs.ProcessTag.me ### Criação de um singleton compartilhado -To create a singleton shared by all processes on the machine, add the `shared singleton` keywords before the [Class Constructor](#class-constructor). Por exemplo: +Para criar um singleton compartilhado por todos os processos da máquina, adicione as palavras-chave `shared singleton` antes do [constructor de classe](#class-constructor). Por exemplo: ```4d //Class VehicleFactory @@ -919,7 +919,7 @@ shared Function buildVehicle ($type : Text) -> $vehicle : cs.Vehicle This.vehicleBuilt+=1 ``` -You can then call the **cs.VehicleFactory** singleton to get a new vehicle from everywhere in the application on your machine with a single line: +Em seguida, você pode chamar o singleton **cs.VehicleFactory** para obter um novo veículo de qualquer lugar da aplicação em sua máquina com uma única linha: ```4d $vehicle:=cs.VehicleFactory.me.buildVehicle("caminhão") diff --git a/i18n/pt/docusaurus-plugin-content-docs/version-20-R6/Concepts/quick-tour.md b/i18n/pt/docusaurus-plugin-content-docs/version-20-R6/Concepts/quick-tour.md index 9b16a32243190e..0002c4cfccdfa8 100644 --- a/i18n/pt/docusaurus-plugin-content-docs/version-20-R6/Concepts/quick-tour.md +++ b/i18n/pt/docusaurus-plugin-content-docs/version-20-R6/Concepts/quick-tour.md @@ -54,7 +54,7 @@ Even if it is usually not recommended, you can create variables simply by using MyOtherDate:=Current date+30 ``` -A linha de código lê “MyOtherDate gets the current date plus 30 days.” This line creates the variable, assigns it with both the (temporary) date type and a content. A variable created by assignment is interpreted as typeless, that is, it can be assigned with other types in other lines and change of type dynamically. This flexibility does not apply to variables declared with the `var` keyword (their type cannot change) and in [compiled mode](interpreted.md) where the type can never be changed, regardless of how the variable was created. +A linha de código lê “MyOtherDate gets the current date plus 30 days.” Essa linha cria a variável, atribui-lhe o tipo de data (temporária) e um conteúdo. A variable created by assignment is interpreted as typeless, that is, it can be assigned with other types in other lines and change of type dynamically. This flexibility does not apply to variables declared with the `var` keyword (their type cannot change) and in [compiled mode](interpreted.md) where the type can never be changed, regardless of how the variable was created. ## Comandos diff --git a/i18n/pt/docusaurus-plugin-content-docs/version-20-R6/Extensions/develop-plug-ins.md b/i18n/pt/docusaurus-plugin-content-docs/version-20-R6/Extensions/develop-plug-ins.md index 18694f844a4f16..92e280d4228570 100644 --- a/i18n/pt/docusaurus-plugin-content-docs/version-20-R6/Extensions/develop-plug-ins.md +++ b/i18n/pt/docusaurus-plugin-content-docs/version-20-R6/Extensions/develop-plug-ins.md @@ -5,11 +5,11 @@ title: Plug-ins de desenvolvimento ## Porquê a necessidade de um plug-in? -Although 4D provides hundred of built-in methods used to manipulate objects, records and implement user interface, some special use or feature (sometimes platform dependant) may be needed: one may need ODBC under Windows, another may need Apple services under macOS, while yet another may want to implement specific statistics tools, social network login, payment platform, file access over the network, a special user interface, or a private picture structure. +Embora 4D ofereça centenas de métodos integrados, para manipular objetos, registros e implementar a interface do usuário, pode ser necessário algum uso ou recurso especial (às vezes dependente da plataforma): alguém pode precisar de ODBC no Windows, ou pode precisar de serviços da Apple no macOS, enquanto outro ainda pode querer implementar ferramentas estatísticas específicas, login em redes sociais, plataforma de pagamento, acesso a arquivos pela rede, uma interface de usuário especial ou uma estrutura de imagem privada. It is obvious that covering all areas of both the macOS and Windows operating systems by way of 4D commands would certainly lead to a product with thousands of commands, and at the same time, most users would have no need for such a large set of capabilities. Also, creating such an all-encompassing tool would make the 4D environment incredibly complex and would take most users months of study before useful results could be expected. -The modular nature of the 4D environment allows the creation of basic applications but does not preclude the development of highly complex systems. The 4D Plug-in architecture opens the 4D environment to any type of application or user. Os 4D Plug-ins multiplicam o poder e a produtividade da aplicação ou do usuário. +A natureza modular do ambiente 4D permite a criação de aplicativos básicos, mas não impede o desenvolvimento de sistemas altamente complexos. A arquitetura 4D Plug-in abre o ambiente 4D para qualquer tipo de aplicação ou usuário. Os 4D Plug-ins multiplicam o poder e a produtividade da aplicação ou do usuário. ## Por que a necessidade de um plug-in? diff --git a/i18n/pt/docusaurus-plugin-content-docs/version-20-R6/FormEditor/formEditor.md b/i18n/pt/docusaurus-plugin-content-docs/version-20-R6/FormEditor/formEditor.md index a639f75b6c3a05..fa084f3cec9685 100644 --- a/i18n/pt/docusaurus-plugin-content-docs/version-20-R6/FormEditor/formEditor.md +++ b/i18n/pt/docusaurus-plugin-content-docs/version-20-R6/FormEditor/formEditor.md @@ -62,7 +62,7 @@ A barra de ferramentas contém os seguintes elementos: | ![](../assets/en/FormEditor/zoom.png) | [Zoom](#zoom) | Permite modificar a percentagem de visualização do formulário (100% por padrão). You can switch to “Zoom” mode by clicking on the magnifying glass or by clicking directly on the desired bar. Esta função é descrita em pormenor na secção anterior. | | ![](../assets/en/FormEditor/alignment.png) | [Alinhamento](#alinhamento-objetos) | This button is linked to a menu that allows changing the level of objects in the form. It is enabled (or not) depending on the objects selected.
    Disabled if one selected object position is locked by a CSS property | | ![](../assets/en/FormEditor/distribution.png) | [Distribuição](#distributing-objects) | Este botão está ligado a um menu que permite agrupar e desagrupar seleções de objetos no formulário. It is enabled (or not) depending on the objects selected.
    Disabled if one selected object position is locked by a CSS property | -| ![](../assets/en/FormEditor/level.png) | [Level](#layering-objects) | This button is linked to a menu that allows aligning objects in the form. É ativada (ou não) em função dos objetos selecionados. | +| ![](../assets/en/FormEditor/level.png) | [Level](#layering-objects) | This button is linked to a menu that allows changing the level of objects in the form. É ativada (ou não) em função dos objetos selecionados. | | ![](../assets/en/FormEditor/group.png) | [Group/Ungroup](#grouping-objects) | Este botão está ligado a um menu que permite agrupar e desagrupar seleções de objetos no formulário. É ativada (ou não) em função dos objetos selecionados. | | ![](../assets/en/FormEditor/displyAndPage.png) | [Display and page management](forms.html#form-pages) | Esta área permite passar de uma página de formulário para outra e adicionar páginas. Para navegar entre páginas de formulários, clique nos botões de seta, ou clique na área central e escolha a página a exibir a partir do menu que aparece. Se clicar no botão da seta para a direita enquanto é exibida a última página do formulário, 4D permite-lhe adicionar uma página. | | ![](../assets/en/FormEditor/cssPreviewicon.png) | [CSS Preview](#css-preview) | Este botão é utilizado para seleccionar o Modo CSS a utilizar. | @@ -70,7 +70,7 @@ A barra de ferramentas contém os seguintes elementos: | ![](../assets/en/FormEditor/shields2.png) | [Displaying shields](#shields) | Each click on this button causes the successive display of each type of form shield. The button is also linked to a menu that allows directly selecting the type of shield to display. | | ![](../assets/en/FormEditor/library.png) | [Preconfigured object library](objectLibrary.html) | This button displays the preconfigured object library that provides numerous objects with certain properties that have been predefined. | | ![](../assets/en/FormEditor/listBoxBuilder1.png) | [List Box Builder](#list-box-builder) | Este botão cria list boxes entity selection. | -| ![](../assets/en/FormEditor/insertFields.png) | [Insert fields](#insert-fields) | This button inserts all fields (except object and blob type fields) of the form table in the form, along with their labels and with respect to interface standards. | +| ![](../assets/en/FormEditor/insertFields.png) | [Insert fields](#insert-fields) | Esse botão insere todos os campos (exceto os campos do tipo objeto e bolha) da tabela do formulário no formulário, juntamente com seus rótulos e de acordo com os padrões de interface. | ### Barra de objetos @@ -90,7 +90,7 @@ The object bar contains all the active and inactive objects that can be used in | ![](../assets/en/FormEditor/splitter.png) | [Splitter](FormObjects/splitters.md) / [Controle de guia](FormObjects/tabControl.md) | D | | ![](../assets/en/FormEditor/plugin.png) | [Plug-in Area](FormObjects/pluginArea_overview.md) / [Subform](FormObjects/subform_overview.md) / [Web Area](FormObjects/webArea_overview.md) / [4D Write Pro](FormObjects/writeProArea_overview.md) / [4D View Pro](FormObjects/viewProArea_overview.md) | X | -To draw an object type, select the corresponding button and then trace the object in the form. Após criar um objeto, você pode modificar seu tipo utilizando a Lista de Propriedades. Mantenha pressionada a tecla **Shift** ao desenhar para restringir o objeto a uma forma regular. Lines are constrained to horizontal, 45°, or vertical, rectangles are constrained to squares, and ovals are constrained to circles. +To draw an object type, select the corresponding button and then trace the object in the form. Após criar um objeto, você pode modificar seu tipo utilizando a Lista de Propriedades. To draw an object type, select the corresponding button and then trace the object in the form. Lines are constrained to horizontal, 45°, or vertical, rectangles are constrained to squares, and ovals are constrained to circles. The current variant of the theme is the object that will be inserted in the form. Ao clicar no lado direito de um botão, você acessa o menu de variantes: @@ -134,7 +134,7 @@ Once the object is placed in the form, you can modify its characteristics using É possível trabalhar com dois tipos de objetos nos formulários: -- **Objetos estáticos** (linhas, quadros, imagens de fundo, etc.): Esses objetos são geralmente usados para definir a aparência do formulário e de seus rótulos, bem como para a interface gráfica. Estão disponíveis na barra de objetos do editor de formulários. Você também pode definir seus atributos gráficos (tamanho, cor, fonte, etc.) e suas propriedades de redimensionamento usando a Lista de propriedades. Os objetos estáticos não têm variáveis associadas como os objetos ativos. No entanto, é possível inserir objetos dinâmicos em objetos estáticos. +- **Objetos estáticos** (linhas, quadros, imagens de fundo, etc.): Esses objetos são geralmente usados para definir a aparência do formulário e de seus rótulos, bem como para a interface gráfica. Estão disponíveis na barra de objetos do editor de formulários. Estão disponíveis na barra de objetos do editor de formulários. Estão disponíveis na barra de objetos do editor de formulários. Os objetos estáticos não têm variáveis associadas como os objetos ativos. No entanto, é possível inserir objetos dinâmicos em objetos estáticos. - **Objetos ativos**: Esses objetos executam tarefas ou funções na interface e podem assumir várias formas: campos, botões, listas roláveis, etc. Cada objeto ativo é associado com um campo ou uma variável. @@ -142,11 +142,11 @@ Once the object is placed in the form, you can modify its characteristics using Before you can perform any operation on an object (such as changing a line width or font), you need to select the object that you want to modify. -Para seleccionar um objecto utilizando a barra de ferramentas: +To select an object using the toolbar: 1. Clique na ferramenta Seta na barra de ferramentas

    ![](../assets/en/FormEditor/selection.png)

    -

    Click the Arrow tool in the toolbar. When you move the pointer into the form area, it becomes a standard arrow-shaped pointer.

    . +

    Quando você move o ponteiro para a área do formulário, ele se torna um ponteiro padrão em forma de seta

    . 2. Clique no objecto que deseja selecionar. As alças de redimensionamento identificam o objeto selecionado

    ![](../assets/en/FormEditor/selectResize.png)

    @@ -155,7 +155,7 @@ Para selecionar um objecto utilizando a Lista de Propriedades: 1. Escolher o nome do objecto na lista pendente da Lista de Objectos localizada no topo da Lista de Propriedades. Usando estes dois métodos, pode seleccionar um objecto que esteja escondido por outros objectos ou localizado fora da área visível da janela actual. Para cancelar a seleção de um objeto, clique fora do limite do objeto ou **Shift+clique** no objeto. -> \> > It is also possible to select objects by double-clicking them in the result window of ""Find in design" operation. +> \> > > It is also possible to select objects by double-clicking them in the result window of ""Find in design" operation. ### Selecção de múltiplos objectos @@ -194,7 +194,7 @@ A caixa de diálogo "Duplicate Many" é exibida quando você seleciona um ou mai ![](../assets/en/FormEditor/duplcateMany.png) -- Na área superior, introduza o número de colunas e linhas (linhas) de objectos que pretende obter. Por exemplo, se quiser três colunas e duas linhas de objectos, introduza 3 na área de Coluna(s) e 2 na área de Linha(s). Se quiser três novas cópias horizontais de um objecto, introduza 4 na área de Coluna(s) e deixe o valor por defeito, 1, na área de Linha(s). +- Na área superior, introduza o número de colunas e linhas (linhas) de objectos que pretende obter. Por exemplo, se quiser três colunas e duas linhas de objectos, introduza 3 na área de Coluna(s) e 2 na área de Linha(s). Na área superior, introduza o número de colunas e linhas (linhas) de objectos que pretende obter. - Para linhas e colunas, defina o offset que deseja deixar entre cada cópia. O valor deve ser expresso em pontos. It will be applied to each copy, or copies, in relation to the original object. For example, if you want to leave a vertical offset of 20 points between each object and the height of the source object is 50 points, enter 70 in the column’s “Offset” area. @@ -275,7 +275,7 @@ Para exibir essa caixa de diálogo, selecione os objetos que deseja alinhar e es - Nas áreas "Alinhamento Esquerda/Direita" e/ou "Alinhamento Superior/Inferior", clique no ícone que corresponde ao alinhamento que você deseja executar.

    A área de exemplo exibe os resultados da sua seleção.

    -- Para executar um alinhamento que use o esquema de âncora padrão, clique em **Preview** ou **Apply**. In this case 4D uses the object that is the furthest in the alignment’s direction as the anchor and aligns the other objects to that object. Por exemplo, se quiser realizar um alinhamento correcto num conjunto de objectos, o objecto mais à direita será utilizado como âncora. OU:

    Para alinhar objetos a um objeto específico, selecione a opção **Alinhar em** e selecione o objeto ao qual você deseja que os outros objetos sejam alinhados na lista de objetos. In this case, the position of the reference object will not be altered.

    +- Para executar um alinhamento que use o esquema de âncora padrão, clique em **Preview** ou **Apply**. Nesse caso, 4D usa o objeto que está mais distante na direção do alinhamento como âncora e alinha os outros objetos a esse objeto. Por exemplo, se quiser realizar um alinhamento correcto num conjunto de objectos, o objecto mais à direita será utilizado como âncora. OU:

    Para alinhar objetos a um objeto específico, selecione a opção **Alinhar em** e selecione o objeto ao qual você deseja que os outros objetos sejam alinhados na lista de objetos. In this case, the position of the reference object will not be altered.

    Você pode visualizar os resultados do alinhamento clicando no botão **Preview**. Os objetos são então alinhados no editor de formulários, mas como a caixa de diálogo não desaparece, ainda é possível cancelar ou aplicar o alinhamento. @@ -312,7 +312,7 @@ Para distribuir objetos com igual espaçamento: 1. Selecione três ou mais objetos e clique na ferramenta Distribuir pretendida. -2. Na barra de ferramentas, clique na ferramenta de distribuição que corresponde à distribuição que você deseja aplicar.

    ![](../assets/en/FormEditor/distributionTool. ng)

    OU

    Selecione um comando de menu de distribuição no submenu **Alinhar** no menu **Objeto** ou no menu de contexto do editor.

    4D distribui os objetos apropriadamente. Objects are distributed using the distance to their centers and the largest distance between two consecutive objects is used as a reference. +2. Na barra de ferramentas, clique na ferramenta de distribuição que corresponde à distribuição que você deseja aplicar.

    ![](../assets/en/FormEditor/distributionTool.png)

    OU

    Selecione um comando de menu de distribuição no submenu **Alinhar** no menu **Objeto** ou no menu de contexto do editor.

    4D distribui os objetos apropriadamente. Objects are distributed using the distance to their centers and the largest distance between two consecutive objects is used as a reference. Para distribuir objetos utilizando a caixa de diálogo Alinhar e distribuir: @@ -320,7 +320,7 @@ Para distribuir objetos utilizando a caixa de diálogo Alinhar e distribuir: 2. Seleccione el comando **Alineación** del submenú **Alinear** del menú **Objeto** o del menú contextual del editor. A seguinte caixa de diálogo é exibida:![](../assets/en/FormEditor/alignmentAssistant.png) -3. Nas áreas de Alinhamento Esquerdo/Direita e/ou Topo/Bottom Alinhamento, clique no ícone de distribuição padrão: ![](../assets/en/FormEditor/horizontalDistribution. ng)

    (ícone padrão de distribuição horizontal)

    A área de exemplo exibe os resultados da sua seleção. +3. Nas áreas de Alinhamento Esquerdo/Direita e/ou Topo/Bottom Alinhamento, clique no ícone de distribuição padrão: ![](../assets/en/FormEditor/horizontalDistribution.png)

    (ícone padrão de distribuição horizontal)

    A área de exemplo exibe os resultados da sua seleção. 4. Para executar uma distribuição que use o esquema padrão, clique em **Preview** ou *Apply*.

    Nesse caso, o 4D executará uma distribuição padrão, de modo que os objetos sejam dispostos com uma quantidade igual de espaço entre eles

    . OU:

    Para executar uma distribuição específica, selecione a opção **Distribute** (por exemplo, se quiser distribuir os objetos com base na distância até o lado direito). Esta opção funciona como um interruptor. If the Distribute check box is selected, the icons located below it perform a different function:

    @@ -333,7 +333,7 @@ Você pode visualizar o resultado real de suas configurações clicando no botã ### Gerenciar os planos dos objetos -You will sometimes have to rearrange objects that are obstructing your view of other objects in the form. For example, you may have a graphic that you want to appear behind the fields in a form. O 4D oferece quatro itens de menu, **Mover para trás**, **Mover para frente**, **Subir um nível** e **Descer um nível**, que permitem que você coloque objetos em camadas no formulário. These layers also determine the default entry order (see Modifying data entry order). A figura abaixo mostra objetos à frente e atrás de outros objetos: +You will sometimes have to rearrange objects that are obstructing your view of other objects in the form. For example, you may have a graphic that you want to appear behind the fields in a form. You will sometimes have to rearrange objects that are obstructing your view of other objects in the form. These layers also determine the default entry order (see Modifying data entry order). A figura abaixo mostra objetos à frente e atrás de outros objetos: ![](../assets/en/FormEditor/layering.png) @@ -373,13 +373,13 @@ In cases such as this, a custom data entry order allows you to enter the informa You can view the current entry order either using the “Entry order” shields, or by using the “Entry order” mode. No entanto, você só pode modificar a ordem de entrada usando o modo “Ordem de entrada”. -This paragraph describes viewing and modifying the entry order using the “Entry order” mode. Para obter mais informações sobre como visualizar a ordem de entrada usando escudos, consulte [Using shields](#using-shields). +This paragraph describes viewing and modifying the entry order using the “Entry order” mode. You can view the current entry order either using the “Entry order” shields, or by using the “Entry order” mode. Para ver ou alterar a ordem de entrada: 1. Selecione **Pedido de entrada** no menu **Formulário** ou clique no botão na barra de ferramentas da janela:

    ![](../assets/en/FormEditor/zOrder.png)

    - Choose Entry Order from the Form menu or click on the Entry Order button in the toolbar of the window:The pointer turns into an entry order pointer and 4D draws a line in the form showing the order in which it selects objects during data entry. A visualização e alteração da ordem de introdução de dados são as únicas acções que pode realizar até clicar em qualquer ferramenta na paleta Ferramentas. + O ponteiro se transforma em um ponteiro de ordem de entrada e 4D desenha uma linha na forma mostrando a ordem em que ele seleciona objetos durante a entrada de dados. A visualização e alteração da ordem de introdução de dados são as únicas acções que pode realizar até clicar em qualquer ferramenta na paleta Ferramentas. 2. Para mudar a ordem de entrada de dados, posicione o ponteiro em um objeto no formulário e, enquanto mantém pressionado o botão do mouse, arraste o ponteiro para o objeto que deseja na ordem de entrada de dados.4D ajustará a ordem de entrada de acordo. diff --git a/i18n/pt/docusaurus-plugin-content-docs/version-20-R6/FormEditor/forms.md b/i18n/pt/docusaurus-plugin-content-docs/version-20-R6/FormEditor/forms.md index 8ba31cb5294cda..6c201e1b8f20c8 100644 --- a/i18n/pt/docusaurus-plugin-content-docs/version-20-R6/FormEditor/forms.md +++ b/i18n/pt/docusaurus-plugin-content-docs/version-20-R6/FormEditor/forms.md @@ -18,7 +18,7 @@ Os formulários também podem conter outros formulários através das seguintes - **Interface de Desenvolvedor 4D:** Crie novos formulários a partir do menu **Arquivo** ou da janela **Explorador**. - **Form Editor**: Modifique seus formulários usando o **[Form Editor] (FormEditor/formEditor.md)**. -- **Código JSON:** Crie e projete seus formulários usando JSON e salve os arquivos de formulário no [local apropriado] (Project/architecture.md#sources-folder). Exemplo: +- **Código JSON:** crie e projete seus formulários usando JSON e salve os arquivos de formulário no [local apropriado](Project/architecture.md#sources-folder). Exemplo: ``` { @@ -111,7 +111,7 @@ Quando um formulário é executado, os objetos são carregados e combinados na s 3. Página zero do formulário aberto 4. Página actual do formulário aberto. -Essa ordem determina a [ordem de entrada] padrão (../FormEditor/formEditor.html#data-entry-order) dos objetos no formulário. +Essa ordem determina a [ordem de entrada](../FormEditor/formEditor.html#data-entry-order) padrão dos objetos no formulário. > Apenas as páginas 0 e 1 de um formulário herdado podem aparecer noutros formulários. @@ -121,7 +121,7 @@ Para definir um formulário herdado, as propriedades [Inherited Form Name](prope Um formulário pode herdar de um formulário de projeto, definindo a propriedade [Inherited Form Table] (properties_FormProperties.md#inherited-form-table) como `\` na Property List (ou " " em JSON). -Para interromper a herança de um formulário, selecione `\` na Property List (ou " " em JSON) para a propriedade [Inherited Form Name] (properties_FormProperties.md#inherited-form-name). +Para interromper a herança de um formulário, selecione `\` na Property List (ou " " em JSON) para a propriedade [Inherited Form Name](properties_FormProperties.md#inherited-form-name). > É possível definir um formulário herdado em um formulário que eventualmente será usado como um formulário herdado para um terceiro formulário. A combinação de objetos é feita de forma recursiva. 4D detecta loops recursivos (por exemplo, se o formulário [table1]form1 é definido como o formulário herdado de [table1]form1, ou seja, ele mesmo) e interrompe a cadeia de formulários. diff --git a/i18n/pt/docusaurus-plugin-content-docs/version-20-R6/FormEditor/pictures.md b/i18n/pt/docusaurus-plugin-content-docs/version-20-R6/FormEditor/pictures.md index f5dd8a99e78e1e..acd05979e26938 100644 --- a/i18n/pt/docusaurus-plugin-content-docs/version-20-R6/FormEditor/pictures.md +++ b/i18n/pt/docusaurus-plugin-content-docs/version-20-R6/FormEditor/pictures.md @@ -49,7 +49,7 @@ As imagens de alta resolução com a convenção @nx podem ser utilizadas nos se - [Cabeçalhos List box](FormObjects/listbox_overview.md#list-box-headers) - [Ícones de menu](Menus/properties.md#item-icon) -4D dá automaticamente prioridade às imagens com a resolução mais alta. Por exemplo, ao usar duas telas (uma de alta resolução e outra padrão) e mover um formulário de uma tela para outra, 4D renderiza automaticamente a resolução mais alta possível da imagem. Mesmo que um comando ou propriedade especifique *circle.png*, *circle@3x.png* será usado (se existir). +4D dá automaticamente prioridade às imagens com a resolução mais alta. 4D dá automaticamente prioridade às imagens com a resolução mais alta. Mesmo que um comando ou propriedade especifique *circle.png*, *circle@3x.png* será usado (se existir). > Note que a priorização da resolução ocorre apenas para a apresentação de imagens no ecrã, não havendo priorização automática durante a impressão. diff --git a/i18n/pt/docusaurus-plugin-content-docs/version-20-R6/FormEditor/properties_FormSize.md b/i18n/pt/docusaurus-plugin-content-docs/version-20-R6/FormEditor/properties_FormSize.md index 8a69ad5cf1f2ee..0a36bc5d6fb84f 100644 --- a/i18n/pt/docusaurus-plugin-content-docs/version-20-R6/FormEditor/properties_FormSize.md +++ b/i18n/pt/docusaurus-plugin-content-docs/version-20-R6/FormEditor/properties_FormSize.md @@ -41,7 +41,7 @@ Altura del formulario (en píxeles) cuando el [tamaño del formulario](#size-bas --- -## Margem hor. +## Margem Margem hor. Valor a añadir (en píxeles) al margen inferior del formulario cuando el [tamaño del formulario](#size-based-on) está definido en **Tamaño automático** o `\` @@ -55,7 +55,7 @@ This value also determines the right-hand margins of forms used in the Label edi --- -## Margem hor. +## Margem Margem hor. Valor a añadir (en píxeles) al margen inferior del formulario cuando el [tamaño del formulario](#size-based-on) está definido en **Tamaño automático** o `\`. diff --git a/i18n/pt/docusaurus-plugin-content-docs/version-20-R6/FormObjects/button_overview.md b/i18n/pt/docusaurus-plugin-content-docs/version-20-R6/FormObjects/button_overview.md index 6908cc237e1c1b..aa7d97f950f879 100644 --- a/i18n/pt/docusaurus-plugin-content-docs/version-20-R6/FormObjects/button_overview.md +++ b/i18n/pt/docusaurus-plugin-content-docs/version-20-R6/FormObjects/button_overview.md @@ -86,7 +86,7 @@ Somente os estilos Clássico e Plano oferecem a propriedade [Botão padrão](pro ### Barra de ferramentas -The Toolbar button style is primarily intended for integration in a toolbar. It includes the option to add a pop-up menu (indicated by an inverted triangle) which is generally used to display additional choices for the user to select. +The Toolbar button style is primarily intended for integration in a toolbar. Inclui a opção de adicionar um menu pop-up (indicado por um triângulo invertido), sendo geralmente usado para exibir opções adicionais para o usuário selecionar. By default, the Toolbar style has a transparent background with a label in the center. A aparência do botão pode ser diferente quando o cursor passar por cima dele, dependendo do SO: @@ -281,7 +281,7 @@ O estilo de botão Círculo aparece como um botão sistema redondo. Este estilo ![](../assets/en/FormObjects/button_circleM.png) -On Windows, it is identical to the “None” style (the circle in the background is not taken into account). +No Windows, ele é idêntico ao estilo "Nenhum" (o círculo no plano de fundo não é considerado). #### JSON Exemplo diff --git a/i18n/pt/docusaurus-plugin-content-docs/version-20-R6/FormObjects/checkbox_overview.md b/i18n/pt/docusaurus-plugin-content-docs/version-20-R6/FormObjects/checkbox_overview.md index 1cd351c59acb37..e7d63e9e1996b2 100644 --- a/i18n/pt/docusaurus-plugin-content-docs/version-20-R6/FormObjects/checkbox_overview.md +++ b/i18n/pt/docusaurus-plugin-content-docs/version-20-R6/FormObjects/checkbox_overview.md @@ -32,7 +32,7 @@ Essa propriedade só está disponível para caixas de seleção clássicas e pla A variável associada à caixa de seleção devolve o valor 2 quando a caixa estiver no terceiro estado. -> In entry mode, the Three-States check boxes display each state sequentially, in the following order: unchecked / checked / intermediary / unchecked, etc. No modo de entrada, as caixas de seleção dos três estados mostram cada estado de forma sequencial na ordem abaixo: sem marcar/marcado/intermediário/sem marcar, etc. O estado intermediário não é geralmente muito útil no modo entrada; no código, simplesmente force o valor da variável para 0 quando tomar o valor de 2 para passar diretamente de um estado marcado para o estado desmarcado. +> In entry mode, the Three-States check boxes display each state sequentially, in the following order: unchecked / checked / intermediary / unchecked, etc. No modo de entrada, as caixas de seleção dos três estados mostram cada estado de forma sequencial na ordem abaixo: sem marcar/marcado/intermediário/sem marcar, etc. O estado intermediário não é geralmente muito útil no modo entrada; no código, simplesmente force o valor da variável para 0 quando tomar o valor de 2 para passar diretamente de um estado marcado para o estado desmarcado. No modo de entrada, as caixas de seleção dos três estados mostram cada estado de forma sequencial na ordem abaixo: sem marcar/marcado/intermediário/sem marcar, etc. O estado intermediário não é geralmente muito útil no modo entrada; no código, simplesmente force o valor da variável para 0 quando tomar o valor de 2 para passar diretamente de um estado marcado para o estado desmarcado. ## Usar uma ação padrão diff --git a/i18n/pt/docusaurus-plugin-content-docs/version-20-R6/FormObjects/properties_Object.md b/i18n/pt/docusaurus-plugin-content-docs/version-20-R6/FormObjects/properties_Object.md index cbfd9afd2446c7..510543459f63e1 100644 --- a/i18n/pt/docusaurus-plugin-content-docs/version-20-R6/FormObjects/properties_Object.md +++ b/i18n/pt/docusaurus-plugin-content-docs/version-20-R6/FormObjects/properties_Object.md @@ -92,7 +92,7 @@ As variáveis ou expressões podem ser digitáveis ou não digitáveis e podem r ### Expressões -Você pode usar uma [expressão](Concepts/quick-tour.md#expressions) como fonte de dados para um objeto. Se permite toda expresión 4D válida: expresión simple, propiedad de objeto, fórmula, función 4D, nombre de método proyecto o campo que utilice la sintaxis estándar `[Table]Field`. A expressão é avaliada quando o formulário é executado e reavaliada para cada evento do formulário. Tenga en cuenta que las expresiones pueden ser [asignables o no asignables](Concepts/quick-tour.md#expressions). +Você pode usar uma [expressão](Concepts/quick-tour.md#expressions) como fonte de dados para um objeto. Se permite toda expresión 4D válida: expresión simple, propiedad de objeto, fórmula, función 4D, nombre de método proyecto o campo que utilice la sintaxis estándar `[Table]Field`. A expressão é avaliada quando o formulário é executado e reavaliada para cada evento do formulário. The expression is evaluated when the form is executed and reevaluated for each form event. > Se o valor inserido corresponder tanto a um nome de variável quanto a um nome de método, 4D considera que você está indicando o método. @@ -115,7 +115,7 @@ Para que este princípio funcione em modo compilado, é imperativo que as variá End if ``` -En el código 4D, se puede acceder a las variables dinámicas utilizando un puntero obtenido con el comando `OBJECT Get pointer`. Por exemplo: +No código 4D, as variáveis dinâmicas podem ser acessadas usando um ponteiro obtido com o comando `OBJECT Get pointer`. Por exemplo: ```4d // atribuir a hora 12:00:00 à variável do objeto "tstart" @@ -130,9 +130,9 @@ Este mecanismo tem duas vantagens: ### List box array -For an array list box, the **Variable or Expression** property usually holds the name of the array variable defined for the list box, and for each column. However, you can use a string array (containing arrays names) as *dataSource* value for a list box column to define a [hierarchical list box](listbox_overview.md#hierarchical-list-boxes). +Para un list box array, la propiedad **Variable o Expresión** normalmente contiene el nombre de la variable array definida para el list box y para cada columna. No entanto, você pode usar uma matriz de strings (contendo nomes de matrizes) como valor *dataSource* para uma coluna de caixa de listagem para definir uma [caixa de listagem hierárquica] (listbox_overview.md#hierarchical-list-boxes). -#### Objectos suportados +#### Objectos compatíveis [Área 4D View Pro](viewProArea_overview) - [Área 4D Write Pro](writeProArea_overview) - [Botão](button_overview.md) - [Grade de botões](buttonGrid_overview.md) - [Caixa de seleção](checkbox_overview.md) - [Combo Box](comboBox_overview.md) - [Lista suspensa](dropdownList_Overview.md) - [Lista hierárquica](list_overview.md#overview) - [List Box](listbox_overview.md#overview) - [Coluna List Box](listbox_overview.md#list-box-columns) - [Cabeçalho List Box](listbox_overview.md#list-box-headers) - [Rodapie de List Box](listbox_overview.md#list-box-footers) - [Menu pop-up com imagem](picturePopupMenu_overview.md) - [Área de Plug-in](pluginArea_overview.md#overview) - [Indicador de progresso](progressIndicator.md) - [Botão de opção](radio_overview.md) - [Seletor](spinner.md) - [Separador](splitters.md) - [Etapas](stepper.md) - [Subformulário](subform_overview.md#overview) - [Controle de tabulação](tabControl.md) - [Área web](webArea_overview.md) @@ -140,22 +140,23 @@ For an array list box, the **Variable or Expression** property usually holds the ## Tipo de expressão -> This property is called [**Data Type**](properties_DataSource.md#data-type-expression-type) in the Property List for [selection](listbox_overview.md#selection-list-boxes) and [collection](listbox_overview.md#collection-or-entity-selection-list-boxes) type list box columns and for [Drop-down Lists](dropdownList_Overview.md) associated to an [object](FormObjects/dropdownList_Overview.md#using-an-object) or an [array](FormObjects/dropdownList_Overview.md#using-an-array). +> Essa propriedade é chamada de [**Data Type**](properties_DataSource.md#data-type-expression-type) na Lista de propriedades para [selection](listbox_overview.md#selection-list-boxes) e [collection](listbox_overview.md#collection-or-entity-selection-list-boxes) e para colunas de caixa de listagem do tipo [Drop-down Lists](dropdownList_Overview.md) associadas a um [objeto](FormObjects/dropdownList_Overview.md#using-an-object) ou a um [array](FormObjects/dropdownList_Overview.md#using-an-array). -Specify the data type for the expression or variable associated to the object. Note that main purpose of this setting is to configure options (such as display formats) available for the data type. Não digita efetivamente a variável em si. De cara a la compilación del proyecto, debe [declarar la variable](Concepts/variables.md#declaring-variables). +Especifique o tipo de dados para a expressão ou variável associada ao objeto. Observe que o principal objetivo dessa configuração é definir as opções (como formatos de exibição) disponíveis para o tipo de dados. Não digita efetivamente a variável em si. Considerando a compilação do projeto, você deve [declarar a variável](Concepts/variables.md#declaring-variables). No entanto, essa propriedade tem uma função de digitação nos seguintes casos específicos: - **[Variáveis dinâmicas](#dynamic-variables)**: você pode usar essa propriedade para declarar o tipo de variáveis dinâmicas. -- **[Columnas List Box ](listbox_overview.md#list-box-columns)**: esta propiedad se utiliza para asociar un formato de visualización a los datos de la columna. The formats provided will depend on the variable type (array type list box) or the data/field type (selection and collection type list boxes). The standard 4D formats that can be used are: Alpha, Numeric, Date, Time, Picture and Boolean. O tipo de texto não tem formatos de visualização específicos. Também estão disponíveis quaisquer formatos personalizados existentes. -- **[Variables imagen](input_overview.md)**: puede utilizar este menú para declarar las variables antes de cargar el formulario en modo interpretado. Specific native mechanisms govern the display of picture variables in forms. Estos mecanismos exigen una mayor precisión a la hora de configurar las variables: a partir de ahora, deberán haber sido declaradas antes de cargar el formulario -es decir, incluso antes del evento de formulario `On Load` - a diferencia de otros tipos de To do this, you need either for the statement `C_PICTURE(varName)` to have been executed before loading the form (typically, in the method calling the `DIALOG` command), or for the variable to have been typed at the form level using the expression type property. - Otherwise, the picture variable will not be displayed correctly (only in interpreted mode). +- **[List Box Columns](listbox_overview.md#list-box-columns)**: essa propriedade é usada para associar um formato de exibição aos dados da coluna. Os formatos fornecidos dependerão do tipo de variável (caixa de lista de tipos de matriz) ou do tipo de data/campo (caixas de lista de tipos de coleção e seleção). Os formatos padrão 4D que podem ser usados são: Alfa, Numeric, Data, Hora, Imagem e Booleano. O tipo de texto não tem formatos de visualização específicos. Também estão disponíveis quaisquer formatos personalizados existentes. +- **[Variáveis de imagem](input_overview.md)**: você pode usar este menu para declarar as variáveis antes de carregar o formulário no modo de interpretação. Mecanismos nativos específicos governam a exibição de variáveis de imagens em formas. Esses mecanismos requerem maior precisão na configuração das variáveis: a partir de agora, elas devem já ter sido declaradas antes de carregarem o formulário — i. ., mesmo antes do evento `No carregamento` — ao contrário de outros tipos de variáveis. Para fazer isso, você também precisa que a instrução `C_PICTURE(varName)` tenha sido executada antes de carregar o formulário (tipicamente, no método chamando o comando `DIALOG`), ou para que a variável tenha sido digitada no nível de formulário usando a propriedade do tipo de expressão. + Caso contrário, a variável de imagem não será exibida corretamente (apenas no modo de interpretação). + Caso contrário, a variável de imagem não será exibida corretamente (apenas no modo de interpretação). #### Gramática JSON -| Nome | Tipo de dados | Valores possíveis | -| ------------------ | ------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | -| dataSourceTypeHint | string |
  • **standard objects:** "integer", "boolean", "number", "picture", "text", date", "time", "arrayText", "arrayDate", "arrayTime", "arrayNumber", "collection", "object", "undefined"
  • **list box columns:** "boolean", "number", "picture", "text", date", "time". *Array/selection list box only*: "integer", "object"
  • | +| Nome | Tipo de dados | Valores possíveis | +| ------------------ | ------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| dataSourceTypeHint | string |
  • **objetos padrão:** "inteiro", "boolean", "number", "picture", "text", date", "time", "arrayText", "arrayDate", "arrayTime", "arrayNumber", "collection", "object", "undefined"
  • **colunas da caixa de lista:** "booleano", "number", "picture", "text", date", "time". *Array/selection list box only*: "integer", "object"
  • | #### Objectos suportados @@ -173,24 +174,24 @@ Lista de palabras separadas por espacios que se utilizan como selectores de clas | ------- | ------------- | ------------------------------------------------------------------------------------------------------------------------- | | "class" | string | Uma cadeia de caracteres com o(s) nome(s) do CSS separados por caracteres de espaço | -#### Objectos suportados +#### Objectos compatíveis -[4D View Pro area](viewProArea_overview) - [4D Write Pro area](writeProArea_overview) - [Button](button_overview.md) - [Button Grid](buttonGrid_overview.md) - [Check Box](checkbox_overview.md) - [Combo Box](comboBox_overview.md) - [Drop-down List](dropdownList_Overview.md) - [Group Box](groupBox.md) - [Hierarchical List](list_overview.md#overview) - [List Box](listbox_overview.md#overview) - [Picture Button](pictureButton_overview.md) - [Picture Pop-up Menu](picturePopupMenu_overview.md) - [Plug-in Area](pluginArea_overview.md#overview) - [Radio Button](radio_overview.md) - [Static Picture](staticPicture.md) - [Subform](subform_overview.md#overview) - [Text Area](text.md) - [Web Area](webArea_overview.md#overview) +[Área 4D View Pro](viewProArea_overview) - [Área 4D Write Pro](writeProArea_overview) - [Botão](button_overview.md) - [Grade de botões](buttonGrid_overview.md) - [Caixa de seleção](checkbox_overview.md) - [Combo Box](comboBox_overview.md) - [Lista suspensa](dropdownList_Overview.md) - [Group Box](groupBox.md) - [Lista hierárquica](list_overview.md) - [List Box](listbox_overview.md) - [Coluna List Box](listbox_overview.md#list-box-columns) - [Rodapie List Box](listbox_overview.md#list-box-footers) - [Cabeçalho de List Box](listbox_overview.md#list-box-headers) - [Botão de imagem](pictureButton_overview.md) - [Menu pop-up com imagem](picturePopupMenu_overview.md) - [Área de Plug-in](pluginArea_overview.md) - [Indicador de progresso](progressIndicator.md) - [Botão de opção](radio_overview.md) - [Spinner](spinner.md) - [Separador](splitters.md) - - [Etapas](stepper.md) - [Subformulário](subform_overview.md) - [Control de pestañas](tabControl.md) - [Área de texto](text.md) - [Área web](webArea_overview.md) --- ## Seleção de entidade ou coleção -To use collection elements or entities to define the row contents of the list box. +Para usar elementos da coleção ou entidades para definir o conteúdo da linha da caixa de lista. -Insira uma expressão que retorne uma coleção ou uma seleção de entidades. Usually, you will enter the name of a variable, a collection element or a property that contain a collection or an entity selection. +Insira uma expressão que retorne uma coleção ou uma seleção de entidades. Geralmente, você irá digitar o nome de uma variável, um elemento de coleção ou uma propriedade que contém uma coleção ou uma seleção de entidade. -A coleção ou a seleção da entidade deve estar disponível para o formulário quando for carregada. Each element of the collection or each entity of the entity selection will be associated to a list box row and will be available as an object through the [`This`](../Concepts/classes.md#this) keyword: +A coleção ou a seleção da entidade deve estar disponível para o formulário quando for carregada. Cada elemento da coleção ou cada entidade da seleção da entidade será associada a uma linha da caixa de lista e estará disponível como um objeto através do [`This`](. /Concepts/classes.md#esta) palavra-chave: -- si ha utilizado una colección de objetos, puede llamar a **This** en la expresión de la fuente de datos para acceder a cada valor de propiedad, por ejemplo `This.`. -- si ha utilizado una selección de entidades, puede llamar a **This** en la expresión de la fuente de datos para acceder a cada valor de atributo, por ejemplo `This.`. +- se você usou uma coleção de objetos, você pode chamar **Isso** na expressão de código de dados para acessar cada valor de propriedade, por exemplo `Isso.`. +- se você usou uma seleção de entidade, pode chamar **Isso** na expressão de código de dados para acessar cada valor de atributo, por exemplo `Isso.`. -> Si ha utilizado una colección de valores escalares (y no objetos), 4D le permite mostrar cada valor llamando a **This.value** en la expresión datasource. However in this case you will not be able to modify values or to access the current object (see below). +> Se você usou uma coleção de valores escalares (e não objetos), 4D permite que você exiba cada valor chamando **This.value** na expressão da fonte de dados. No entanto, neste caso, você não será capaz de modificar valores ou acessar o objeto atual (veja abaixo). #### Gramática JSON @@ -210,10 +211,10 @@ Especifique o tipo de list box. ![](../assets/en/FormObjects/listbox_dataSource.png) -- **Arrays**(por defecto): utiliza elementos de array como líneas del list box. -- **Selección actual**: utiliza expresiones, campos o métodos cuyos valores se evaluarán para cada registro de la selección actual de una tabla. -- **Selección temporal**: utiliza expresiones, campos o métodos cuyos valores se evaluarán para cada registro de una selección temporal. -- **Colección o Selección de entidades**: utilice elementos de colección o entidades para definir el contenido de las líneas del list box. Tenga en cuenta que con este tipo de list box, debe definir la propiedad [Colección o Selección de entidades](properties_Object.md#collection-or-entity-selection). +- **Arrays**(padrão): use elementos array como as linhas da caixa de lista. +- **Seleção Atual**: use expressões, campos ou métodos cujos valores serão avaliados para cada registro da seleção atual de uma tabela. +- **Seleção Nomeada**: use expressões, campos ou métodos cujos valores serão avaliados para cada registro de uma seleção nomeada. +- **Seleção de Coleção ou Entidade**: use elementos de coleção ou entidades para definir o conteúdo da linha da caixa de lista. Note que com esta caixa de lista, você precisa definir a propriedade [Seleção de coleção ou Entidade](properties_Object.md#collection-or-entity-selection) #### Gramática JSON @@ -229,7 +230,7 @@ Especifique o tipo de list box. ## Tipo de plug-in -Nombre del [área externa del plug-in](pluginArea_overview.md) asociada al objeto. Plug-in external area names are published in the manifest.json file of the plug-in. +Nome da [área externa plug-in ](pluginArea_overview.md) associada ao objeto. Nomes de área externa do plug-in são publicados no arquivo manifest.json do plugin. #### Gramática JSON @@ -245,7 +246,7 @@ Nombre del [área externa del plug-in](pluginArea_overview.md) asociada al objet ## Grupo Rádio -Enables radio buttons to be used in coordinated sets: only one button at a time can be selected in the set. +Permite que os botões de rádio sejam usados em conjuntos coordenados: somente um botão de cada vez pode ser selecionado no conjunto. #### Gramática JSON @@ -269,9 +270,9 @@ Pode forçar um retorno de carro na etiqueta utilizando o carácter \ (barra inv Para inserir um \ na etiqueta, introduzir "\\". -Por padrão, a etiqueta é colocada no centro do objeto. When the object also contains an icon, you can modify the relative location of these two elements using the [Title/Picture Position](properties_TextAndPicture.md#titlepicture-position) property. +Por padrão, a etiqueta é colocada no centro do objeto. Quando o objeto também contém um ícone, você pode modificar a localização relativa desses dois elementos usando a propriedade [Title/Picture Position](properties_TextAndPicture.md#titlepicture-position) -Para la traducción de la aplicación, puede introducir una referencia XLIFF en el área del título de un botón (ver [Apéndice B: arquitectura XLIFF](https://doc.4d.com/4Dv17R5/4D/17-R5/Appendix-B-XLIFF-architecture.300-4163748.en.html)). +Para fins de tradução da aplicação, você pode inserir uma referência XLIFF na área do título de um botão (veja [Apêndice B: arquitetura XLIFF](https://doc.4d.com/4Dv17R5/4D/17-R5/Appendix-B-XLIFF-architecture.300-4163748.en.html)). #### Gramática JSON @@ -287,11 +288,11 @@ Para la traducción de la aplicación, puede introducir una referencia XLIFF en ## Cálculo de variáveis -Esta propiedad define el tipo de cálculo que se realizará en un área [pie de columna](listbox_overview.md#list-box-footers). +Esta propriedade define o tipo de cálculo a ser feito em uma área de [rodapé da coluna](listbox_overview.md#list-box-footers). -> The calculation for footers can also be set using the [`LISTBOX SET FOOTER CALCULATION`](https://doc.4d.com/4dv19/help/command/en/page1140.html) 4D command. +> O cálculo de rodapés também pode ser definido usando o comando [`LISTBOX SET FOOTER CALCULATION`](https://doc.4d.com/4dv19/help/command/en/page1140.html) 4D. -Existem vários tipos de cálculos disponíveis. The following table shows which calculations can be used according to the type of data found in each column and indicates the type automatically affected by 4D to the footer variable (if it is not typed by the code): +Existem vários tipos de cálculos disponíveis. A tabela a seguir mostra quais cálculos podem ser usados de acordo com o tipo de dados encontrados em cada coluna e indica que o tipo é automaticamente afetado por 4D para a variável de rodapé (se não for digitado pelo código): | Cálculo | Num | Text | Date | Hora | Bool | Pict | tipo var rodapé | | ----------------------------------------- | --- | ---- | ---- | ---- | ---- | ---- | ----------------------- | @@ -307,24 +308,24 @@ Existem vários tipos de cálculos disponíveis. The following table shows which (\*) Apenas para list boxes do tipo array. -> Sólo las [variables](Concepts/variables.md) declaradas o dinámicas pueden utilizarse para mostrar los cálculos de pie de página. No se soportan otros tipos de [expresiones](Concepts/quick-tour.md#expressions) como `Form.value`. +> Somente declarado ou dinâmico [variables](Aceitar/variáveis.md) pode ser usado para exibir os cálculos do rodapé. Outros tipos de [expressions](Aceitações/quick-tour.md#expressions) como `Form.value` não são compatíveis. -Note that the calculation does not take the shown/hidden state of list box rows into account. If you want to restrict a calculation to only visible rows, you must use a custom calculation. +Cálculos automáticos ignoram o estado mostrado/oculto das linhas de caixa de lista. Se você quiser restringir um cálculo para apenas linhas visíveis, você deve usar um cálculo personalizado. -*Null* no se tienen en cuenta para ningún cálculo. +Valores *null* não são levados em conta para quaisquer cálculos. -If the column contains different types of values (collection-based column for example): +Se a coluna contiver diferentes tipos de valores (coluna baseada em coleção, por exemplo): -- Average and Sum only take numerical elements into account (other element types are ignored). -- Mínimo y Máximo devuelven un resultado según el orden habitual de las listas de tipos, tal como se define en la función [collection.sort()](API/CollectionClass.md#sort). +- Média e Soma só levam em consideração elementos numéricos (outros tipos de elementos são ignorados). +- Retorno mínimo e máximo um resultado de acordo com a ordem habitual de lista de tipos conforme definida na função [collection.sort()](API/CollectionClass.md#sort). -Using automatic calculations in footers of columns based upon expressions has the following limitations: +Usar cálculos automáticos nos rodapés das colunas com base nas expressões tem as seguintes limitações: - es **soportado** con todos los tipos de list boxes cuando la expresión es "simple" (como `[table]field` o `this.attribute`), -- se **soporta pero no se recomienda** por razones de rendimiento con list boxes colección/selección de entidades cuando la expresión es "compleja" (distinta de `this.attribute`) y el list box contiene un gran número de líneas, -- **no se soporta** con list boxes selección actual/selección temporal cuando la expresión es "compleja". Precisa utilizar cálculos personalizados. +- É **possível, mas não recomendado** por motivos de desempenho com caixas de listagem de seleção de coleção/entidade quando a expressão for "complexa" (diferente de `this.attribute`) e a caixa de listagem contiver um grande número de linhas, +- não é **suportado** com as caixas de lista de seleção de seleção atuais/nomeadas quando a expressão é "complexa". Precisa utilizar cálculos personalizados. -Cuando está configurado **Personalizado** ("none" en JSON), 4D no realiza cálculos automáticos y debe asignar el valor de la variable en esta área por programación. +Quando **Personalizado** ("nenhum" em JSON) é definido, nenhum cálculo automático é realizado por 4D e você deve atribuir o valor da variável nesta área por programação. #### Gramática JSON diff --git a/i18n/pt/docusaurus-plugin-content-docs/version-20-R6/FormObjects/properties_Subform.md b/i18n/pt/docusaurus-plugin-content-docs/version-20-R6/FormObjects/properties_Subform.md index 4a961283aa8857..05d56a92eb0d5c 100644 --- a/i18n/pt/docusaurus-plugin-content-docs/version-20-R6/FormObjects/properties_Subform.md +++ b/i18n/pt/docusaurus-plugin-content-docs/version-20-R6/FormObjects/properties_Subform.md @@ -26,6 +26,7 @@ Especifica se o utilizador pode eliminar sub-registos num subformulário lista. Esta propriedade é utilizada para declarar o formulário detalhado a utilizar no subformulário. Pode ser: - um widget, ou seja, um subformulário de tipo página, dotado de funções específicas. In this case, the [list subform](#list-form) and [Source](#source) properties must be empty or not present.\ + You can select a component form name when it is published in the component.\ You can select a component form name when it is published in the component. > Para ello, basta con hacer dos clics en el campo a modificar para que pase al modo edición (asegúrese de dejar suficiente tiempo entre los dos clics para no generar un doble clic). diff --git a/i18n/pt/docusaurus-plugin-content-docs/version-20-R6/ORDA/client-server-optimization.md b/i18n/pt/docusaurus-plugin-content-docs/version-20-R6/ORDA/client-server-optimization.md index c984a9f8896976..a7ff2bbfccb515 100644 --- a/i18n/pt/docusaurus-plugin-content-docs/version-20-R6/ORDA/client-server-optimization.md +++ b/i18n/pt/docusaurus-plugin-content-docs/version-20-R6/ORDA/client-server-optimization.md @@ -3,17 +3,17 @@ id: client-server-optimization title: Otimização cliente/servidor --- -4D provides optimizations for ORDA requests that use entity selections or load entities in client/server architectures. Essas otimizações aceleram a execução de seu aplicativo 4D ao reduzir drasticamente o volume de informações transmitidas pela rede. Estes incluem: +4D fornece otimizações para solicitações ORDA que usam seleções de entidades ou carregam entidades em arquiteturas cliente/servidor. Essas otimizações aceleram a execução de seu aplicativo 4D ao reduzir drasticamente o volume de informações transmitidas pela rede. Estes incluem: - o **contexto de otimização** - o **Cache ORDA** ## Arquiteturas suportadas -ORDA client/server architectures that support the optimization are: +As arquiteturas cliente/servidor de ORDA que suportam a otimização são: -- Server datastores accessed by 4D remote desktop applications through [**`ds`**](../API/DataStoreClass.md#ds), -- [Remote datastores](remoteDatastores.md), accessed via [**`Open datastore`**](../API/DataStoreClass.md#open-datastore) (client REST requests). +- Os datastores servidor acessados pelas aplicações 4D remotas através de [**`ds`**](../API/DataStoreClass.md#ds), +- [Dastores remotos](remoteDatastores.md), acessado via [**`Open datastore`**](../API/DataStoreClass.md#open-datastore) (solicitações clientes REST). ## Contexto de otimização @@ -27,7 +27,7 @@ O contexto de otimização é baseado nas seguintes implementações: - [`dataClass.query()`](../API/DataClassClass.md#query) - [`entitySelection.query()`](../API/EntitySelectionClass.md#query) -- As solicitações subsequentes enviadas ao servidor sobre a mesma seleção de entidade reutilizam automaticamente o contexto de otimização e obtêm apenas os atributos necessários do servidor, o que acelera o processamento. For example, in an [entity selection-based list box](#entity-selection-based-list-box), the learning phase takes place during the display of the first row. a visualização das linhas seguintes é optimizada. As funções a seguir associam automaticamente o contexto de otimização da seleção da entidade de origem à seleção da entidade retornada: +- As solicitações subsequentes enviadas ao servidor sobre a mesma seleção de entidade reutilizam automaticamente o contexto de otimização e obtêm apenas os atributos necessários do servidor, o que acelera o processamento. Por exemplo, em uma [caixa de lista baseada em seleção de entidades](#entity-selection-based-list-box), a fase de aprendizagem ocorre durante a exibição da primeira linha. a visualização das linhas seguintes é optimizada. As funções a seguir associam automaticamente o contexto de otimização da seleção da entidade de origem à seleção da entidade retornada: - [`entitySelection.and()`](../API/EntitySelectionClass.md#and) - [`entitySelection.minus()`](../API/EntitySelectionClass.md#minus) - [`entitySelection.or()`](../API/EntitySelectionClass.md#or) @@ -35,15 +35,15 @@ O contexto de otimização é baseado nas seguintes implementações: - [`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). +- Um contexto de otimização existente pode ser passado como uma propriedade para outra seleção de entidade das mesmas dataclass, Desta forma, ignorando a fase de aprendizagem e acelerando a aplicação (veja [Reutilizando a propriedade de contexto](#reusing-the-context-property) abaixo). -- You can build optimization contexts manually using the [`dataStore.setRemoteContextInfo()`](../API/DataStoreClass.md#setremotecontextinfo) function (see [Preconfiguring contexts](#preconfiguring-contexts)). +- Você pode criar contextos de otimização manualmente usando a função [`dataStore.setRemoteContextInfo()`](../API/DataStoreClass.md#setremotecontextinfo) (veja [contextos preconfigurando](#preconfiguring-contexts)). ![](../assets/en/ORDA/cs-optimization-process.png) :::note Nota de compatibilidade -Contexts handled in connections established through [`Open datastore`](../API/DataStoreClass.md#open-datastore) can only be used between similar main versions of 4D. For example, a 4D 20.x remote application can only use contexts of a 4D Server 20.x datastore. +Contextos tratados em conexões estabelecidas através de [`Open datastore`](../API/DataStoreClass.md#open-datastore) só podem ser usadas entre versões principais similares de 4D. Por exemplo, uma aplicação remota 4D 20.x pode usar apenas contextos de um servidor 4D Server 20.x datastore. ::: @@ -58,48 +58,48 @@ Dado o seguinte código: End for each ``` -Thanks to the optimization, this request will only get data from used attributes (firstname, lastname, employer, employer.name) in *$sel* from the second iteration of the loop. +Graças à otimização, esta solicitação receberá apenas dados de atributos usados (nome, sobrenome, empregador, empregador. jogo) em *$sel* da segunda iteração do laço. ### Reutilizando a propriedade `context` Você pode aumentar os benefícios da otimização usando a propriedade **context**. Essa propriedade faz referência a um contexto de otimização "aprendido" para uma seleção de entidade. Ele pode ser passado como parâmetro para funções ORDA que retornam novas seleções de entidades, de modo que as seleções de entidades solicitem diretamente os atributos usados ao servidor e ignorem a fase de aprendizado. -> You can also create contexts using the [`.setRemoteContextInfo()`](../API/DataStoreClass.md#setremotecontextinfo) function. +> Você também pode criar contextos usando a função [`.setRemoteContextInfo()`](../API/DataStoreClass.md#setremotecontextinfo). -A mesma propriedade de contexto de otimização pode ser passada para um número ilimitado de seleções de entidades na mesma classe de dados. All ORDA functions that handle entity selections support the **context** property (for example [`dataClass.query()`](../API/DataClassClass.md#query) or [`dataClass.all()`](../API/DataClassClass.md#all)). No entanto, lembre-se de que um contexto é atualizado automaticamente quando novos atributos são usados em outras partes do código. A reutilização do mesmo contexto em códigos diferentes pode resultar em sobrecarga do contexto e, portanto, reduzir sua eficiência. +A mesma propriedade de contexto de otimização pode ser passada para um número ilimitado de seleções de entidades na mesma classe de dados. Todas as funções ORDA que manipulam seleções de entidades suportam a propriedade **context** (por exemplo, [`dataClass.query()`](../API/DataClassClass.md#query) ou [`dataClass.all()`](../API/DataClassClass.md#all)). No entanto, lembre-se de que um contexto é atualizado automaticamente quando novos atributos são usados em outras partes do código. A reutilização do mesmo contexto em códigos diferentes pode resultar em sobrecarga do contexto e, portanto, reduzir sua eficiência. -> A similar mechanism is implemented for entities that are loaded, so that only used attributes are requested (see the [`dataClass.get()`](../API/DataClassClass.md#get) function). +> Um mecanismo semelhante é implementado para as entidades que são carregadas, de modo que apenas atributos usados são requisitados (veja a função [`dataClass.get()`](../API/DataClassClass.md#get)). **Exemplo com `dataClass.query()`:** ```4d - var $sel1; $sel2; $sel3; $sel4; $querysettings; $querysettings2 : Object - 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" - - $sel2:=ds.Employee.query("lastname = Sm@";$querysettings) - $data:=extractData($sel2) // In extractData method the optimization associated - // to context "shortList" is applied - - $sel3:=ds.Employee.query("lastname = Smith";$querysettings2) - $data:=extractDetailedData($sel3) // In extractDetailedData method an optimization - // is triggered and associated to context "longList" - - $sel4:=ds.Employee.query("lastname = Brown";$querysettings2) - $data:=extractDetailedData($sel4) // In extractDetailedData method the optimization - // associated to context "longList" is applied + var $sel1; $sel2; $sel3; $sel4; $querysettings; $querysettings2 : Objeto + var $data : Coleção + $querysettings:=Novo objeto("contexto"; shortList") + $querysettings2:=Novo objeto("contexto";"longList") + + $sel1:=ds. Colaborador. uery("Sobrenome = S@";$querysettings) + $data:=extractData($sel1) // No método extractData uma otimização é acionada + // e associada ao contexto "shortList" + + $sel2:=ds. Colaborador. uery("Sobrenome = Sm@";$querysettings) + $data:=extractData($sel2) // No método extractData a otimização associada a + // ao contexto "shortList" é aplicada + + $sel3:=ds. Colaborador. uery("Sobrenome = Smith";$querysettings2) + $data:=extractDetailedData($sel3) // No método extractDetailedData uma otimização + // é acionada e associada ao contexto "longList" + + $sel4:=ds. Colaborador. uery("Sobrenome = Brown";$querysettings2) + $data:=extractDetailedData($sel4) // No método extractDetailedData a otimização + // associada ao contexto "longList" é aplicada ``` ### List box baseado em uma seleção de entidades -Entity selection optimization is automatically applied to entity selection-based list boxes in 4D client/server desktop applications, when displaying and scrolling a list box content: only the attributes displayed in the list box are requested from the server. +Otimização de seleção de entidade é aplicada automaticamente para caixas de lista de seleção baseadas em entidade em aplicações desktop 4D de cliente/servidor, ao exibir e rolar um conteúdo da caixa de lista: apenas os atributos exibidos na caixa de lista são requisitados do servidor. -A specific "page mode" context is also provided when loading the current entity through the **Current item** property expression of the list box (see [Collection or entity selection type list boxes](FormObjects/listbox_overview.md#list-box-types)). Esse recurso permite que você não sobrecarregue o contexto inicial da caixa de lista neste caso, especialmente se a "página" solicitar atributos adicionais. Note that only the use of **Current item** expression will create/use the page context (access through `entitySelection\[index]` will alter the entity selection context). +Um contexto "modo de página" específico também é fornecido ao carregar a entidade atual através da expressão da propriedade **item atual** da caixa de lista (veja [Caixas de lista de seleção de coleções ou entidades](FormObjects/listbox_overview. d#list-box-types)). Esse recurso permite que você não sobrecarregue o contexto inicial da caixa de lista neste caso, especialmente se a "página" solicitar atributos adicionais. Observe que apenas o uso da expressão do **item atual** irá criar/usar o contexto da página (acesso através de `entitySeletion\[index]` irá alterar o contexto de seleção da entidade). As solicitações subsequentes ao servidor enviadas pelas funções de navegação da entidade também darão suporte a essa otimização. As funções a seguir associam automaticamente o contexto de otimização da entidade de origem à entidade retornada: @@ -111,9 +111,9 @@ As solicitações subsequentes ao servidor enviadas pelas funções de navegaç Por exemplo, o código a seguir carrega a entidade selecionada e permite a navegação na seleção da entidade. As entidades são carregadas em um contexto separado e o contexto inicial da caixa de listagem não é alterado: ```4d - $myEntity:=Form.currentElement //current item expression - //... do something - $myEntity:=$myEntity.next() //loads the next entity using the same context + $myEntity:=Form.currentElement //expressão do item atual + //... fazer algo + $myEntity:=$myEntity.next() //carrega a próxima entidade usando o mesmo contexto ``` ### Pré-configuração de contextos @@ -124,8 +124,8 @@ Se quiser fornecer aplicativos finais com o mais alto nível de otimização, vo 1. Projete seus algoritmos. 2. Execute seu aplicativo e deixe que o mecanismo de aprendizado automático preencha os contextos de otimização. -3. Call the [`dataStore.getRemoteContextInfo()`](../API/DataStoreClass.md#getremotecontextinfo) or [`dataStore.getAllRemoteContexts()`](../API/DataStoreClass.md#getallremotecontexts) function to collect contexts. You can use the [`entitySelection.getRemoteContextAttributes()`](../API/EntitySelectionClass.md#getremotecontextattributes) and [`entity.getRemoteContextAttributes()`](../API/EntityClass.md#getremotecontextattributes) functions to analyse how your algorithms use attributes. -4. In the final step, call the [`dataStore.setRemoteContextInfo()`](../API/DataStoreClass.md#setremotecontextinfo) function to build contexts at application startup and [use them](#reusing-the-context-property) in your algorithms. +3. Chame a função [`dataStore.getRemoteContextInfo()`](../API/DataStoreClass.md#getremotecontextinfo) ou [`dataStore.getAllRemoteContexts()`](../API/DataStoreClass.md#getallremotecontexts) para coletar contextos. Você pode usar as funções [`entitySelection.getRemoteContextAttributes()`](../API/EntitySelectionClass.md#getremotecontextattributes) e [`entity.getRemoteContextAttributes()`](../API/EntityClass.md#getremotecontextattributes) para analisar como seus algoritmos usam atributos. +4. Na etapa final, chame a função [`dataStore.setRemoteContextInfo()`](../API/DataStoreClass.md#setremotecontextinfo) para construir contextos na inicialização da aplicação e [usá-los](#reusing-the-context-property) em seus algoritmos. ## Cache ORDA @@ -133,7 +133,7 @@ Por motivos de otimização, os dados solicitados do servidor por meio do ORDA s Os dados contidos no cache são considerados expirados quando o tempo limite é atingido. Qualquer acesso a dados expirados enviará um pedido ao servidor. Os dados expirados permanecem na cache até que seja necessário espaço. -You can force entity selection data in the ORDA cache to expire at any moment by using the [`refresh()`](../API/EntitySelectionClass.md#refresh) function. +Você pode forçar os dados de seleção de entidades no cache ORDA a expirar a qualquer momento usando a função [`atualizar ()`](../API/EntitySelectionClass.md#refresh). Por padrão, o cache ORDA é tratado de forma transparente pelo 4D. No entanto, você pode controlar seu conteúdo usando as seguintes funções da classe ORDA: diff --git a/i18n/pt/docusaurus-plugin-content-docs/version-20-R6/Project/compiler.md b/i18n/pt/docusaurus-plugin-content-docs/version-20-R6/Project/compiler.md index 3fb5fe87dc0f41..c0c939f24776a8 100644 --- a/i18n/pt/docusaurus-plugin-content-docs/version-20-R6/Project/compiler.md +++ b/i18n/pt/docusaurus-plugin-content-docs/version-20-R6/Project/compiler.md @@ -3,49 +3,49 @@ id: compiler title: Compilação --- -You can compile your projects, i.e., translate all of your methods into machine language. Compiling a project lets you check the consistency of the code and accelerate its execution, as well as making it possible to obfuscate the code in its entirety. Compilation is an indispensable step between the development of projects using 4D and their deployment as stand-alone applications. +Você pode compilar seus projetos, ou seja, traduzir todos os seus métodos para o idioma da máquina. Compilar um projeto permite que você verifique a consistência do código e acelere a sua execução, Além de tornar possível ofuscar o código na sua totalidade. A compilação constitui um passo indispensável entre o desenvolvimento de projectos que utilizam o 4D e a sua implantação como aplicações isoladas. ## Compilar -The compilation is handled from your 4D application and is entirely automatic. +A compilação é tratada do seu aplicativo 4D e é inteiramente automática. -> En macOS, la compilación requiere que instale `Xcode`. Consulte [esta sección](#silicon-compiler) para obtener más información sobre este requisito. +> No macOS, a compilação requer que você instale o `Xcode`. Veja [esta seção](#silicon-compilador) para mais informações sobre este requisito. -1. Abra la ventana de compilación seleccionando el comando **Compilador...** en el menú **Diseño** o el botón **Compilador** de la barra de herramientas. +1. Abra a janela do compilador selecionando o comando **Compiler...** no menu **Design** ou no botão da barra de ferramentas **Compilador**. ![](../assets/en/Project/compilerWin1.png) ![](../assets/en/Project/comp1.png) -> También puede lanzar directamente la compilación seleccionando el elemento de menú **Iniciar compilación** en el menú **Diseño**. +> Você também pode iniciar diretamente a compilação selecionando o item de menu **Iniciar Compilação** do menu **Design**. -2. Haga clic en el botón **Compilar** para lanzar la compilación utilizando los [parámetros ded compilación](#compiler-settings) actuales. +2. Clique no botão **Compilar** para iniciar a compilação usando as [configurações de compilação](#configurações do compilador). -If no errors are detected, the actual compilation begins and the "Compilation successful" message is displayed at the bottom of the window when the compilation is completed: +Se nenhum erro for detectado, a compilação atual começa e a mensagem "Compilação com sucesso" é exibida na parte inferior da janela quando a compilação é concluída: ![](../assets/en/Project/success.png) -Puede inmediatamente [ejecutar su aplicación en modo compilado](#run-compiled) y ver lo rápido que es. +Você pode imediatamente [executar sua aplicação em modo compilado](#run-compiled) e ver o quão mais rápido ela é. -If errors are detected, the process is stopped and the "Compilation failed" message is displayed. The information area of the window displays the method names and line numbers concerned in a hierarchical list: +Se erros forem detectados, o processo é interrompido e a mensagem "Compilação falhou" é exibida. A área de informação da janela exibe os nomes de métodos e números de linha envolvidos em uma lista hierárquica: ![](../assets/en/Project/compilerWin2.png) -Double-click on each error detected to open the method or class concerned directly in the 4D method editor. The line containing the error is highlighted and the type of error is displayed in the syntax area of the window. +Clique duas vezes em cada erro detectado para abrir o método ou a classe em questão diretamente no Editor de Código 4D. A linha que contém o erro é destacada e o tipo de erro é exibido na área de sintaxe da janela. -Utilice los comandos **Error anterior** / **Error siguiente** del menú **Método** para navegar de un error a otro. +Use os comandos **Erro anterior** / **Próximo Erro** do menu **Método** para navegar de um erro para o outro. -The number of errors found during your first compilations may be daunting, but do not let this put you off. You will soon discover that they often spring from the same source, i.e., non-compliance with certain project conventions. El compilador siempre ofrece un [diagnóstico preciso](#error-file) de los errores para ayudarle a corregirlos. +O número de erros encontrados durante as suas primeiras compilações pode ser um desafio, mas não deixe isso te avisar. Logo você descobrirá que eles muitas vezes nascem da mesma fonte, ou seja, não conformidade com certas convenções do projeto. O compilador sempre fornece um [diagnóstico exato](#error-file) dos erros para ajudá-lo a corrigi-los. -> A compilação requer uma licença adequada. Without this license, it is not possible to carry out a compilation (buttons are disabled). Nevertheless, it is still possible to check the syntax and generate Typing methods. +> A compilação requer uma licença adequada. Sem esta licença, não é possível realizar uma compilação (os botões estão desativados). No entanto, ainda é possível verificar a sintaxe e gerar métodos de digitação. ## Executar a compilação -Una vez compilado un proyecto, es posible pasar del [modo interpretado al modo compilado](Concepts/interpreted.md), y viceversa, en cualquier momento y sin tener que salir de la aplicación 4D (excepto cuando se ha eliminado el código interpretado). Para ello, utilice los comandos **Reiniciar en interpretado** y **Reiniciar en compilado** del menú **Ejecución**. La [caja de diálogo de apertura del proyecto](GettingStarted/creating.md#options) también ofrece elegir entre el modo interpretado o compilado para iniciar la base de datos. +Uma vez que um projeto é compilado, é possível mudar do [modo interpretado para o modo compilado](Concepts/interpretado. d) e vice-versa, a qualquer momento e sem ter que sair do aplicativo 4D (exceto quando o código interpretado for removido). Para fazer isso, use os comandos **Reiniciar Interpretado** e **Reiniciar Compilado** do menu **Executar**. A [caixa de diálogo de projeto aberta](GettingStarted/creating.md#options) também oferece uma escolha entre o modo interpretado ou compilado para a inicialização do banco de dados. -When you switch from one mode to the other, 4D closes the current mode and opens the new one. Isto é equivalente a sair e reabrir a aplicação. Cada vez que se cambia de un modo a otro, 4D ejecuta los dos métodos base siguientes (si se especifican) en este orden: `On Exit` -> `On Startup`. +Quando você alternar de um modo para o outro, a 4D fecha o modo atual e abre o novo. Isto é equivalente a sair e reabrir a aplicação. Cada vez que você mudar de um modo para outro, O 4D executa os dois seguintes métodos de banco de dados (se especificado) nessa ordem: `Na saída` -> `Na inicialização`. -If you modify your project in interpreted mode, you must recompile it in order to have your edits taken into account in compiled mode. +Se você modificar seu projeto em modo interpretado, é necessário recompilá-lo para que suas edições sejam levadas em conta no modo compilado. ## Características da janela do compilador @@ -53,25 +53,25 @@ Além do botão [**Compilar**](#compilar), a janela Compilador oferece recursos ### Verificar sintaxe -El botón **Verificar la sintaxis** lanza la ejecución de la fase de verificación de la sintaxis. At the end of the checking process, any errors detected are listed in the information area. You can double–click on an error line in order to display the corresponding method. +O botão **Verificar sintaxe** inicia a execução da fase de verificação de sintaxe. No final do processo de verificação, quaisquer erros detectados estão listados na área de informação. Você pode clicar duas vezes em uma linha de erro para exibir o método correspondente. -El control sintáctico también puede lanzarse directamente con el comando **Verificar sintaxis** asociado al botón de la barra de herramientas **Compilador**. This option is the only one available if you do not have a suitable license to allow the compilation of applications. +A verificação de sintaxe também pode ser iniciada diretamente usando o comando **Verificar sintaxe** associado com o botão da barra de ferramentas **Compiler**. Esta é a única opção disponível se você não tiver uma licença adequada para permitir a compilação de aplicativos. ### Gerar digitação -El botón **Declarar Tipos** crea o actualiza los métodos del compilador. Compiler methods are project methods that group together all the variable and array typing declarations (process and interprocess), as well as the [method parameters declared outside prototypes](../Concepts/parameters.md#method-parameters-declared-outside-prototypes). These methods, when they exist, are used directly by the compiler during code compilation, resulting in faster compilation times. +O botão **Gerar Typing** cria ou atualiza métodos do compilador. Os métodos do Compilador são métodos do projeto que agrupam todas as declarações de digitação de variável e matriz (processo e interprocesso), assim como os parâmetros de [método declarado fora dos protóticos](. /Concepts/parameters.md#method-parameters-declared-outside-prototypes). Esses métodos, quando eles existem, são usados diretamente pelo compilador durante a compilação de código, resultando em tempos de compilação mais rápidos. -El nombre de estos métodos debe comenzar por `Compiler_`. Puede definir el nombre por defecto de cada uno de los 5 métodos del compilador en [la ventana de los parámetros del compilador](#compiler-methods-for). Los métodos de compilación que son generados y mantenidos por 4D tienen automáticamente el atributo `Invisible`: +O nome desses métodos deve começar com `Compiler_`. Você pode definir o nome padrão para cada um dos 5 métodos do compilador na [janela de configurações do compilador](#compiler-methods-for). Os métodos do compilador que são gerados e mantidos pelo 4D automaticamente têm o atributo `Invisível`: ![](../assets/en/Project/compilerWin3.png) -Only the necessary compiler methods (i.e., those for which items already exist in the project) are generated. +Apenas os métodos necessários do compilador (ou seja, aqueles para os quais os itens já existem no projeto) são gerados. -The information area indicates any errors found during method creation or updating. Double-clicking on an error line causes the method and line concerned to be displayed in the Method editor. +A área de informação indica quaisquer erros encontrados durante a criação ou atualização de métodos. Clicar duas vezes em uma linha de erro faz com que o método e a linha em questão sejam exibidos no Editor de Código. ### Limpar código compilado -El botón **Borrar el código compilado** borra el código compilado del proyecto. Al hacer clic en él, se borra todo el [código generado durante la compilación](#classic-compiler), se desactiva el comando **Reiniciar compilado** del menú **Ejecutar** y la opción "Proyecto compilado" no está disponible al inicio. +O botão **Limpar código compilado** exclui o código compilado do projeto. Quando você clicar nele, todo o [código gerado durante a compilação](#classic-compilador) é excluído, o comando **Reiniciar Compilado** do menu **Executar** está desativado e a opção "Projeto Compilado" não está disponível na inicialização. ### Mostrar/ocultar avisos @@ -79,7 +79,7 @@ Você pode alternar a exibição de [warnings](#warnings) na janela do Compilado ![](../assets/en/Project/compilerWin4.png) -When this option is checked, the warnings (if any) are displayed in the window, after the other error types. Estas aparecem em itálico: +Quando esta opção é marcada, os avisos (se houver) são exibidos na janela, após os outros tipos de erro. Estas aparecem em itálico: ![](../assets/en/Project/compilerWin5.png) @@ -87,33 +87,33 @@ Um duplo clique num aviso abre o método correspondente. ## Parâmetros do compilador -The "Compiler" tab of the Settings dialog box lets you set parameters related to project compilation. Puede abrir directamente esta página desde la [ventana del compilador](#compiler-window) haciendo clic en el botón **Parámetros del compilador**: +A aba "Compilador" da caixa de diálogo Configurações permite que você defina parâmetros relacionados à compilação do projeto. Você pode abrir diretamente esta página através da [janela do compilador](#janela do compilador) clicando no botão **Configurações do Compilador**: ![](../assets/en/Project/compilerWin6.png) ### Opções de compilação -This area groups the generic options used during the compilation process. +Esta área agrupa as opções genéricas usadas durante o processo de compilação. -#### Generate symbol file +#### Gerar o arquivo de símbolo -Used to generate the error file (see [error file](#symbol-file)) at the time of syntax checking. Used to generate the symbol file (see [symbol file](#symbol-file)). +Usado para gerar o arquivo de símbolo (veja [arquivo de símbolo](#símbolo-arquivo)). O arquivo de símbolo é criado na [pasta Logs](Project/architecture.md#logs) do projeto com o nome `ProjectName_symbols.txt`. -#### Gerar ficheiro de erros +#### Gerar arquivo de erro -Se utiliza para generar el archivo de errores (ver [archivo de errores](#error-file)) en el momento del control sintáctico. El archivo de error se crea en la [carpeta Logs](Project/architecture.md#logs) del proyecto con el nombre `ProjectName_errors.xml`. +Usado para gerar o arquivo de erro (consulte [arquivo de erro](#error-file)) no momento da verificação de sintaxe. O arquivo de erro foi criado na [pasta Logs](Project/architecture.md#logs) do projeto com o nome `ProjectName_errors.xml`. #### Caminho de compilação -Used to set the number of passes (code parsing) performed by the compiler and thus the duration of compilation. +Usado para definir o número de passagens (análise de código) executadas pelo compilador e, portanto, a duração da compilação. -- **Declare las variables**: marque esta opción si quiere que el compilador infiera el tipo de variables y parámetros en su código. This option requires the compiler to perform all the stages that make compilation possible, which increases the duration of compilation. -- **Las variables proceso e interproceso se declaran**: el paso para declarar variables proceso e interproceso así como parámetros de método declarados fuera de prototipos no se realiza. This option can be used when you have already carried out the typing of all your process and interprocess variables either yourself or using the function for automatic generation of compiler methods. -- **Todas las variables están declaradas**: no se realiza el paso para declarar variables locales, proceso e interproceso, así como parámetros de método declarados fuera de prototipos. Use this option when you are certain that all the local, process, and interprocess variables as well as method parameters have been clearly typed. +- **Digite as variáveis**: Marque essa opção se você deseja que o compilador infere o tipo de variáveis e parâmetros em seu código. Esta opção requer que o compilador execute todas as etapas que tornam a compilação possível, o que aumenta a duração da compilação. +- **As variáveis de processo e interprocessos são digitadas**: O passe para digitação de processo e variáveis de interprocesso, bem como parâmetros de método declarados fora de protótipos não são executados. Esta opção pode ser usada quando você já realizou a digitação de todos os seus processos e variáveis de processo por conta própria ou usando a função para a geração automática de métodos do compilador. +- **Todas as variáveis são digitadas**: a passagem para digitar variáveis locais, de processo e interprocessos, bem como parâmetros de método declarados fora de protótipos não é executada. Use essa opção quando tiver certeza de que todos os processos locais, e variáveis de interprocesso, bem como parâmetros de métodos, foram claramente digitados. :::tip -Puede utilizar el botón [Generar declaración](#generate-typing) y luego compilar con una de las dos últimas opciones. +Você pode usar o botão [Gerar Typing](#generate-typing) e compilar com uma das duas últimas opções. ::: @@ -127,91 +127,91 @@ Puede utilizar el botón [Generar declaración](#generate-typing) y luego compil -This setting allows you to select the processor family for which your 4D project must be natively compiled. O compilador 4D pode criar código nativo para duas famílias de processadores: +Esta configuração permite selecionar a família de processadores para a qual seu projeto 4D deve ser compilado nativamente. O compilador 4D pode criar código nativo para duas famílias de processadores: -- Los procesadores **Intel/AMD** (todas las máquinas), -- los procesadores **Apple Silicon**. +- \*\*Os processadores Intel/AMD (todas as máquinas), +- \*\*os processadores Apple Silicon. Duas opções de alvo estão disponíveis. O resultado depende do processador da máquina em que 4D está em execução. -| *Opção* | *no Windows Intel/AMD* | *macOS Intel* | *no macOS Silicon* | -| ------------------------------------------------------------------------- | ---------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------ | -| **Todos os processadores (Intel/AMD e Apple Silicon)** | Código para Intel/AMD
    *No es posible producir código Apple Silicon en Windows* | Código para Apple Silicon + Código para Intel/AMD
    *Habrá dos códigos compilados disponibles* | Código para Apple Silicon + Código para Intel/AMD
    *Habrá dos códigos compilados disponibles* | -| **O meu processador (processador)** | Código para Intel/AMD | Código para Intel/AMD | Código para Apple Silicon | +| *Opção* | *no Windows Intel/AMD* | *macOS Intel* | *no macOS Silicon* | +| ------------------------------------------------------------------------- | ----------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------- | +| **Todos os processadores (Intel/AMD e Apple Silicon)** | Código para Intel/AMD
    *Não é possível produzir código Apple Silicon no Windows* | Código para o Apple Silicon + Código para Intel/AMD
    *Dois códigos compilados estarão disponíveis* | Código para o Apple Silicon + Código para Intel/AMD
    *Dois códigos compilados estarão disponíveis* | +| **O meu processador (processador)** | Código para Intel/AMD | Código para Intel/AMD | Código para Apple Silicon | -> El objetivo de compilación Apple Silicon requiere que la aplicación **Clang** esté instalada en su máquina. Clang vem com a versão mais recente do Xcode. Ver los [requisitos del compilador Silicon](#requirements) para más información. +> O alvo do compilador Apple Silicon requer que o aplicativo **Clang** esteja instalado em sua máquina. Clang vem com a versão mais recente do Xcode. Veja os [requisitos do compilador do Silício](#requerimentos) para mais informações. -### Digitação por defeito +### Digitação padrão Use esta área para definir o tipo padrão para objetos de banco de dados ambíguos. -- **Numérico**: se utiliza para forzar un tipo numérico de manera no ambigua, bien sea real o entero largo. Isso não substituirá as diretivas que você possa ter definido em seu projeto. Você pode otimizar a execução do seu banco de dados escolhendo o tipo Longint. -- **Botón**: se utiliza para forzar el tecleo de un botón de manera no ambigua, ya sea Real o Entero largo. Isso não substituirá as diretivas que você possa ter definido em seu projeto. This type applies to buttons as well as check boxes, picture buttons, button grids, radio buttons, picture pop-up menus and drop-down lists. +- **Numérico**: Usado para forçar a digitação numérica de uma forma inequívoca, seja de forma real ou longa. Isso não substituirá as diretivas que você possa ter definido em seu projeto. Você pode otimizar a execução do seu banco de dados escolhendo o tipo Longint. +- **Botão**: Usado para forçar o botão a digitar de uma forma inequívoca, seja de forma real ou longa. Isso não substituirá as diretivas que você possa ter definido em seu projeto. Este tipo se aplica a botões, bem como caixas de seleção, botões de imagem, grades de botão, botões de rádio, imagens de menus pop-up e listas suspensas. -### Compiler Methods for +### Métodos de Compilação para... -Esta área le permite renombrar los métodos del compilador que son generados automáticamente por el compilador cuando hace clic en [Declarar tipos](#generate-typing). +Esta área permite renomear os métodos do Compilador que são gerados automaticamente pelo compilador quando você clica em [Gerar Typing](#generate-typing). -Up to 5 compiler methods may be generated; a compiler method is only generated if the project contains the following items: +Até 5 métodos do compilador podem ser gerados; um método do compilador só é gerado se o projeto contiver os seguintes itens: -- **Variables**: agrupa las declaraciones de variables proceso; -- **Variables interproceso**: agrupa las declaraciones de variables interproceso; -- **Arrays**: agrupa las declaraciones de arrays de proceso; -- **Arrays interproceso**: agrupa las declaraciones de arrays interproceso; -- **Métodos**: agrupa las declaraciones de parámetros de métodos (por ejemplo `C_LONGINT(mymethod;$1;$2)`) para [parámetros de métodos declarados fuera de prototipos](../Concepts/parameters.md#method-parameters-declared-outside-prototypes). For more information, see [`Compiler_Methods` method](../Concepts/parameters.md#compiler_methods-method). +- **Variáveis**: agrupa as declarações de variáveis processam; +- **Variáveis Interprocessadas**: Grupos interprocessam declarações de variáveis entre processamentos; +- **Arrays**: Agrupa as declarações de matrizes de processo; +- **Matrizes Interprocessadas**: Grupos juntos declarações matrizes interprocessos; +- \*\*Métodos \*\*: Agrupa as declarações do parâmetro do método (por exemplo, `C_LONGINT(meumétodo;$1;$2)`) para [parâmetros de método declarados fora dos protóticos](../Concepts/parameters.md#method-parameters-declared-outside-prototypes). Para obter mais informações, consulte [método `Compiler_Methods`](../Concepts/parameters.md#compiler_methods-method). -Puede renombrar cada uno de estos métodos en las áreas correspondientes, pero siempre irán precedidos de la etiqueta `Compilador_` (no modificable). The name of each method (prefix included) must be no longer than 31 characters. También debe ser único y cumplir con [las reglas de 4D para nombrar métodos](Concepts/identifiers.md#project-methods). +Você pode renomear cada um desses métodos nas áreas correspondentes, mas eles sempre serão precedidos pela etiqueta `Compiler_` (não modificável). O nome de cada método (prefixo incluído) não deve ter mais de 31 caracteres. Deve também ser único e cumprir com [regras 4D para métodos de nomeação](Concepts/identifiers.md#project-methods). ## Avisos -Warnings are specific messages generated by the compiler when it checks the syntax. These messages are intended to draw your attention to statements that might lead to execution errors. Não impedem a compilação. +Avisos são mensagens específicas geradas pelo compilador quando verifica a sintaxe. Essas mensagens destinam-se a chamar a sua atenção para afirmações que podem levar a erros de execução. Não impedem a compilação. -Depending on circumstances and the programming style used, warnings may be more or less relevant. You can enable or disable warnings, in the compiler dialog, and in the code editors (4D code editor and VS Code), globally through the [warnings tab](#warnings-tab) or locally using [`//%W`](#disabling-and-enabling-warnings-locally). +Dependendo das circunstâncias e do estilo de programação utilizado, avisos podem ser mais ou menos relevantes. Você pode ativar ou desativar avisos, na caixa de diálogo do compilador e nos editores de código (editor de código 4D e código VS), globalmente através da [guia de avisos](#warnings-tab) ou localmente usando [`//%W`](#disabling-and-enabling-warnings-localmente). -### Warnings tab +### Aba "Avisos" ![](../assets/en/Project/warnings-tab.png) -This tab allows you to define which warnings should be displayed globally. From the list of all possible warnings with their types, their code and their localized label, ordered by warning code. +Esta aba permite definir quais avisos devem ser exibidos globalmente. Da lista de todos os possíveis avisos com seus tipos, seu código e sua etiqueta localizada, ordenados por código de aviso. Para reduzir a lista, você pode pesquisar palavras por etiquetas e códigos de aviso usando a caixa de texto **Pesquisar em códigos e rótulos** ou o ícone da lupa à esquerda. -By default, all warning types are checked and enabled. +Por padrão, todos os tipos de advertência são checados e habilitados. -When you modify a warning display status, the information is stored in the "warnings.json" file, placed in the project Settings folder. +Quando você modificar o estado de exibição de aviso, as informações são armazenadas no arquivo "warnings.json", colocado na pasta de configurações do projeto. -The **Reset to factory settings** button sets all the warning display status checkboxes to default values and deletes the "warnings.json" file. +O botão **Redefinir para as configurações de fábrica** define todas as caixas de seleção de status de exibição para valores padrão e exclui o arquivo "warnings.json". ### Desativar e ativar avisos localmente -You can control warnings in specific parts of your code by using special comments to disable or enable them. +Você pode controlar avisos em partes específicas do seu código usando comentários especiais para desativá-los ou habilitá-los. -To disable warnings, insert the following comments before and after the code section where you want to disable warnings: +Para desativar os avisos, insira os seguintes comentários antes e após a seção de código, onde você deseja desativar os avisos: ```4d -// Before the selected code part use +// Antes da parte do código selecionado, use //%W- -// After the selected code part use +// Após a parte do código selecionada, use //%W+ ``` Para reativar os avisos em uma seção de código, use os seguintes comentários: ```4d -// Before the selected code part use - //%W+ - -// After the selected code part use +// Antes da parte do código selecionado, use //%W- + +// Após a parte do código selecionada, use + //%W+ ``` -Only warnings with numbers can be disabled or enabled. Warning numbers are specified at the end of each message in the list of compilation errors or in the list found in the warning tab. +Somente avisos com números podem ser desativados ou habilitados. Números de aviso são especificados no final de cada mensagem na lista de erros de compilação ou na lista encontrada na aba de alerta. Por exemplo, para desativar o seguinte aviso: *1: Redefinição da variável $a (550.10)* -... you just need to write the following comments in your 4D method: +... você só precisa escrever os seguintes comentários no seu método 4D: ```4d var $a : Text @@ -225,37 +225,37 @@ Por exemplo, para desativar o seguinte aviso: :::note -The special warnings comments have priority over the warnings display settings set in the warning tab. +Os comentários de advertências especiais têm prioridade sobre as configurações de exibição de avisos definidas na aba de avisos. ::: ## Ferramentas de compilação -### Ficheiro Symbol +### Arquivo de símbolos -If you check the [**Generate the symbol file**](#generate-the-symbol-file) option in the compiler settings, a symbol file called `ProjectName_symbols.txt` is created in the [Logs folder](Project/architecture.md#logs) of the project during compilation. Está dividido en varias partes: +Se você marcar a opção [**Gerar o arquivo de símbolos**](#generate-the-symbol-file) nas configurações do compilador, um arquivo de símbolo chamado `ProjectName_symbols. xt` é criado na [pasta Logs](Project/architecture.md#logs) do projeto durante a compilação. Está dividido en varias partes: #### Lista das variáveis processo e interprocesso Estas duas listas contêm quatro colunas: -- Names of process and interprocess variables and arrays used in your project. Estas variáveis são enumeradas por ordem alfabética. -- Tipo da variável. Types are set by compiler directive commands or are determined by the compiler based on the use of the variable. Se o tipo de uma variável não puder ser determinado, a coluna estará vazia. +- Nomes de variáveis do processo e matrizes de interprocesso usados em seu projeto. Estas variáveis são enumeradas por ordem alfabética. +- Tipo da variável. Os tipos são definidos por comandos da diretiva do compilador ou são determinados pelo compilador com base na utilização da variável. Se o tipo de uma variável não puder ser determinado, a coluna estará vazia. - Número de dimensões se a variável for um array. -- Reference to the context in which the compiler established the type of the variable. If the variable is used in several contexts, the context mentioned is the one used by the compiler to determine its type. - - If the variable was found in a database method, the database method name is given, preceded by (M)\*. - - If the variable was found in a project method, the method is identified as it has been defined in 4D, preceded by (M). - - If the variable was found in a trigger, the table name is given, preceded by (TM). - - If the variable was found in a form method, the form name is given, preceded by the table name and (FM). - - If the variable was found in an object method, the object method’s name is given, preceded by the form name, table name, and by (OM). - - If the variable is an object in a form and does not appear in any project, form, object method, or trigger, the name of the form in which it appears is given, preceded by (F). - At the end of each list, you can find the sizes of the process and interprocess variables in bytes. +- Referência ao contexto no qual o compilador estabeleceu o tipo da variável. Se a variável é usada em vários contextos, o contexto mencionado é o usado pelo compilador para determinar seu tipo. + - Se a variável foi encontrada em um método de banco de dados, o nome do método de banco de dados é dado, precedido por (M)\*. + - Se a variável foi encontrada em um método do projeto, o método é identificado como foi definido em 4D, precedido por (M). + - Se a variável for encontrada em um gatilho, o nome da tabela é dado, precedido por (TM). + - Se a variável foi encontrada em um método do formulário, o nome do formulário é dado, precedido pelo nome da tabela e (FM). + - Se a variável foi encontrada em um método do objeto, o nome do método do objeto é fornecido, precedido pelo nome do formulário, nome da tabela, e por (OM). + - Se a variável for um objeto em um formulário e não aparecer em qualquer projeto, formulário, método do objeto, ou gatilho, o nome do formulário em que aparece é dado, precedido por (F). + No final de cada lista, você pode encontrar os tamanhos das variáveis do processo e interprocessos em bytes. -> When compiling, the compiler cannot determine in which process a given process variable is used. Uma variável processo pode ter um valor diferente em cada processo. Consequently, all process variables are systematically duplicated as each new process is launched: it is thus advisable to watch out for the amount of memory that they will take up. Also, keep in mind that the space for process variables is not related to the stack size for the process. +> Ao compilar, o compilador não pode determinar em qual processo uma determinada variável do processo é usada. Uma variável processo pode ter um valor diferente em cada processo. Consequentemente, todas as variáveis do processo são sistematicamente duplicadas à medida que cada novo processo é lançado: portanto, é aconselhável ter cuidado com a quantidade de memória que eles vão utilizar. Também, tenha em mente que o espaço para variáveis de processo não está relacionado ao tamanho da pilha para o processo. #### Lista de variáveis locais -The list of local variables is sorted by database method, project method, trigger, form method, and object method, in the same order as in 4D. +A lista de variáveis locais é classificada pelo método do banco de dados, método do projeto, acionado, método do formulário e método do objeto, na mesma ordem que em 4D. Esta lista está dividida em três colunas: @@ -281,48 +281,48 @@ tipo resultado, número de llamadas, Thread Safe o Thread Unsafe ### Arquivo de erros -You can choose whether or not to generate an error file during compilation using the [**Generate error file**](#generate-error-file) option in the compiler settings. El archivo de errores se llama automáticamente `projectName_errors.xml` y se coloca en la carpeta [Logs](Project/architecture.md#logs) del proyecto. +Você pode escolher se quer ou não gerar um arquivo de erro durante a compilação usando a opção [**Gerar arquivo de erro**](#generate-error-file) nas configurações do compilador. O arquivo de erro é automaticamente chamado `projectName_errors.xml` e é colocado na [pasta de logs](Project/architecture.md#logs) do projeto. -Aunque se puede acceder a los errores directamente a través de la [ventana de compilación](#compile), puede ser útil disponer de un archivo de errores que se pueda transmitir de una máquina a otra. The error file is generated in XML format in order to facilitate automatic parsing of its contents. Também permite a criação de interfaces customizadas de exibição de erros. +Embora os erros possam ser acessados diretamente através da [janela do compilador](#compile), pode ser útil ter um arquivo de erro que pode ser transmitido de uma máquina para outra. O arquivo de erro é gerado no formato XML para facilitar a análise automática de seu conteúdo. Também permite a criação de interfaces customizadas de exibição de erros. -The length of the error file depends on the number of errors and warnings issued by the compiler. +O comprimento do arquivo de erro depende do número de erros e avisos emitidos pelo compilador. -A estrutura do ficheiro de erros é a seguinte: +A estrutura do arquivo de erro é a seguinte: -- At the top of the file is the list of errors and warnings, sorted by method and in their order of creation in 4D. -- En la sección ***Errores generales*** se agrupan todas las imposibilidades de digitación y las ambigüedades de identidad. There are two cases in which the compiler reports a general error: +- No topo do arquivo está a lista de erros e avisos, classificados por método e na sua ordem de criação em 4D. +- Na seção ***Erros gerais***, todas as impossibilidades de tipagem e ambiguidades de identidade estão agrupadas. Estes erros e avisos estão listados usando o seguinte formato: - número da linha no método (0 indica erros gerais) - - warning attribute indicating whether the detected anomaly is a warning (warning="true") or an error (warning="false") + - atributo de aviso indicando se a anomalia detectada é um aviso (warning="true") ou um erro (warning="false") - diagnóstico que descreve o erro -Si su proyecto no tiene errores generales, el archivo no tendrá una sección *Errores generales*. +Se o seu projeto não tiver nenhum erro geral, o arquivo não terá uma seção de *Erros gerais*. -Um ficheiro de erros pode conter três tipos de mensagens: +Um arquivo de erro pode conter três tipos de mensagens: -- **Errores asociados a una línea específica**: estos errores se muestran en contexto -la línea en la que se encontraron y con una explicación. The compiler reports this type of error when it encounters an expression in which it sees an inconsistency related to data type or syntax. In the compiler window, double–click on each error detected in order to open the method concerned directly in the 4D Method editor, with the line containing the error highlighted. +- **Erros ligados a uma linha específica**: esses erros são exibidos no contexto — a linha em que eles foram encontrados — com uma explicação. O compilador relata esse tipo de erro quando encontra uma expressão em que vê uma inconsistência relacionada ao tipo de dados ou sintaxe. Na janela do compilador, clique duas vezes em cada erro detectado para abrir o método em questão diretamente no Editor de Código 4D, com a linha que contém o erro destacado. -- **Errores generales**: son errores que imposibilitan la compilación del proyecto. Há dois casos em que o compilador informa um erro geral: +- **Erros gerais**: Estes são erros que tornam impossível a compilação do projeto. Há dois casos em que o compilador informa um erro geral: - Não foi possível determinar o tipo de dados de uma variável processo. - Dois tipos diferentes de objetos têm o mesmo nome. -General errors are so named because they cannot be linked to any specific method. In the first case, the compiler could not perform a specified typing anywhere in the project. In the second, it was unable to decide whether to associate a given name with one object rather than with another. +Erros gerais são tão nomeados porque não podem ser associados a qualquer método específico. No primeiro caso, o compilador não pôde executar uma digitação especificada em nenhum lugar do projeto. Na segunda, não foi possível decidir se um determinado nome deve ser associado a um objeto em vez de com outro. -- **Avisos**: los avisos no son errores. They do not prevent the project from being compiled, but simply point out potential code errors. Na janela do compilador, os avisos aparecem em itálico. Double-click on each warning to open the method concerned directly in the 4D Method editor, with the line containing the warning highlighted. +- \*\*Avisos: os avisos não são erros. Não impedem a compilação do projecto, limitando-se a apontar potenciais erros de código. Na janela do compilador, os avisos aparecem em itálico. Clique duas vezes em cada aviso para abrir o método em questão diretamente no Editor de Código 4D, com a linha que contém o aviso destacado. -### Controlo de execução +### Verificação do intervalo -The code generated by the 4D compiler automatically checks that every access to an array element or a character reference is done within the actual range of array elements or string characters. Os acessos fora do intervalo provocarão erros de execução em tempo de execução. +O código gerado pelo compilador 4D verifica automaticamente que todo acesso a um elemento de matriz ou uma referência de caractere é feito dentro do intervalo real de elementos do array ou de caracteres de string. Os acessos fora do intervalo provocarão erros de execução em tempo de execução. -Em alguns casos, pode preferir que a verificação de intervalos não se aplique a certas partes do código consideradas fiáveis. More particularly, in the case of loops that are repeated a great number of times, and when running the compiled database on older machines, range checking can significantly slow down processing. If you are absolutely certain that the code concerned is reliable and cannot cause system errors, you can disable range checking locally. +Em alguns casos, pode preferir que a verificação de intervalos não se aplique a certas partes do código consideradas fiáveis. Mais especificamente, no caso de repetições que se repetem por diversas vezes. e ao executar a base de dados compilada em máquinas mais antigas, a verificação por intervalo pode diminuir significativamente o processamento. Se você tem certeza absoluta de que o código em causa é confiável e não pode causar erros no sistema, você pode desabilitar a verificação por intervalo localmente. -Para ello, debe rodear el código a excluir del control de rangos con los comentarios especiales `//%R-` y `//%R+`. El comentario `//%R-` desactiva el control de rangos y `//%R+` lo reactiva: +Para fazer isso, você deve cercar o código para ser excluído da verificação do intervalo com os comentários especiais `//%R-` e `//%R+`. O comentário `//%R-` desabilita a verificação de intervalo e `//%R+` habilita novamente: ```4d - // %R- to disable range checking + // %R- para desativar o intervalo verificando - ... //Place the code to be excluded from range checking here + ... //Coloque o código a ser excluído do intervalo verificando aqui - // %R+ to enable range checking again for the rest + // %R+ para habilitar a verificação de intervalo novamente para o resto ``` ## Sobre os compiladores @@ -332,7 +332,7 @@ Para ello, debe rodear el código a excluir del control de rangos con los coment - um compilador "clássico", usado para compilar código nativo para processadores Intel/AMD; - um compilador Silicon, para compilar código nativo para processadores Apple Silicon. -The classic compiler can be used on any platform, while the Silicon compiler can only be used on a Mac machine: +O compilador clássico pode ser usado em qualquer plataforma, enquanto o compilador do Silicon só pode ser usado em uma máquina Mac: | | Compilar para Windows | Compilar para Intel Mac | Compilar para Silicon Mac | | ----------- | :-------------------------: | :-------------------------: | :-------------------------: | @@ -340,35 +340,35 @@ The classic compiler can be used on any platform, while the Silicon compiler can | Intel Mac | ✓ | ✓ | ✓ | | Silicon Mac | ✓ | ✓ | ✓ | -Ambos os compiladores estão integrados em 4D. El compilador adecuado se selecciona automáticamente en función de la opción [objetivo de compilación](#compilation-target). +Ambos os compiladores estão integrados em 4D. O compilador apropriado é automaticamente selecionado, dependendo da opção de [meta de compilação](#compilation-target). ### Compilador clássico -The classic compiler generates native compiled code for Intel/AMD processors on any machines. Não necessita de qualquer configuração específica. +O compilador clássico gera código nativo compilado para processadores Intel/AMD em qualquer máquina. Não necessita de qualquer configuração específica. -El código compilado resultante se almacena en la carpeta [DerivedData](architecture.md#deriveddata) del proyecto. +O código compilado resultante é armazenado na pasta [DerivedData](architecture.md#deriveddata) do projeto. ### Compilador Silicon -El compilador Silicon genera código compilado nativo para los procesadores Apple Silicon, como *Apple M1*. +O compilador Silicon gera código compilado nativo para processadores de Apple Silicon, como *Apple M1*. -El código compilado resultante se almacena en la carpeta [Libraries](architecture.md#libraries) del proyecto. +O código compilado resultante é armazenado na pasta [Libraries](architecture.md#libraries) do projeto. #### Requisitos -- **Ordenador Apple**: el compilador Silicon sólo puede ejecutarse desde una máquina Apple. -- **Arquitectura proyecto de 4D**: el compilador Silicon sólo está disponible para los desarrollos 4D que utilizan la [arquitectura proyecto](architecture.md). -- **Herramientas Xcode o Developer**: el compilador Silicon llama al compilador de código abierto de macOS **Clang** para compilar el proyecto a partir de código C++ en el [segundo paso](#compilador-incremental) de la compilación. *clang* requiere librerías Apple nativas, que son proporcionadas por el paquete **Xcode** o **Developer Tools**. - - **Si ya tiene** Xcode o Developer Tools instalados en su ordenador, sólo tiene que asegurarse de que su versión cumple con los requisitos de 4D. - - **Si no tiene** ninguna de estas herramientas instaladas en su ordenador, tendrá que descargar una de ellas desde el sitio web Apple Developer. +- **Máquina Apple**: O compilador Silicon só pode ser executado a partir de uma máquina Apple. +- **Arquitetura do Projeto 4D**: O compilador Silicon só está disponível para desenvolvimentos 4D usando [arquitetura do projeto](architecture.md). +- **Xcode ou Ferramentas para Desenvolvedor**: O compilador Silicon chama o compilador macOS de código aberto para compilar o projeto de código C++ na [segunda etapa](#incremental-compilador) da compilação. *clang* requer bibliotecas nativas da Apple, que são fornecidas pelo pacote **Xcode** ou **Developer Tools**. + - **Se você já tiver** Xcode ou Developer Tools instalado no seu computador, você só precisa se certificar de que a sua versão está de acordo com os requisitos 4D. + - **Se você não tiver** nenhuma dessas ferramentas instaladas no seu computador, você precisará baixar uma delas no site do desenvolvedor da Apple. -> Recomendamos instalar **Xcode**, que es bastante sencillo de instalar. Puede decidir instalar **Developer Tools** que es más compacto, sin embargo su instalación es un poco más compleja. +> Recomendamos instalar o **Xcode**, que é muito simples de instalar. Você pode decidir instalar **Ferramentas para Desenvolvedo** o que é mais compacto, no entanto a instalação é um pouco mais complexa. -In any cases, the 4D Silicon compiler will warn you if your configuration does not comply with its requirements. +Em quaisquer casos, o compilador 4D de Silicon irá avisá-lo se sua configuração não estiver de acordo com seus requisitos. #### Compilador incremental O compilador Silicon é incremental, o que significa que: -- Durante la primera compilación, se compilan **todos los métodos 4D**. Esta etapa pode demorar algum tempo. No entanto, só ocorre uma vez. -- Durante todas las compilaciones posteriores, sólo se procesan los métodos **nuevos o modificados**, lo que reduce drásticamente el tiempo de compilación. +- Durante a primeira compilação, **todos os métodos 4D** são compilados. Esta etapa pode demorar algum tempo. No entanto, só ocorre uma vez. +- Durante todas as compilações subsequentes, apenas **métodos novos ou modificados** são processados, reduzindo assim drasticamente o tempo de compilação. diff --git a/i18n/pt/docusaurus-plugin-content-docs/version-20-R6/Project/components.md b/i18n/pt/docusaurus-plugin-content-docs/version-20-R6/Project/components.md index 5a64b6bd02bec2..e16097908d4637 100644 --- a/i18n/pt/docusaurus-plugin-content-docs/version-20-R6/Project/components.md +++ b/i18n/pt/docusaurus-plugin-content-docs/version-20-R6/Project/components.md @@ -3,46 +3,46 @@ id: components title: Componentes --- -Um componente 4D é um conjunto de código 4D e/ou formulários que representam uma ou mais funcionalidades que pode adicionar e usar nos seus projetos. For example, the [4D SVG](https://github.com/4d/4D-SVG) component adds advanced commands and an integrated rendering engine that can be used to display SVG files. +Um componente 4D é um conjunto de código 4D e/ou formulários que representam uma ou mais funcionalidades que pode adicionar e usar nos seus projetos. Por exemplo, o componente [4D SVG](https://github.com/4d/4D-SVG) adiciona comandos avançados e um mecanismo de renderização integrado que pode ser usado para exibir arquivos SVG. -You can [develop](../Extensions/develop-components.md) and [build](../Desktop/building.md) your own 4D components, or download public components shared by the 4D community that [can be found on GitHub](https://github.com/search?q=4d-component\&type=Repositories). +Você pode [develop](../Extensions/develop-components.md) e [build](../Desktop/building. d) seus próprios componentes 4D ou baixe componentes públicos compartilhados pela comunidade 4D que [pode ser encontrada no GitHub](https://github.com/search?q=4d-component\&type=Repositórios). -When developing in 4D, the component files can be transparently stored in your computer or on a Github repository. +Ao desenvolver em 4D, os arquivos de componentes podem ser armazenados de forma transparente no seu computador ou em um repositório do Github. ## Componentes interpretados e compilados -Components can be interpreted or [compiled](../Desktop/building.md). A pasta do pacote de um componente pode conter: +Componentes podem ser interpretados ou [compiled](../Desktop/building.md). A pasta do pacote de um componente pode conter: -- either a Project folder (interpreted component) +- ou uma pasta de projeto (componente interpretado) - ou um arquivo .4DZ (componente compilado) -A 4D project running in interpreted mode can use either interpreted or compiled components. A 4D project running in compiled mode cannot use interpreted components. Por isso não pode ser usado em um componente. +Um projeto 4D em modo interpretado pode usar componentes interpretados ou compilados. Um projeto 4D em execução no modo compilado não pode usar componentes interpretados. Por isso não pode ser usado em um componente. ## Carregando componentes :::note -Esta página descreve como trabalhar com componentes nos ambientes **4D** e **4D Server**. In other environments, components are managed differently: +Esta página descreve como trabalhar com componentes nos ambientes **4D** e **4D Server**. Em outros ambientes, os componentes são geridos de forma diferente: -- in [4D in remote mode](../Desktop/clientServer.md), components are loaded by the server and sent to the remote application. -- in merged applications, components are [included at the build step](../Desktop/building.md#plugins--components-page). +- em [4D no modo remoto](../Desktop/clientServer.md), componentes são carregados pelo servidor e enviados para a aplicação remota. +- em aplicações mescladas, componentes são [incluídos na etapa de compilação](../Desktop/building.md#plugins--components-page). ::: ### Visão Geral -To load a component in your 4D project, you can either: +Para carregar um componente no seu projeto 4D, você pode: - copie os arquivos de componentes na pasta [**Components** do seu projeto] (architecture.md#components), - ou declare o componente no arquivo **dependencies.json**. Os componentes declarados no arquivo **dependencies.json** podem ser armazenados em locais diferentes: -- at the same level as your 4D project's package folder: this is the default location, +- no mesmo nível da pasta do pacote do seu projeto 4D: este é o local padrão, - em qualquer lugar de sua máquina: o caminho do componente deve ser declarado no arquivo **environment4d.json** - em um repositório GitHub: o caminho do componente pode ser declarado no arquivo **dependencies.json** ou no arquivo **environment4d.json**, ou em ambos os arquivos. -If the same component is installed at different locations, a [priority order](#priority) is applied. +Se o mesmo componente for instalado em locais diferentes, uma [ordem de prioridade](#prioridade) é aplicada. ### dependencies.json vs environment4d.json @@ -56,33 +56,33 @@ O arquivo **dependencies.json** faz referência a todos os componentes necessár Pode conter: -- names of components [stored locally](#declaring-local-components) (default path or path defined in an **environment4d.json** file), -- names of components [stored on GitHub repositories](#declaring-components-stored-on-github) (their path can be defined in this file or in an **environment4d.json** file). +- nomes de componentes [armazenado localmente](#declaring-local-components) (caminho ou caminho padrão definido em um arquivo **environment4d.json**), +- nomes de componentes [armazenados nos repositórios do GitHub](#declaring-components-stored-on-github) (seus caminhos podem ser definidos neste arquivo ou em um arquivo **environment4d.json**). #### environment4d.json -O arquivo **environment4d.json** é opcional. Ele permite que você defina **caminhos personalizados** para alguns ou todos os componentes declarados no arquivo **dependencies.json**. This file can be stored in your project package folder or in one of its parent folders, at any level (up to the root). +O arquivo **environment4d.json** é opcional. Ele permite que você defina **caminhos personalizados** para alguns ou todos os componentes declarados no arquivo **dependencies.json**. Este arquivo pode ser armazenado na pasta pacote de projeto ou em uma das pastas pais, a qualquer nível (superior à raiz). -The main benefits of this architecture are the following: +Os principais benefícios desta arquitetura são os seguintes: -- you can store the **environment4d.json** file in a parent folder of your projects and decide not to commit it, allowing you to have your local component organization. +- você pode armazenar o **ambiente4d. arquivo son** em uma pasta pai de seus projetos e decida não fazer commit dele, permitindo que você tenha sua organização local de componentes. - se quiser usar o mesmo repositório GitHub para vários projetos, você poderá fazer referência a ele no arquivo **environment4d.json** e declará-lo no arquivo **dependencies.json**. ### Prioridade -Since components can be installed in different ways, a priority order is applied when the same component is referenced at several locations: +Uma vez que os componentes podem ser instalados de maneiras diferentes, uma ordem de prioridade é aplicada quando o mesmo componente é referenciado em vários locais: **Prioridade mais alta** 1. Componentes armazenados na pasta [**Components** do projeto](architecture.md#components). 2. Componentes declarados no arquivo **dependencies.json**. -3. Internal User 4D components (e.g. 4D NetKit, 4D SVG...) +3. Componentes 4D do usuário interno (por exemplo, 4D NetKit, 4D SVG...) -**Prioridade mais baixa** +**Prioridade menor** ![priority](../assets/en/Project/load-sequence.png) -When a component cannot be loaded because of another instance of the same component located at a higher priority level, it is given the *Overloaded* [status](#dependency-status). The loaded component has the *Overloading* [status](#dependency-status). +Quando um componente não pode ser carregado por causa de outra instância do mesmo componente localizada em um nível de prioridade mais alto ela recebe o *Sobrecarregado* [status](#dependency-status). O componente carregado tem o *Sobrecarga* [status](#dependency-status). (a rota declarada em **environment4d.json** substitui a rota em **dependencies.json** para configurar um ambiente local). @@ -99,9 +99,9 @@ Você declara um componente local no arquivo [**dependencies.json**](#dependency } ``` -... where "myComponent1" and "myComponent2" are the name of the components to be loaded. +... onde "myComponent1" e "myComponent2" são o nome dos componentes a serem carregados. -By default, if "myComponent1" and "myComponent2" are not declared in an [environment4d.json file](#environment4djson), 4D will look for the component's package folder (*i.e.* the project root folder of the component) at the same level as your 4D project's package folder, e.g.: +Por padrão, se "myComponent1" e "myComponent2" não forem declarados em um [arquivo environment4d.json](#environment4djson), 4D irá procurar a pasta de pacote do componente (*i. .* A pasta raiz do projeto do componente) no mesmo nível que a pasta de pacote do seu projeto 4D, por exemplo: ``` /MyProjectRoot/ @@ -112,15 +112,15 @@ Graças a essa arquitetura, você pode simplesmente copiar todos os seus compone :::note -If you do not want to benefit from the **dependencies.json** architecture, you can install local components by copying their files in the [**Components** folder of your project](architecture.md#components). +Se você não quer se beneficiar das **dependências. arquitetura do son**, você pode instalar componentes locais copiando seus arquivos na pasta [**Components** do seu projeto](architecture.md#components). ::: #### Personalizando caminhos dos componentes -If you want to customize the location of local components, you declare the paths for the dependencies that are not stored at the same level as the project folder in the [**environment4d.json**](#environment4djson) file. +Se você deseja personalizar a localização dos componentes locais, você declara os caminhos para as dependências que não são armazenados no mesmo nível que a pasta do projeto no [**environment4d. son**](#environment4djson) arquivo. -You can use absolute or relative paths, expressed in POSIX syntax as described in [this paragraph](../Concepts/paths#posix-syntax). Relative paths are relative to the environment4d.json file. +Você pode usar caminhos absolutos ou relativos, expressos na sintaxe POSIX, conforme descrito no [parágrafo](../Concepts/paths#sintaxe posix). Caminhos relativos são relativos ao arquivo environment4d.json. Exemplos: @@ -136,29 +136,29 @@ Exemplos: :::note -If a component path declared in the **environment4d.json** file is not found when the project is started, the component is not loaded and gets the *Not found* [status](dependency-status), even if a version of the component exists next to the project's package folder. +Se um caminho do componente for declarado no **ambiente4d. arquivo son** não é encontrado quando o projeto é iniciado, o componente não é carregado e obtém o *Não encontrado* [status](dependency-status), mesmo que uma versão do componente exista ao lado da pasta do pacote do projeto. ::: ### Declarando componentes armazenados no GitHub -4D components available as GitHub releases can be referenced and automatically loaded in your 4D projects. +Componentes 4D disponíveis como lançamentos do GitHub podem ser referenciados e carregados automaticamente nos seus projetos 4D. :::note -Regarding components stored on GitHub, both [**dependencies.json**](#dependenciesjson) and [**environment4d.json**](#environment4djson) files support the same contents. +Em relação aos componentes armazenados no GitHub, ambos os arquivos [**dependencies.json**](#dependenciesjson) e [**environment4d.json**](#environment4djson) suportam o mesmo conteúdo. ::: #### Configurando o repositório GitHub -To be able to directly reference and use a 4D component stored on GitHub, you need to configure the GitHub component's repository: +Para ser capaz de fazer referência direta e usar um componente 4D armazenado no GitHub, você precisa configurar o repositório do componente GitHub: - Compacte os arquivos de componentes no formato ZIP. -- Name this archive with the same name as the GitHub repository. -- Integrate the archive into a [GitHub release](https://docs.github.com/en/repositories/releasing-projects-on-github/managing-releases-in-a-repository) of the repository. +- Nomeie este arquivo com o mesmo nome do repositório do GitHub. +- Integre o arquivo em uma [versão do GitHub](https://docs.github.com/en/repositories/releasing-projects-on-github/managing-releases-in-a-repository) do repositório. -These steps can easily be automated, with 4D code or using GitHub Actions, for example. +Essas etapas podem ser facilmente automatizadas, com o código 4D ou usando o GitHub Actions, por exemplo. #### Declarando caminhos @@ -175,7 +175,7 @@ Você declara um componente armazenado no GitHub no arquivo [**dependencies.json } ``` -... where "myGitHubComponent1" is referenced and declared for the project, although "myGitHubComponent2" is only referenced. Você precisa declará-lo no arquivo [**environment4d.json**] (#environment4djson): +... onde "myGitHubComponent1" é referenciado e declarado para o projeto, embora "myGitHubComponent2" seja apenas referenciado. Você precisa declará-lo no arquivo [**environment4d.json**] (#environment4djson): ```json { @@ -187,13 +187,13 @@ Você declara um componente armazenado no GitHub no arquivo [**dependencies.json } ``` -"myGitHubComponent2" can be used by several projects. +"myGitHubComponent2" pode ser usado por vários projetos. -#### Tags and versions +#### Tags e versões Ao criar uma versão no GitHub, você especifica uma **etiqueta** e uma **versão**. -- **Etiquetas** são textos que fazem referência exclusiva a uma versão. In the [**dependencies.json** file](#dependencyjson) and [**environment4d.json**](#environment4djson) files, you can indicate the release tag you want to use in your project. Por exemplo : +- **Etiquetas** são textos que fazem referência exclusiva a uma versão. **Etiquetas** são textos que fazem referência exclusiva a uma versão. In the [**dependencies.json** file](#dependencyjson) and [**environment4d.json**](#environment4djson) files, you can indicate the release tag you want to use in your project. Por exemplo : ```json { @@ -206,7 +206,7 @@ Ao criar uma versão no GitHub, você especifica uma **etiqueta** e uma **versã } ``` -- Uma versão também é identificada por uma **versão**. The versioning system used is based on the *Semantic Versioning* concept, which is the most commonly used. Each version number is identified as follows: `majorNumber.minorNumber.pathNumber`. In the same way as for tags, you can indicate the version of the component you wish to use in your project, as in this example: +- Uma versão também é identificada por uma **versão**. O sistema de versionamento usado é baseado no conceito de *Semantic Versioning*, que é o mais usado. Cada número de versão é identificado da seguinte forma: `majorNumber.minorNumber.pathNumber`. Da mesma forma que para marcadores, você pode indicar a versão do componente que você deseja usar em seu projeto, como neste exemplo: ```json { @@ -219,7 +219,7 @@ Ao criar uma versão no GitHub, você especifica uma **etiqueta** e uma **versã } ``` -The version is used to define which versions can be used. É usada uma [versão semântica padrão] (https://regex101.com/r/Ly7O1x/3/). A range is defined by two semantic versions, a min and a max, with operators '\< | > | >= | <= | ='. O `*` pode ser usado como um espaço reservado para todas as versões. ~ and ^ prefixes define versions starting at a number, and up to respectively the next major and minor version. +A versão é usada para definir quais versões podem ser usadas. É usada uma [versão semântica padrão] (https://regex101.com/r/Ly7O1x/3/). Um intervalo é definido por duas versões semânticas, um mínimo e um máximo, com as operadoras '\< ë> £>= ├<= ├='. O `*` pode ser usado como um espaço reservado para todas as versões. ~ e ^ prefixos define versões começando em um número e até a próxima versão principal e secundária. Eis alguns exemplos: @@ -227,23 +227,23 @@ Eis alguns exemplos: - "\*": a versão mais recente lançada. - "1.\*": todas as versões da versão principal 1. - "1.2.\*": todos os patches da versão menor 1.2. -- "^1.2.3" or ">=1.2.3": the latest version 1, starting with the 1.2.3 version. -- "~1.2.3" or ">1.2.3": the latest major version 1, starting with the version just after the 1.2.3. +- "^1.2.3" ou ">=1.2.3": a última versão 1, começando com a versão 1.2.3. +- "~1.2.3" ou ">1.2.3": a última versão principal 1, começando com a versão logo após a versão 1.2.3. - "<=1.2.3": a versão mais recente até a 1.2.3. - "1.0.0 - 1.2.3" ou ">=1.0.0 <=1.2.3": versão entre 1.0.0 e 1.2.3. - "`<1.2.3 || >=2`": versão que não está entre 1.2.3 e 2.0.0. -If you do not specify a tag or a version, 4D automatically retrieves the "latest" version. +Se você não especificar uma tag ou uma versão, 4D recupera automaticamente a "versão mais recente". #### Repositórios privados -If you want to integrate a component located in a private repository, you need to tell 4D to use a connection token to access it. +Se você quiser integrar um componente localizado em um repositório privado, precisará dizer ao 4D para usar um token de conexão para acessá-lo. Para fazer isso, em sua conta GitHub, crie um token **classic** com direitos de acesso a **repo**. :::note -For more information, please refer to the [GitHub token interface](https://github.com/settings/tokens). +Para mais informações, consulte a [interface de token do GitHub](https://github.com/settings/tokens). ::: @@ -265,7 +265,7 @@ Em seguida, insira a chave "github" em seu arquivo [**environment4d.json**](#env #### Cache local para dependências -Referenced GitHub components are downloaded in a local cache folder then loaded in your environment. The local cache folder is stored at the following location: +Os componentes GitHub referenciados são baixados em uma pasta de cache local e carregados em seu ambiente. A pasta de cache local é armazenada na seguinte localização: - en macOs: `$HOME/Library/Caches//Dependencies` - no Windows: `C:\Users\\AppData\Local\\Dependencies` @@ -274,9 +274,9 @@ Referenced GitHub components are downloaded in a local cache folder then loaded #### dependency-lock.json -A `dependency-lock.json` file is created in the [`userPreferences` folder](architecture.md#userpreferencesusername) of your project. +Um arquivo `dependency-lock.json` foi criado na pasta [`userPreferences`](architecture.md#userpreferencesusername) do seu projeto. -This file logs information such as the state of dependencies, paths, urls, loading errors, as well as other information. It could be useful for component loading management or troubleshooting. +Este arquivo registra informações como o estado das dependências, caminhos, urls, erros de carregamento, bem como outras informações. Pode ser útil para o gerenciamento de carregamentos de componentes ou solução de problemas. ## Monitoramento das dependências do projeto @@ -284,29 +284,29 @@ Em um projeto aberto, você pode obter informações sobre dependências e seu e Para exibir o painel Dependências: -- with 4D, select the **Design/Project Dependencies** menu item (Development environment),
    +- with 4D, selecione o item de menu **Dependências de Design/Projeto** (Ambiente de Desenvolvimento),
    ![dependency-menu](../assets/en/Project/dependency-menu.png) -- with 4D Server, select the **Window/Project Dependencies** menu item.
    +- with 4D Server, selecione o item de menu **Window/Project Dependencies**.
    ![dependency-menu-server](../assets/en/Project/dependency-menu-server.png) -O painel Dependência é então exibido. Dependencies are sorted by name in alphabetical order: +O painel Dependência é então exibido. Dependências são classificadas por nome em ordem alfabética: ![dependency](../assets/en/Project/dependency.png) ### Origem da dependência -The Dependencies panel lists all project dependencies, whatever their origin, i.e. wherever they come from. The dependency origin is provided by the tag under its name: +O painel de Dependências lista todas as dependências do projeto, independentemente da sua origem, ou seja, de onde vierem. A origem da dependência é fornecida pela etiqueta sob seu nome: ![dependency-origin](../assets/en/Project/dependency-origin.png) As seguintes origens são possíveis: -| Origin tag | Descrição | +| Tag de origem | Descrição | | --------------------------------- | ---------------------------------------------------------------------------- | | Componente 4D | Componente 4D incorporado, armazenado na pasta `Components` da aplicação 4D | | dependencies.json | Component declared in the [`dependencies.json`](#dependenciesjson) file | -| Environment | Componente declarado no arquivo [`environnement4d.json`](#environment4djson) | +| Ambiente | Componente declarado no arquivo [`environnement4d.json`](#environment4djson) | | Componente do projeto | Componente localizado na pasta [`Components`](architecture.md#components) | **Clique com o botão direito do mouse** em uma linha de dependência e selecione **Mostrar no disco** para revelar o local de uma dependência: @@ -315,30 +315,30 @@ As seguintes origens são possíveis: :::note -This item is not displayed if the dependency is inactive because its files are not found. +Este item não é exibido se a dependência estiver inativa porque seus arquivos não foram encontrados. ::: -Component icon and location logo provide additional information: +O ícone do componente e o logotipo da localização fornecem informações adicionais: -- The component logo indicates if it is provided by 4D or a third-party developer. -- Local components can be differentiated from GitHub components by a small icon. +- O logotipo do componente indica se é fornecido por 4D ou por um desenvolvedor terceiro. +- Os componentes locais podem ser diferenciados de componentes do GitHub usando um ícone pequeno. ![dependency-origin](../assets/en/Project/dependency-github.png) ### Filtragem de dependências -By default, all dependencies identified by the Dependency manager are listed, whatever their [status](#dependency-status). You can filter the displayed dependencies according to their status by selecting the appropriate tab at the top of the Dependencies panel: +Por padrão, todas as dependências identificadas pelo gerenciador de dependências são listadas, independentemente de seu [status] (#dependency-status). Você pode filtrar as dependências exibidas de acordo com o seu status, selecionando a guia apropriada na parte superior do painel Dependências: ![dependency-tabs](../assets/en/Project/dependency-tabs.png) -- **Ativo**: dependências carregadas e podem ser usadas no projeto. Isso inclui dependências *overloading*, que são de fato carregadas. *Overloaded* dependencies are listed in the **Conflicts** panel, along with all conflicting dependencies. -- **Inativo**: dependências que não estão carregadas no projeto e não estão disponíveis. There are many possible reasons for this status: missing files, version incompatibility... -- **Conflito**: dependências carregadas, mas que sobrecarregam pelo menos outra dependência em um [nível de prioridade](#priority) inferior. Overloaded dependencies are also displayed so that you can check the origin of the conflict and take appropriate actions. +- **Ativo**: dependências carregadas e podem ser usadas no projeto. Isso inclui dependências *overloading*, que são de fato carregadas. Dependências *Sobrecarregadas* são listadas no painel **Conflitos**, junto com todas as dependências conflitantes. +- **Inativo**: dependências que não estão carregadas no projeto e não estão disponíveis. Há muitas razões possíveis para este status: arquivos ausentes, incompatibilidade de versão... +- **Conflito**: dependências carregadas, mas que sobrecarregam pelo menos outra dependência em um [nível de prioridade](#priority) inferior. Dependências sobrecarregadas também são exibidas para que você possa verificar a origem do conflito e tomar as medidas adequadas. ### Status de dependência -Dependencies requiring the developer's attention are indicated by a **status label** at the right side of the line and a specific background color: +Dependências que exigem a atenção do desenvolvedor são indicadas por um **rótulo de status** no lado direito da linha e uma cor de fundo específica: ![dependency-status](../assets/en/Project/dependency-conflict2.png) @@ -348,8 +348,8 @@ Estão disponíveis as seguintes etiquetas de status: - **Overloading**: a dependência está carregada e está sobrecarregando uma ou mais dependências com o mesmo nome em um [nível de prioridade] inferior (#prioridade). - **Not found**: a dependência está declarada no arquivo dependencies.json, mas não foi encontrada. - **Inactive**: a dependência não é carregada porque não é compatível com o projeto (por exemplo, o componente não é compilado para a plataforma atual). -- **Duplicated**: The dependency is not loaded because another dependency with the same name exists at the same location (and is loaded). +- **Duplicated**: a dependência não é carregada porque existe uma outra dependência com o mesmo nome no mesmo local (e é carregado). -A tooltip is displayed when you hover over the dependency line, provding additional information about the status: +Uma dica é exibida quando você passa o mouse sobre a linha de dependência, provando informações adicionais sobre o status: ![dependency-tips](../assets/en/Project/dependency-tip1.png) diff --git a/i18n/pt/docusaurus-plugin-content-docs/version-20-R6/REST/ClassFunctions.md b/i18n/pt/docusaurus-plugin-content-docs/version-20-R6/REST/ClassFunctions.md index 0a1d586a4144cf..c4462ec501df4e 100644 --- a/i18n/pt/docusaurus-plugin-content-docs/version-20-R6/REST/ClassFunctions.md +++ b/i18n/pt/docusaurus-plugin-content-docs/version-20-R6/REST/ClassFunctions.md @@ -3,19 +3,19 @@ id: classFunctions title: Chamada de funções de classe --- -Puede llamar a [funciones de clase de modelos de datos](ORDA/ordaClasses.md) definidas para el modelo de datos ORDA a través de sus peticiones REST, para poder beneficiarse de la API expuesta de la aplicación 4D objetivo. +Pode chamar as [funções de classe](ORDA/ordaClasses.md) definidas para o modelo de dados ORDA através dos seus pedidos REST, para poder beneficiar da API da aplicação 4D objetivo. :::note -You can also call singleton functions, see [this page]($singleton.md) for more information. +Você também pode chamar funções singleton, consulte [esta página]($singleton.md) para obter mais informações. ::: -As funções são simplesmente chamadas em pedidos POST na interface ORDA apropriada, sem (). Por ejemplo, si ha definido una función `getCity()` en la dataclass City, podría llamarla utilizando la siguiente petición: +As funções são simplesmente chamadas em pedidos POST na interface ORDA apropriada, sem (). Por exemplo, se tiver definido uma função `getCity()` na dataclass City, pode chamá-la utilizando o seguinte pedido: `/rest/City/getCity` -con los datos en el cuerpo de la petición POST: `["Aguada"]` +com dados no corpo do pedido POST: `["Aguada"]` Na linguagem 4D, esta chamada é equivalente a: @@ -23,11 +23,11 @@ Na linguagem 4D, esta chamada é equivalente a: $city:=ds. City.getCity("Aguada") ``` -> Sólo las funciones con la palabra clave `exposed` pueden ser llamadas directamente desde las peticiones REST. Ver la sección [Funciones expuestas vs. no expuestas](ORDA/ordaClasses.md#exposed-vs-non-exposed-functions). +> Apenas as funções com a palavra-chave `exposed` podem ser diretamente chamadas a partir de pedidos REST. Ver la sección [Funciones expuestas vs. no expuestas](ORDA/ordaClasses.md#exposed-vs-non-exposed-functions). ## Chamadas funções -Las funciones deben llamarse siempre utilizando peticiones **POST** (una petición GET recibirá un error). +As funções têm de ser sempre chamadas através de pedidos REST **POST** (um pedido GET dará origem a um erro). As funções são chamadas no objeto correspondente no datastore do servidor. @@ -42,35 +42,35 @@ As funções são chamadas no objeto correspondente no datastore do servidor. | [entity class](ORDA/ordaClasses.md#entity-class) | `/rest/\{dataClass\}(key)/EntityClassFunction/` | | [Classe Singleton](../Concepts/classes.md#singleton-classes) | `/rest/$singleton/SingletonClass/SingletonClassFunction` (veja [$singleton page]($singleton.md)) | -> `/rest/\{dataClass\}/Function` can be used to call either a dataclass or an entity selection function (`/rest/\{dataClass\}` returns all entities of the DataClass as an entity selection).\ +> `/rest/\{dataClass\}/Function` pode ser usado para chamar uma função de seleção de dataclass ou uma entity selection (`/rest/\{dataClass\}` retorna todas as entidades da DataClass como uma entity selection).\ > A função é pesquisada primeiro na classe de seleção de entidades. Se não for encontrado, é procurado na dataclass. Por outras palavras, se uma função com o mesmo nome for definida tanto na classe DataClass como na classe EntitySelection, a função da classe de dataClass nunca será executada. -> All 4D code called from REST requests **must be thread-safe** if the project runs in compiled mode, because the REST Server always uses preemptive processes in this case (the [*Use preemptive process* setting value](../WebServer/preemptiveWeb.md#enabling-the-preemptive-mode-for-the-web-server) is ignored by the REST Server). +> Todos os códigos 4D chamados de solicitações REST **devem ser thread-safe** se o projeto for executado em modo compilado. porque o servidor REST sempre usa processos preventivos neste caso (o valor da configuração [*usar processo preemptivo*](../WebServer/preemptiveWeb.md#enabling-the-preemptive-mode-for-the-web-server) é ignorado pelo servidor REST). ## Parâmetros -É possível enviar parâmetros para funções definidas em classes usuários ORDA. Del lado del servidor, serán recibidos en los [parámetros declarados](../Concepts/parameters.md#declaring-parameters) de las funciones clase. +É possível enviar parâmetros para funções definidas em classes usuários ORDA. Do lado do servidor, eles serão recebidos nos [parâmetros declarados](../Concepts/parameters.md#declaring-parameters) das funções da classe. As regras abaixo são válidas: -- Los parámetros deben pasarse en el **cuerpo de la petición POST** +- Os parâmetros devem ser transmitidos no **corpo do pedido POST** - Os parâmetros devem ser incluídos numa coleção (formato JSON) - Todos os tipos de dados escalares suportados nas coleções JSON podem ser passados como parâmetros. -- A entidade e a seleção de entidades podem ser passadas como parâmetros. The JSON object must contain specific attributes used by the REST server to assign data to the corresponding ORDA objects: `__DATACLASS`, `__ENTITY`, `__ENTITIES`, `__DATASET`. +- A entidade e a seleção de entidades podem ser passadas como parâmetros. O objeto JSON deve conter atributos específicos usados pelo servidor REST para atribuir os dados aos objetos ORDA correspondentes: `__DATACLASS`, `__ENTITY`, `__ENTITIES`, `__DATASET`. -See [this example](#using-an-entity-to-be-created-on-the-server) and [this example](#receiving-an-entity-selection-as-parameter). +Veja [este exemplo](#using-an-entity-to-be-created-on-the-server) e [este exemplo](#receiving-an-entity-selection-as-parameter). ### Parâmetro de valor escalar Os parâmetros devem ser simplesmente incluídos numa coleção definida no corpo. For example, with a dataclass function `getCities()` receiving text parameters: `/rest/City/getCities` -**Parámetros en el cuerpo:** ["Aguada","Paris"] +**Parâmetros no corpo:** ["Aguda","Paris"] Todos os tipos de dados JSON são suportados nos parâmetros, incluindo os ponteiros JSON. As datas podem ser transmitidas como cadeias de caracteres no formato de data ISO 8601 (por exemplo, "2020-08-22T22:00:000Z"). ### Parâmetro da entidade -Las entidades pasadas en los parámetros son referenciadas en el servidor a través de su llave (*es decir,* propiedad __KEY). Se o parâmetro chave for omitido num pedido, é carregada uma nova entidade na memória do servidor. +As entidades passadas nos parâmetros são referenciadas no servidor através da sua chave (*ou seja*, a propriedade __KEY). Se o parâmetro chave for omitido num pedido, é carregada uma nova entidade na memória do servidor. Também é possível transmitir valores para quaisquer atributos da entidade. Estes valores serão automaticamente utilizados para a entidade tratada no servidor. > Se o pedido enviar valores de atributos modificados para uma entidade existente no servidor, a função de modelo de dados ORDA chamada será automaticamente executada no servidor com valores modificados. Esta caraterística permite-lhe, por exemplo, verificar o resultado de uma operação numa entidade, depois de aplicar todas as regras de negócio, a partir da aplicação cliente. O usuário pode então decidir guardar ou não a entidade no servidor. @@ -82,20 +82,20 @@ Também é possível transmitir valores para quaisquer atributos da entidade. Es | __ENTITY | Parâmetros | Obrigatório - Verdadeiro para indicar ao servidor que o parâmetro é uma entidade | | __KEY | misto (do mesmo tipo que a chave primária) | Facultativo - Chave primária da entidade | -- If `__KEY` is not provided, a new entity is created on the server with the given attributes. -- If `__KEY` is provided, the entity corresponding to `__KEY` is loaded on the server with the given attributes +- Se `__KEY` não for fornecido, uma nova entidade é criada no servidor com os atributos fornecidos. +- Se `__KEY` for fornecido, a entidade correspondente a `__KEY` é carregada no servidor com os atributos fornecidos -Ver los ejemplos de [creación](#creating-an-entity) o de [actualización](#updating-an-entity) de las entidades. +Veja exemplos de [criando](#creating-an-entity) ou [atualização](#updating-an-entity). #### Parâmetro de entidade relacionada -Las mismas propiedades que para un [parámetro de entidad](#entity-parameter). Além disso, a entidade relacionada deve existir e ser referenciada por __KEY que contém a sua chave primária. +Mesmas propriedades de um [parâmetro de entidade](#entity-parameter). Além disso, a entidade relacionada deve existir e ser referenciada por __KEY que contém a sua chave primária. -Ver los ejemplos para [creación](#creating-an-entity-with-a-related-entity) o [actualización](#updating-an-entity-with-a-related-entity) de las entidades con las entidades relacionadas. +Veja exemplos de [criação](#creating-an-entity-with-a-related-entity) ou [atualização](#updating-an-entity-with-a-related-entity) das entidades com entidades relacionadas. ### Parâmetro de seleção da entidade -La selección de entidades debe haber sido definida previamente utilizando [$method=entityset]($method.md#methodentityset). +A seleção da entidade deve ter sido definida previamente usando [$method=entityset]($method.md#methodentityset). > Se o pedido enviar uma seleção de entidade modificada para o servidor, a função de modelo de dados ORDA chamada será automaticamente executada no servidor com a seleção de entidade modificada. @@ -105,7 +105,7 @@ La selección de entidades debe haber sido definida previamente utilizando [$met | __DATASET | Text | Obrigatório - entitySetID (UUID) da seleção de entidades | | __ENTITIES | Parâmetros | Obrigatório - Verdadeiro para indicar ao servidor que o parâmetro é uma seleção de entidade | -Ver ejemplo para [recibir una selección de entidades](#receiving-an-entity-selection-as-parameter). +Veja um exemplo para [recebendo uma seleção de entidades](#receiving-an-entity-selection-as-parameter). ## Exemplos de petições @@ -115,7 +115,7 @@ Esta base de dados é exposta como um datastore remoto no localhost (porta 8111) ### Utilizar uma função de classe do datastore -La clase de `DataStore` US_Cities ofrece una API: +A classe de `DataStore` US_Cities fornece uma API: ``` // DataStore class @@ -140,7 +140,7 @@ Pode então executar este pedido: ### Utilização de uma função de classe de dataclass -La clase de Dataclass `City` ofrece una PI que devuelve una entidad de ciudad a partir del nombre pasado en parámetro: +A classe Dataclass `City` fornece uma API que devolve uma entidade cidade a partir de um nome passado como parâmetro: ``` // City class @@ -187,7 +187,7 @@ Le résultat est une entité: ### Utilização de uma função de classe de uma entidade -La clase de entidad `CityEntity` ofrece una API: +A classe Entity `CityEntity` fornece uma API: ``` // CityEntity class @@ -212,7 +212,7 @@ Pode então executar este pedido: ### Usar uma função de classe de uma seleção de entidade -La clase de selección de entidad `CityEntity` ofrece una API: +A classe de selection de entidade `CitySelection` fornece uma API: ``` // CitySelection class @@ -237,7 +237,7 @@ Pode então executar este pedido: ### Usando uma função de classe entitySelection e um entitySet -La clase `StudentsSelection` tine una función `getAgeAverage`: +A classe `StudentsSelection` tem uma função `getAgeAverage`: ``` // StudentsSelection Class @@ -269,7 +269,7 @@ Uma vez criado um conjunto de entidades, é possível executar este pedido: ### Usando uma função de classe de seleção de entidades e um orderBy -La clase `StudentsSelection` tiene una función `getLastSummary`: +A classe `StudentsSelection` tem uma função `getLastSummary`: ``` // StudentsSelection Class @@ -298,7 +298,7 @@ Pode então executar este pedido: ### Utilizar uma entidade a ser criada no servidor -La clase de Dataclass `Students` tiene la función `pushData()` que recibe una entidad que contiene los datos del cliente. El método `checkData()` efectúa algunos controles. Se estiverem corretas, a entidade é guardada e devolvida. +A classe Dataclass `Students` tem a função `pushData()` recebendo uma entidade contendo dados do cliente. O método `checkData()` executa alguns controles. Se estiverem corretas, a entidade é guardada e devolvida. ``` // Students Class @@ -336,7 +336,7 @@ Corpo do pedido: }] ``` -Como ninguna `__KEY` es dada, una nueva entidad Students está cargada en el servidor **con los atributos del cliente**. Como la función `pushData()` ejecuta una acción `save()`, la nueva entidad es creada. +Já que não é dada nenhuma `__KEY`, é carregada uma nova entidade Students no servidor **com os atributos recebidos do cliente**. Como a função `pushData()` executa uma ação `save()`, a nova entidade foi criada. #### Resultados @@ -374,7 +374,7 @@ Corpo do pedido: }] ``` -Como `__KEY` es dada, la entidad Students está cargada con llave primaria 55 **con el valor lastname recibido por el cliente**. Como la función ejecuta una acción `save()`, la nueva entidad es actualizada. +Uma vez que `__KEY` é fornecido, a entidade Estudantes com a chave primária 55 é carregada **com o valor do sobrenome recebido do cliente**. Como a função executa uma ação `save()`, a entidade é atualizada. #### Resultados @@ -437,7 +437,7 @@ Corpo do pedido: ### Atualização de uma entidade com uma entidade relacionada -Neste exemplo, associamos uma escola existente a uma entidade Students. La clase `StudentsEntity` tiene una API: +Neste exemplo, associamos uma escola existente a uma entidade Students. A classe `StudentsEntity` tem uma API: ``` // StudentsEntity class @@ -447,9 +447,9 @@ Class extends Entity exposed Function putToSchool() var $1, $school , $0, $status : Object - //$1 is a Schools entity + //$1 é uma entidade Schools $school:=$1 - //Associate the related entity school to the current Students entity + //Associar a entidade escola relacionada à entidade Students atual This.school:=$school $status:=This.save() @@ -457,7 +457,9 @@ exposed Function putToSchool() $0:=$status ``` -You run this request, called on a Students entity : **POST** `http://127.0.0.1:8044/rest/Students(1)/putToSchool` Body of the request: +Você executa esta solicitação, chamada em uma entidade Students: +**POST** `http://127.0.0.1:8044/rest/Students(1)/putToSchool` +Corpo da solicitação: ``` [{ @@ -479,7 +481,7 @@ You run this request, called on a Students entity : **POST** `http://127.0.0.1:8 ### Receber uma seleção de entidade como parâmetro -En la clase de Dataclass `Students`, la función `setFinalExam()` actualiza una selección de entidad recibida ($1). En realidad, actualiza el atributo *finalExam* con el valor recibido ($2). Devolve as chaves primárias das entidades atualizadas. +Na classe de Dataclass `Students`, a função `setFinalExam()` atualiza uma seleção de entidade recebida ($1). En realidad, actualiza el atributo *finalExam* con el valor recibido ($2). Devolve as chaves primárias das entidades atualizadas. ``` // Students class @@ -548,7 +550,7 @@ As entidades com chaves primárias 1 e 2 foram atualizadas. ### Utilizar uma seleção de entidade actualizada no cliente -Utilizando la función `getAgeAverage()` [definida anteriormente](#using-an-entityselection-class-function-and-an-entityset). +Usando a função `getAgeAverage()` [definida acima](#using-an-entityselection-class-function-and-an-entityset). ```4d var $remoteDS, $newStudent, $students : Object diff --git a/i18n/pt/docusaurus-plugin-content-docs/version-20-R6/REST/dataClass.md b/i18n/pt/docusaurus-plugin-content-docs/version-20-R6/REST/dataClass.md index 31880cb58910bf..51e3db309e16d4 100644 --- a/i18n/pt/docusaurus-plugin-content-docs/version-20-R6/REST/dataClass.md +++ b/i18n/pt/docusaurus-plugin-content-docs/version-20-R6/REST/dataClass.md @@ -16,7 +16,7 @@ Os nomes de dataclass podem ser utilizados diretamente nos pedidos REST para tra | [**\{dataClass\}/{EntitySelectionClassFunction}**](ClassFunctions.md#function-calls) | `/City/getPopulation/?$filter="ID<3"` | Executa uma função de classe de uma seleção de entidade | | [**\{dataClass\}[{key}]/{EntityClassFunction}**](ClassFunctions.md#function-calls) | `City[2]/getPopulation` | Executa uma função de classe de uma entidade | -> Las llamadas a las funciones se detallan en la sección [Llamar las funciones de la clase ORDA](ClassFunctions.md). +> Chamadas de função são detalhadas na seção [Chamada das funções de classe ORDA](ClassFunctions.md). ## \{dataClass\} @@ -24,7 +24,7 @@ Devuelve todos los datos (por defecto las 100 primeras entidades) para una clase ### Descrição -When you call this parameter in your REST request, the first 100 entities are returned unless you have specified a value using [`$top/$limit`]($top_$limit.md). +Quando você chama este parâmetro em sua solicitação REST as primeiras 100 entidades são retornadas a menos que você tenha especificado um valor usando [`$top/$limit`]($top_$limit.md). Aqui está uma descrição dos dados retornados: @@ -44,7 +44,7 @@ Cada entidade contém as propriedades abaixo: | __TIMESTAMP | Date | Registro de hora da última modificação da entidade | | __STAMP | Number | Sello interno que se necesita cuando se modifica alguno de los valores de la entidad al utilizar `$method=update`. | -Si quiere especificar qué atributos quiere devolver, defínalos utilizando la siguiente sintaxis [{attribute1, attribute2, ...}](manData.md#selecting-attributes-to-get). Por exemplo: +Se você quiser especificar quais atributos você deseja devolver, defina-os usando a seguinte sintaxe [{attribute1, attribute2, ...}](manData.md#selecting-attributes-to-get). Por exemplo: `GET /rest/Company/name,address` @@ -135,15 +135,15 @@ Retorna todas as datas para uma classe de dados específica. ## \{dataClass\}\[{key}] -Devuelve los datos de la entidad específica definida por la llave primaria de la clase de datos, *por ejemplo*, `Company[22]` o `Company[IT0911AB2200]` +Retorna os dados para a entidade específica definida pela chave primária do banco de dados, *por exemplo.*, `Company[22]` ou `Company[IT0911AB2200]` ### Descrição -Passando a classe de dados e uma chave, pode recuperar toda a informação pública para a entidade. Passando a classe de dados e uma chave, pode recuperar toda a informação pública para a entidade. Para más información sobre la definición de una llave primaria, consulte la sección **Modifying the Primary Key** en el **Editor del modelo de datos**. +Passando a classe de dados e uma chave, pode recuperar toda a informação pública para a entidade. Passando a classe de dados e uma chave, pode recuperar toda a informação pública para a entidade. Passando a classe de dados e uma chave, pode recuperar toda a informação pública para a entidade. Para más información sobre los datos devueltos, consulte [\{dataClass\}](#dataclass). -Si quiere especificar qué atributos quiere devolver, defínalos utilizando la siguiente sintaxis [{attribute1, attribute2, ...}](manData.md#selecting-attributes-to-get). Por exemplo: +Se você quiser especificar quais atributos você deseja devolver, defina-os usando a seguinte sintaxe [{attribute1, attribute2, ...}](manData.md#selecting-attributes-to-get). Por exemplo: `GET /rest/Company[1]/name,address` @@ -186,11 +186,11 @@ Retorna os dados para uma entidade na qual os valores de atributo são definidas ### Descrição -Pasando la *clase de datos* y un *atributo* junto con un valor, se puede recuperar toda la información pública de esa entidad. O valor é um valor único para o atributo, mas não é a chave primária. +Passando o *dataClass* e um *atributo* com um valor, você pode recuperar todas as informações públicas para essa entidade. O valor é um valor único para o atributo, mas não é a chave primária. `GET /rest/Company:companyCode(Acme001)` -Si quiere especificar qué atributos quiere devolver, defínalos utilizando la siguiente sintaxis [{attribute1, attribute2, ...}](manData.md#selecting-attributes-to-get). Por exemplo: +Se você quiser especificar quais atributos você deseja devolver, defina-os usando a seguinte sintaxe [{attribute1, attribute2, ...}](manData.md#selecting-attributes-to-get). Por exemplo: `GET /rest/Company:companyCode(Acme001)/name,address` diff --git a/i18n/pt/docusaurus-plugin-content-docs/version-20-R6/REST/manData.md b/i18n/pt/docusaurus-plugin-content-docs/version-20-R6/REST/manData.md index 84f3a8445b2f42..2f13834b8cf35d 100644 --- a/i18n/pt/docusaurus-plugin-content-docs/version-20-R6/REST/manData.md +++ b/i18n/pt/docusaurus-plugin-content-docs/version-20-R6/REST/manData.md @@ -15,7 +15,7 @@ To query data directly, you can do so using the [`$filter`]($filter.md) function Com o REST API, pode realizar todas as manipulações de dados que quiser em 4D. -To add and modify entities, you can call [`$method=update`]($method.md#methodupdate). Se quiser excluir uma ou mais entidades, você pode usar [`$method=delete`]($method.md#methoddelete). +To add and modify entities, you can call [`$method=update`]($method.md#methodupdate). Sintaxe Besides retrieving a single entity in a dataclass using [\{dataClass\}({key})](dataClass.md#dataclasskey), you can also write a [class function](ClassFunctions.md#function-calls) that returns an entity selection (or a collection). @@ -63,7 +63,7 @@ Para computar todos os valores e retornar um objeto JSON: ## Chamar as funções de classe do modelo de dados -Puede llamar las [funciones de clase usuarios](ClassFunctions.md) ORDA del modelo de datos vía las peticiones POST, para poder beneficiarse del API de la aplicación objetivo. Por ejemplo, si ha definido una función `getCity()` en la dataclass City, podría llamarla utilizando la siguiente petición: +Puede llamar las [funciones de clase usuarios](ClassFunctions.md) ORDA del modelo de datos vía las peticiones POST, para poder beneficiarse del API de la aplicación objetivo. For example, if you have defined a `getCity()` function in the City dataclass class, you could call it using the following request: `/rest/City/getCity` diff --git a/i18n/pt/docusaurus-plugin-content-docs/version-20-R6/ServerWindow/processes.md b/i18n/pt/docusaurus-plugin-content-docs/version-20-R6/ServerWindow/processes.md index 5890a2b380a4b1..f7f68a0dc17eed 100644 --- a/i18n/pt/docusaurus-plugin-content-docs/version-20-R6/ServerWindow/processes.md +++ b/i18n/pt/docusaurus-plugin-content-docs/version-20-R6/ServerWindow/processes.md @@ -39,7 +39,7 @@ A atividade do processo é a percentagem de tempo que 4D Server dedicou a este p - Processo usuário - nome do usuário 4D, - Processo web - caminho URL, - Nome do processo, -- Number of the process (as returned by the [`New process`](https://doc.4d.com/4dv19/help/command/en/page317.html) command for example). O número do processo é o número atribuído no servidor. No caso de um processo global, este número pode ser diferente do atribuído na máquina cliente. +- Número do processo (como retornado pelo comando [`New process`](https://doc.4d.com/4dv19/help/command/en/page317.html), por exemplo). O número do processo é o número atribuído no servidor. No caso de um processo global, este número pode ser diferente do atribuído na máquina cliente. - Estado atual do processo, - Tempo de execução (em segundos) do processo desde a sua criação, - Percentagem de tempo que 4D Server dedicou a este processo (rácio). @@ -85,9 +85,9 @@ A página também tem cinco botões de controle que atuam nos processos selecion - **Abortar proceso**: permite abortar el proceso o los procesos seleccionados. Quando clicar neste botão, aparece uma caixa de diálogo de aviso para que se possa confirmar ou cancelar a operação. -> You can also abort the selected process(es) directly without displaying the confirmation dialog box by holding down the **Alt** key while clicking on this button, or by using the [`ABORT PROCESS BY ID`](https://doc.4d.com/4dv19/help/command/en/page1634.html) command. +> Você também pode cancelar o(s) processo(s) selecionado(s) diretamente sem exibir a caixa de diálogo de confirmação, segurando a tecla **Alt** enquanto clica neste botão, ou usando o [`ABORT PROCESS BY ID`](https://doc.md.com/4dv19/help/command/en/page1634.html). -- **Pausar proceso**: permite pausar los procesos seleccionados. +- **Pausar processo**: pode ser usado para pausar os processos selecionados. - **Activar proceso**: permite reactivar los procesos seleccionados. Os processos devem ter sido colocados em pausa anteriormente (utilizando o botão acima ou por programação); caso contrário, este botão não tem qualquer efeito. - **Depurar proceso**: permite abrir en el equipo servidor una o varias ventanas de depuración para el proceso o procesos seleccionados. Quando clicar neste botão, aparece uma caixa de diálogo de aviso para que se possa confirmar ou cancelar a operação. Note que a janela do depurador só é exibida quando o código 4D for realmente executado na máquina do servidor (por exemplo, em um gatilho ou na execução de um método com o atributo "Execute on Server"). diff --git a/i18n/pt/docusaurus-plugin-content-docs/version-20-R6/WebServer/httpRequests.md b/i18n/pt/docusaurus-plugin-content-docs/version-20-R6/WebServer/httpRequests.md index 520cf676c8595a..ee624c4bd5beb3 100644 --- a/i18n/pt/docusaurus-plugin-content-docs/version-20-R6/WebServer/httpRequests.md +++ b/i18n/pt/docusaurus-plugin-content-docs/version-20-R6/WebServer/httpRequests.md @@ -337,6 +337,6 @@ The 4D web server supports files uploaded in chunked transfer encoding from any ## Método projeto COMPILER_WEB -O método COMPILER\_WEB, se existir, é chamado sistematicamente quando o servidor HTTP recebe uma solicitação dinâmica e chama ao motor 4D. This is the case, for example, when the 4D Web server receives a posted form or a URL to process in [`On Web Connection`](#on-web-connection). This method is intended to contain typing and/or variable initialization directives used during Web exchanges. É utilizado pelo compilador quando a aplicação é compilada. O método COMPILER\_WEB é comum a todos os formulários Web. Por defeito, o método COMPILER_WEB não existe. É necessário criá-lo explicitamente. +O método COMPILER\_WEB, se existir, é chamado sistematicamente quando o servidor HTTP recebe uma solicitação dinâmica e chama ao motor 4D. O método COMPILER\_WEB, se existir, é chamado sistematicamente quando o servidor HTTP recebe uma solicitação dinâmica e chama ao motor 4D. This method is intended to contain typing and/or variable initialization directives used during Web exchanges. É utilizado pelo compilador quando a aplicação é compilada. O método COMPILER\_WEB é comum a todos os formulários Web. Por defeito, o método COMPILER_WEB não existe. É necessário criá-lo explicitamente. > The COMPILER_WEB project method is also called, if it exists, for each SOAP request accepted. diff --git a/i18n/pt/docusaurus-plugin-content-docs/version-20-R6/WebServer/qodly-studio.md b/i18n/pt/docusaurus-plugin-content-docs/version-20-R6/WebServer/qodly-studio.md index c36851000438b5..988b5c23a2a6e5 100644 --- a/i18n/pt/docusaurus-plugin-content-docs/version-20-R6/WebServer/qodly-studio.md +++ b/i18n/pt/docusaurus-plugin-content-docs/version-20-R6/WebServer/qodly-studio.md @@ -113,7 +113,7 @@ The official Qodly Studio documentation is available on the [Qodly documentation You can rely on this documentation and its associated resources for developing web applications powered by Qodly forms. However, depending on implementation stage, 4D developers will either use Qodly Studio or 4D IDE (see [Feature comparison](#feature-comparison)). -Code examples are provided in [QodlyScript](https://developer.qodly.com/docs/category/qodlyscript), but since QodlyScript inherits from the 4D Language, you won't be lost. For more information, see the [From QodlyScript to 4D Language](from-qodlyscript-to-4d.md) page. +Code examples are provided in [QodlyScript](https://developer.qodly.com/docs/category/qodlyscript), but since QodlyScript inherits from the 4D Language, you won't be lost. Code examples are provided in [QodlyScript](https://developer.qodly.com/docs/category/qodlyscript), but since QodlyScript inherits from the 4D Language, you won't be lost. :::info diff --git a/i18n/pt/docusaurus-plugin-content-docs/version-20-R6/WebServer/sessions.md b/i18n/pt/docusaurus-plugin-content-docs/version-20-R6/WebServer/sessions.md index cdb93a4254d326..9e8895ae9a968c 100644 --- a/i18n/pt/docusaurus-plugin-content-docs/version-20-R6/WebServer/sessions.md +++ b/i18n/pt/docusaurus-plugin-content-docs/version-20-R6/WebServer/sessions.md @@ -38,7 +38,7 @@ In any cases, the setting is local to the machine; so it can be different on the ## Session implementation -Cuando [se habilitan las sesiones](#enabling-sessions), se implementan mecanismos automáticos, basados en una cookie privada establecida por el propio 4D: "4DSID_*AppName*", donde *AppName* es el nombre del proyecto de la aplicación. Este cookie faz referência à sessão web atual da aplicação. +Cuando [se habilitan las sesiones](#enabling-sessions), se implementan mecanismos automáticos, basados en una cookie privada establecida por el propio 4D: "4DSID__AppName_", donde *AppName* es el nombre del proyecto de la aplicación. Este cookie faz referência à sessão web atual da aplicação. :::info @@ -46,13 +46,13 @@ The cookie name can be get using the [`.sessionCookieName`](API/WebServerClass.m ::: -1. En cada petición del cliente web, el servidor web comprueba la presencia y el valor de la cookie privada "4DSID_*AppName*". +1. En cada petición del cliente web, el servidor web comprueba la presencia y el valor de la cookie privada "4DSID__AppName_". 2. If the cookie has a value, 4D looks for the session that created this cookie among the existing sessions; if this session is found, it is reused for the call. 3. Se a solicitação do cliente não corresponder a uma sessão já aberta: -- se crea una nueva sesión con una cookie privada "4DSID_*AppName*" en el servidor web +- se crea una nueva sesión con una cookie privada "4DSID__AppName_" en el servidor web - se crea un nuevo objeto Guest `Session` dedicado a la sesión web escalable. :::note diff --git a/i18n/pt/docusaurus-plugin-content-docs/version-20-R7/API/DataClassClass.md b/i18n/pt/docusaurus-plugin-content-docs/version-20-R7/API/DataClassClass.md index 347d6299579dfb..0f744c321627c7 100644 --- a/i18n/pt/docusaurus-plugin-content-docs/version-20-R7/API/DataClassClass.md +++ b/i18n/pt/docusaurus-plugin-content-docs/version-20-R7/API/DataClassClass.md @@ -940,7 +940,7 @@ Fórmulas nas consultas podem receber parâmetros através de $1. Este ponto est | Incluído em | IN | Retorna dados iguais a ao menos um dos valores de uma coleção ou de um conjunto de valores, admite o coringa (@) | | Contém palavra chave | % | As palavras chaves podem ser usadas em atributos de string ou imagem | -- **value**: o valor a comparar ao valor atual da propriedade de cada entidade na seleção de entidade. Pode ser um **marcador** (ver **Uso de marcadores** abaixo) ou qualquer expressão que coincida com a propriedade de tipo de dados. +- **value**: o valor a comparar ao valor atual da propriedade de cada entidade na seleção de entidade. Pode ser um **marcador** (ver **Uso de marcadores** abaixo) ou qualquer expressão que coincida com a propriedade de tipo de dados. Note that, in case of type mismatch with scalar types (text, date, number...), 4D will try to convert the **value** type to the attribute data type whenever possible, for an easier handling of values coming from the Internet. For example, if the string "v20" is entered as **value** to compare with an integer attribute, it will be converted to 20. Quando usar um valor constante, as regras abaixo devem ser respeitadas: - A constante de tipo texto pode ser passada com ou sem aspas simples (ver **Uso de aspas mais abaixo**). Para pesquisar uma stirng dentro de uma string (uma pesquisa "contém") use o símbolo coringa (@) em valor para isolar a string a ser pesquisada como mostrado neste exemplo: "@Smith@". As palavras chaves abaixo são proibidas para constantes de texto: true, false. - Valores constantes de tipo **booleano**: **true** ou **false** (diferencia maiúscula de minúscula). diff --git a/i18n/pt/docusaurus-plugin-content-docs/version-20-R7/API/EntityClass.md b/i18n/pt/docusaurus-plugin-content-docs/version-20-R7/API/EntityClass.md index 4ed44e47abf465..4d7af6a78403ef 100644 --- a/i18n/pt/docusaurus-plugin-content-docs/version-20-R7/API/EntityClass.md +++ b/i18n/pt/docusaurus-plugin-content-docs/version-20-R7/API/EntityClass.md @@ -98,9 +98,11 @@ The attribute value type depends on the attribute [kind](DataClassClass.md#attri #### Descrição -The `.clone()` function creates in memory a new entity referencing the same record as the original entity. . +The `.clone()` function creates in memory a new entity referencing the same record as the original entity. -> Keep in mind that any modifications done to entities will be saved in the referenced record only when the [`.save( )`](#save) function is executed. +This function allows you to update entities separately. Note however that, for performance reasons, the new entity shares the same reference of object attributes as the cloned entity. + +> Keep in mind that any modifications done to entities will be saved in the referenced record only when the [`.save()`](#save) function is executed. Esta função só pode ser usada com entidades já salvas no banco de dados. Não pode ser chamado em uma entidade recém-criada (para a qual [`.isNew()`](#isnew) retorna **True**). diff --git a/i18n/pt/docusaurus-plugin-content-docs/version-20-R7/API/HTTPRequestClass.md b/i18n/pt/docusaurus-plugin-content-docs/version-20-R7/API/HTTPRequestClass.md index 07cf65cff533cf..071a37106d802c 100644 --- a/i18n/pt/docusaurus-plugin-content-docs/version-20-R7/API/HTTPRequestClass.md +++ b/i18n/pt/docusaurus-plugin-content-docs/version-20-R7/API/HTTPRequestClass.md @@ -472,7 +472,7 @@ The `.url` property contains the URL o ## .wait() -**.wait**( { *time* : Real } ) : HTTPRequestClass +**.wait**( { *time* : Real } ) : 4D.HTTPRequest diff --git a/i18n/pt/docusaurus-plugin-content-docs/version-20-R7/API/WebServerClass.md b/i18n/pt/docusaurus-plugin-content-docs/version-20-R7/API/WebServerClass.md index 1338ec06b9a2d4..8956b4e9e347ae 100644 --- a/i18n/pt/docusaurus-plugin-content-docs/version-20-R7/API/WebServerClass.md +++ b/i18n/pt/docusaurus-plugin-content-docs/version-20-R7/API/WebServerClass.md @@ -77,7 +77,7 @@ Path of the folder where t **.characterSet** : Number
    **.characterSet** : Text -The character set that the 4D Web Server should use to communicate with browsers connecting to the application. O valor padrão realmente depende da linguagem do SO. Can be a MIBEnum integer or a Name string, identifiers [defined by IANA](http://www.iana.org/assignments/character-sets/character-sets.xhtml). Aqui está a lista de identificadores correspondentes aos conjuntos de caracteres suportados pelo Servidor Web 4D: +The character set that the 4D Web Server should use to communicate with browsers connecting to the application. O valor padrão realmente depende da linguagem do SO. O valor padrão realmente depende da linguagem do SO. Aqui está a lista de identificadores correspondentes aos conjuntos de caracteres suportados pelo Servidor Web 4D: - 4 = ISO-8859-1 - 12 = ISO-8859-9 @@ -111,7 +111,7 @@ The cipher list used for the sec **.CORSEnabled** : Boolean -The CORS (*Cross-origin resource sharing*) service status for the web server. Por razões de segurança, solicitações de "cross-domain" são proibidas no nível do navegador por padrão. When enabled (True), XHR calls (e.g. REST requests) from Web pages outside the domain can be allowed in your application (you need to define the list of allowed addresses in the CORS domain list, see `CORSSettings` below). Quando desativado (False, padrão), todas as solicitações de cruzamento de sites enviadas com CORS são ignoradas. Quando habilitado (verdadeiro) e um domínio ou método não permitido envia uma solicitação de site cruzado, ele é rejeitado com uma resposta de erro "403 - proibido". +The CORS (*Cross-origin resource sharing*) service status for the web server. Por razões de segurança, solicitações de "cross-domain" são proibidas no nível do navegador por padrão. Por razões de segurança, solicitações de "cross-domain" são proibidas no nível do navegador por padrão. Quando desativado (False, padrão), todas as solicitações de cruzamento de sites enviadas com CORS são ignoradas. Quando habilitado (verdadeiro) e um domínio ou método não permitido envia uma solicitação de site cruzado, ele é rejeitado com uma resposta de erro "403 - proibido". Padrão: Falso (desabilitado) @@ -127,19 +127,19 @@ For more information about CORS, please refer to the [Cross-origin resource shar Contains the list of allowed hosts and methods for the CORS service (see [`CORSEnabled`](#corsenabled) property). Cada objeto deve conter uma propriedade **host** e, opcionalmente, uma propriedade **methods**: -- **host** (text, mandatory): Domain name or IP address from where external pages are allowed to send data requests to the Server via CORS. Vários atributos de domínio podem ser adicionados para criar uma lista branca. If *host* is not present or empty, the object is ignored. Várias sintaxes são suportadas: +- **host** (text, mandatory): Domain name or IP address from where external pages are allowed to send data requests to the Server via CORS. Vários atributos de domínio podem ser adicionados para criar uma lista branca. Vários atributos de domínio podem ser adicionados para criar uma lista branca. Várias sintaxes são suportadas: - 192.168.5.17:8081 - 192.168.5.17 - 192.168.\* - 192.168.\*:8081 - - - + - - - \*.myDomain.com - myProject.myDomain.com - \* -- **methods** (texto, opcional): métodos HTTP aceito(s) para o host CORS correspondente. Separar cada método com um ";" (por exemplo: "post;get"). If *methods* is empty, null, or undefined, all methods are enabled. +- **methods** (texto, opcional): métodos HTTP aceito(s) para o host CORS correspondente. Separar cada método com um ";" (por exemplo: "post;get"). Separar cada método com um ";" (por exemplo: "post;get"). @@ -175,7 +175,7 @@ The name of the default home **.HSTSEnabled** : Boolean -The HTTP Strict Transport Security (HSTS) status. O HSTS permite que o servidor declare que os navegadores só devem interagir com ele através de conexões HTTPS seguras. Navegadores gravarão as informações de HSTS na primeira vez que receberem uma resposta do servidor web, então quaisquer futuras solicitações HTTP serão automaticamente transformadas em solicitações HTTPS. The length of time this information is stored by the browser is specified with the `HSTSMaxAge` property. A HSTS requer que HTTPS esteja ativado no servidor. HTTP deve também ser habilitado para permitir conexões iniciais de clientes. +The HTTP Strict Transport Security (HSTS) status. O HSTS permite que o servidor declare que os navegadores só devem interagir com ele através de conexões HTTPS seguras. Navegadores gravarão as informações de HSTS na primeira vez que receberem uma resposta do servidor web, então quaisquer futuras solicitações HTTP serão automaticamente transformadas em solicitações HTTPS. O HSTS permite que o servidor declare que os navegadores só devem interagir com ele através de conexões HTTPS seguras. A HSTS requer que HTTPS esteja ativado no servidor. HTTP deve também ser habilitado para permitir conexões iniciais de clientes. diff --git a/i18n/pt/docusaurus-plugin-content-docs/version-20-R7/Concepts/classes.md b/i18n/pt/docusaurus-plugin-content-docs/version-20-R7/Concepts/classes.md index c9bcc4b33b1035..b2c3448c06ad15 100644 --- a/i18n/pt/docusaurus-plugin-content-docs/version-20-R7/Concepts/classes.md +++ b/i18n/pt/docusaurus-plugin-content-docs/version-20-R7/Concepts/classes.md @@ -107,9 +107,9 @@ As classes disponíveis são acessíveis a partir das suas class stores. Estão -| Parâmetro | Tipo | | Descrição | | -| ---------- | ------ | ------------------------------ | --------------------------------------------------- | ---------------- | -| classStore | Object | &larr; | Class store de usuário para o projeto ou componente | | +| Parâmetro | Tipo | | Descrição | | +| ---------- | ------ | - | --------------------------------------------------- | ---------------- | +| classStore | Object | ← | Class store de usuário para o projeto ou componente | | O comando `cs` devolve a loja de classes de utilizadores para o projecto ou componente actual. Ele retorna todas as classes de usuários [definidas](#class-definition) no projeto ou componente aberto. Por padrão, apenas as classes [ORDA do projeto](ORDA/ordaClasses.md) estão disponíveis. @@ -127,9 +127,9 @@ $instance:=cs.myClass.new() -| Parâmetro | Tipo | | Descrição | | -| ---------- | ------ | ------------------------------ | -------------- | ---------------- | -| classStore | Object | &larr; | Class store 4D | | +| Parâmetro | Tipo | | Descrição | | +| ---------- | ------ | - | -------------- | ---------------- | +| classStore | Object | ← | Class store 4D | | O comando `4D` retorna a classe store para as classes 4D incorporadas disponíveis. Ele permite acesso a APIs específicas como [CryptoKey](API/CryptoKeyClass.md). @@ -199,7 +199,7 @@ There is no ending keyword for function code. The 4D language automatically dete As funções de classe são propriedades específicas da classe. Eles são objetos da classe [4D.Function](API/FunctionClass.md). No arquivo de definição de classe, as declarações de funções usam a palavra-chave `Function` seguida pelo nome da função. -Se a função for declarada em uma [classe compartilhada](#shared-classes), você pode usar a palavra-chave `shared` para que a função possa ser chamada sem [`Use. .Finalizar estrutura`](shared.md#useend-use). Para obter mais informações, consulte o parágrafo [Shared functions](#shared-functions) abaixo. +Usando a palavra-chave `compartilhado` cria uma **classe compartilhada**, usada apenas para instanciar objetos compartilhados. Para obter mais informações, consulte o parágrafo [Shared functions](#shared-functions) abaixo. O nome da função deve estar em conformidade com as [regras de nomenclatura de objetos](Concepts/identifiers.md#object-properties). @@ -339,7 +339,7 @@ Uma função construtora de classe aceita [parâmetros](#parameters) opcionais e Quando você chama a função [`new()`](API/ClassClass.md#new), o construtor da classe é chamado com os parâmetros opcionalmente passados para a função `new()`. -Só pode haver uma função de construtor em uma classe (caso contrário um erro é retornado). Um construtor pode utilizar a palavra-chave [`Super`](#super) para chamar o construtor da superclasse. +Só pode haver uma função de construtor em uma classe (caso contrário um erro é retornado). The [`Super`](../commands/super.md) command allows calls to the [`superclass`](../API/ClassClass#superclass), i.e. the parent class of the function. É possível criar e digitar propriedades de instância dentro do construtor (ver exemplo). Em alternativa, se os valores das propriedades de instância não dependem dos parâmetros passados ao construtor, você pode defini-los usando a palavra-chave [`property`](#property). @@ -505,7 +505,7 @@ No arquivo de definição de classe, as declarações de propriedade computadas `A função get` devolve um valor do tipo de propriedade e `A função set` recebe um parâmetro do tipo de propriedade. Ambos os argumentos devem estar em conformidade com os [parâmetros de função] padrão (#parâmetros). -Quando ambas as funções são definidas, a propriedade computada é **read-write**. Se apenas uma `Function get` for definida, a propriedade computada será **somente leitura**. Neste caso, é devolvido um erro se o código tentar modificar a propriedade. Se apenas um `Function set` estiver definido, 4D devolve *undefined* quando a propriedade é lida. +Quando ambas as funções são definidas, a propriedade computada é **read-write**. Se apenas uma `Function get` for definida, a propriedade computada será **somente leitura**. Neste caso, é devolvido um erro se o código tentar modificar a propriedade. Neste caso, é devolvido um erro se o código tentar modificar a propriedade. Se as funções forem declaradas em uma [classe compartilhada](#shared-class-constructor), você pode usar a palavra-chave `shared` com elas para que elas possam ser chamadas sem [`Use. .Finalizar estrutura`](shared.md#useend-use). Para obter mais informações, consulte o parágrafo [Shared functions](#shared-functions) abaixo. @@ -608,7 +608,7 @@ The following commands have specific features when they are used within class fu ### `Super` -The [`Super`](../commands/super.md) command allows calls to the [`superclass`](../API/ClassClass#superclass), i.e. the parent class of the function. It can be called in the [class constructor](#class-constructor) or in a class function code. +The [`Super`](../commands/super.md) command allows calls to the [`superclass`](../API/ClassClass#superclass), i.e. the parent class of the function. Só pode haver uma função de construtor em uma classe (caso contrário um erro é retornado). For more details, see the [`Super`](../commands/super.md) command description. diff --git a/i18n/pt/docusaurus-plugin-content-docs/version-20-R7/Concepts/quick-tour.md b/i18n/pt/docusaurus-plugin-content-docs/version-20-R7/Concepts/quick-tour.md index 9b16a32243190e..0002c4cfccdfa8 100644 --- a/i18n/pt/docusaurus-plugin-content-docs/version-20-R7/Concepts/quick-tour.md +++ b/i18n/pt/docusaurus-plugin-content-docs/version-20-R7/Concepts/quick-tour.md @@ -54,7 +54,7 @@ Even if it is usually not recommended, you can create variables simply by using MyOtherDate:=Current date+30 ``` -A linha de código lê “MyOtherDate gets the current date plus 30 days.” This line creates the variable, assigns it with both the (temporary) date type and a content. A variable created by assignment is interpreted as typeless, that is, it can be assigned with other types in other lines and change of type dynamically. This flexibility does not apply to variables declared with the `var` keyword (their type cannot change) and in [compiled mode](interpreted.md) where the type can never be changed, regardless of how the variable was created. +A linha de código lê “MyOtherDate gets the current date plus 30 days.” Essa linha cria a variável, atribui-lhe o tipo de data (temporária) e um conteúdo. A variable created by assignment is interpreted as typeless, that is, it can be assigned with other types in other lines and change of type dynamically. This flexibility does not apply to variables declared with the `var` keyword (their type cannot change) and in [compiled mode](interpreted.md) where the type can never be changed, regardless of how the variable was created. ## Comandos diff --git a/i18n/pt/docusaurus-plugin-content-docs/version-20-R7/Extensions/develop-plug-ins.md b/i18n/pt/docusaurus-plugin-content-docs/version-20-R7/Extensions/develop-plug-ins.md index 18694f844a4f16..92e280d4228570 100644 --- a/i18n/pt/docusaurus-plugin-content-docs/version-20-R7/Extensions/develop-plug-ins.md +++ b/i18n/pt/docusaurus-plugin-content-docs/version-20-R7/Extensions/develop-plug-ins.md @@ -5,11 +5,11 @@ title: Plug-ins de desenvolvimento ## Porquê a necessidade de um plug-in? -Although 4D provides hundred of built-in methods used to manipulate objects, records and implement user interface, some special use or feature (sometimes platform dependant) may be needed: one may need ODBC under Windows, another may need Apple services under macOS, while yet another may want to implement specific statistics tools, social network login, payment platform, file access over the network, a special user interface, or a private picture structure. +Embora 4D ofereça centenas de métodos integrados, para manipular objetos, registros e implementar a interface do usuário, pode ser necessário algum uso ou recurso especial (às vezes dependente da plataforma): alguém pode precisar de ODBC no Windows, ou pode precisar de serviços da Apple no macOS, enquanto outro ainda pode querer implementar ferramentas estatísticas específicas, login em redes sociais, plataforma de pagamento, acesso a arquivos pela rede, uma interface de usuário especial ou uma estrutura de imagem privada. It is obvious that covering all areas of both the macOS and Windows operating systems by way of 4D commands would certainly lead to a product with thousands of commands, and at the same time, most users would have no need for such a large set of capabilities. Also, creating such an all-encompassing tool would make the 4D environment incredibly complex and would take most users months of study before useful results could be expected. -The modular nature of the 4D environment allows the creation of basic applications but does not preclude the development of highly complex systems. The 4D Plug-in architecture opens the 4D environment to any type of application or user. Os 4D Plug-ins multiplicam o poder e a produtividade da aplicação ou do usuário. +A natureza modular do ambiente 4D permite a criação de aplicativos básicos, mas não impede o desenvolvimento de sistemas altamente complexos. A arquitetura 4D Plug-in abre o ambiente 4D para qualquer tipo de aplicação ou usuário. Os 4D Plug-ins multiplicam o poder e a produtividade da aplicação ou do usuário. ## Por que a necessidade de um plug-in? diff --git a/i18n/pt/docusaurus-plugin-content-docs/version-20-R7/FormEditor/formEditor.md b/i18n/pt/docusaurus-plugin-content-docs/version-20-R7/FormEditor/formEditor.md index a639f75b6c3a05..fa084f3cec9685 100644 --- a/i18n/pt/docusaurus-plugin-content-docs/version-20-R7/FormEditor/formEditor.md +++ b/i18n/pt/docusaurus-plugin-content-docs/version-20-R7/FormEditor/formEditor.md @@ -62,7 +62,7 @@ A barra de ferramentas contém os seguintes elementos: | ![](../assets/en/FormEditor/zoom.png) | [Zoom](#zoom) | Permite modificar a percentagem de visualização do formulário (100% por padrão). You can switch to “Zoom” mode by clicking on the magnifying glass or by clicking directly on the desired bar. Esta função é descrita em pormenor na secção anterior. | | ![](../assets/en/FormEditor/alignment.png) | [Alinhamento](#alinhamento-objetos) | This button is linked to a menu that allows changing the level of objects in the form. It is enabled (or not) depending on the objects selected.
    Disabled if one selected object position is locked by a CSS property | | ![](../assets/en/FormEditor/distribution.png) | [Distribuição](#distributing-objects) | Este botão está ligado a um menu que permite agrupar e desagrupar seleções de objetos no formulário. It is enabled (or not) depending on the objects selected.
    Disabled if one selected object position is locked by a CSS property | -| ![](../assets/en/FormEditor/level.png) | [Level](#layering-objects) | This button is linked to a menu that allows aligning objects in the form. É ativada (ou não) em função dos objetos selecionados. | +| ![](../assets/en/FormEditor/level.png) | [Level](#layering-objects) | This button is linked to a menu that allows changing the level of objects in the form. É ativada (ou não) em função dos objetos selecionados. | | ![](../assets/en/FormEditor/group.png) | [Group/Ungroup](#grouping-objects) | Este botão está ligado a um menu que permite agrupar e desagrupar seleções de objetos no formulário. É ativada (ou não) em função dos objetos selecionados. | | ![](../assets/en/FormEditor/displyAndPage.png) | [Display and page management](forms.html#form-pages) | Esta área permite passar de uma página de formulário para outra e adicionar páginas. Para navegar entre páginas de formulários, clique nos botões de seta, ou clique na área central e escolha a página a exibir a partir do menu que aparece. Se clicar no botão da seta para a direita enquanto é exibida a última página do formulário, 4D permite-lhe adicionar uma página. | | ![](../assets/en/FormEditor/cssPreviewicon.png) | [CSS Preview](#css-preview) | Este botão é utilizado para seleccionar o Modo CSS a utilizar. | @@ -70,7 +70,7 @@ A barra de ferramentas contém os seguintes elementos: | ![](../assets/en/FormEditor/shields2.png) | [Displaying shields](#shields) | Each click on this button causes the successive display of each type of form shield. The button is also linked to a menu that allows directly selecting the type of shield to display. | | ![](../assets/en/FormEditor/library.png) | [Preconfigured object library](objectLibrary.html) | This button displays the preconfigured object library that provides numerous objects with certain properties that have been predefined. | | ![](../assets/en/FormEditor/listBoxBuilder1.png) | [List Box Builder](#list-box-builder) | Este botão cria list boxes entity selection. | -| ![](../assets/en/FormEditor/insertFields.png) | [Insert fields](#insert-fields) | This button inserts all fields (except object and blob type fields) of the form table in the form, along with their labels and with respect to interface standards. | +| ![](../assets/en/FormEditor/insertFields.png) | [Insert fields](#insert-fields) | Esse botão insere todos os campos (exceto os campos do tipo objeto e bolha) da tabela do formulário no formulário, juntamente com seus rótulos e de acordo com os padrões de interface. | ### Barra de objetos @@ -90,7 +90,7 @@ The object bar contains all the active and inactive objects that can be used in | ![](../assets/en/FormEditor/splitter.png) | [Splitter](FormObjects/splitters.md) / [Controle de guia](FormObjects/tabControl.md) | D | | ![](../assets/en/FormEditor/plugin.png) | [Plug-in Area](FormObjects/pluginArea_overview.md) / [Subform](FormObjects/subform_overview.md) / [Web Area](FormObjects/webArea_overview.md) / [4D Write Pro](FormObjects/writeProArea_overview.md) / [4D View Pro](FormObjects/viewProArea_overview.md) | X | -To draw an object type, select the corresponding button and then trace the object in the form. Após criar um objeto, você pode modificar seu tipo utilizando a Lista de Propriedades. Mantenha pressionada a tecla **Shift** ao desenhar para restringir o objeto a uma forma regular. Lines are constrained to horizontal, 45°, or vertical, rectangles are constrained to squares, and ovals are constrained to circles. +To draw an object type, select the corresponding button and then trace the object in the form. Após criar um objeto, você pode modificar seu tipo utilizando a Lista de Propriedades. To draw an object type, select the corresponding button and then trace the object in the form. Lines are constrained to horizontal, 45°, or vertical, rectangles are constrained to squares, and ovals are constrained to circles. The current variant of the theme is the object that will be inserted in the form. Ao clicar no lado direito de um botão, você acessa o menu de variantes: @@ -134,7 +134,7 @@ Once the object is placed in the form, you can modify its characteristics using É possível trabalhar com dois tipos de objetos nos formulários: -- **Objetos estáticos** (linhas, quadros, imagens de fundo, etc.): Esses objetos são geralmente usados para definir a aparência do formulário e de seus rótulos, bem como para a interface gráfica. Estão disponíveis na barra de objetos do editor de formulários. Você também pode definir seus atributos gráficos (tamanho, cor, fonte, etc.) e suas propriedades de redimensionamento usando a Lista de propriedades. Os objetos estáticos não têm variáveis associadas como os objetos ativos. No entanto, é possível inserir objetos dinâmicos em objetos estáticos. +- **Objetos estáticos** (linhas, quadros, imagens de fundo, etc.): Esses objetos são geralmente usados para definir a aparência do formulário e de seus rótulos, bem como para a interface gráfica. Estão disponíveis na barra de objetos do editor de formulários. Estão disponíveis na barra de objetos do editor de formulários. Estão disponíveis na barra de objetos do editor de formulários. Os objetos estáticos não têm variáveis associadas como os objetos ativos. No entanto, é possível inserir objetos dinâmicos em objetos estáticos. - **Objetos ativos**: Esses objetos executam tarefas ou funções na interface e podem assumir várias formas: campos, botões, listas roláveis, etc. Cada objeto ativo é associado com um campo ou uma variável. @@ -142,11 +142,11 @@ Once the object is placed in the form, you can modify its characteristics using Before you can perform any operation on an object (such as changing a line width or font), you need to select the object that you want to modify. -Para seleccionar um objecto utilizando a barra de ferramentas: +To select an object using the toolbar: 1. Clique na ferramenta Seta na barra de ferramentas

    ![](../assets/en/FormEditor/selection.png)

    -

    Click the Arrow tool in the toolbar. When you move the pointer into the form area, it becomes a standard arrow-shaped pointer.

    . +

    Quando você move o ponteiro para a área do formulário, ele se torna um ponteiro padrão em forma de seta

    . 2. Clique no objecto que deseja selecionar. As alças de redimensionamento identificam o objeto selecionado

    ![](../assets/en/FormEditor/selectResize.png)

    @@ -155,7 +155,7 @@ Para selecionar um objecto utilizando a Lista de Propriedades: 1. Escolher o nome do objecto na lista pendente da Lista de Objectos localizada no topo da Lista de Propriedades. Usando estes dois métodos, pode seleccionar um objecto que esteja escondido por outros objectos ou localizado fora da área visível da janela actual. Para cancelar a seleção de um objeto, clique fora do limite do objeto ou **Shift+clique** no objeto. -> \> > It is also possible to select objects by double-clicking them in the result window of ""Find in design" operation. +> \> > > It is also possible to select objects by double-clicking them in the result window of ""Find in design" operation. ### Selecção de múltiplos objectos @@ -194,7 +194,7 @@ A caixa de diálogo "Duplicate Many" é exibida quando você seleciona um ou mai ![](../assets/en/FormEditor/duplcateMany.png) -- Na área superior, introduza o número de colunas e linhas (linhas) de objectos que pretende obter. Por exemplo, se quiser três colunas e duas linhas de objectos, introduza 3 na área de Coluna(s) e 2 na área de Linha(s). Se quiser três novas cópias horizontais de um objecto, introduza 4 na área de Coluna(s) e deixe o valor por defeito, 1, na área de Linha(s). +- Na área superior, introduza o número de colunas e linhas (linhas) de objectos que pretende obter. Por exemplo, se quiser três colunas e duas linhas de objectos, introduza 3 na área de Coluna(s) e 2 na área de Linha(s). Na área superior, introduza o número de colunas e linhas (linhas) de objectos que pretende obter. - Para linhas e colunas, defina o offset que deseja deixar entre cada cópia. O valor deve ser expresso em pontos. It will be applied to each copy, or copies, in relation to the original object. For example, if you want to leave a vertical offset of 20 points between each object and the height of the source object is 50 points, enter 70 in the column’s “Offset” area. @@ -275,7 +275,7 @@ Para exibir essa caixa de diálogo, selecione os objetos que deseja alinhar e es - Nas áreas "Alinhamento Esquerda/Direita" e/ou "Alinhamento Superior/Inferior", clique no ícone que corresponde ao alinhamento que você deseja executar.

    A área de exemplo exibe os resultados da sua seleção.

    -- Para executar um alinhamento que use o esquema de âncora padrão, clique em **Preview** ou **Apply**. In this case 4D uses the object that is the furthest in the alignment’s direction as the anchor and aligns the other objects to that object. Por exemplo, se quiser realizar um alinhamento correcto num conjunto de objectos, o objecto mais à direita será utilizado como âncora. OU:

    Para alinhar objetos a um objeto específico, selecione a opção **Alinhar em** e selecione o objeto ao qual você deseja que os outros objetos sejam alinhados na lista de objetos. In this case, the position of the reference object will not be altered.

    +- Para executar um alinhamento que use o esquema de âncora padrão, clique em **Preview** ou **Apply**. Nesse caso, 4D usa o objeto que está mais distante na direção do alinhamento como âncora e alinha os outros objetos a esse objeto. Por exemplo, se quiser realizar um alinhamento correcto num conjunto de objectos, o objecto mais à direita será utilizado como âncora. OU:

    Para alinhar objetos a um objeto específico, selecione a opção **Alinhar em** e selecione o objeto ao qual você deseja que os outros objetos sejam alinhados na lista de objetos. In this case, the position of the reference object will not be altered.

    Você pode visualizar os resultados do alinhamento clicando no botão **Preview**. Os objetos são então alinhados no editor de formulários, mas como a caixa de diálogo não desaparece, ainda é possível cancelar ou aplicar o alinhamento. @@ -312,7 +312,7 @@ Para distribuir objetos com igual espaçamento: 1. Selecione três ou mais objetos e clique na ferramenta Distribuir pretendida. -2. Na barra de ferramentas, clique na ferramenta de distribuição que corresponde à distribuição que você deseja aplicar.

    ![](../assets/en/FormEditor/distributionTool. ng)

    OU

    Selecione um comando de menu de distribuição no submenu **Alinhar** no menu **Objeto** ou no menu de contexto do editor.

    4D distribui os objetos apropriadamente. Objects are distributed using the distance to their centers and the largest distance between two consecutive objects is used as a reference. +2. Na barra de ferramentas, clique na ferramenta de distribuição que corresponde à distribuição que você deseja aplicar.

    ![](../assets/en/FormEditor/distributionTool.png)

    OU

    Selecione um comando de menu de distribuição no submenu **Alinhar** no menu **Objeto** ou no menu de contexto do editor.

    4D distribui os objetos apropriadamente. Objects are distributed using the distance to their centers and the largest distance between two consecutive objects is used as a reference. Para distribuir objetos utilizando a caixa de diálogo Alinhar e distribuir: @@ -320,7 +320,7 @@ Para distribuir objetos utilizando a caixa de diálogo Alinhar e distribuir: 2. Seleccione el comando **Alineación** del submenú **Alinear** del menú **Objeto** o del menú contextual del editor. A seguinte caixa de diálogo é exibida:![](../assets/en/FormEditor/alignmentAssistant.png) -3. Nas áreas de Alinhamento Esquerdo/Direita e/ou Topo/Bottom Alinhamento, clique no ícone de distribuição padrão: ![](../assets/en/FormEditor/horizontalDistribution. ng)

    (ícone padrão de distribuição horizontal)

    A área de exemplo exibe os resultados da sua seleção. +3. Nas áreas de Alinhamento Esquerdo/Direita e/ou Topo/Bottom Alinhamento, clique no ícone de distribuição padrão: ![](../assets/en/FormEditor/horizontalDistribution.png)

    (ícone padrão de distribuição horizontal)

    A área de exemplo exibe os resultados da sua seleção. 4. Para executar uma distribuição que use o esquema padrão, clique em **Preview** ou *Apply*.

    Nesse caso, o 4D executará uma distribuição padrão, de modo que os objetos sejam dispostos com uma quantidade igual de espaço entre eles

    . OU:

    Para executar uma distribuição específica, selecione a opção **Distribute** (por exemplo, se quiser distribuir os objetos com base na distância até o lado direito). Esta opção funciona como um interruptor. If the Distribute check box is selected, the icons located below it perform a different function:

    @@ -333,7 +333,7 @@ Você pode visualizar o resultado real de suas configurações clicando no botã ### Gerenciar os planos dos objetos -You will sometimes have to rearrange objects that are obstructing your view of other objects in the form. For example, you may have a graphic that you want to appear behind the fields in a form. O 4D oferece quatro itens de menu, **Mover para trás**, **Mover para frente**, **Subir um nível** e **Descer um nível**, que permitem que você coloque objetos em camadas no formulário. These layers also determine the default entry order (see Modifying data entry order). A figura abaixo mostra objetos à frente e atrás de outros objetos: +You will sometimes have to rearrange objects that are obstructing your view of other objects in the form. For example, you may have a graphic that you want to appear behind the fields in a form. You will sometimes have to rearrange objects that are obstructing your view of other objects in the form. These layers also determine the default entry order (see Modifying data entry order). A figura abaixo mostra objetos à frente e atrás de outros objetos: ![](../assets/en/FormEditor/layering.png) @@ -373,13 +373,13 @@ In cases such as this, a custom data entry order allows you to enter the informa You can view the current entry order either using the “Entry order” shields, or by using the “Entry order” mode. No entanto, você só pode modificar a ordem de entrada usando o modo “Ordem de entrada”. -This paragraph describes viewing and modifying the entry order using the “Entry order” mode. Para obter mais informações sobre como visualizar a ordem de entrada usando escudos, consulte [Using shields](#using-shields). +This paragraph describes viewing and modifying the entry order using the “Entry order” mode. You can view the current entry order either using the “Entry order” shields, or by using the “Entry order” mode. Para ver ou alterar a ordem de entrada: 1. Selecione **Pedido de entrada** no menu **Formulário** ou clique no botão na barra de ferramentas da janela:

    ![](../assets/en/FormEditor/zOrder.png)

    - Choose Entry Order from the Form menu or click on the Entry Order button in the toolbar of the window:The pointer turns into an entry order pointer and 4D draws a line in the form showing the order in which it selects objects during data entry. A visualização e alteração da ordem de introdução de dados são as únicas acções que pode realizar até clicar em qualquer ferramenta na paleta Ferramentas. + O ponteiro se transforma em um ponteiro de ordem de entrada e 4D desenha uma linha na forma mostrando a ordem em que ele seleciona objetos durante a entrada de dados. A visualização e alteração da ordem de introdução de dados são as únicas acções que pode realizar até clicar em qualquer ferramenta na paleta Ferramentas. 2. Para mudar a ordem de entrada de dados, posicione o ponteiro em um objeto no formulário e, enquanto mantém pressionado o botão do mouse, arraste o ponteiro para o objeto que deseja na ordem de entrada de dados.4D ajustará a ordem de entrada de acordo. diff --git a/i18n/pt/docusaurus-plugin-content-docs/version-20-R7/FormEditor/forms.md b/i18n/pt/docusaurus-plugin-content-docs/version-20-R7/FormEditor/forms.md index 8ba31cb5294cda..6c201e1b8f20c8 100644 --- a/i18n/pt/docusaurus-plugin-content-docs/version-20-R7/FormEditor/forms.md +++ b/i18n/pt/docusaurus-plugin-content-docs/version-20-R7/FormEditor/forms.md @@ -18,7 +18,7 @@ Os formulários também podem conter outros formulários através das seguintes - **Interface de Desenvolvedor 4D:** Crie novos formulários a partir do menu **Arquivo** ou da janela **Explorador**. - **Form Editor**: Modifique seus formulários usando o **[Form Editor] (FormEditor/formEditor.md)**. -- **Código JSON:** Crie e projete seus formulários usando JSON e salve os arquivos de formulário no [local apropriado] (Project/architecture.md#sources-folder). Exemplo: +- **Código JSON:** crie e projete seus formulários usando JSON e salve os arquivos de formulário no [local apropriado](Project/architecture.md#sources-folder). Exemplo: ``` { @@ -111,7 +111,7 @@ Quando um formulário é executado, os objetos são carregados e combinados na s 3. Página zero do formulário aberto 4. Página actual do formulário aberto. -Essa ordem determina a [ordem de entrada] padrão (../FormEditor/formEditor.html#data-entry-order) dos objetos no formulário. +Essa ordem determina a [ordem de entrada](../FormEditor/formEditor.html#data-entry-order) padrão dos objetos no formulário. > Apenas as páginas 0 e 1 de um formulário herdado podem aparecer noutros formulários. @@ -121,7 +121,7 @@ Para definir um formulário herdado, as propriedades [Inherited Form Name](prope Um formulário pode herdar de um formulário de projeto, definindo a propriedade [Inherited Form Table] (properties_FormProperties.md#inherited-form-table) como `\` na Property List (ou " " em JSON). -Para interromper a herança de um formulário, selecione `\` na Property List (ou " " em JSON) para a propriedade [Inherited Form Name] (properties_FormProperties.md#inherited-form-name). +Para interromper a herança de um formulário, selecione `\` na Property List (ou " " em JSON) para a propriedade [Inherited Form Name](properties_FormProperties.md#inherited-form-name). > É possível definir um formulário herdado em um formulário que eventualmente será usado como um formulário herdado para um terceiro formulário. A combinação de objetos é feita de forma recursiva. 4D detecta loops recursivos (por exemplo, se o formulário [table1]form1 é definido como o formulário herdado de [table1]form1, ou seja, ele mesmo) e interrompe a cadeia de formulários. diff --git a/i18n/pt/docusaurus-plugin-content-docs/version-20-R7/FormEditor/pictures.md b/i18n/pt/docusaurus-plugin-content-docs/version-20-R7/FormEditor/pictures.md index f5dd8a99e78e1e..acd05979e26938 100644 --- a/i18n/pt/docusaurus-plugin-content-docs/version-20-R7/FormEditor/pictures.md +++ b/i18n/pt/docusaurus-plugin-content-docs/version-20-R7/FormEditor/pictures.md @@ -49,7 +49,7 @@ As imagens de alta resolução com a convenção @nx podem ser utilizadas nos se - [Cabeçalhos List box](FormObjects/listbox_overview.md#list-box-headers) - [Ícones de menu](Menus/properties.md#item-icon) -4D dá automaticamente prioridade às imagens com a resolução mais alta. Por exemplo, ao usar duas telas (uma de alta resolução e outra padrão) e mover um formulário de uma tela para outra, 4D renderiza automaticamente a resolução mais alta possível da imagem. Mesmo que um comando ou propriedade especifique *circle.png*, *circle@3x.png* será usado (se existir). +4D dá automaticamente prioridade às imagens com a resolução mais alta. 4D dá automaticamente prioridade às imagens com a resolução mais alta. Mesmo que um comando ou propriedade especifique *circle.png*, *circle@3x.png* será usado (se existir). > Note que a priorização da resolução ocorre apenas para a apresentação de imagens no ecrã, não havendo priorização automática durante a impressão. diff --git a/i18n/pt/docusaurus-plugin-content-docs/version-20-R7/FormEditor/properties_FormSize.md b/i18n/pt/docusaurus-plugin-content-docs/version-20-R7/FormEditor/properties_FormSize.md index 8a69ad5cf1f2ee..0a36bc5d6fb84f 100644 --- a/i18n/pt/docusaurus-plugin-content-docs/version-20-R7/FormEditor/properties_FormSize.md +++ b/i18n/pt/docusaurus-plugin-content-docs/version-20-R7/FormEditor/properties_FormSize.md @@ -41,7 +41,7 @@ Altura del formulario (en píxeles) cuando el [tamaño del formulario](#size-bas --- -## Margem hor. +## Margem Margem hor. Valor a añadir (en píxeles) al margen inferior del formulario cuando el [tamaño del formulario](#size-based-on) está definido en **Tamaño automático** o `\` @@ -55,7 +55,7 @@ This value also determines the right-hand margins of forms used in the Label edi --- -## Margem hor. +## Margem Margem hor. Valor a añadir (en píxeles) al margen inferior del formulario cuando el [tamaño del formulario](#size-based-on) está definido en **Tamaño automático** o `\`. diff --git a/i18n/pt/docusaurus-plugin-content-docs/version-20-R7/FormObjects/button_overview.md b/i18n/pt/docusaurus-plugin-content-docs/version-20-R7/FormObjects/button_overview.md index 6908cc237e1c1b..aa7d97f950f879 100644 --- a/i18n/pt/docusaurus-plugin-content-docs/version-20-R7/FormObjects/button_overview.md +++ b/i18n/pt/docusaurus-plugin-content-docs/version-20-R7/FormObjects/button_overview.md @@ -86,7 +86,7 @@ Somente os estilos Clássico e Plano oferecem a propriedade [Botão padrão](pro ### Barra de ferramentas -The Toolbar button style is primarily intended for integration in a toolbar. It includes the option to add a pop-up menu (indicated by an inverted triangle) which is generally used to display additional choices for the user to select. +The Toolbar button style is primarily intended for integration in a toolbar. Inclui a opção de adicionar um menu pop-up (indicado por um triângulo invertido), sendo geralmente usado para exibir opções adicionais para o usuário selecionar. By default, the Toolbar style has a transparent background with a label in the center. A aparência do botão pode ser diferente quando o cursor passar por cima dele, dependendo do SO: @@ -281,7 +281,7 @@ O estilo de botão Círculo aparece como um botão sistema redondo. Este estilo ![](../assets/en/FormObjects/button_circleM.png) -On Windows, it is identical to the “None” style (the circle in the background is not taken into account). +No Windows, ele é idêntico ao estilo "Nenhum" (o círculo no plano de fundo não é considerado). #### JSON Exemplo diff --git a/i18n/pt/docusaurus-plugin-content-docs/version-20-R7/FormObjects/checkbox_overview.md b/i18n/pt/docusaurus-plugin-content-docs/version-20-R7/FormObjects/checkbox_overview.md index 1cd351c59acb37..e7d63e9e1996b2 100644 --- a/i18n/pt/docusaurus-plugin-content-docs/version-20-R7/FormObjects/checkbox_overview.md +++ b/i18n/pt/docusaurus-plugin-content-docs/version-20-R7/FormObjects/checkbox_overview.md @@ -32,7 +32,7 @@ Essa propriedade só está disponível para caixas de seleção clássicas e pla A variável associada à caixa de seleção devolve o valor 2 quando a caixa estiver no terceiro estado. -> In entry mode, the Three-States check boxes display each state sequentially, in the following order: unchecked / checked / intermediary / unchecked, etc. No modo de entrada, as caixas de seleção dos três estados mostram cada estado de forma sequencial na ordem abaixo: sem marcar/marcado/intermediário/sem marcar, etc. O estado intermediário não é geralmente muito útil no modo entrada; no código, simplesmente force o valor da variável para 0 quando tomar o valor de 2 para passar diretamente de um estado marcado para o estado desmarcado. +> In entry mode, the Three-States check boxes display each state sequentially, in the following order: unchecked / checked / intermediary / unchecked, etc. No modo de entrada, as caixas de seleção dos três estados mostram cada estado de forma sequencial na ordem abaixo: sem marcar/marcado/intermediário/sem marcar, etc. O estado intermediário não é geralmente muito útil no modo entrada; no código, simplesmente force o valor da variável para 0 quando tomar o valor de 2 para passar diretamente de um estado marcado para o estado desmarcado. No modo de entrada, as caixas de seleção dos três estados mostram cada estado de forma sequencial na ordem abaixo: sem marcar/marcado/intermediário/sem marcar, etc. O estado intermediário não é geralmente muito útil no modo entrada; no código, simplesmente force o valor da variável para 0 quando tomar o valor de 2 para passar diretamente de um estado marcado para o estado desmarcado. ## Usar uma ação padrão diff --git a/i18n/pt/docusaurus-plugin-content-docs/version-20-R7/FormObjects/properties_Object.md b/i18n/pt/docusaurus-plugin-content-docs/version-20-R7/FormObjects/properties_Object.md index 189d32dcea48f7..e0819113984e87 100644 --- a/i18n/pt/docusaurus-plugin-content-docs/version-20-R7/FormObjects/properties_Object.md +++ b/i18n/pt/docusaurus-plugin-content-docs/version-20-R7/FormObjects/properties_Object.md @@ -92,7 +92,7 @@ Variables or expressions can be enterable or non-enterable and can receive data ### Expressões -You can use an [expression](Concepts/quick-tour.md#expressions) as data source for an object. Se permite toda expresión 4D válida: expresión simple, propiedad de objeto, fórmula, función 4D, nombre de método proyecto o campo que utilice la sintaxis estándar `[Table]Field`. The expression is evaluated when the form is executed and reevaluated for each form event. Tenga en cuenta que las expresiones pueden ser [asignables o no asignables](Concepts/quick-tour.md#expressions). +You can use an [expression](Concepts/quick-tour.md#expressions) as data source for an object. Se permite toda expresión 4D válida: expresión simple, propiedad de objeto, fórmula, función 4D, nombre de método proyecto o campo que utilice la sintaxis estándar `[Table]Field`. The expression is evaluated when the form is executed and reevaluated for each form event. The expression is evaluated when the form is executed and reevaluated for each form event. > If the value entered corresponds to both a variable name and a method name, 4D considers that you are indicating the method. @@ -148,7 +148,7 @@ No entanto, essa propriedade tem uma função de digitação nos seguintes casos - **[Variables dinámicas](#dynamic-variables)**: puede utilizar esta propiedad para declarar el tipo de variables dinámicas. - **[Columnas List Box ](listbox_overview.md#list-box-columns)**: esta propiedad se utiliza para asociar un formato de visualización a los datos de la columna. The formats provided will depend on the variable type (array type list box) or the data/field type (selection and collection type list boxes). The standard 4D formats that can be used are: Alpha, Numeric, Date, Time, Picture and Boolean. O tipo de texto não tem formatos de visualização específicos. Também estão disponíveis quaisquer formatos personalizados existentes. -- **[Variables imagen](input_overview.md)**: puede utilizar este menú para declarar las variables antes de cargar el formulario en modo interpretado. Specific native mechanisms govern the display of picture variables in forms. Estos mecanismos exigen una mayor precisión a la hora de configurar las variables: a partir de ahora, deberán haber sido declaradas antes de cargar el formulario -es decir, incluso antes del evento de formulario `On Load` - a diferencia de otros tipos de To do this, you need either for the statement `var varName : Picture` to have been executed before loading the form (typically, in the method calling the `DIALOG` command), or for the variable to have been typed at the form level using the expression type property. +- **[Variables imagen](input_overview.md)**: puede utilizar este menú para declarar las variables antes de cargar el formulario en modo interpretado. Specific native mechanisms govern the display of picture variables in forms. Estos mecanismos exigen una mayor precisión a la hora de configurar las variables: a partir de ahora, deberán haber sido declaradas antes de cargar el formulario -es decir, incluso antes del evento de formulario `On Load` - a diferencia de otros tipos de Estos mecanismos exigen una mayor precisión a la hora de configurar las variables: a partir de ahora, deberán haber sido declaradas antes de cargar el formulario -es decir, incluso antes del evento de formulario `On Load` - a diferencia de otros tipos de To do this, you need either for the statement `var varName : Picture` to have been executed before loading the form (typically, in the method calling the `DIALOG` command), or for the variable to have been typed at the form level using the expression type property. Otherwise, the picture variable will not be displayed correctly (only in interpreted mode). #### Gramática JSON diff --git a/i18n/pt/docusaurus-plugin-content-docs/version-20-R7/FormObjects/properties_Subform.md b/i18n/pt/docusaurus-plugin-content-docs/version-20-R7/FormObjects/properties_Subform.md index 4a961283aa8857..05d56a92eb0d5c 100644 --- a/i18n/pt/docusaurus-plugin-content-docs/version-20-R7/FormObjects/properties_Subform.md +++ b/i18n/pt/docusaurus-plugin-content-docs/version-20-R7/FormObjects/properties_Subform.md @@ -26,6 +26,7 @@ Especifica se o utilizador pode eliminar sub-registos num subformulário lista. Esta propriedade é utilizada para declarar o formulário detalhado a utilizar no subformulário. Pode ser: - um widget, ou seja, um subformulário de tipo página, dotado de funções específicas. In this case, the [list subform](#list-form) and [Source](#source) properties must be empty or not present.\ + You can select a component form name when it is published in the component.\ You can select a component form name when it is published in the component. > Para ello, basta con hacer dos clics en el campo a modificar para que pase al modo edición (asegúrese de dejar suficiente tiempo entre los dos clics para no generar un doble clic). diff --git a/i18n/pt/docusaurus-plugin-content-docs/version-20-R7/FormObjects/webArea_overview.md b/i18n/pt/docusaurus-plugin-content-docs/version-20-R7/FormObjects/webArea_overview.md index 0bd00e9bfc6170..42aa7d27729ebc 100644 --- a/i18n/pt/docusaurus-plugin-content-docs/version-20-R7/FormObjects/webArea_overview.md +++ b/i18n/pt/docusaurus-plugin-content-docs/version-20-R7/FormObjects/webArea_overview.md @@ -131,7 +131,7 @@ $4d.calcSum(33, 45, 75, 102.5, 7, function(theSum) ## Ações padrão -Four specific standard actions are available for managing web areas automatically: `Open Back URL`, `Open Forward URL`, `Refresh Current URL` and `Stop Loading URL`. Essas ações podem ser associadas com botões ou comandos de menu e permite implementação rápida de interfaces web básicas. These actions are described in [Standard actions](https://doc.4d.com/4Dv20/4D/20.2/Standard-actions.300-6750239.en.html). +Four specific standard actions are available for managing web areas automatically: `Open Back URL`, `Open Forward URL`, `Refresh Current URL` and `Stop Loading URL`. Essas ações podem ser associadas com botões ou comandos de menu e permite implementação rápida de interfaces web básicas. Essas ações podem ser associadas com botões ou comandos de menu e permite implementação rápida de interfaces web básicas. ## Eventos formulário diff --git a/i18n/pt/docusaurus-plugin-content-docs/version-20-R7/Notes/updates.md b/i18n/pt/docusaurus-plugin-content-docs/version-20-R7/Notes/updates.md index 47bcd801718e46..ee1c8e217c967b 100644 --- a/i18n/pt/docusaurus-plugin-content-docs/version-20-R7/Notes/updates.md +++ b/i18n/pt/docusaurus-plugin-content-docs/version-20-R7/Notes/updates.md @@ -168,7 +168,7 @@ Veja [**Notas de lançamento 4D 20.x LTS**](../../version-20/Notes/updates.md). | Biblioteca | Versão atual | Atualizado em 4D | Comentário | | ---------- | -------------------------------------- | ---------------- | ----------------------------------------------------------------------------------------------------------------------------------------- | | BoringSSL | 0aa300b | 20 R6 | Usado para QUIC | -| CEF | 128 | **20 R7** | Chromium 6613 | +| CEF | 121 | 20 R5 | Chromium 6167 | | Hunspell | 7.3.27 | 20 | Usado para verificação ortográfica em formulários 4D e 4D Write Pro | | ICU | 73.2 | 20 | Essa grande atualização força uma reconstrução automática dos índices alfanuméricos, de texto e de objetos. | | libldap | 2.6.7 | 20 R6 | | diff --git a/i18n/pt/docusaurus-plugin-content-docs/version-20-R7/Project/code-overview.md b/i18n/pt/docusaurus-plugin-content-docs/version-20-R7/Project/code-overview.md index 5f518053395a16..6ac922879c9b37 100644 --- a/i18n/pt/docusaurus-plugin-content-docs/version-20-R7/Project/code-overview.md +++ b/i18n/pt/docusaurus-plugin-content-docs/version-20-R7/Project/code-overview.md @@ -5,7 +5,7 @@ title: Métodos e classes El código 4D utilizado en todo el proyecto está escrito en [métodos](../Concepts/methods.md) y [clases](../Concepts/classes.md). -O IDE 4D fornece vários recursos para criar, editar, exportar ou excluir seu código. Por lo general, utilizará el [editor de código](../code-editor/write-class-method.md) de 4D para trabajar con su código. +O IDE 4D fornece vários recursos para criar, editar, exportar ou excluir seu código. You will usually use the included 4D [code editor](../code-editor/write-class-method.md) to work with your code. You can also use other editors such as **VS Code**, for which the [4D-Analyzer extension](https://github.com/4d/4D-Analyzer-VSCode) is available. ## Criação de métodos diff --git a/i18n/pt/docusaurus-plugin-content-docs/version-20-R7/Project/components.md b/i18n/pt/docusaurus-plugin-content-docs/version-20-R7/Project/components.md index 845a1206118e8c..3b097d7370633a 100644 --- a/i18n/pt/docusaurus-plugin-content-docs/version-20-R7/Project/components.md +++ b/i18n/pt/docusaurus-plugin-content-docs/version-20-R7/Project/components.md @@ -5,7 +5,7 @@ title: Componentes Um componente 4D é um conjunto de código 4D e/ou formulários que representam uma ou mais funcionalidades que pode adicionar e usar nos seus projetos. For example, the [4D SVG](https://github.com/4d/4D-SVG) component adds advanced commands and an integrated rendering engine that can be used to display SVG files. -You can [develop](../Extensions/develop-components.md) and [build](../Desktop/building.md) your own 4D components, or download public components shared by the 4D community that [can be found on GitHub](https://github.com/search?q=4d-component\&type=Repositories). +You can [develop](../Extensions/develop-components.md) and [build](../Desktop/building.md) your own 4D components, or download public components shared by the 4D community that [can be found on GitHub](https://github.com/search?q=4d-component\\&type=Repositories). When developing in 4D, the component files can be transparently stored in your computer or on a Github repository. @@ -13,7 +13,7 @@ When developing in 4D, the component files can be transparently stored in your c Components can be interpreted or [compiled](../Desktop/building.md). A pasta do pacote de um componente pode conter: -- either a Project folder (interpreted component) +- ou uma pasta de projeto (componente interpretado) - ou um arquivo .4DZ (componente compilado) A 4D project running in interpreted mode can use either interpreted or compiled components. A 4D project running in compiled mode cannot use interpreted components. Por isso não pode ser usado em um componente. @@ -211,7 +211,7 @@ Você declara um componente armazenado no GitHub no arquivo [**dependencies.json Ao criar uma versão no GitHub, você especifica uma **etiqueta** e uma **versão**. -- **Etiquetas** são textos que fazem referência exclusiva a uma versão. In the [**dependencies.json** file](#dependencyjson) and [**environment4d.json**](#environment4djson) files, you can indicate the release tag you want to use in your project. Por exemplo : +- **Etiquetas** são textos que fazem referência exclusiva a uma versão. **Etiquetas** são textos que fazem referência exclusiva a uma versão. In the [**dependencies.json** file](#dependencyjson) and [**environment4d.json**](#environment4djson) files, you can indicate the release tag you want to use in your project. Por exemplo : ```json { diff --git a/i18n/pt/docusaurus-plugin-content-docs/version-20-R7/Project/overview.md b/i18n/pt/docusaurus-plugin-content-docs/version-20-R7/Project/overview.md index 46b77d0d79de1d..af9d1f76c92fd6 100644 --- a/i18n/pt/docusaurus-plugin-content-docs/version-20-R7/Project/overview.md +++ b/i18n/pt/docusaurus-plugin-content-docs/version-20-R7/Project/overview.md @@ -7,7 +7,7 @@ Um projeto 4D contém todo o código fonte de uma aplicação 4D, qualquer que s ## Ficheiros do projecto -Os ficheiros de projeto 4D são abertos e editados usando aplicações normais da plataforma 4D (4D ou 4D Server). Com 4D, editores completos estão disponíveis para gerir ficheiros, incluindo um editor de estrutura, um editor de código, um editor de formulários, um editor de menus... +Os ficheiros de projeto 4D são abertos e editados usando aplicações normais da plataforma 4D (4D ou 4D Server). With 4D, full-featured editors are available to manage files, including a structure editor, a [Code Editor](../code-editor/write-class-method.md), a [form editor](../FormEditor/formEditor.md), a menu editor... Quando os projetos estão em ficheiros de texto simples legíveis (JSON, XML, etc.), podem ser lidos ou editados manualmente pelos programadores, utilizando qualquer editor de código. diff --git a/i18n/pt/docusaurus-plugin-content-docs/version-20-R7/REST/ClassFunctions.md b/i18n/pt/docusaurus-plugin-content-docs/version-20-R7/REST/ClassFunctions.md index 61d93c689bcc1c..c55b2216bb36fe 100644 --- a/i18n/pt/docusaurus-plugin-content-docs/version-20-R7/REST/ClassFunctions.md +++ b/i18n/pt/docusaurus-plugin-content-docs/version-20-R7/REST/ClassFunctions.md @@ -35,13 +35,13 @@ The following ORDA and singleton functions can be called in REST: Functions are simply called on the appropriate ORDA interface or singleton class, without (). [Parameters](#parameters) are passed either in the body of the POST request (`POST` calls) or in the `params` collection in the URL (`GET` calls). -Por ejemplo, si ha definido una función `getCity()` en la dataclass City, podría llamarla utilizando la siguiente petición: +For example, if you have defined a `getCity()` function in the City dataclass class, you could call it using the following request: #### POST request `/rest/City/getCity` -con los datos en el cuerpo de la petición POST: `["Aguada"]` +with data in the body of the POST request: `["Aguada"]` #### GET request @@ -92,7 +92,7 @@ You can restrict calls to specific ORDA functions by configuring appropriate pri ## Parâmetros -You can send parameters to functions defined in ORDA user classes or singletons. Del lado del servidor, serán recibidos en los [parámetros declarados](../Concepts/parameters.md#declaring-parameters) de las funciones clase. +You can send parameters to functions defined in ORDA user classes or singletons. Do lado do servidor, eles serão recebidos nos [parâmetros declarados](../Concepts/parameters.md#declaring-parameters) das funções da classe. As regras abaixo são válidas: @@ -102,7 +102,7 @@ As regras abaixo são válidas: - Todos os tipos de dados escalares suportados nas coleções JSON podem ser passados como parâmetros. - A entidade e a seleção de entidades podem ser passadas como parâmetros. The parameter list must contain specific attributes used by the REST server to assign data to the corresponding ORDA objects: `__DATACLASS`, `__ENTITY`, `__ENTITIES`, `__DATASET`. -See [this example](#using-an-entity-to-be-created-on-the-server) and [this example](#receiving-an-entity-selection-as-parameter). +Veja [este exemplo](#using-an-entity-to-be-created-on-the-server) e [este exemplo](#receiving-an-entity-selection-as-parameter). ### Parâmetro de valor escalar @@ -114,7 +114,7 @@ For example, with a dataclass function `getCities()` receiving text parameters: `/rest/City/getCities` -**Parámetros en el cuerpo:** ["Aguada","Paris"] +**Parâmetros no corpo:** ["Aguda","Paris"] #### GET request @@ -122,7 +122,7 @@ For example, with a dataclass function `getCities()` receiving text parameters: ### Parâmetro da entidade -Las entidades pasadas en los parámetros son referenciadas en el servidor a través de su llave (*es decir,* propiedad __KEY). If the key parameter is omitted in a request, a new entity is loaded in memory on the server. +As entidades passadas nos parâmetros são referenciadas no servidor através da sua chave (*ou seja*, a propriedade __KEY). As entidades passadas nos parâmetros são referenciadas no servidor através da sua chave (*ou seja*, a propriedade __KEY). Também é possível transmitir valores para quaisquer atributos da entidade. Estes valores serão automaticamente utilizados para a entidade tratada no servidor. > Se o pedido enviar valores de atributos modificados para uma entidade existente no servidor, a função de modelo de dados ORDA chamada será automaticamente executada no servidor com valores modificados. Esta caraterística permite-lhe, por exemplo, verificar o resultado de uma operação numa entidade, depois de aplicar todas as regras de negócio, a partir da aplicação cliente. O usuário pode então decidir guardar ou não a entidade no servidor. @@ -142,13 +142,13 @@ See an example of [contents downloading using an entity](#using-an-entity-to-dow #### Parâmetro de entidade relacionada -Las mismas propiedades que para un [parámetro de entidad](#entity-parameter). Além disso, a entidade relacionada deve existir e ser referenciada por __KEY que contém a sua chave primária. +Mesmas propriedades de um [parâmetro de entidade](#entity-parameter). Além disso, a entidade relacionada deve existir e ser referenciada por __KEY que contém a sua chave primária. -Ver los ejemplos para [creación](#creating-an-entity-with-a-related-entity) o [actualización](#updating-an-entity-with-a-related-entity) de las entidades con las entidades relacionadas. +Veja exemplos de [criação](#creating-an-entity-with-a-related-entity) ou [atualização](#updating-an-entity-with-a-related-entity) das entidades com entidades relacionadas. ### Parâmetro de seleção da entidade -La selección de entidades debe haber sido definida previamente utilizando [$method=entityset]($method.md#methodentityset). +A seleção da entidade deve ter sido definida previamente usando [$method=entityset]($method.md#methodentityset). > Se o pedido enviar uma seleção de entidade modificada para o servidor, a função de modelo de dados ORDA chamada será automaticamente executada no servidor com a seleção de entidade modificada. @@ -169,7 +169,7 @@ Esta base de dados é exposta como um datastore remoto no localhost (porta 8111) ### Utilizar uma função de classe do datastore -La clase de `DataStore` US_Cities ofrece una API: +A classe de `DataStore` US_Cities fornece uma API: ``` // DataStore class @@ -194,7 +194,7 @@ Pode então executar este pedido: ### Utilização de uma função de classe de dataclass -La clase de Dataclass `City` ofrece una PI que devuelve una entidad de ciudad a partir del nombre pasado en parámetro: +A classe Dataclass `City` fornece uma API que devolve uma entidade cidade a partir de um nome passado como parâmetro: ``` // City class @@ -241,7 +241,7 @@ Le résultat est une entité: ### Utilização de uma função de classe de uma entidade -La clase de entidad `CityEntity` ofrece una API: +A classe Entity `CityEntity` fornece uma API: ``` // CityEntity class @@ -266,7 +266,7 @@ Pode então executar este pedido: ### Usar uma função de classe de uma seleção de entidade -La clase de selección de entidad `CityEntity` ofrece una API: +A classe de selection de entidade `CitySelection` fornece uma API: ``` // CitySelection class @@ -291,7 +291,7 @@ Pode então executar este pedido: ### Usando uma função de classe entitySelection e um entitySet -La clase `StudentsSelection` tine una función `getAgeAverage`: +A classe `StudentsSelection` tem uma função `getAgeAverage`: ``` // StudentsSelection Class @@ -323,7 +323,7 @@ Uma vez criado um conjunto de entidades, é possível executar este pedido: ### Usando uma função de classe de seleção de entidades e um orderBy -La clase `StudentsSelection` tiene una función `getLastSummary`: +A classe `StudentsSelection` tem uma função `getLastSummary`: ``` // StudentsSelection Class @@ -352,7 +352,7 @@ Pode então executar este pedido: ### Utilizar uma entidade a ser criada no servidor -La clase de Dataclass `Students` tiene la función `pushData()` que recibe una entidad que contiene los datos del cliente. El método `checkData()` efectúa algunos controles. Se estiverem corretas, a entidade é guardada e devolvida. +A classe Dataclass `Students` tem a função `pushData()` recebendo uma entidade contendo dados do cliente. O método `checkData()` executa alguns controles. Se estiverem corretas, a entidade é guardada e devolvida. ``` // Students Class @@ -390,7 +390,7 @@ Corpo do pedido: }] ``` -Como ninguna `__KEY` es dada, una nueva entidad Students está cargada en el servidor **con los atributos del cliente**. Como la función `pushData()` ejecuta una acción `save()`, la nueva entidad es creada. +Já que não é dada nenhuma `__KEY`, é carregada uma nova entidade Students no servidor **com os atributos recebidos do cliente**. Como a função `pushData()` executa uma ação `save()`, a nova entidade foi criada. #### Resultados @@ -428,7 +428,7 @@ Corpo do pedido: }] ``` -Como `__KEY` es dada, la entidad Students está cargada con llave primaria 55 **con el valor lastname recibido por el cliente**. Como la función ejecuta una acción `save()`, la nueva entidad es actualizada. +Uma vez que `__KEY` é fornecido, a entidade Estudantes com a chave primária 55 é carregada **com o valor do sobrenome recebido do cliente**. Como a função executa uma ação `save()`, a entidade é atualizada. #### Resultados @@ -491,7 +491,7 @@ Corpo do pedido: ### Atualização de uma entidade com uma entidade relacionada -Neste exemplo, associamos uma escola existente a uma entidade Students. La clase `StudentsEntity` tiene una API: +Neste exemplo, associamos uma escola existente a uma entidade Students. A classe `StudentsEntity` tem uma API: ``` // StudentsEntity class @@ -501,9 +501,9 @@ Class extends Entity exposed Function putToSchool() var $1, $school , $0, $status : Object - //$1 is a Schools entity + //$1 é uma entidade Schools $school:=$1 - //Associate the related entity school to the current Students entity + //Associar a entidade escola relacionada à entidade Students atual This.school:=$school $status:=This.save() @@ -511,7 +511,9 @@ exposed Function putToSchool() $0:=$status ``` -You run this request, called on a Students entity : **POST** `http://127.0.0.1:8044/rest/Students(1)/putToSchool` Body of the request: +Você executa esta solicitação, chamada em uma entidade Students: +**POST** `http://127.0.0.1:8044/rest/Students(1)/putToSchool` +Corpo da solicitação: ``` [{ @@ -533,7 +535,7 @@ You run this request, called on a Students entity : **POST** `http://127.0.0.1:8 ### Receber uma seleção de entidade como parâmetro -En la clase de Dataclass `Students`, la función `setFinalExam()` actualiza una selección de entidad recibida ($1). En realidad, actualiza el atributo *finalExam* con el valor recibido ($2). Devolve as chaves primárias das entidades atualizadas. +Na classe de Dataclass `Students`, a função `setFinalExam()` atualiza uma seleção de entidade recebida ($1). En realidad, actualiza el atributo *finalExam* con el valor recibido ($2). Devolve as chaves primárias das entidades atualizadas. ``` // Students class @@ -603,7 +605,7 @@ As entidades com chaves primárias 1 e 2 foram atualizadas. ### Utilizar uma seleção de entidade actualizada no cliente -Utilizando la función `getAgeAverage()` [definida anteriormente](#using-an-entityselection-class-function-and-an-entityset). +Usando a função `getAgeAverage()` [definida acima](#using-an-entityselection-class-function-and-an-entityset). ```4d var $remoteDS, $newStudent, $students : Object diff --git a/i18n/pt/docusaurus-plugin-content-docs/version-20-R7/REST/dataClass.md b/i18n/pt/docusaurus-plugin-content-docs/version-20-R7/REST/dataClass.md index 31880cb58910bf..0242f1b5704b89 100644 --- a/i18n/pt/docusaurus-plugin-content-docs/version-20-R7/REST/dataClass.md +++ b/i18n/pt/docusaurus-plugin-content-docs/version-20-R7/REST/dataClass.md @@ -16,7 +16,7 @@ Os nomes de dataclass podem ser utilizados diretamente nos pedidos REST para tra | [**\{dataClass\}/{EntitySelectionClassFunction}**](ClassFunctions.md#function-calls) | `/City/getPopulation/?$filter="ID<3"` | Executa uma função de classe de uma seleção de entidade | | [**\{dataClass\}[{key}]/{EntityClassFunction}**](ClassFunctions.md#function-calls) | `City[2]/getPopulation` | Executa uma função de classe de uma entidade | -> Las llamadas a las funciones se detallan en la sección [Llamar las funciones de la clase ORDA](ClassFunctions.md). +> Function calls are detailed in the [Calling ORDA class functions](ClassFunctions.md) section. ## \{dataClass\} @@ -44,7 +44,7 @@ Cada entidade contém as propriedades abaixo: | __TIMESTAMP | Date | Registro de hora da última modificação da entidade | | __STAMP | Number | Sello interno que se necesita cuando se modifica alguno de los valores de la entidad al utilizar `$method=update`. | -Si quiere especificar qué atributos quiere devolver, defínalos utilizando la siguiente sintaxis [{attribute1, attribute2, ...}](manData.md#selecting-attributes-to-get). Por exemplo: +If you want to specify which attributes you want to return, define them using the following syntax [{attribute1, attribute2, ...}](manData.md#selecting-attributes-to-get). Por exemplo: `GET /rest/Company/name,address` @@ -135,15 +135,15 @@ Retorna todas as datas para uma classe de dados específica. ## \{dataClass\}\[{key}] -Devuelve los datos de la entidad específica definida por la llave primaria de la clase de datos, *por ejemplo*, `Company[22]` o `Company[IT0911AB2200]` +Returns the data for the specific entity defined by the dataclass's primary key, *e.g.*, `Company[22]` or `Company[IT0911AB2200]` ### Descrição -Passando a classe de dados e uma chave, pode recuperar toda a informação pública para a entidade. Passando a classe de dados e uma chave, pode recuperar toda a informação pública para a entidade. Para más información sobre la definición de una llave primaria, consulte la sección **Modifying the Primary Key** en el **Editor del modelo de datos**. +Passando a classe de dados e uma chave, pode recuperar toda a informação pública para a entidade. Passando a classe de dados e uma chave, pode recuperar toda a informação pública para a entidade. Passando a classe de dados e uma chave, pode recuperar toda a informação pública para a entidade. Para más información sobre los datos devueltos, consulte [\{dataClass\}](#dataclass). -Si quiere especificar qué atributos quiere devolver, defínalos utilizando la siguiente sintaxis [{attribute1, attribute2, ...}](manData.md#selecting-attributes-to-get). Por exemplo: +If you want to specify which attributes you want to return, define them using the following syntax [{attribute1, attribute2, ...}](manData.md#selecting-attributes-to-get). Por exemplo: `GET /rest/Company[1]/name,address` @@ -186,11 +186,11 @@ Retorna os dados para uma entidade na qual os valores de atributo são definidas ### Descrição -Pasando la *clase de datos* y un *atributo* junto con un valor, se puede recuperar toda la información pública de esa entidad. O valor é um valor único para o atributo, mas não é a chave primária. +By passing the *dataClass* and an *attribute* along with a value, you can retrieve all the public information for that entity. O valor é um valor único para o atributo, mas não é a chave primária. `GET /rest/Company:companyCode(Acme001)` -Si quiere especificar qué atributos quiere devolver, defínalos utilizando la siguiente sintaxis [{attribute1, attribute2, ...}](manData.md#selecting-attributes-to-get). Por exemplo: +If you want to specify which attributes you want to return, define them using the following syntax [{attribute1, attribute2, ...}](manData.md#selecting-attributes-to-get). Por exemplo: `GET /rest/Company:companyCode(Acme001)/name,address` diff --git a/i18n/pt/docusaurus-plugin-content-docs/version-20-R7/REST/manData.md b/i18n/pt/docusaurus-plugin-content-docs/version-20-R7/REST/manData.md index 84f3a8445b2f42..2f13834b8cf35d 100644 --- a/i18n/pt/docusaurus-plugin-content-docs/version-20-R7/REST/manData.md +++ b/i18n/pt/docusaurus-plugin-content-docs/version-20-R7/REST/manData.md @@ -15,7 +15,7 @@ To query data directly, you can do so using the [`$filter`]($filter.md) function Com o REST API, pode realizar todas as manipulações de dados que quiser em 4D. -To add and modify entities, you can call [`$method=update`]($method.md#methodupdate). Se quiser excluir uma ou mais entidades, você pode usar [`$method=delete`]($method.md#methoddelete). +To add and modify entities, you can call [`$method=update`]($method.md#methodupdate). Sintaxe Besides retrieving a single entity in a dataclass using [\{dataClass\}({key})](dataClass.md#dataclasskey), you can also write a [class function](ClassFunctions.md#function-calls) that returns an entity selection (or a collection). @@ -63,7 +63,7 @@ Para computar todos os valores e retornar um objeto JSON: ## Chamar as funções de classe do modelo de dados -Puede llamar las [funciones de clase usuarios](ClassFunctions.md) ORDA del modelo de datos vía las peticiones POST, para poder beneficiarse del API de la aplicación objetivo. Por ejemplo, si ha definido una función `getCity()` en la dataclass City, podría llamarla utilizando la siguiente petición: +Puede llamar las [funciones de clase usuarios](ClassFunctions.md) ORDA del modelo de datos vía las peticiones POST, para poder beneficiarse del API de la aplicación objetivo. For example, if you have defined a `getCity()` function in the City dataclass class, you could call it using the following request: `/rest/City/getCity` diff --git a/i18n/pt/docusaurus-plugin-content-docs/version-20-R7/ServerWindow/processes.md b/i18n/pt/docusaurus-plugin-content-docs/version-20-R7/ServerWindow/processes.md index 5890a2b380a4b1..d60e139b018ce1 100644 --- a/i18n/pt/docusaurus-plugin-content-docs/version-20-R7/ServerWindow/processes.md +++ b/i18n/pt/docusaurus-plugin-content-docs/version-20-R7/ServerWindow/processes.md @@ -87,7 +87,7 @@ A página também tem cinco botões de controle que atuam nos processos selecion > You can also abort the selected process(es) directly without displaying the confirmation dialog box by holding down the **Alt** key while clicking on this button, or by using the [`ABORT PROCESS BY ID`](https://doc.4d.com/4dv19/help/command/en/page1634.html) command. -- **Pausar proceso**: permite pausar los procesos seleccionados. +- **Pause Process**: can be used to pause the selected process(es). - **Activar proceso**: permite reactivar los procesos seleccionados. Os processos devem ter sido colocados em pausa anteriormente (utilizando o botão acima ou por programação); caso contrário, este botão não tem qualquer efeito. - **Depurar proceso**: permite abrir en el equipo servidor una o varias ventanas de depuración para el proceso o procesos seleccionados. Quando clicar neste botão, aparece uma caixa de diálogo de aviso para que se possa confirmar ou cancelar a operação. Note que a janela do depurador só é exibida quando o código 4D for realmente executado na máquina do servidor (por exemplo, em um gatilho ou na execução de um método com o atributo "Execute on Server"). diff --git a/i18n/pt/docusaurus-plugin-content-docs/version-20-R7/WebServer/httpRequests.md b/i18n/pt/docusaurus-plugin-content-docs/version-20-R7/WebServer/httpRequests.md index 520cf676c8595a..ee624c4bd5beb3 100644 --- a/i18n/pt/docusaurus-plugin-content-docs/version-20-R7/WebServer/httpRequests.md +++ b/i18n/pt/docusaurus-plugin-content-docs/version-20-R7/WebServer/httpRequests.md @@ -337,6 +337,6 @@ The 4D web server supports files uploaded in chunked transfer encoding from any ## Método projeto COMPILER_WEB -O método COMPILER\_WEB, se existir, é chamado sistematicamente quando o servidor HTTP recebe uma solicitação dinâmica e chama ao motor 4D. This is the case, for example, when the 4D Web server receives a posted form or a URL to process in [`On Web Connection`](#on-web-connection). This method is intended to contain typing and/or variable initialization directives used during Web exchanges. É utilizado pelo compilador quando a aplicação é compilada. O método COMPILER\_WEB é comum a todos os formulários Web. Por defeito, o método COMPILER_WEB não existe. É necessário criá-lo explicitamente. +O método COMPILER\_WEB, se existir, é chamado sistematicamente quando o servidor HTTP recebe uma solicitação dinâmica e chama ao motor 4D. O método COMPILER\_WEB, se existir, é chamado sistematicamente quando o servidor HTTP recebe uma solicitação dinâmica e chama ao motor 4D. This method is intended to contain typing and/or variable initialization directives used during Web exchanges. É utilizado pelo compilador quando a aplicação é compilada. O método COMPILER\_WEB é comum a todos os formulários Web. Por defeito, o método COMPILER_WEB não existe. É necessário criá-lo explicitamente. > The COMPILER_WEB project method is also called, if it exists, for each SOAP request accepted. diff --git a/i18n/pt/docusaurus-plugin-content-docs/version-20-R7/WebServer/qodly-studio.md b/i18n/pt/docusaurus-plugin-content-docs/version-20-R7/WebServer/qodly-studio.md index 6f20ac1383c513..31dacd15957066 100644 --- a/i18n/pt/docusaurus-plugin-content-docs/version-20-R7/WebServer/qodly-studio.md +++ b/i18n/pt/docusaurus-plugin-content-docs/version-20-R7/WebServer/qodly-studio.md @@ -118,7 +118,7 @@ The Qodly Studio documentation is available on the [Qodly documentation website] You can rely on this documentation and its associated resources for developing web applications powered by Qodly pages. However, depending on implementation stage, 4D developers will either use Qodly Studio or 4D IDE (see [Feature comparison](#feature-comparison)). -Code examples are provided in [QodlyScript](https://developer.qodly.com/docs/category/qodlyscript), but since QodlyScript inherits from the 4D Language, you won't be lost. For more information, see the [From QodlyScript to 4D Language](from-qodlyscript-to-4d.md) page. +Code examples are provided in [QodlyScript](https://developer.qodly.com/docs/category/qodlyscript), but since QodlyScript inherits from the 4D Language, you won't be lost. Code examples are provided in [QodlyScript](https://developer.qodly.com/docs/category/qodlyscript), but since QodlyScript inherits from the 4D Language, you won't be lost. :::info @@ -128,18 +128,19 @@ There is no direct compatibility between apps implemented with 4D and apps imple ### Comparação de funcionalidades -| | Qodly Studio in 4D | Qodly Studio in Qodly Cloud platform | -| --------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ----------------------------------------------------------------------------------- | -| Visualizar e editar tabelas (classes de dados), atributos e relações | Editor de estrutura 4D(1) | Qodly Studio Model Editor | -| Páginas Qodly | Editor de páginas Qodly Studio | Editor de páginas Qodly Studio | -| Formulários para desktop | 4D IDE | *não suportado* | -| Linguagem de programação | Linguagem 4D com ORDA | [QodlyScript](https://developer.qodly.com/docs/category/qodlyscript) featuring ORDA | -| IDE de codificação | 4D IDE code editor *or* VS Code with [4D extension](https://github.com/4d/4D-Analyzer-VSCode)
    *4D Server only*: Qodly Studio code editor (see (2)) | Editor de código Qodly Studio | -| Depurador | 4D IDE debugger
    *4D Server only*: Qodly Studio debugger (see [this paragraph](#using-qodly-debugger-on-4d-server)) | Depurador Qodly Studio | -| REST/Web roles and privileges | roles.json direct edit/Qodly Studio roles and privileges editor | Qodly Studio role and privileges editor | +| | Qodly Studio in 4D | Qodly Studio in Qodly Cloud platform | +| --------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------- | +| Visualizar e editar tabelas (classes de dados), atributos e relações | Editor de estrutura 4D(1) | Qodly Studio Model Editor | +| Páginas Qodly | Editor de páginas Qodly Studio | Editor de páginas Qodly Studio | +| Formulários para desktop | 4D IDE | *não suportado* | +| Linguagem de programação | Linguagem 4D com ORDA | [QodlyScript](https://developer.qodly.com/docs/category/qodlyscript) featuring ORDA | +| IDE de codificação | 4D IDE code editor *or* VS Code with [4D-Analyzer extension](https://github.com/4d/4D-Analyzer-VSCode)
    *4D Server only*: Qodly Studio code editor (see (2)) | Editor de código Qodly Studio | +| Depurador | 4D IDE debugger
    *4D Server only*: Qodly Studio debugger (see [this paragraph](#using-qodly-debugger-on-4d-server)) | Depurador Qodly Studio | +| REST/Web roles and privileges | roles.json direct edit/Qodly Studio roles and privileges editor | Qodly Studio role and privileges editor | (1) If you click on the **Model** button in Qodly Studio, nothing happens.
    -(2) In 4D Server, opening 4D code with the Qodly Studio code editor is supported **for testing and debugging purposes** (see [this paragraph](#development-and-deployment)). Note that in 4D single-user, if you open some 4D code with the Qodly Studio code editor, syntax coloring is not available and a "Lsp not loaded" warning is displayed. +(2) In 4D Server, opening 4D code with the Qodly Studio code editor is supported **for testing and debugging purposes** (see [this paragraph](#development-and-deployment)). (1) The **Model** item is disabled in Qodly Studio.
    +(2) In 4D Server, opening 4D code with the Qodly Studio code editor is supported **for testing and debugging purposes** (see [this paragraph](#development-and-deployment)). ### Línguagem diff --git a/i18n/pt/docusaurus-plugin-content-docs/version-20-R7/WebServer/sessions.md b/i18n/pt/docusaurus-plugin-content-docs/version-20-R7/WebServer/sessions.md index a9d7876085f61d..83f3804dd20e16 100644 --- a/i18n/pt/docusaurus-plugin-content-docs/version-20-R7/WebServer/sessions.md +++ b/i18n/pt/docusaurus-plugin-content-docs/version-20-R7/WebServer/sessions.md @@ -38,7 +38,7 @@ In any cases, the setting is local to the machine; so it can be different on the ## Session implementation -Cuando [se habilitan las sesiones](#enabling-sessions), se implementan mecanismos automáticos, basados en una cookie privada establecida por el propio 4D: "4DSID_*AppName*", donde *AppName* es el nombre del proyecto de la aplicación. Este cookie faz referência à sessão web atual da aplicação. +Cuando [se habilitan las sesiones](#enabling-sessions), se implementan mecanismos automáticos, basados en una cookie privada establecida por el propio 4D: "4DSID__AppName_", donde *AppName* es el nombre del proyecto de la aplicación. Este cookie faz referência à sessão web atual da aplicação. :::info @@ -46,13 +46,13 @@ The cookie name can be get using the [`.sessionCookieName`](API/WebServerClass.m ::: -1. En cada petición del cliente web, el servidor web comprueba la presencia y el valor de la cookie privada "4DSID_*AppName*". +1. En cada petición del cliente web, el servidor web comprueba la presencia y el valor de la cookie privada "4DSID__AppName_". 2. If the cookie has a value, 4D looks for the session that created this cookie among the existing sessions; if this session is found, it is reused for the call. 3. Se a solicitação do cliente não corresponder a uma sessão já aberta: -- se crea una nueva sesión con una cookie privada "4DSID_*AppName*" en el servidor web +- se crea una nueva sesión con una cookie privada "4DSID__AppName_" en el servidor web - se crea un nuevo objeto Guest `Session` dedicado a la sesión web escalable. :::note diff --git a/i18n/pt/docusaurus-plugin-content-docs/version-20-R7/code-editor/write-class-method.md b/i18n/pt/docusaurus-plugin-content-docs/version-20-R7/code-editor/write-class-method.md index f0fe60c622d090..ea38501b52623a 100644 --- a/i18n/pt/docusaurus-plugin-content-docs/version-20-R7/code-editor/write-class-method.md +++ b/i18n/pt/docusaurus-plugin-content-docs/version-20-R7/code-editor/write-class-method.md @@ -13,6 +13,12 @@ Você pode rolar através do conteúdo de métodos, classes e funções, que pod O Editor de código 4D fornece verificação básica de erros de sintaxe. É efetuada uma verificação de erros adicional quando o código é executado. Para obter mais informações sobre como lidar com erros, consulte [Depuração](../Debugging/basics.md). +:::note + +If you are used to coding with **VS Code**, you can also use this editor with 4D code after installing the [4D-Analyzer](https://github.com/4d/4D-Analyzer-VSCode) extension. + +::: + ## Interface ### Barra de ferramentas diff --git a/i18n/pt/docusaurus-plugin-content-docs/version-20-R7/commands-legacy/array-text.md b/i18n/pt/docusaurus-plugin-content-docs/version-20-R7/commands-legacy/array-text.md index aa163ad5f09f76..855a996975a766 100644 --- a/i18n/pt/docusaurus-plugin-content-docs/version-20-R7/commands-legacy/array-text.md +++ b/i18n/pt/docusaurus-plugin-content-docs/version-20-R7/commands-legacy/array-text.md @@ -54,7 +54,3 @@ Este exemplo cria um array de interprocesso de elementos do tipo texto e atribui     ◊atValores{$vlElem}:="Elemento #"+String($vlElem)  End for ``` - -#### Ver também - -*\_o\_ARRAY STRING* \ No newline at end of file diff --git a/i18n/pt/docusaurus-plugin-content-docs/version-20-R7/commands-legacy/data-file.md b/i18n/pt/docusaurus-plugin-content-docs/version-20-R7/commands-legacy/data-file.md index c6e0b5888cb281..b8714a107a14e1 100644 --- a/i18n/pt/docusaurus-plugin-content-docs/version-20-R7/commands-legacy/data-file.md +++ b/i18n/pt/docusaurus-plugin-content-docs/version-20-R7/commands-legacy/data-file.md @@ -30,6 +30,5 @@ Se você está trabalhando, por exemplo, com o banco na pasta Documentos:MeusCDs #### Ver também -*\_o\_DATA SEGMENT LIST* [Application file](application-file.md) [Structure file](structure-file.md) \ No newline at end of file diff --git a/i18n/pt/docusaurus-plugin-content-docs/version-20-R7/commands-legacy/drop-position.md b/i18n/pt/docusaurus-plugin-content-docs/version-20-R7/commands-legacy/drop-position.md index df9e11d3e67642..bd528b5193afb0 100644 --- a/i18n/pt/docusaurus-plugin-content-docs/version-20-R7/commands-legacy/drop-position.md +++ b/i18n/pt/docusaurus-plugin-content-docs/version-20-R7/commands-legacy/drop-position.md @@ -95,5 +95,4 @@ O método de objeto de list box da esquerda (destino) contém o código abaixo: #### Ver também -*\_o\_DRAG AND DROP PROPERTIES* *Arrastar e Soltar* \ No newline at end of file diff --git a/i18n/pt/docusaurus-plugin-content-docs/version-20-R7/commands-legacy/font-list.md b/i18n/pt/docusaurus-plugin-content-docs/version-20-R7/commands-legacy/font-list.md index 06df4a0016f64c..8a54c622bd0774 100644 --- a/i18n/pt/docusaurus-plugin-content-docs/version-20-R7/commands-legacy/font-list.md +++ b/i18n/pt/docusaurus-plugin-content-docs/version-20-R7/commands-legacy/font-list.md @@ -70,7 +70,6 @@ Você quer obter uma lista de fontes recentes: #### Ver também -*\_o\_Font name* [FONT STYLE LIST](font-style-list.md) [OBJECT SET FONT](object-set-font.md) [SET RECENT FONTS](set-recent-fonts.md) diff --git a/i18n/pt/docusaurus-plugin-content-docs/version-20-R7/commands-legacy/form-event-code.md b/i18n/pt/docusaurus-plugin-content-docs/version-20-R7/commands-legacy/form-event-code.md index e58dff3ac09932..e04137b6d67aad 100644 --- a/i18n/pt/docusaurus-plugin-content-docs/version-20-R7/commands-legacy/form-event-code.md +++ b/i18n/pt/docusaurus-plugin-content-docs/version-20-R7/commands-legacy/form-event-code.md @@ -845,7 +845,6 @@ Como resultado, o retângulo vermelho segue o deslocamento da list box: #### Ver também -*\_o\_DRAG AND DROP PROPERTIES* [CALL SUBFORM CONTAINER](call-subform-container.md) [Current form table](current-form-table.md) [FILTER KEYSTROKE](filter-keystroke.md) diff --git a/i18n/pt/docusaurus-plugin-content-docs/version-20-R7/commands-legacy/form-set-input.md b/i18n/pt/docusaurus-plugin-content-docs/version-20-R7/commands-legacy/form-set-input.md index 086c54153b6c66..30354d32e544a4 100644 --- a/i18n/pt/docusaurus-plugin-content-docs/version-20-R7/commands-legacy/form-set-input.md +++ b/i18n/pt/docusaurus-plugin-content-docs/version-20-R7/commands-legacy/form-set-input.md @@ -96,7 +96,6 @@ o que retorna: #### Ver também -*\_o\_CREATE USER FORM* [ADD RECORD](add-record.md) [DISPLAY RECORD](display-record.md) [DISPLAY SELECTION](display-selection.md) diff --git a/i18n/pt/docusaurus-plugin-content-docs/version-20-R7/commands-legacy/form-set-output.md b/i18n/pt/docusaurus-plugin-content-docs/version-20-R7/commands-legacy/form-set-output.md index cb00e6780248cc..59bd5d2e057771 100644 --- a/i18n/pt/docusaurus-plugin-content-docs/version-20-R7/commands-legacy/form-set-output.md +++ b/i18n/pt/docusaurus-plugin-content-docs/version-20-R7/commands-legacy/form-set-output.md @@ -64,7 +64,6 @@ Os exemplos abaixo usam a rota a um formulário json para imprimir os registros #### Ver também -*\_o\_CREATE USER FORM* [DISPLAY SELECTION](display-selection.md) [EXPORT DIF](export-dif.md) [EXPORT SYLK](export-sylk.md) diff --git a/i18n/pt/docusaurus-plugin-content-docs/version-20-R7/commands-legacy/get-document-properties.md b/i18n/pt/docusaurus-plugin-content-docs/version-20-R7/commands-legacy/get-document-properties.md index 9b0bb738c644ce..2271a553eb749b 100644 --- a/i18n/pt/docusaurus-plugin-content-docs/version-20-R7/commands-legacy/get-document-properties.md +++ b/i18n/pt/docusaurus-plugin-content-docs/version-20-R7/commands-legacy/get-document-properties.md @@ -209,6 +209,4 @@ Quando esse método tiver sido implementado no banco de dados, nóste mos todo o #### Ver também -*\_o\_Document creator* -*\_o\_Document type* [SET DOCUMENT PROPERTIES](set-document-properties.md) \ No newline at end of file diff --git a/i18n/pt/docusaurus-plugin-content-docs/version-20-R7/commands-legacy/get-highlight.md b/i18n/pt/docusaurus-plugin-content-docs/version-20-R7/commands-legacy/get-highlight.md index b1244ead17327e..182cb720646607 100644 --- a/i18n/pt/docusaurus-plugin-content-docs/version-20-R7/commands-legacy/get-highlight.md +++ b/i18n/pt/docusaurus-plugin-content-docs/version-20-R7/commands-legacy/get-highlight.md @@ -41,8 +41,10 @@ Se o objeto designado pelo parâmetro *objeto* não é encontrado no formulário O exemplo abaixo obtém o texto selecionado no campo \[Produtos\]Comentarios: ```4d - GET HIGHLIGHT([Produtos]Comentarios;vFirst;vLast) - If(vFirst +GET HIGHLIGHT([Products]Comments;vFirst;vLast) +If(vFirst < vlast) + ALERT("The selected text is:"+Substring([Products]Comments;vFirst;vLast-vFirst)) +End if ``` #### Exemplo 2 diff --git a/i18n/pt/docusaurus-plugin-content-docs/version-20-R7/commands-legacy/get-process-variable.md b/i18n/pt/docusaurus-plugin-content-docs/version-20-R7/commands-legacy/get-process-variable.md index d854213d8abcb0..9707fed1729dcd 100644 --- a/i18n/pt/docusaurus-plugin-content-docs/version-20-R7/commands-legacy/get-process-variable.md +++ b/i18n/pt/docusaurus-plugin-content-docs/version-20-R7/commands-legacy/get-process-variable.md @@ -115,7 +115,6 @@ Ver o exemplo do comando DRAG AND DROP PROPERTIES. #### Ver também -*\_o\_DRAG AND DROP PROPERTIES* *Arrastar e Soltar* [POST OUTSIDE CALL](post-outside-call.md) *Processos* diff --git a/i18n/pt/docusaurus-plugin-content-docs/version-20-R7/commands-legacy/in-break.md b/i18n/pt/docusaurus-plugin-content-docs/version-20-R7/commands-legacy/in-break.md index f6be7450dae159..2bc5ba3a2ee4b3 100644 --- a/i18n/pt/docusaurus-plugin-content-docs/version-20-R7/commands-legacy/in-break.md +++ b/i18n/pt/docusaurus-plugin-content-docs/version-20-R7/commands-legacy/in-break.md @@ -26,6 +26,5 @@ Para que seja gerado o ciclo de execução **In break**, tenha certeza de que o #### Ver também -*\_o\_During* [In footer](in-footer.md) [In header](in-header.md) \ No newline at end of file diff --git a/i18n/pt/docusaurus-plugin-content-docs/version-20-R7/commands-legacy/in-footer.md b/i18n/pt/docusaurus-plugin-content-docs/version-20-R7/commands-legacy/in-footer.md index 970cd99a96d7d3..24e206ce694f25 100644 --- a/i18n/pt/docusaurus-plugin-content-docs/version-20-R7/commands-legacy/in-footer.md +++ b/i18n/pt/docusaurus-plugin-content-docs/version-20-R7/commands-legacy/in-footer.md @@ -26,6 +26,5 @@ Para que seja gerado o ciclo de execução **In footer** tenha certeza de que o #### Ver também -*\_o\_During* [In break](in-break.md) [In header](in-header.md) \ No newline at end of file diff --git a/i18n/pt/docusaurus-plugin-content-docs/version-20-R7/commands-legacy/in-header.md b/i18n/pt/docusaurus-plugin-content-docs/version-20-R7/commands-legacy/in-header.md index 748580695293e2..02eff048cf6a37 100644 --- a/i18n/pt/docusaurus-plugin-content-docs/version-20-R7/commands-legacy/in-header.md +++ b/i18n/pt/docusaurus-plugin-content-docs/version-20-R7/commands-legacy/in-header.md @@ -26,6 +26,5 @@ Para que seja gerado o ciclo de execução **In header**, tenha certeza de que o #### Ver também -*\_o\_During* [In break](in-break.md) [In footer](in-footer.md) \ No newline at end of file diff --git a/i18n/pt/docusaurus-plugin-content-docs/version-20-R7/commands-legacy/integrate-mirror-log-file.md b/i18n/pt/docusaurus-plugin-content-docs/version-20-R7/commands-legacy/integrate-mirror-log-file.md index 957138c32f9cee..21552ea16ec7d4 100644 --- a/i18n/pt/docusaurus-plugin-content-docs/version-20-R7/commands-legacy/integrate-mirror-log-file.md +++ b/i18n/pt/docusaurus-plugin-content-docs/version-20-R7/commands-legacy/integrate-mirror-log-file.md @@ -101,6 +101,4 @@ Se a integração é efetuada corretamente, a variável sistema OK recebe o valo #### Ver também - -*\_o\_INTEGRATE LOG FILE* [LOG FILE TO JSON](log-file-to-json.md) \ No newline at end of file diff --git a/i18n/pt/docusaurus-plugin-content-docs/version-20-R7/commands-legacy/is-a-list.md b/i18n/pt/docusaurus-plugin-content-docs/version-20-R7/commands-legacy/is-a-list.md index 51335f8668fd37..35d937ad668ca5 100644 --- a/i18n/pt/docusaurus-plugin-content-docs/version-20-R7/commands-legacy/is-a-list.md +++ b/i18n/pt/docusaurus-plugin-content-docs/version-20-R7/commands-legacy/is-a-list.md @@ -21,14 +21,7 @@ displayed_sidebar: docs O comando Is a list retorna TRUE se o valor passado em *lista* é uma referência válida a uma lista hierárquica. Do contrário, retorna FALSE. -#### Exemplo 1 +#### Exemplo Ver o exemplo do comando [CLEAR LIST](clear-list.md "CLEAR LIST"). -#### Exemplo 2 - -Ver os exemplos do comando DRAG AND DROP PROPERTIES. - -#### Ver também - -*\_o\_DRAG AND DROP PROPERTIES* \ No newline at end of file diff --git a/i18n/pt/docusaurus-plugin-content-docs/version-20-R7/commands-legacy/new-log-file.md b/i18n/pt/docusaurus-plugin-content-docs/version-20-R7/commands-legacy/new-log-file.md index 40260034027780..522a3be91b1ebf 100644 --- a/i18n/pt/docusaurus-plugin-content-docs/version-20-R7/commands-legacy/new-log-file.md +++ b/i18n/pt/docusaurus-plugin-content-docs/version-20-R7/commands-legacy/new-log-file.md @@ -30,6 +30,3 @@ O arquivo é renomeado com os números de backups atuais do banco de dados e o a Caso se apresente um erro, o comando gera um código que pode ser interceptado utilizando o comando [ON ERR CALL](on-err-call.md "ON ERR CALL"). -#### Ver também - -*\_o\_INTEGRATE LOG FILE* \ No newline at end of file diff --git a/i18n/pt/docusaurus-plugin-content-docs/version-20-R7/commands-legacy/object-set-action.md b/i18n/pt/docusaurus-plugin-content-docs/version-20-R7/commands-legacy/object-set-action.md index 5d1edca7da5ec0..9fb767dcce5508 100644 --- a/i18n/pt/docusaurus-plugin-content-docs/version-20-R7/commands-legacy/object-set-action.md +++ b/i18n/pt/docusaurus-plugin-content-docs/version-20-R7/commands-legacy/object-set-action.md @@ -91,5 +91,4 @@ Se quiser associar a ação padrão **Validate** com um botão: #### Ver também -*\_o\_OBJECT Get action* [OBJECT Get action](object-get-action.md) \ No newline at end of file diff --git a/i18n/pt/docusaurus-plugin-content-docs/version-20-R7/commands-legacy/object-set-rgb-colors.md b/i18n/pt/docusaurus-plugin-content-docs/version-20-R7/commands-legacy/object-set-rgb-colors.md index 6e7592e51f11b9..6993d449cd268b 100644 --- a/i18n/pt/docusaurus-plugin-content-docs/version-20-R7/commands-legacy/object-set-rgb-colors.md +++ b/i18n/pt/docusaurus-plugin-content-docs/version-20-R7/commands-legacy/object-set-rgb-colors.md @@ -105,6 +105,5 @@ Muda o fundo transparente com uma cor de fonte clara: #### Ver também -*\_o\_OBJECT SET COLOR* [OBJECT GET RGB COLORS](object-get-rgb-colors.md) [Select RGB Color](select-rgb-color.md) \ No newline at end of file diff --git a/i18n/pt/docusaurus-plugin-content-docs/version-20-R7/commands-legacy/picture-to-blob.md b/i18n/pt/docusaurus-plugin-content-docs/version-20-R7/commands-legacy/picture-to-blob.md index 16681e094f5d44..1a96762a0970b7 100644 --- a/i18n/pt/docusaurus-plugin-content-docs/version-20-R7/commands-legacy/picture-to-blob.md +++ b/i18n/pt/docusaurus-plugin-content-docs/version-20-R7/commands-legacy/picture-to-blob.md @@ -47,7 +47,6 @@ Se quiser converter uma imagem de um formato proprietário a formato GIF e mostr #### Ver também -*\_o\_PICTURE TO GIF* [BLOB TO PICTURE](blob-to-picture.md) [PICTURE CODEC LIST](picture-codec-list.md) [WRITE PICTURE FILE](write-picture-file.md) \ No newline at end of file diff --git a/i18n/pt/docusaurus-plugin-content-docs/version-20-R7/commands-legacy/print-selection.md b/i18n/pt/docusaurus-plugin-content-docs/version-20-R7/commands-legacy/print-selection.md index 6f3bd8f07c8660..e02feef2229d53 100644 --- a/i18n/pt/docusaurus-plugin-content-docs/version-20-R7/commands-legacy/print-selection.md +++ b/i18n/pt/docusaurus-plugin-content-docs/version-20-R7/commands-legacy/print-selection.md @@ -59,7 +59,6 @@ O exemplo a seguir seleciona todos os registros na tabela \[Pessoas\]. O comando #### Ver também -*\_o\_PAGE SETUP* [ACCUMULATE](accumulate.md) [BREAK LEVEL](break-level.md) [Level ](level.md) diff --git a/i18n/pt/docusaurus-plugin-content-docs/version-20-R7/commands-legacy/resolve-pointer.md b/i18n/pt/docusaurus-plugin-content-docs/version-20-R7/commands-legacy/resolve-pointer.md index 8f91d2259336da..146269c5e39fe6 100644 --- a/i18n/pt/docusaurus-plugin-content-docs/version-20-R7/commands-legacy/resolve-pointer.md +++ b/i18n/pt/docusaurus-plugin-content-docs/version-20-R7/commands-legacy/resolve-pointer.md @@ -103,7 +103,6 @@ Este é um exemplo de ponteiro a um array 2D: #### Ver também -*\_o\_DRAG AND DROP PROPERTIES* [Field](field.md) [Get pointer](get-pointer.md) [Is a variable](is-a-variable.md) diff --git a/i18n/pt/docusaurus-plugin-content-docs/version-20-R7/commands-legacy/set-document-properties.md b/i18n/pt/docusaurus-plugin-content-docs/version-20-R7/commands-legacy/set-document-properties.md index 573d1a572be471..03adec908ae581 100644 --- a/i18n/pt/docusaurus-plugin-content-docs/version-20-R7/commands-legacy/set-document-properties.md +++ b/i18n/pt/docusaurus-plugin-content-docs/version-20-R7/commands-legacy/set-document-properties.md @@ -34,6 +34,4 @@ As datas e horas de criação e última modificação são administradas pelo ad #### Ver também -*\_o\_SET DOCUMENT CREATOR* -*\_o\_SET DOCUMENT TYPE* [GET DOCUMENT PROPERTIES](get-document-properties.md) \ No newline at end of file diff --git a/i18n/pt/docusaurus-plugin-content-docs/version-20-R7/commands-legacy/structure-file.md b/i18n/pt/docusaurus-plugin-content-docs/version-20-R7/commands-legacy/structure-file.md index 9b795c29a477dd..86bfca487706ab 100644 --- a/i18n/pt/docusaurus-plugin-content-docs/version-20-R7/commands-legacy/structure-file.md +++ b/i18n/pt/docusaurus-plugin-content-docs/version-20-R7/commands-legacy/structure-file.md @@ -70,7 +70,6 @@ O exemplo a seguir pode ser usado para descobrir se o método é chamado de um c #### Ver também -*\_o\_DATA SEGMENT LIST* [Application file](application-file.md) [COMPONENT LIST](component-list.md) [Data file](data-file.md) \ No newline at end of file diff --git a/i18n/pt/docusaurus-plugin-content-docs/version-20-R7/commands-legacy/use-character-set.md b/i18n/pt/docusaurus-plugin-content-docs/version-20-R7/commands-legacy/use-character-set.md index 236d56d4c38c17..ea5cf6a50217cf 100644 --- a/i18n/pt/docusaurus-plugin-content-docs/version-20-R7/commands-legacy/use-character-set.md +++ b/i18n/pt/docusaurus-plugin-content-docs/version-20-R7/commands-legacy/use-character-set.md @@ -43,8 +43,6 @@ A variável de sistema OK é definida como 1 se o mapa é carregado corretamente #### Ver também -*\_o\_Mac to Win* -*\_o\_Win to Mac* [EXPORT DIF](export-dif.md) [EXPORT SYLK](export-sylk.md) [EXPORT TEXT](export-text.md) diff --git a/i18n/pt/docusaurus-plugin-content-docs/version-20-R7/commands/4d.md b/i18n/pt/docusaurus-plugin-content-docs/version-20-R7/commands/4d.md index b411a27320dd9b..7f9902d4ef9dba 100644 --- a/i18n/pt/docusaurus-plugin-content-docs/version-20-R7/commands/4d.md +++ b/i18n/pt/docusaurus-plugin-content-docs/version-20-R7/commands/4d.md @@ -6,8 +6,8 @@ displayed_sidebar: docs **4D** -> Objeto -| Parâmetro | Tipo | | Descrição | -| ---------- | ------ | - | ---------------------------------------------- | -| classStore | Object | ← | Class Store containing all built-in 4D classes | +| Parâmetro | Tipo | | Descrição | +| ---------- | ------ | - | --------------------------------------------------- | +| classStore | Object | ← | Class Store contendo todas as classes 4D integradas | -The **4D** keyword is described in the [**Concept page for Classes**](../Concepts/classes.md#4d). +A palavra-chave **4D** está descrita na [**Página de conceito para as Classes**](../Concepts/classes.md#4d). diff --git a/i18n/pt/docusaurus-plugin-content-docs/version-20-R7/commands/command-index.md b/i18n/pt/docusaurus-plugin-content-docs/version-20-R7/commands/command-index.md index a5900eea27f0c2..a7089859732cbf 100644 --- a/i18n/pt/docusaurus-plugin-content-docs/version-20-R7/commands/command-index.md +++ b/i18n/pt/docusaurus-plugin-content-docs/version-20-R7/commands/command-index.md @@ -315,8 +315,8 @@ title: Índice [`Form`](../commands-legacy/form.md)
    [`FORM Convert to dynamic`](../commands-legacy/form-convert-to-dynamic.md)
    [`FORM EDIT`](../commands-legacy/form-edit.md)
    -[`FORM Event`](../commands-legacy/form-event.md)
    -[`Form event code`](../commands-legacy/form-event-code.md)
    +[`FORM Event`](../commands/form-event.md)
    +[`Form event code`](../commands/form-event-code.md)
    [`FORM FIRST PAGE`](../commands-legacy/form-first-page.md)
    [`FORM Get color scheme`](../commands-legacy/form-get-color-scheme.md)
    [`FORM Get current page`](../commands-legacy/form-get-current-page.md)
    diff --git a/i18n/pt/docusaurus-plugin-content-docs/version-20-R7/commands/create-entity-selection.md b/i18n/pt/docusaurus-plugin-content-docs/version-20-R7/commands/create-entity-selection.md index c5e936d0f4e8cd..92eb70ec8eb626 100644 --- a/i18n/pt/docusaurus-plugin-content-docs/version-20-R7/commands/create-entity-selection.md +++ b/i18n/pt/docusaurus-plugin-content-docs/version-20-R7/commands/create-entity-selection.md @@ -18,11 +18,11 @@ displayed_sidebar: docs #### Descrição -The `Create entity selection` command builds and returns a new, [alterable](../ORDA/entities.md#shareable-or-alterable-entity-selections) entity selection related to the dataclass matching the given *dsTable*, according to the current selection of this table. +O comando `Create entity selection` cria e retorna uma nova seleção de entidade [alterável](../ORDA/entities.md#shareable-or-alterable-entity-selections) relacionada à classe de dados correspondente à *dsTable* fornecida, de acordo com a seleção atual dessa tabela. -If the current selection is sorted, an [ordered](../ORDA/dsMapping.md#ordered-or-unordered-entity-selection) entity selection is created (the order of the current selection is kept). Se a seleção atual não for ordenada, se cria uma seleção de entidades não ordenada. +Se a seleção atual for ordenada, uma entidade [ordenada](../ORDA/dsMapping.md#ordered-or-unordered-entity-selection) é criada (a ordem da seleção atual é mantida). Se a seleção atual não for ordenada, se cria uma seleção de entidades não ordenada. -If the *dsTable* is not exposed in [`ds`](ds.md), an error is returned. Esse comando não pode usado com uma datastore remota. +Se *dsTable* não for exposta em [`ds`](ds.md), um erro será retornado. Esse comando não pode usado com uma datastore remota. No parâmetro opcional *settings*, você pode passar um objeto que contenha a seguinte propriedade: diff --git a/i18n/pt/docusaurus-plugin-content-docs/version-20-R7/commands/cs.md b/i18n/pt/docusaurus-plugin-content-docs/version-20-R7/commands/cs.md index ee2d7b029405c5..2e758f2649517a 100644 --- a/i18n/pt/docusaurus-plugin-content-docs/version-20-R7/commands/cs.md +++ b/i18n/pt/docusaurus-plugin-content-docs/version-20-R7/commands/cs.md @@ -8,4 +8,4 @@ displayed_sidebar: docs | ---------- | ------ | - | --------------------------------------------------- | | classStore | Object | ← | Class store de usuário para o projeto ou componente | -The **cs** keyword is described in the [**Concept page for Classes**](../Concepts/classes.md#cs). +A palavra-chave **cs** está descrita na [**Página Conceito para Classes**](../Concepts/classes.md#cs). diff --git a/i18n/pt/docusaurus-plugin-content-docs/version-20-R7/commands/ds.md b/i18n/pt/docusaurus-plugin-content-docs/version-20-R7/commands/ds.md index 51f54aa89ca031..26cf5854cd7d9c 100644 --- a/i18n/pt/docusaurus-plugin-content-docs/version-20-R7/commands/ds.md +++ b/i18n/pt/docusaurus-plugin-content-docs/version-20-R7/commands/ds.md @@ -21,13 +21,13 @@ O comando `ds` retorna uma referência ao data Se omitir o parâmetro localID (ou se passa uma string vazia ""), o comando devolve uma referência ao armazém de dados que coincide com a base de dados local de 4D (ou a base de datos de 4D Server em caso de abrir uma base de dados remota em 4D Server). O repositório de dados é aberto automaticamente e está disponível diretamente por meio do `ds`. -Você também pode obter uma referência em um datastore remoto aberto passando seu ID local no parâmetro *localID*. The datastore must have been previously opened with the [`Open datastore`](open-datastore.md) command by the current database (host or component). A identificação local se define quando se utilizar este comando. +Você também pode obter uma referência em um datastore remoto aberto passando seu ID local no parâmetro *localID*. O datastore deve ter sido aberto anteriormente com o comando [`Open datastore`](open-datastore.md) pelo banco de dados atual (host ou componente). A identificação local se define quando se utilizar este comando. > O escopo do id local do banco de dados no qual o armazen de dados foi aberto. Se nenhum datastore *localID* for encontrado, o comando retornará **Null**. -Objects available in the `cs.Datastore` are mapped from the target database with respect to the [ORDA general rules](../ORDA/dsMapping.md#general-rules). +Os objetos disponíveis no `cs.Datastore` são mapeados a partir do banco de dados de destino conforme as [regras gerais do ORDA](../ORDA/dsMapping.md#general-rules). #### Exemplo 1 diff --git a/i18n/pt/docusaurus-plugin-content-docs/version-20-R7/commands/form-event-code.md b/i18n/pt/docusaurus-plugin-content-docs/version-20-R7/commands/form-event-code.md index 295ef82dca3895..4c918dbca90514 100644 --- a/i18n/pt/docusaurus-plugin-content-docs/version-20-R7/commands/form-event-code.md +++ b/i18n/pt/docusaurus-plugin-content-docs/version-20-R7/commands/form-event-code.md @@ -1,7 +1,6 @@ --- id: form-event-code title: Form event code -slug: /commands/form-event-code displayed_sidebar: docs --- @@ -9,13 +8,13 @@ displayed_sidebar: docs -| Parâmetro | Tipo | | Descrição | -| --------- | ------- | - | ----------------- | -| Resultado | Integer | ← | Form event number | +| Parâmetro | Tipo | | Descrição | +| --------- | ------- | - | ------------------------------ | +| Resultado | Integer | ← | Número de evento do formulário | -*This command is not thread-safe, it cannot be used in preemptive code.* +*Esse comando não é thread-safe, não pode ser usado em código preventivo.* #### Descrição @@ -102,7 +101,7 @@ This example is a template for a form method. It shows each of the possible even #### Exemplo -This example shows the template of a form method that handles the events that can occur for a form displayed using the [DISPLAY SELECTION](display-selection.md) or [MODIFY SELECTION](modify-selection.md) commands. For didactic purposes, it displays the nature of the event in the title bar of the form window. +This example shows the template of a form method that handles the events that can occur for a form displayed using the [DISPLAY SELECTION](../commands-legacy/display-selection.md) or [MODIFY SELECTION](../commands-legacy/modify-selection.md) commands. For didactic purposes, it displays the nature of the event in the title bar of the form window. ```4d   //A form method @@ -141,7 +140,7 @@ This example shows the template of a form method that handles the events that ca #### Exemplo 2 -For examples on how to handle [`On Before Keystroke`](../Events/onBeforeKeystroke.md) and [`On After Keystroke`](../Events/onAfterKeystroke.md) events, see examples for the [Get edited text](get-edited-text.md), [Keystroke](keystroke.md) and [FILTER KEYSTROKE](filter-keystroke.md) commands. +For examples on how to handle [`On Before Keystroke`](../Events/onBeforeKeystroke.md) and [`On After Keystroke`](../Events/onAfterKeystroke.md) events, see examples for the [Get edited text](../commands-legacy/get-edited-text.md), [Keystroke](../commands-legacy/keystroke.md) and [FILTER KEYSTROKE](../commands-legacy/filter-keystroke.md) commands. #### Exemplo 6 @@ -246,7 +245,7 @@ Este exemplo mostra como responder a um evento de fecho de janela com um formul  End case ``` -#### Example 10 +#### Exemplo 10 This example shows how to capitalize a text or alphanumeric field each time its data source value is modified: @@ -260,7 +259,7 @@ This example shows how to capitalize a text or alphanumeric field each time its  End case ``` -#### Example 11 +#### Exemplo 11 The following example illustrates how to manage a deletion action in a hierarchical list: @@ -288,7 +287,7 @@ The following example illustrates how to manage a deletion action in a hierarchi  End if ``` -#### Example 12 +#### Exemplo 12 In this example, the [`On Scroll`](../Events/onScroll.md) form event allows us to synchronize the display of two pictures in a form. The following code is added in the "satellite" object method (picture field or variable): @@ -304,7 +303,7 @@ In this example, the [`On Scroll`](../Events/onScroll.md) form event allows us t Result: https://www.youtube.com/watch?v=YIRfsW1BmHE -#### Example 13 +#### Exemplo 13 You want to draw a red rectangle around the selected cell of a list box, and you want the rectangle to move along with the list box if it is scrolled vertically by the user. In the list box object method, you can write: @@ -342,11 +341,11 @@ As a result, the red rectangle follows the scrolling of the list box: #### Veja também [Form Events](../Events/overview.md) -[CALL SUBFORM CONTAINER](call-subform-container.md)\ -[Current form table](current-form-table.md)\ -[FILTER KEYSTROKE](filter-keystroke.md)\ +[CALL SUBFORM CONTAINER](../commands-legacy/call-subform-container.md)\ +[Current form table](../commands-legacy/current-form-table.md)\ +[FILTER KEYSTROKE](../commands-legacy/filter-keystroke.md)\ [FORM Event](form-event.md)\ -[Get edited text](get-edited-text.md)\ -[Keystroke](keystroke.md)\ -[POST OUTSIDE CALL](post-outside-call.md)\ -[SET TIMER](set-timer.md) +[Get edited text](../commands-legacy/get-edited-text.md)\ +[Keystroke](../commands-legacy/keystroke.md)\ +[POST OUTSIDE CALL](../commands-legacy/post-outside-call.md)\ +[SET TIMER](../commands-legacy/set-timer.md) diff --git a/i18n/pt/docusaurus-plugin-content-docs/version-20-R7/commands/form-event.md b/i18n/pt/docusaurus-plugin-content-docs/version-20-R7/commands/form-event.md index 5bbf9362b7b250..5b7929abd85829 100644 --- a/i18n/pt/docusaurus-plugin-content-docs/version-20-R7/commands/form-event.md +++ b/i18n/pt/docusaurus-plugin-content-docs/version-20-R7/commands/form-event.md @@ -17,17 +17,17 @@ displayed_sidebar: docs #### Descrição -**FORM Event** returns an object containing information about the form event that has just occurred.**FORM Event** returns an object containing information about the form event that has just occurred. Usually, you will use **FORM Event** from within a form or object method. +**FORM Event** returns an object containing information about the form event that has just occurred.O **Evento FORM** retorna um objeto contendo informações sobre o evento formulário que acabou de ocorrer. Normalmente, você usará **FORM Event** dentro de um formulário ou método objeto. **Objeto devolvido** -Each returned object includes the following main properties: +Cada objeto retornado inclui as seguintes propriedades principais: -| **Property** | **Type** | **Description** | -| ------------ | -------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -| objectName | text | Name of the object triggering the event - Not included if the event is triggered by the form | -| code | integer | Valor numérico do evento de formulário. | -| description | text | Name of the form event (*e.g.* "On After Edit"). See the [**Form Events**](../Events/overview.md) section. | +| **Propriedade** | **Tipo** | **Description** | +| --------------- | -------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| objectName | text | Name of the object triggering the event - Not included if the event is triggered by the form | +| code | integer | Valor numérico do evento de formulário. | +| description | text | Name of the form event (*e.g.* "On After Edit"). See the [**Form Events**](../Events/overview.md) section. | For example, in the case of a click on a button, the object contains the following properties: @@ -99,4 +99,4 @@ The resulting list box when rows are selected: #### Veja também [Form Events](../Events/overview.md) -[Form event code](form-event-code.md) +[Form event code](../commands/form-event-code.md) diff --git a/i18n/pt/docusaurus-plugin-content-docs/version-20/API/DataClassClass.md b/i18n/pt/docusaurus-plugin-content-docs/version-20/API/DataClassClass.md index 050f536c643eae..9514184804a56b 100644 --- a/i18n/pt/docusaurus-plugin-content-docs/version-20/API/DataClassClass.md +++ b/i18n/pt/docusaurus-plugin-content-docs/version-20/API/DataClassClass.md @@ -921,7 +921,7 @@ onde: | Incluído em | IN | Retorna dados iguais a ao menos um dos valores de uma coleção ou de um conjunto de valores, admite o coringa (@) | | Contém palavra chave | % | As palavras chaves podem ser usadas em atributos de string ou imagem | -* **value**: o valor a comparar ao valor atual da propriedade de cada entidade na seleção de entidade ou elemento na coleção. Pode ser um **marcador** (ver **Uso de marcadores** mais adiante) ou qualquer expressão que coincida com a propriedad de tipo de dados. Quando usar um valor constante, as regras abaixo devem ser respeitadas: +* **value**: o valor a comparar ao valor atual da propriedade de cada entidade na seleção de entidade ou elemento na coleção. Pode ser um **marcador** (ver **Uso de marcadores** mais adiante) ou qualquer expressão que coincida com a propriedad de tipo de dados. Note that, in case of type mismatch with scalar types (text, date, number...), 4D will try to convert the **value** type to the attribute data type whenever possible, for an easier handling of values coming from the Internet. For example, if the string "v20" is entered as **value** to compare with an integer attribute, it will be converted to 20. Quando usar um valor constante, as regras abaixo devem ser respeitadas: * A constante de tipo **texto** pode ser passada com ou sem aspas simples (ver **Uso de aspas** mais abaixo). Para pesquisar uma stirng dentro de uma string (uma pesquisa "contém") use o símbolo coringa (@) em valor para isolar a string a ser pesquisada como mostrado neste exemplo: "@Smith@". As palavras chaves abaixo são proibidas para constantes de texto: true, false. * Valores constantes de tipo **booleano** : **true** ou **false** (diferencia maiuscula de minúscula). * Valores constantes de tipo **numérico**: os decimais se separam com um '.' (ponto). diff --git a/i18n/pt/docusaurus-plugin-content-docs/version-20/API/EntityClass.md b/i18n/pt/docusaurus-plugin-content-docs/version-20/API/EntityClass.md index 08c66005bd7ebe..3f26145caa03d4 100644 --- a/i18n/pt/docusaurus-plugin-content-docs/version-20/API/EntityClass.md +++ b/i18n/pt/docusaurus-plugin-content-docs/version-20/API/EntityClass.md @@ -92,8 +92,10 @@ O tipo de valor do atributo depende do atributo [kind](DataClassClass.md#attribu #### Descrição -A função `.isNew()` retorna True se a entidade a qual for aplicada foi recém criada e não foi ainda salva na datastore.. . -> Tenha em mente que quaisquer modificações feitas a entidades serão salvas no registro referenciado somente quando o [`. ave( )`](#save) função for executada. +A função `.isNew()` retorna True se a entidade a qual for aplicada foi recém criada e não foi ainda salva na datastore.. + +This function allows you to update entities separately. Note however that, for performance reasons, the new entity shares the same reference of object attributes as the cloned entity. +> Keep in mind that any modifications done to entities will be saved in the referenced record only when the [`.save()`](#save) function is executed. Esta função só pode ser usada com entidades já salvas no banco de dados. Ele não pode ser chamado em uma entidade recém-criada (para a qual [`.isNew()`](#isnew) retorna **Verdadeiro**). diff --git a/i18n/pt/docusaurus-plugin-content-docs/version-20/API/HTTPRequestClass.md b/i18n/pt/docusaurus-plugin-content-docs/version-20/API/HTTPRequestClass.md index 5ecc8de9d05821..6508afe6da15f1 100644 --- a/i18n/pt/docusaurus-plugin-content-docs/version-20/API/HTTPRequestClass.md +++ b/i18n/pt/docusaurus-plugin-content-docs/version-20/API/HTTPRequestClass.md @@ -359,7 +359,7 @@ A propriedade `.url` contém o URL do ## .wait() -**.wait**( { *time* : Real } ) : HTTPRequestClass +**.wait**( { *time* : Real } ) : 4D.HTTPRequest diff --git a/i18n/pt/docusaurus-plugin-content-docs/version-20/Concepts/flow-control.md b/i18n/pt/docusaurus-plugin-content-docs/version-20/Concepts/flow-control.md index 1b31d969696fd3..a9d607993bc9cd 100644 --- a/i18n/pt/docusaurus-plugin-content-docs/version-20/Concepts/flow-control.md +++ b/i18n/pt/docusaurus-plugin-content-docs/version-20/Concepts/flow-control.md @@ -156,11 +156,11 @@ Esse exemplo testa uma variável numérica e exibe uma caixa de alerta com uma a Else //Se não for 1, 2, ou 3, exibe um alerta ALERT("It was not one, two, or three.") //statement(s) - End case //If it is 2, display an alert - :(vResult=3) //Test if the number is 3 - ALERT("Three.") //If it is 3, display an alert - Else //If it is not 1, 2, or 3, display an alert - ALERT("It was not one, two, or three.") + End case //Se for 2, mostrar um alerta + :(vResult=3) //Testar se o número é 3 + ALERT("Three.") //Se for 3, exiba um alerta + Else //Se não for 1, 2 ou 3, exibir um alerta + ALERT("Não foram um, dois ou três.") //statement(s) End case ``` @@ -181,12 +181,12 @@ For comparison, here is the `If... Else... End if` version of the same method: ALERT("It was not one, two, or three.") End if End if - End if //If it is 2, display an alert + End if //Se for 2, exibir um alerta Else - If(vResult=3) //Test if the number is 3 - ALERT("Three.") //If it is 3, display an alert - Else //If it is not 1, 2, or 3, display an alert - ALERT("It was not one, two, or three.") + If(vResult=3) //Testa se o número é 3 + ALERT("Três.") //Se for 3, exiba um alerta + Else //Se não for 1, 2 ou 3, exibir um alerta + ALERT("Não foram um, dois ou três.") End if End if End if diff --git a/i18n/pt/docusaurus-plugin-content-docs/version-20/Concepts/quick-tour.md b/i18n/pt/docusaurus-plugin-content-docs/version-20/Concepts/quick-tour.md index feb340c7a43e4a..ee3f2f89303f65 100644 --- a/i18n/pt/docusaurus-plugin-content-docs/version-20/Concepts/quick-tour.md +++ b/i18n/pt/docusaurus-plugin-content-docs/version-20/Concepts/quick-tour.md @@ -55,7 +55,7 @@ Even if it is usually not recommended, you can create variables simply by using MyOtherDate:=Current date+30 ``` -A linha de código lê “MyOtherDate gets the current date plus 30 days.” This line creates the variable, assigns it with both the (temporary) date type and a content. A variable created by assignment is interpreted as typeless, that is, it can be assigned with other types in other lines and change of type dynamically. This flexibility does not apply to variables declared with the `var` keyword (their type cannot change) and in [compiled mode](interpreted.md) where the type can never be changed, regardless of how the variable was created. +A linha de código lê “MyOtherDate gets the current date plus 30 days.” Essa linha cria a variável, atribui-lhe o tipo de data (temporária) e um conteúdo. A variable created by assignment is interpreted as typeless, that is, it can be assigned with other types in other lines and change of type dynamically. This flexibility does not apply to variables declared with the `var` keyword (their type cannot change) and in [compiled mode](interpreted.md) where the type can never be changed, regardless of how the variable was created. ## Comandos diff --git a/i18n/pt/docusaurus-plugin-content-docs/version-20/FormEditor/formEditor.md b/i18n/pt/docusaurus-plugin-content-docs/version-20/FormEditor/formEditor.md index 7290ff3bd047bb..39ade6510f7062 100644 --- a/i18n/pt/docusaurus-plugin-content-docs/version-20/FormEditor/formEditor.md +++ b/i18n/pt/docusaurus-plugin-content-docs/version-20/FormEditor/formEditor.md @@ -12,42 +12,42 @@ O editor de formulários apresenta cada formulário JSON na sua própria janela, ### Opções de visualização -You can show or hide several interface elements on the current page of the form: +Você pode mostrar ou ocultar vários elementos da interface na página atual do formulário: -- **Inherited Form**: Inherited form objects (if there is an [inherited form](forms.md#inherited-forms)). -- **Page 0**: Objects from [page 0](forms.md#form-pages). This option allows you to distinguish between the objects on the form’s current page and those on page 0. -- **Paper**: Borders of the printing page, which are shown as gray lines. This element can only be displayed by default in ["for printing" type](properties_FormProperties.md#form-type) forms. +- **Formulário herdado**: objetos formulário herdados (se houver um [formulário herdado](forms.md#inherited-forms)). +- **Página 0**: objetos da [página 0](forms.md#form-pages). Esta opção permite que você distinga entre os objetos na página atual do formulário e aqueles na página 0. +- **Papel**: bordas da página de impressão, mostradas como linhas cinzas. Este elemento só pode ser exibido por padrão em formulários do tipo ["para impressão"](properties_FormProperties.md#form-type). - **Réguas**: réguas da janela do editor de formulários. -- **Markers**: Output control lines and associated markers that show the limits of the form’s different areas. This element can only be displayed by default in [list forms](properties_FormProperties.md#form-type). -- **Marker Labels**: Marker labels, available only when the output control lines are displayed. This element can only be displayed by default in [list forms](properties_FormProperties.md#form-type). -- **Limites**: Limites do formulário. When this option is selected, the form is displayed in the Form editor as it appears in Application mode. This way you can adjust your form without having to switch to the Application mode in order to see the result. +- **Marcadores**: linhas de controle de saída e marcadores associados que mostram os limites das diferentes áreas do formulário. Esse elemento só pode aparecer por padrão nos [formulários lista](properties_FormProperties.md#form-type). +- **Rótulos dos marcadores**: rótulos dos marcadores, disponíveis apenas quando as linhas de controle de saída forem exibidas. Esse elemento só pode aparecer por padrão nos [formulários lista](properties_FormProperties.md#form-type). +- **Limites**: Limites do formulário. Quando essa opção é selecionada, o formulário é exibido no editor de formulários como aparece no modo Aplicação. Desta forma, você pode ajustar seu formulário sem precisar trocar para o modo de Aplicação para ver o resultado. -> > The [**Size Based on**](properties_FormSize.md#size-based-on), [**Hor margin**](properties_FormSize.md#hor-margin) and [**Vert margin**](properties_FormSize.md#vert-margin) settings of the form properties affect the form’s limits. When using these settings, the limits are based on the objects in the form. When you modify the size of an object that is located next to the form’s border, it is modified to reflect that change. +> Os parâmetros [**Size Based on**](properties_FormSize.md#size-based-on), [**Hor margin**](properties_FormSize.md#hor-margin) and [**Vert margin**](properties_FormSize.md#vert-margin) de propriedades do formulário afetam os limites do formulário. Ao usar essas configurações, os limites são baseados nos objetos do formulário. Quando você modifica o tamanho de um objeto localizado próximo à borda do formulário, ele é modificado para refletir essa alteração. #### Visualização por defeito -When a form is opened in the editor, interface elements are displayed or hidden by default, depending on: +Quando um formulário é aberto no editor, os elementos da interface são exibidos ou ocultos por padrão, dependendo de: -- the **New form default display** options set in the Preferences - unchecked options cannot be displayed by default. -- the current [form type](properties_FormProperties.md#form-type): +- as opções de **exibição padrão do novo formulário** definidas nas Preferências - as opções não marcadas não podem ser exibidas por padrão. +- o [tipo de formulário](properties_FormProperties.md#form-type) atual: - Marcadores e rótulos de marcadores são sempre exibidos por padrão em formulários lista - O papel é apresentado por defeito nos formulários "para impressão". #### Exibir/ocultar elementos -You can display or hide elements at any moment in the Form editor’s current window by selecting **Display** from the **Form** menu or the Form editor's context menu: +Você pode exibir ou ocultar elementos a qualquer momento na janela atual do editor de formulários selecionando **Apresentar** no menu **Formulário** ou no menu de contexto do editor de formulários: ![](../assets/en/FormEditor/showHideElements.png) ### Regras -The rulers on the side and bottom help you position objects in the form. Podem ser [apresentados ou ocultos](#display-options). +As réguas na lateral e na parte inferior o ajudam a posicionar os objetos no formulário. Podem ser [apresentados ou ocultos](#display-options). -Select **Ruler definition...** from the **Form** menu to change measurement units so that the form displays inches, centimeters, or pixels. +Selecione **Definição de régua...** no menu **Formulário** para alterar as unidades de medida de modo que o formulário exiba polegadas, centímetros ou píxeis. ### Barra de ferramentas -The toolbar of the Form editor offers a set of tools to manipulate and modify the form. Cada janela tem a sua própria barra de ferramentas. +A barra de ferramentas do editor de formulário oferece um conjunto de ferramentas para manipular e modificar o formulário. Cada janela tem a sua própria barra de ferramentas. ![](../assets/en/FormEditor/toolbar.png) @@ -55,57 +55,57 @@ A barra de ferramentas contém os seguintes elementos: | Ícone | Nome | Descrição | | ------------------------------------------------ | --------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -| ![](../assets/en/FormEditor/execute.png) | Executar o formulário | Utilizado para testar a execução do formulário. When you click on this button, 4D opens a new window and displays the form in its context (list of records for a list form and current record page for a detail form). O formulário é executado no processo principal. | -| ![](../assets/en/FormEditor/selection.png) | [Ferramenta de selecção](#selecting-objects) | Permite selecionar, mover e redimensionar os objetos do formulário.

    Allows selecting, moving and resizing form objects.Note: When an object of the Text or Group Box type is selected, pressing the Enter key lets you switch to editing mode.

    | -| ![](../assets/en/FormEditor/zOrder.png) | [Ordem de entrada](#selecting-objects) | Switches to “Entry order” mode, where it is possible to view and change the current entry order of the form. Note that shields allow viewing the current entry order, while still working in the form. | -| ![](../assets/en/FormEditor/moving.png) | [Deslocamento](#moving-objects) | Switches to “Move” mode, where it is possible to reach any part of the form quickly by using drag and drop in the window. O cursor assume a forma de uma mão. Este modo de navegação é particularmente útil ao ampliar o formulário. | -| ![](../assets/en/FormEditor/zoom.png) | [Zoom](#zoom) | Permite modificar a percentagem de visualização do formulário (100% por padrão). You can switch to “Zoom” mode by clicking on the magnifying glass or by clicking directly on the desired bar. Esta função é descrita em pormenor na secção anterior. | -| ![](../assets/en/FormEditor/alignment.png) | [Alinhamento](#aligning-objects) | This button is linked to a menu that allows changing the level of objects in the form. It is enabled (or not) depending on the objects selected.
    Disabled if one selected object position is locked by a CSS property | -| ![](../assets/en/FormEditor/distribution.png) | [Distribuição](#distributing-objects) | Este botão está ligado a um menu que permite agrupar e desagrupar seleções de objetos no formulário. It is enabled (or not) depending on the objects selected.
    Disabled if one selected object position is locked by a CSS property | -| ![](../assets/en/FormEditor/level.png) | [Nível](#layering-objects) | This button is linked to a menu that allows aligning objects in the form. É ativada (ou não) em função dos objetos selecionados. | +| ![](../assets/en/FormEditor/execute.png) | Executar o formulário | Utilizado para testar a execução do formulário. Ao clicar nesse botão, 4D abre uma nova janela e exibe o formulário em seu contexto (lista de registros para um formulário de lista e página de registro atual para um formulário detalhado). O formulário é executado no processo principal. | +| ![](../assets/en/FormEditor/selection.png) | [Ferramenta de selecção](#selecting-objects) | Permite selecionar, mover e redimensionar os objetos do formulário.

    **Nota**: quando um objeto do tipo Texto ou Group Box é selecionado, pressionando a tecla **Enter** permite que você mude para o modo de edição.

    | +| ![](../assets/en/FormEditor/zOrder.png) | [Ordem de entrada](#selecting-objects) | Alterna para o modo "Ordem de entrada", onde é possível visualizar e alterar a ordem de entrada atual do formulário. Observe que os escudos permitem a visualização da ordem de entrada atual, enquanto você ainda trabalha no formulário. | +| ![](../assets/en/FormEditor/moving.png) | [Deslocamento](#moving-objects) | Alterne para o modo "Mover", onde for possível alcançar qualquer parte do formulário rapidamente usando arrastar e soltar na janela. O cursor assume a forma de uma mão. Este modo de navegação é particularmente útil ao ampliar o formulário. | +| ![](../assets/en/FormEditor/zoom.png) | [Zoom](#zoom) | Permite modificar a percentagem de visualização do formulário (100% por padrão). Você pode alternar para o modo "Zoom" clicando na lupa ou clicando diretamente na barra desejada. Esta função é descrita em pormenor na secção anterior. | +| ![](../assets/en/FormEditor/alignment.png) | [Alinhamento](#aligning-objects) | This button is linked to a menu that allows changing the level of objects in the form. Ele é ativado (ou não) dependendo dos objetos selecionados.
    Desativado se a posição de um objeto selecionado estiver bloqueada por uma propriedade CSS | +| ![](../assets/en/FormEditor/distribution.png) | [Distribuição](#distributing-objects) | Este botão está ligado a um menu que permite agrupar e desagrupar seleções de objetos no formulário. Ele é ativado (ou não) dependendo dos objetos selecionados.
    Desativado se a posição de um objeto selecionado estiver bloqueada por uma propriedade CSS | +| ![](../assets/en/FormEditor/level.png) | [Nível](#layering-objects) | Este botão está ligado a um menu que permite alterar o nível dos objetos no formulário. É ativada (ou não) em função dos objetos selecionados. | | ![](../assets/en/FormEditor/group.png) | [Grupo/Ungrupo](#grouping-objects) | Este botão está ligado a um menu que permite agrupar e desagrupar seleções de objetos no formulário. É ativada (ou não) em função dos objetos selecionados. | | ![](../assets/en/FormEditor/displyAndPage.png) | [Visualização e gestão de páginas](forms.html#form-pages) | Esta área permite passar de uma página de formulário para outra e adicionar páginas. Para navegar entre páginas de formulários, clique nos botões de seta, ou clique na área central e escolha a página a exibir a partir do menu que aparece. Se clicar no botão da seta para a direita enquanto é exibida a última página do formulário, 4D permite-lhe adicionar uma página. | | ![](../assets/en/FormEditor/cssPreviewicon.png) | [Pré-visualização CSS](#css-preview) | Este botão é utilizado para seleccionar o Modo CSS a utilizar. | | ![](../assets/en/FormEditor/views.png) | [Gestão da vistas](#views) | Este botão apresenta ou oculta a paleta de vistas. Esta função é detalhada em Utilização de vistas de objeto. | -| ![](../assets/en/FormEditor/shields2.png) | [Mostrando escudos](#shields) | Each click on this button causes the successive display of each type of form shield. The button is also linked to a menu that allows directly selecting the type of shield to display. | -| ![](../assets/en/FormEditor/library.png) | [Librería de objetos preconfigurada](objectLibrary.html) | This button displays the preconfigured object library that provides numerous objects with certain properties that have been predefined. | +| ![](../assets/en/FormEditor/shields2.png) | [Mostrando escudos](#shields) | Cada clique nesse botão provoca a exibição sucessiva de cada tipo de escudo de formulário. O botão também está vinculado a um menu que permite selecionar diretamente o tipo de escudo a ser exibido. | +| ![](../assets/en/FormEditor/library.png) | [Librería de objetos preconfigurada](objectLibrary.html) | Esse botão exibe a biblioteca de objetos pré-configurados que fornece vários objetos com determinadas propriedades predefinidas. | | ![](../assets/en/FormEditor/listBoxBuilder1.png) | [Criação de list box](#list-box-builder) | Este botão cria list boxes entity selection. | -| ![](../assets/en/FormEditor/insertFields.png) | [Inserir campos](#insert-fields) | This button inserts all fields (except object and blob type fields) of the form table in the form, along with their labels and with respect to interface standards. | +| ![](../assets/en/FormEditor/insertFields.png) | [Inserir campos](#insert-fields) | Esse botão insere todos os campos (exceto os campos do tipo objeto e bolha) da tabela do formulário no formulário, juntamente com seus rótulos e de acordo com os padrões de interface. | ### Barra de objetos -The object bar contains all the active and inactive objects that can be used in 4D forms. Alguns objectos estão agrupados por temas. Cada tema inclui várias alternativas que pode escolher entre elas. Quando a barra de objectos tem o foco, é possível seleccionar os botões usando as teclas do teclado. The following table describes the object groups available and their associated shortcut key. +A barra de objeto contém todos os objetos ativos e inativos que podem ser usados em formas 4D. Alguns objectos estão agrupados por temas. Cada tema inclui várias alternativas que pode escolher entre elas. Quando a barra de objectos tem o foco, é possível seleccionar os botões usando as teclas do teclado. A tabela a seguir descreve os grupos de objetos disponíveis e a respectiva tecla de atalho associada. -| Botão | Agrupar | Chave | -| ------------------------------------------ | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |:-----:| -| ![](../assets/en/FormEditor/text.png) | [Text](FormObjects/text.md) / [Group Box](FormObjects/groupBox.md) | T | -| ![](../assets/en/FormEditor/input.png) | [Entrada](FormObjects/input_overview.md) | F | -| ![](../assets/en/FormEditor/listbox.png) | [Lista hierárquica](FormObjects/list_overview.md) / [List Box](FormObjects/listbox_overview.md) | L | -| ![](../assets/en/FormEditor/combo.png) | [Combo Box](FormObjects/comboBox_overview.md) / [Drop-down List](FormObjects/dropdownList_Overview.md) / [Picture Pop-up Menu](FormObjects/picturePopupMenu_overview.md) | P | -| ![](../assets/en/FormEditor/button.png) | [Button](FormObjects/button_overview.md) / [Picture Button](FormObjects/pictureButton_overview.md) / [Button Grid](FormObjects/buttonGrid_overview.md) | B | -| ![](../assets/en/FormEditor/radio.png) | [Botão rádio](FormObjects/radio_overview.md) | R | -| ![](../assets/en/FormEditor/checkbox.png) | [Caixa de selecção](FormObjects/checkbox_overview.md) | C | -| ![](../assets/en/FormEditor/indicator.png) | [Progress Indicator](FormObjects/progressIndicator.md) / [Ruler](FormObjects/ruler.md) / [Stepper](FormObjects/stepper.md) / [Spinner](FormObjects/spinner.md) | I | -| ![](../assets/en/FormEditor/rectangle.png) | [Rectangle](FormObjects/shapes_overview.md#rectangle) / [Line](FormObjects/shapes_overview.md#line) / [Oval](FormObjects/shapes_overview.md#oval) | S | -| ![](../assets/en/FormEditor/splitter.png) | [Splitter](FormObjects/splitters.md) / [Tab Control](FormObjects/tabControl.md) | D | -| ![](../assets/en/FormEditor/plugin.png) | [Plug-in Area](FormObjects/pluginArea_overview.md) / [Subform](FormObjects/subform_overview.md) / [Web Area](FormObjects/webArea_overview.md) / [4D Write Pro](FormObjects/writeProArea_overview.md) / [4D View Pro](FormObjects/viewProArea_overview.md) | X | +| Botão | Agrupar | Chave | +| ------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |:-----:| +| ![](../assets/en/FormEditor/text.png) | [Text](FormObjects/text.md) / [Group Box](FormObjects/groupBox.md) | T | +| ![](../assets/en/FormEditor/input.png) | [Entrada](FormObjects/input_overview.md) | F | +| ![](../assets/en/FormEditor/listbox.png) | [Lista hierárquica](FormObjects/list_overview.md) / [List Box](FormObjects/listbox_overview.md) | L | +| ![](../assets/en/FormEditor/combo.png) | [Combo Box](FormObjects/comboBox_overview.md) / [Lista suspensa](FormObjects/dropdownList_Overview.md) / [Menu pop-up de imagens](FormObjects/picturePopupMenu_overview.md) | P | +| ![](../assets/en/FormEditor/button.png) | [Botão](FormObjects/button_overview.md) / [Botão Imagem](FormObjects/pictureButton_overview.md) / [Grade de botões](FormObjects/buttonGrid_overview.md) | B | +| ![](../assets/en/FormEditor/radio.png) | [Botão rádio](FormObjects/radio_overview.md) | R | +| ![](../assets/en/FormEditor/checkbox.png) | [Caixa de selecção](FormObjects/checkbox_overview.md) | C | +| ![](../assets/en/FormEditor/indicator.png) | [Indicador de Progresso](FormObjects/progressIndicator.md) / [Régua](FormObjects/ruler.md) / [Passo](FormObjects/stepper.md) / [Spinner](FormObjects/spinner.md) | I | +| ![](../assets/en/FormEditor/rectangle.png) | [Retângulo](FormObjects/shapes_overview.md#rectangle) / [Linha](FormObjects/shapes_overview.md#line) / [Oval](FormObjects/shapes_overview.md#oval) | S | +| ![](../assets/en/FormEditor/splitter.png) | [Divisor](FormObjects/splitters.md) / [Control de pestanas](FormObjects/tabControl.md) | D | +| ![](../assets/en/FormEditor/plugin.png) | [Área de plug-in ](FormObjects/pluginArea_overview.md) / [Subformulário](FormObjects/subform_overview.md) / [Área Web](FormObjects/webArea_overview.md) / [4D Write Pro](FormObjects/writeProArea_overview.md) / [4D View Pro](FormObjects/viewProArea_overview.md) | X | -To draw an object type, select the corresponding button and then trace the object in the form. Após criar um objeto, você pode modificar seu tipo utilizando a Lista de Propriedades. Hold down the **Shift** key as you draw to constrain the object to a regular shape. Lines are constrained to horizontal, 45°, or vertical, rectangles are constrained to squares, and ovals are constrained to circles. +Para desenhar um tipo de objeto, selecione o botão correspondente e, em seguida, trace o objeto no formulário. Após criar um objeto, você pode modificar seu tipo utilizando a Lista de Propriedades. Mantenha pressionada a tecla **Shift** ao desenhar para restringir o objeto a uma forma regular. As linhas são restritas à horizontal, 45° ou vertical, os retângulos são restritos a quadrados e as formas ovais são restritas a círculos. -The current variant of the theme is the object that will be inserted in the form. Ao clicar no lado direito de um botão, você acessa o menu de variantes: +A variante atual do tema é o objeto que será inserido no formulário. Ao clicar no lado direito de um botão, você acessa o menu de variantes: ![](../assets/en/FormEditor/objectBar.png) -You can click twice on the button so that it remains selected even after you have traced an object in the form (continual selection). This function makes creating several successive objects of the same type easier. Para cancelar uma seleção contínua, clique noutro objeto ou ferramenta. +Você pode clicar duas vezes no botão para ele permanecer selecionado mesmo após ter traçado um objeto no formulário (seleção contínua). Essa função facilita a criação de vários objetos sucessivos do mesmo tipo. Para cancelar uma seleção contínua, clique noutro objeto ou ferramenta. ### Lista de propriedades -Both forms and form objects have properties that control access to the form, the appearance of the form, and the behavior of the form when it is used. Form properties include, for example, the form’s name, its menu bar, and its size. Object Properties include, for example, an object’s name, its dimensions, its background color, and its font. +Tanto os formulários quanto os objetos de formulário têm propriedades que controlam o acesso ao formulário, a aparência do formulário e o comportamento do formulário quando ele é usado. As propriedades do formulário incluem, por exemplo, o nome do formulário, sua barra de menus e seu tamanho. As propriedades do objeto incluem, por exemplo, o nome de um objeto, suas dimensões, sua cor de fundo e sua fonte. -You can display and modify form and object properties using the Property List. It displays either form or objects properties depending on what you select in the editor window. +Você pode exibir e modificar o formulário e as propriedades do objeto usando a Lista de Propriedades. Ele exibe as propriedades do formulário ou dos objetos, dependendo do que você selecionar na janela do editor. -To display/hide the Property List, choose **Property List** from the **Form** menu or from the context menu of the Form editor. You can also display it by double-clicking in an empty area of the form. +Para exibir/ocultar a Lista de propriedades, selecione **Lista de propriedades** no menu **Formulário** ou no menu de contexto do editor de formulários. Você também pode exibi-lo clicando duas vezes em uma área vazia do formulário. #### Atalhos @@ -113,11 +113,11 @@ Pode utilizar os seguintes atalhos na Lista de Propriedades: - **Tecla de seta**s ↑ ↓: utilizada para ir de uma célula para outra. - **Teclas de seta** ← →: utilizadas para expandir/recolher temas ou entrar no modo de edição. -- **PgUp** and **PgDn**: Used to scroll the Property List contents. -- **Home** and **End**: Used to scroll the Property List so that the first or last cell is displayed. -- **Ctrl+click** (Windows) or **Command+click** (macOS) on an event: Used to select/deselect every event in the list, according to the initial state of the event on which you clicked. -- **Ctrl+click** (Windows) or **Command+click** (macOS) on a theme label: Used to Collapse/Expand every theme in the list. -- **Ctrl+click** (Windows) or **Command+click** (macOS) on a property value displayed in **bold**: Resets the property to its default. +- **PgUp** e **PgDn**: usado para rolar o conteúdo da Lista de Propriedades. +- **Página Inicial** e **Final**: usado para rolar a Lista de Propriedades para que a primeira ou última célula seja exibida. +- **Ctrl+clique** (Windows) ou **Comando+clique** (macOS) em um evento: usado para selecionar/desmarcar todos os eventos da lista, conforme o estado inicial do evento em que você clicou. +- **Ctrl+clique** (Windows) ou **Comando+clique** (macOS) em um rótulo de tema: usado para recolher/expandir todos os temas da lista. +- **Ctrl+clique** (Windows) ou **Comando+clique** (macOS) em um valor de propriedade exibido em **negrito**: redefine a propriedade para seu padrão. ## Manipulação de objetos formulário @@ -126,64 +126,64 @@ Pode utilizar os seguintes atalhos na Lista de Propriedades: É possível adicionar objetos a formulários de várias maneiras: -- By drawing the object directly in the form after selecting its type in the object bar (see [Using the object bar](#using-the-object-bar)) +- Desenhando o objeto diretamente no formato após selecionar seu tipo na barra de objeto (veja [Usando a barra de objeto](#using-the-object-bar)) - Arrastando e soltando o objeto da barra de objetos -- By drag-and-drop or copy-paste operations on an object selected from the preconfigured [object library](objectLibrary.md), +- Por arrastar e soltar ou copiar operações em um objeto selecionado da biblioteca [pré-configurada de objetos](objectLibrary.md), - Ao arrastar e largar um objeto de outro formulário, -- By dragging and dropping an object from the Explorer (fields) or from other editors in the Design environment (lists, pictures, etc.) +- Arrastando e soltando um objeto do Explorer (campos) ou de outros editores no ambiente Desenho (listas, imagens etc.) -Once the object is placed in the form, you can modify its characteristics using the Form editor. +Depois que o objeto for colocado no formulário, você poderá modificar suas características usando o editor de formulários. É possível trabalhar com dois tipos de objetos nos formulários: -- **Static objects** (lines, frames, background pictures, etc.): These objects are generally used for setting the appearance of the form and its labels as well as for the graphic interface. Estão disponíveis na barra de objetos do editor de formulários. You can also set their graphic attributes (size, color, font, etc.) and their resizing properties using the Property List. Os objetos estáticos não têm variáveis associadas como os objetos ativos. No entanto, é possível inserir objetos dinâmicos em objetos estáticos. +- **Objetos estáticos** (linhas, quadros, imagens de fundo, etc.): esses objetos são geralmente usados para definir a aparência do formulário e de seus rótulos, bem como para a interface gráfica. Estão disponíveis na barra de objetos do editor de formulários. Você também pode definir seus atributos gráficos (tamanho, cor, fonte, etc.) e suas propriedades de redimensionamento usando a Lista de Propriedades. Os objetos estáticos não têm variáveis associadas como os objetos ativos. No entanto, é possível inserir objetos dinâmicos em objetos estáticos. -- **Active objects**: These objects perform tasks or functions in the interface and can take many forms: fields, buttons, scrollable lists, etc. Each active object is associated with either a field or a variable. Cada objeto ativo é associado com um campo ou uma variável. +- **Objetos ativos**: esses objetos executam tarefas ou funções na interface e podem assumir várias formas: campos, botões, listas roláveis, etc. Cada objeto ativo é associado com um campo ou uma variável. ### Selecção de objectos -Before you can perform any operation on an object (such as changing a line width or font), you need to select the object that you want to modify. +Antes de executar qualquer operação em um objeto (como alterar a largura ou a fonte de uma linha), é necessário selecionar o objeto que deseja modificar. -Para seleccionar um objecto utilizando a barra de ferramentas: +Para selecionar um objeto usando a barra de ferramentas: 1. Clique na ferramenta Seta na barra de ferramentas.

    ![](../assets/en/FormEditor/selection.png)

    -

    Click the Arrow tool in the toolbar. When you move the pointer into the form area, it becomes a standard arrow-shaped pointer.

    . +

    Quando você move o ponteiro para a área do formulário, ele se torna um ponteiro padrão em forma de seta

    . 2. Clique no objecto que deseja selecionar. As pegas de redimensionamento identificam o objeto selecionado.

    ../assets/en/FormEditor/selectResize.png

    Para selecionar um objecto utilizando a Lista de Propriedades: -1. Escolher o nome do objecto na lista pendente da Lista de Objectos localizada no topo da Lista de Propriedades. Usando estes dois métodos, pode seleccionar um objecto que esteja escondido por outros objectos ou localizado fora da área visível da janela actual. Para desmarcar um objecto, clicar fora dos limites do objecto ou **Shift+click** o objecto. -> > > It is also possible to select objects by double-clicking them in the result window of ""Find in design" operation. +1. Escolher o nome do objecto na lista pendente da Lista de Objectos localizada no topo da Lista de Propriedades. Usando estes dois métodos, pode seleccionar um objecto que esteja escondido por outros objectos ou localizado fora da área visível da janela actual. To deselect an object that is part of a set of selected objects, hold down the **Shift** key and click the object. +> > > > It is also possible to select objects by double-clicking them in the result window of ""Find in design" operation. ### Selecção de múltiplos objectos Pode querer realizar a mesma operação em mais de um objecto de forma - por exemplo, para mover os objectos, alinhá-los, ou alterar a sua aparência. 4D permite-lhe selecionar vários objectos ao mesmo tempo. Há várias maneiras de seleccionar vários objectos: - Escolher **Seleccionar Todos** a partir do menu Editar para seleccionar todos os objectos. -- Right-click on the object and choose the **Select Similar Objects** command in the context menu. -- Hold down the **Shift** key and click the objects you want to select. -- Start at a location outside the group of objects you want to select and drag a marquee (sometimes called a selection rectangle) around the objects. When you release the mouse button, if any part of an object lies within or touches the boundaries of the selection rectangle, that object is selected. -- Hold down the **Alt** key (Windows) or the **Option** key (macOS) and draw a marquee. Os objetos que estiverem completamente no retângulo serão selecionados. +- Clique com o botão direito no objeto e escolha o comando **Selecione objetos semelhantes** no menu de contexto. +- Mantenha pressionada a tecla **Shift** e clique nos objetos que deseja selecionar. +- Comece em uma localização fora do grupo de objetos que você deseja selecionar e arraste um retângulo de seleção em torno dos objetos. Quando você soltar o botão do mouse, se qualquer parte de um objeto estiver dentro ou tocar os limites do retângulo de seleção, esse objeto é selecionado. +- Segure a tecla **Alt** (Windows) ou a tecla **Opção** (macOS) e desenhe um retângulo de seleção. Os objetos que estiverem completamente no retângulo serão selecionados. A figura abaixo mostra um marque sendo desenhado para selecionar dois objetos: ![](../assets/en/FormEditor/selectMultiple.png) -To deselect an object that is part of a set of selected objects, hold down the **Shift** key and click the object. Os outros objetos permanecem selecionados. To deselect all the selected objects, click outside the boundaries of all the objects. +Para desmarcar um objecto, clicar fora dos limites do objecto ou **Shift+click** o objecto. Os outros objetos permanecem selecionados. Para desmarcar todos os objetos selecionados, clique fora dos limites de todos os objetos. ### Duplicação de objectos -Pode duplicar qualquer objecto na forma, incluindo objectos activos. Copies of active objects retain all the properties of the original, including name, type, standard action, display format, and object method. +Pode duplicar qualquer objecto na forma, incluindo objectos activos. Cópias de objetos ativos retêm todas as propriedades do original, incluindo nome, tipo, padrão ação, formato de exibição e método objeto. -You can duplicate an object directly using the Duplicate tool in the Tools palette or use the Duplicate Many dialog box to duplicate an object more than once. Also, using this dialog box, you can set the distance between two copies. +Você pode duplicar um objeto diretamente usando a ferramenta Duplicada na paleta de ferramentas ou usar a caixa de diálogo Duplicado muitas vezes para duplicar um objeto mais de uma vez. Além disso, usando esta caixa de diálogo, você pode definir a distância entre duas cópias. Para duplicar um ou mais objectos: 1. Seleccione os objectos que pretende agrupar. 2. Escolher **Duplicar** a partir do menu **Editar**. 4D cria uma cópia de cada objecto selecionado e coloca a cópia em frente e ligeiramente para o lado do original. -3. Deslocar a cópia para a localização pretendida. If you choose the Duplicate menu item again, 4D creates another copy of each object and moves it the exact same distance and direction from the first copy. If you need to distribute copies of the object along a line, you should use the following procedure. Duplicate the original object, move the copy to another location in the form, and then duplicate the copy. The second copy is automatically placed in the same relation to the first copy as the first copy was in relation to the original object. As cópias subsequentes também são colocadas na mesma relação com seus originais. A figura abaixo mostra como funciona esse posicionamento relativo das cópias: +3. Deslocar a cópia para a localização pretendida. Se você selecionar o item de menu Duplicar novamente, o 4D criará outra cópia de cada objeto e a moverá exatamente na mesma distância e direção da primeira cópia. Se precisar distribuir cópias do objeto ao longo de uma linha, use o procedimento a seguir. Duplique o objeto original, mova a cópia para outro local no formulário e, em seguida, duplique a cópia. A segunda cópia é automaticamente colocada na mesma relação com a primeira cópia que a primeira cópia estava em relação ao objeto original. As cópias subsequentes também são colocadas na mesma relação com seus originais. A figura abaixo mostra como funciona esse posicionamento relativo das cópias: ![](../assets/en/FormEditor/duplicateObjects.png) @@ -193,84 +193,84 @@ A caixa de diálogo "Duplicar muitos" aparece quando se seleciona um ou mais obj ![](../assets/en/FormEditor/duplcateMany.png) -- Na área superior, introduza o número de colunas e linhas (linhas) de objectos que pretende obter. Por exemplo, se quiser três colunas e duas linhas de objectos, introduza 3 na área de Coluna(s) e 2 na área de Linha(s). Se quiser três novas cópias horizontais de um objecto, introduza 4 na área de Coluna(s) e deixe o valor por defeito, 1, na área de Linha(s). +- Na área superior, introduza o número de colunas e linhas (linhas) de objectos que pretende obter. Por exemplo, se quiser três colunas e duas linhas de objectos, introduza 3 na área de Coluna(s) e 2 na área de Linha(s). Na área superior, introduza o número de colunas e linhas (linhas) de objectos que pretende obter. -- Para linhas e colunas, defina o offset que deseja deixar entre cada cópia. O valor deve ser expresso em pontos. It will be applied to each copy, or copies, in relation to the original object. For example, if you want to leave a vertical offset of 20 points between each object and the height of the source object is 50 points, enter 70 in the column’s “Offset” area. +- Para linhas e colunas, defina o offset que deseja deixar entre cada cópia. O valor deve ser expresso em pontos. Será aplicado a cada cópia, ou cópia, em relação ao objeto original. ou exemplo, se você quiser deixar um deslocamento vertical de 20 pontos entre cada objeto e a altura do objeto fonte é de 50 pontos insira 70 na área “Offset” da coluna. -- Se desejar criar uma matriz de variáveis, seleccione a opção **Number Variables** e seleccione a direcção em que as variáveis devem ser numeradas, seja por linha(s) ou por coluna(s). Esta opção só está activa quando o objecto seleccionado é uma variável. For more information on this option, refer to **Duplicating on a matrix** in the *Design Reference*. +- Se desejar criar uma matriz de variáveis, seleccione a opção **Number Variables** e seleccione a direcção em que as variáveis devem ser numeradas, seja por linha(s) ou por coluna(s). Esta opção só está activa quando o objecto seleccionado é uma variável. Para obter mais informações sobre essa opção, consulte **Duplicação em uma matriz** no *Manual de Desenho*. ### Mover objetos -You can move any graphic or active object in the form including fields and objects created with a template. Ao mover um objeto, existem as seguintes opções: +É possível mover qualquer gráfico ou objeto ativo no formulário, inclusive campos e objetos criados com um modelo. Ao mover um objeto, existem as seguintes opções: - Mova o objeto arrastando-o, - Mova o objeto um píxel de cada vez utilizando as teclas de seta, - Mova o objeto em etapas usando as teclas de seta (etapas de 20 píxeis por padrão), -Ao começar a arrastar o objeto selecionado, seus manipuladores desaparecem. 4D displays markers that show the location of the object’s boundaries in the rulers so that you can place the object exactly where you want it. Tenha cuidado para não arrastar uma alça. Dragging a handle resizes the object. You can press the **Shift** key to carry out the move with a constraint. +Ao começar a arrastar o objeto selecionado, seus manipuladores desaparecem. 4D exibe marcadores que mostram a localização dos limites do objeto nas réguas para você poder posicionar o objeto exatamente onde deseja. Tenha cuidado para não arrastar uma alça. Arrastar uma alça redimensiona o objeto. Você pode pressionar a tecla **Shift** para executar o movimento com uma restrição. -When the [Magnetic Grid](#using-the-magnetic-grid) is on, objects are moved in stages indicating noticeable locations. +Quando o [Grelha Magnética](#using-the-magnetic-grid) está ativado, os objetos são movidos em etapas, indicando locais perceptíveis. Para mover um objeto um píxel de cada vez: -- Select the object or objects and use the arrow keys on the keyboard to move the object. Each time you press an arrow key, the object moves one pixel in the direction of the arrow. +- Selecione o objeto ou objetos e use as setas do teclado para mover o objeto. Cada vez que você pressiona uma tecla de seta, o objeto se move um píxel na direção da seta. Para mover um objeto em passos: -- Select the object or objects you want to move and hold down the **Shift** key and use the arrow keys to move the object by steps. Por padrão, os passos são de 20 pixéis de cada vez. Pode alterar este valor na página Formulários das Preferências. +- Selecione o objeto ou objetos que deseja mover e mantenha pressionada a tecla **Shift** e use as teclas de seta para mover o objeto por etapas. Por padrão, os passos são de 20 pixéis de cada vez. Pode alterar este valor na página Formulários das Preferências. ### Agrupamento de objectos -4D lets you group objects so that you can select, move, and modify the group as a single object. Objects that are grouped retain their position in relation to each other. You would typically group a field and its label, an invisible button and its icon, and so forth. +4D permite agrupar objetos para você poder selecionar, mover e modificar o grupo como um único objeto. Os objetos agrupados mantêm a sua posição em relação aos outros. Normalmente, você agruparia um campo e seu rótulo, um botão invisível e seu ícone, e assim por diante. -When you resize a group, all the objects in the group are resized proportionally (except text areas, which are resized in steps according to their font sizes. +Quando você redimensiona um grupo, todos os objetos do grupo são redimensionados proporcionalmente (exceto as áreas de texto, que são redimensionadas em etapas de acordo com o tamanho da fonte). Você pode desagrupar um grupo de objetos a qualquer momento e tratá-los novamente como objetos independentes. -Um objecto activo que tenha sido agrupado deve ser desarticulado antes de se poder aceder às suas propriedades ou método. However, it is possible to select an object belonging to a group without degrouping the set: to do this, **Ctrl+click** (Windows) or **Command+click** (macOS) on the object (the group must be selected beforehand). +Um objecto activo que tenha sido agrupado deve ser desarticulado antes de se poder aceder às suas propriedades ou método. No entanto, é possível selecionar um objeto pertencente a um grupo sem desagrupar o conjunto: para isso, **Ctrl+clique** (Windows) ou **Command+clique** (macOS) no objeto (o grupo deve ser selecionado antes). O agrupamento só afeta os objetos no editor de formulários. Quando o formulário é executado, todos os objetos agrupados agem como se não estivessem agrupados. -> It is not possible to group objects belonging to different views and only those objects belonging to the current view can be grouped (see [Views](#views) ). +> Não é possível agrupar objetos pertencentes a diferentes visualizações e somente os objetos pertencentes à visualização atual podem ser agrupados (consulte [Views](#views)). Para agrupar objectos: 1. Selecione o objecto agrupado que pretende desagrupar. -2. Selecione **Grupo** no menu Objeto. OR Click the Group button in the toolbar of the Form editor:

    ![](../assets/en/FormEditor/group.png)

    -Choose **Group** from the Object menu.OR Click the Group button in the toolbar of the Form editor:![](../assets/en/FormEditor/group.png) 4D marks the boundary of the newly grouped objects with handles. No handles mark the boundary of any of the individual objects within the group. Now, when you modify the grouped object, you change all the objects that make up the group. +2. Selecione **Grupo** no menu Objeto. OU Clique no botão do Grupo na barra de ferramentas no editor de formulário:

    ![](../assets/en/FormEditor/group.png)

    +4D marca a borda dos objetos recém-agrupados com alças. Nenhum manipulador marca o limite de nenhum dos objetos individuais no grupo. Agora, quando você modifica o objeto agrupado, altere todos os objetos que compõem o grupo. Para desagrupar objetos: 1. Seleccione o objecto ou objectos que pretende duplicar. -2. Choose **Ungroup** from the **Object** menu.ORClick the **Ungroup** button (variant of the **Group** button) in the toolbar of the Form editor.

    OU

    Click the **Ungroup** button (variant of the **Group** button) in the toolbar of the Form editor.

    If Ungroup is dimmed, this means that the selected object is already separated into its simplest form.4D marks the boundaries of the individual objects with handles.

    4D marca os limites dos objetos individuais com alças. +2. Escolher **Desagrupar** a partir do menu **Objetos**.

    OU

    Clique no botão **Desagrupamento** (variante do botão **Grupo**) na barra de ferramentas do editor do formulário.

    Se **Desagrupamento** for escurecido, isso significa que o objeto selecionado já está separado em sua forma mais simples.

    4D marca os limites dos objetos individuais com alças. ### Alinhamento de objetos Pode-se alinhar objectos uns com os outros ou utilizar uma grelha invisível no formulário. -- When you align one object to another, you can align it to the top, bottom, side, or horizontal or vertical center of the other object. You can directly align a selection of objects using the alignment tools or apply more advanced alignment settings using the Alignment Assistant. The latter option allows you, for example, to set the object that will be used as the position reference and to preview the alignment in the form before applying it. -- When you use the invisible grid, each object can be aligned manually with others based on “noticeable” positions which are depicted with dotted lines that appear when the object being moved approaches other objects. +- Quando você alinha um objeto com outro, você pode alinhá-lo ao topo, no topo, no lado ou no centro horizontal, ou vertical do outro objeto. Você pode alinhar diretamente uma seleção de objetos usando as ferramentas de alinhamento ou aplicar configurações de alinhamento mais avançadas usando o Assistente de Alinhamento. A última opção permite, por exemplo, definir o objeto que será usado como referência da posição e pré-visualizar o alinhamento na forma antes de aplicá-lo. +- Quando você usa a grade invisível, cada objeto pode ser alinhado manualmente com os outros com base em posições "perceptíveis" representadas por linhas pontilhadas que aparecem quando o objeto que está sendo movido se aproxima de outros objetos. #### Usando as ferramentas de alinhamento instantâneo -As ferramentas de alinhamento na barra de ferramentas e no submenu Alinhar do menu Objecto permitem alinhar rapidamente os objectos seleccionados. +As ferramentas de alinhamento na barra de ferramentas e no submenu Alinhar do menu Objeto permitem alinhar rapidamente os objetos selecionados. ![](../assets/en/FormEditor/alignmentMenu.png) -When 4D aligns objects, it leaves one selected object in place and aligns the remaining objects to that one. Este objecto é a "âncora." Utiliza o objecto que se encontra mais afastado na direção do alinhamento como âncora e alinha os outros objetos com esse objecto. Por exemplo, se quiser realizar um alinhamento correcto num conjunto de objectos, o objecto mais à direita será utilizado como âncora. The figure below shows objects with no alignment, "aligned left", "aligned horizontally by centers", and "aligned right": +Quando 4D se alinha em objetos, ele deixa um objeto selecionado no lugar e alinha os objetos restantes a este. Este objecto é a "âncora." Utiliza o objecto que se encontra mais afastado na direção do alinhamento como âncora e alinha os outros objetos com esse objecto. Por exemplo, se quiser realizar um alinhamento correcto num conjunto de objectos, o objecto mais à direita será utilizado como âncora. A figura abaixo mostra objetos sem alinhamento, "alinhados à esquerda", "alinhados horizontalmente por centros" e "alinhados à direita": ![](../assets/en/FormEditor/alignmentTools.png) #### Usando o assistente de alinhamento -The Alignment Assistant allows you to perform any type of alignment and/or distribution of objects. +O Assistente de Alinhamento permite que você execute qualquer tipo de alinhamento e/ou distribuição de objetos. ![](../assets/en/FormEditor/alignmentAssistant.png) -To display this dialog box, select the objects you want to align then choose the **Alignment** command from the **Align** submenu in the **Object** menu or from the context menu of the editor. +Para exibir esta caixa de diálogo, selecione os objetos que você deseja alinhar e escolha o comando **Alinhamento** a partir do menu **Alinhar** no menu **Objeto** ou no menu de contexto do editor. -- In the “Left/Right Alignment” and/or “Top/Bottom Alignment” areas, click the icon that corresponds to the alignment you want to perform.

    A área de exemplo apresenta os resultados da sua seleção.

    +- Nas áreas "Alinhamento Esquerda/Direita" e/ou "Alinhamento Superior/Inferior", clique no ícone que corresponde ao alinhamento que você deseja executar.

    A área de exemplo apresenta os resultados da sua seleção.

    -- To perform an alignment that uses the standard anchor scheme, click **Preview** or **Apply**. In this case 4D uses the object that is the furthest in the alignment’s direction as the anchor and aligns the other objects to that object. Por exemplo, se quiser realizar um alinhamento correcto num conjunto de objectos, o objecto mais à direita será utilizado como âncora. For instance, if you want to perform a right alignment on a set of objects, the rightmost object will be used as the anchor.OR:To align objects to a specific object, select the **Align on** option and select the object to which you want the other objects to be aligned from the object list.

    Para alinhar objetos a um objeto específico, selecione a opção **Alinhar em** e selecione o objeto ao qual deseja que os outros objetos sejam alinhados na lista de objetos. Neste caso, a posição do objeto de referência não será alterada.

    +- Para executar um alinhamento que use o esquema de âncora padrão, clique em **Prévia** ou **Aplicar**. Nesse caso, 4D usa o objeto que está mais distante na direção do alinhamento como âncora e alinha os outros objetos a esse objeto. Por exemplo, se quiser realizar um alinhamento correcto num conjunto de objectos, o objecto mais à direita será utilizado como âncora. OU:

    Para alinhar objetos a um objeto específico, selecione a opção **Alinhar em** e selecione o objeto ao qual deseja que os outros objetos sejam alinhados na lista de objetos. Neste caso, a posição do objeto de referência não será alterada.

    Pode pré-visualizar os resultados do alinhamento clicando no botão **Pré-visualização**. Os objetos são então alinhados no editor de formulários, mas como a caixa de diálogo não desaparece, ainda é possível cancelar ou aplicar o alinhamento. > Esta caixa de diálogo permite-lhe alinhar e distribuir objetos numa única operação. Para mais informações sobre como distribuir objetos, consultar [Distribuir objetos](#distributing-objects). @@ -292,103 +292,103 @@ No que diz respeito à distribuição dos objetos, 4D propõe uma distância bas ![](../assets/en/FormEditor/magneticGrid2.png) -Esta operação aplica-se a todos os tipos de objetos dos formulários. A grelha magnética pode ser ativada ou desactivada em qualquer altura utilizando o comando **Ativar a grade magnética** no menu **Formulário** ou no menu contextual do editor. It is also possible to set the activation of this feature by default on the **Preferences** > **Forms** page (**Activate auto alignment by default** option). You can manually activate or deactivate the magnetic grid when an object is selected by pressing the **Ctrl** (Windows) or **Control** (macOS) key . +Esta operação aplica-se a todos os tipos de objetos dos formulários. A grelha magnética pode ser ativada ou desactivada em qualquer altura utilizando o comando **Ativar a grade magnética** no menu **Formulário** ou no menu contextual do editor. Também é possível definir a ativação desta funcionalidade por padrão na **Preferências** > **Formulários** página (opção **Ativar auto alinhamento por padrão**). Você pode ativar ou desativar manualmente a grade magnética quando um objeto for selecionado pressionando a tecla **Ctrl** (Windows) ou **Control** (macOS). > O magnetismo também leva à observação de etapas ao redimensionar objetos manualmente. ### Distribuição de objectos -You can distribute objects so that they are set out with an equal amount of space between them. To do this, you can distribute objects using either the Distribute tools in the Tools palette or the Alignment Assistant. Este último permite-lhe alinhar e distribuir objetos numa única operação. -> When the [Magnetic Grid](#using-the-magnetic-grid) is on, a visual guide is also provided for distribution when an object is moved manually. +Você pode distribuir os objetos de modo que eles fiquem dispostos com um espaço igual entre eles. Para fazer isso, você pode distribuir objetos usando as ferramentas Distribuir na paleta Ferramentas ou o Assistente de alinhamento. Este último permite-lhe alinhar e distribuir objetos numa única operação. +> Quando a [Grade magnética](#using-the-magnetic-grid) está ativada, um guia visual também é fornecido para distribuição quando um objeto é movido manualmente. Para distribuir objetos com igual espaçamento: 1. Selecione três ou mais objetos e clique na ferramenta Distribuir pretendida. -2. In the toolbar, click on the distribution tool that corresponds to the distribution you want to apply.

    ![](../assets/en/FormEditor/distributionTool.png)

    OU

    Selecione um comando de distribuição no submenu **Alinear** do menu **Objeto** ou no menu contextual do editor.

    In the toolbar, click on the distribution tool that corresponds to the distribution you want to apply.![](../assets/en/FormEditor/distributionTool.png)ORSelect a distribution menu command from the **Align** submenu in the **Object** menu or from the context menu of the editor.4D distributes the objects accordingly. Objects are distributed using the distance to their centers and the largest distance between two consecutive objects is used as a reference. +2. Na barra de ferramentas, clique na ferramenta de distribuição que corresponde à distribuição que você deseja aplicar.

    ![](../assets/en/FormEditor/distributionTool.png)

    OU

    Selecione um comando de distribuição no submenu **Alinear** do menu **Objeto** ou no menu contextual do editor.

    4D distribui os objetos em conformidade. Os objetos são distribuídos usando a distância para seus centros, e a maior distância entre dois objetos consecutivos é usada como referência. Para distribuir objetos utilizando a caixa de diálogo Alinhar e distribuir: 1. Seleccione os objectos que pretende distribuir. -2. Choose the **Alignment** command from the **Align** submenu in the **Object** menu or from the context menu of the editor. Aparece a seguinte caixa de diálogo:![](../assets/en/FormEditor/alignmentAssistant.png) +2. Escolha o comando **Alinhamento** do submenu **Alinhar** no menu **Objeto** ou no menu de contexto do editor. Aparece a seguinte caixa de diálogo:![](../assets/en/FormEditor/alignmentAssistant.png) -3. In the Left/Right Alignment and/or Top/Bottom Alignment areas, click the standard distribution icon: ![](../assets/en/FormEditor/horizontalDistribution.png)(Standard horizontal distribution icon)The example area displays the results of your selection.![](../assets/en/FormEditor/horizontalDistribution.png)

    (Ícone de distribuição horizontal standard)

    A área de exemplo apresenta os resultados da sua seleção. +3. Nas áreas Alinhamento Esquerdo/Direita e/ou Alinhamento Superior/Inferior, clique no ícone de distribuição padrão: ![](../assets/en/FormEditor/horizontalDistribution.png)

    (Ícone de distribuição horizontal standard)

    A área de exemplo apresenta os resultados da sua seleção. -4. To perform a distribution that uses the standard scheme, click **Preview** or *Apply*.

    In this case 4D will perform a standard distribution, so that the objects are set out with an equal amount of space between them.OR:To execute a specific distribution, select the Distribute option (for example if you want to distribute the objects based on the distance to their right side).

    For instance, if you want to perform a right alignment on a set of objects, the rightmost object will be used as the anchor.OR:To align objects to a specific object, select the **Align on** option and select the object to which you want the other objects to be aligned from the object list.

    Para executar uma distribuição específica, selecione a opção **Distribuir** (por exemplo, se você quiser distribuir os objetos com base na distância até o lado direito). Esta opção funciona como um interruptor. If the Distribute check box is selected, the icons located below it perform a different function:

    +4. Para realizar uma distribuição que use o esquema padrão, clique em **Pré-visualizar** ou *Aplicar*.

    Neste caso 4D irá executar uma distribuição padrão, de modo que os objetos sejam definidos com a mesma quantidade de espaço entre eles.

    OU:

    Para executar uma distribuição específica, selecione a opção **Distribuir** (por exemplo, se você quiser distribuir os objetos com base na distância até o lado direito). Esta opção funciona como um interruptor. Se a caixa de seleção Distribui for selecionada, os ícones localizados abaixo dele executam uma função diferente:

    -- Horizontally, the icons correspond to the following distributions: evenly with respect to left sides, centers (hor.) and right sides of the selected objects. -- Vertically, the icons correspond to the following distributions: evenly with respect to top edges, centers (vert.) and bottom edges of the selected objects. +- Horizontalmente, os ícones correspondem às seguintes distribuições: igualmente com relação aos lados esquerdo, centros (hor.) e lados direito dos objetos selecionados. +- Verticalmente, os ícones correspondem às seguintes distribuições: igualmente com respeito às arestas superiores, centros (vert.) e as bordas inferiores dos objetos selecionados. - You can preview the actual result of your settings by clicking on the **Preview** button: the operation is carried out in the Form editor but the dialog box stays in the foreground. You can then **Cancel** or **Apply** the modifications. -> Esta caixa de diálogo permite-lhe combinar o alinhamento e a distribuição de objetos. For more information about alignment, refer to [Aligning objects](#aligning-objects). + Você pode visualizar o resultado real de suas configurações clicando no botão **Prévia**: a operação é executada no editor de formulários, mas a caixa de diálogo permanece em primeiro plano. Você pode então **Cancelar** ou **Aplicar** as modificações. +> Esta caixa de diálogo permite-lhe combinar o alinhamento e a distribuição de objetos. Para mais informações sobre alinhamento, consulte [Alinhamento de objetos](#aligning-objects). ### Gerenciar os planos dos objetos -You will sometimes have to rearrange objects that are obstructing your view of other objects in the form. For example, you may have a graphic that you want to appear behind the fields in a form. 4D provides four menu items, **Move to Back**, **Move to Front**, **Up One Level** and **Down One Level** that let you “layer” objects on the form. These layers also determine the default entry order (see Modifying data entry order). A figura abaixo mostra objetos à frente e atrás de outros objetos: +Às vezes, será necessário reorganizar objetos que estejam obstruindo a visualização de outros objetos no formulário. Por exemplo, você pode ter um gráfico que deseja que apareça atrás dos campos em um formulário. 4D oferece quatro itens de menu, **Mover para trás**, **Mover para frente**, **Subir um nível** e **Descer um nível**, que permitem organizar os planos de objetos no formulário. Estas camadas também determinam a ordem padrão de entrada (ver modificação de ordem de entrada de dados). A figura abaixo mostra objetos à frente e atrás de outros objetos: ![](../assets/en/FormEditor/layering.png) Para mover um objeto para outro nível, selecione-o e escolha: -- One of the **Move to Back**, **Move to Front**, **Up One Level** and **Down One Level** commands of the Object menu, -- One of the commands in the **Level>** submenu in the context menu of the editor, -- One of the commands associated with the level management button of the toolbar. +- Um dos comandos **Mover para trás**, **Mover para frente**, **Subir um nível** e **Descer um nível** do menu Objeto, +- Um dos comandos no submenu **Nível>** no menu de contexto do editor, +- Um dos comandos associados com o botão de gerenciamento de nível da barra de ferramentas. ![](../assets/en/FormEditor/level2.png) -> When several objects are superimposed, the **Ctrl+Shift+click** / **Command+Shift+click** shortcut can be used to select each object successively by going down a layer with each click. +> Quando vários objetos são sobrepostos, o atalho **Ctrl+Shift+clique** / **Comando+Shift+clique**pode ser usado para selecionar cada objeto sucessivamente, descendo uma camada a cada clique. -When ordering different levels, 4D always goes from the background to the foreground. As a result, the previous level moves the selection of objects one level towards the background. The next level moves the selection one level towards the foreground of the form. +Ao ordenar diferentes níveis, 4D sempre vai de segundo plano para o primeiro plano. Como resultado, o nível anterior move a seleção de objetos um nível para o plano de fundo. O próximo nível move a seleção um nível em direção ao primeiro plano do formulário. ### Ordem de introdução de dados -The data entry order is the order in which fields, subforms, and other active objects are selected as you hit the **Tab** or the **Carriage return** key in an input form. It is possible to move through the form in the opposite direction (reverse data entry order) by pressing the **Shift+Tab** or **Shift+Carriage** return keys. +A ordem de entrada de dados é a ordem em que os campos, subformulários e outros objetos ativos são selecionados quando você pressiona a tecla **Tab** ou **Returno de carruagem** em um formulário de entrada. É possível percorrer o formulário na direção oposta (ordem inversa de entrada de dados) pressionando as teclas de retorno **Shift+Tab** ou **Shift+Carriagem**. -> You can change the entry order at runtime using the `FORM SET ENTRY ORDER` and `FORM GET ENTRY ORDER` commands. +> Você pode alterar a ordem de entrada em tempo de execução usando os comandos `FORM SET ENTRY ORDER` e `FORM GET ENTRY ORDER`. -Every object that supports the focusable property is included in the data entry order by default. +Cada objeto que suporta a propriedade focalizável é incluído na ordem de entrada de dados por padrão. -Setting the entry order for a JSON form is done with the [`entryOrder`](properties_JSONref.md) property. +Definir a ordem de entrada para um formulário JSON é feito com a propriedade [`entryOrder`](properties_JSONref.md). -If you don’t specify a custom entry order, by default 4D uses the layering of the objects to determine the entry order in the direction “background towards foreground.” The standard entry order thus corresponds to the order in which the objects were created in the form. +Se você não especificar um pedido de entrada personalizado, por padrão 4D usa a camada dos objetos para determinar a ordem de entrada na direção "fundo em primeiro plano". A ordem padrão de entrada corresponde assim à ordem em que os objetos foram criados no formulário. -Em alguns formulários, é necessária uma ordem de entrada de dados personalizada. Below, for example, additional fields related to the address have been added after the creation of the form. The resulting standard entry order thus becomes illogical and forces the user to enter the information in an awkward manner: +Em alguns formulários, é necessária uma ordem de entrada de dados personalizada. Abaixo, por exemplo, campos adicionais relacionados ao endereço foram adicionados após a criação do formulário. A ordem padrão resultante de entrada se torna ilógica e força o usuário a inserir a informação de forma estranha: ![](../assets/en/FormEditor/entryOrder1.png) -In cases such as this, a custom data entry order allows you to enter the information in a more logical order: +Em casos como esse, uma ordem de entrada de dados personalizada permite que você insira as informações em uma ordem mais lógica: ![](../assets/en/FormEditor/entryOrder2.png) #### Visualização e alteração da ordem de introdução de dados -You can view the current entry order either using the “Entry order” shields, or by using the “Entry order” mode. No entanto, você só pode modificar a ordem de entrada usando o modo “Ordem de entrada”. +Você pode visualizar a ordem de entrada atual usando os escudos "Ordem de entrada" ou usando o modo "Ordem de entrada". No entanto, você só pode modificar a ordem de entrada usando o modo “Ordem de entrada”. -This paragraph describes viewing and modifying the entry order using the “Entry order” mode. For more information about viewing the entry order using shields, refer to [Using shields](#using-shields). +Este parágrafo descreve a visualização e a modificação da ordem de entrada usando o modo "Ordem de entrada". Para obter mais informações sobre a visualização da ordem de entrada usando escudos, consulte [Usando escudos](#using-shields). Para ver ou alterar a ordem de entrada: -1. When you are satisfied with the data entry order, click any unselected tool in the toolbar or choose **Entry Order** from the **Form** menu.4D returns to normal operation of the Form editor.

    ![](../assets/en/FormEditor/zOrder.png)

    +1. Escolha **Ordem de Entrada** a partir do menu **Formulário** ou clique no botão da Ordem de Entrada na barra de ferramentas da janela:

    ![](../assets/en/FormEditor/zOrder.png)

    - Choose **Entry Order** from the **Form** menu or click on the Entry Order button in the toolbar of the window:![](../assets/en/FormEditor/zOrder.png)The pointer turns into an entry order pointer and 4D draws a line in the form showing the order in which it selects objects during data entry. A visualização e alteração da ordem de introdução de dados são as únicas acções que pode realizar até clicar em qualquer ferramenta na paleta Ferramentas. + O ponteiro se transforma em um ponteiro de ordem de entrada e 4D desenha uma linha na forma mostrando a ordem em que ele seleciona objetos durante a entrada de dados. A visualização e alteração da ordem de introdução de dados são as únicas acções que pode realizar até clicar em qualquer ferramenta na paleta Ferramentas. -2. To change the data entry order, position the pointer on an object in the form and, while holding down the mouse button, drag the pointer to the object you want next in the data entry order.![](../assets/en/FormEditor/entryOrder3.png)4D will adjust the entry order accordingly.

    ![](../assets/en/FormEditor/entryOrder3.png)

    4D irá ajustar a ordem de entrada em conformidade. +2. Para alterar a ordem de entrada de dados, posicionar o ponteiro sobre um objeto na forma e, mantendo pressionado o botão do rato, arrastar o ponteiro para o objeto que se pretende a seguir na ordem de entrada de dados.

    ![](../assets/en/FormEditor/entryOrder3.png)

    4D irá ajustar a ordem de entrada em conformidade. 3. Repita a etapa 2 tantas vezes quantas forem necessárias para definir a ordem de introdução de dados que desejar. 4. Quando estiver satisfeito com a ordem de entrada de dados, clique em qualquer ferramenta não selecionada na barra de ferramentas ou escolha **Ordem de entrada** a partir do menu **Formulário**. 4D regressa ao funcionamento normal do editor de formulários. -> Somente a ordem de entrada da página atual do formulário é exibida. If the form contains enterable objects on page 0 or coming from an inherited form, the default entry order is as follows: Objects from page 0 of the inherited form > Objects from page 1 of the inherited form > Objects from page 0 of the open form > Objects from the current page of the open form. +> Somente a ordem de entrada da página atual do formulário é exibida. Se o formulário contiver objetos inseríveis na página 0 ou provenientes de um formulário herdado, a ordem de entrada padrão será a seguinte: Objetos da página 0 do formulário herdado > Objetos da página 1 do formulário herdado > Objetos da página 0 do formulário aberto > Objetos da página atual do formulário aberto. #### Utilização de um grupo de introdução de dados -While you are changing the data entry order, you can select a group of objects in a form so that the standard data entry order applies to the objects within the group. This allows you to easily set the data entry order on forms in which fields are separated into groups or columns. +Enquanto estiver alterando a ordem de entrada de dados, é possível selecionar um grupo de objetos em um formulário para que a ordem de entrada de dados padrão se aplique aos objetos do grupo. Isso permite que você defina facilmente a ordem de entrada de dados em formulários nos quais os campos são separados em grupos ou colunas. Para criar um grupo de entrada de dados: 1. Escolha **Ordem de entrada** a partir do menu *Formulário* ou clique no botão na barra de ferramentas. 2. Desenhe uma seleção ao redor dos objetos que você deseja agrupar para entrada de dados. -When you release the mouse button, the objects enclosed or touched by the rectangle follow the standard data entry order. A ordem de entrada de dados para os restantes objetos ajustam-se conforme necessário. +Quando você solta o botão do mouse, os objetos contidos ou tocados pelo retângulo seguem a ordem padrão de entrada de dados. A ordem de entrada de dados para os restantes objetos ajustam-se conforme necessário. #### Excluir um objeto da ordem de entrada @@ -398,13 +398,13 @@ Por defeito, todos os objetos que suportam a propriedade focusable são incluíd 2. **Maiúsculas-clic** no objeto -3. **right-click** on the object and select **Remove from entry order** option from the context menu +3. **clique com o botão direito** no objeto e selecione **Remover da ordem de entrada** opção do menu de contexto ## Pré-visualização CSS -The Form editor allows you to view your forms with or without applied CSS values. +O editor de formulário permite que você visualize seus formulários com ou sem valores CSS aplicados. -When [style sheets](createStylesheet.md) have been defined, forms (including inherited forms and subforms) are opened in the CSS Preview mode for your operating system by default. +Quando as [folhas de estilo](createStylesheet.md) forem definidas, os formulários (inclusive os formulários herdados e os subformulários) são abertos no modo CSS Preview do seu sistema operacional por padrão. ### Selecção do modo de pré-visualização do CSS @@ -416,19 +416,19 @@ Seleccione um dos seguintes modos de pré-visualização a partir do menu: | Ícone barra de ferramentas | Modo de pré-visualização CSS | Descrição | | --------------------------------------- | ---------------------------- | --------------------------------------------------------------------------------------------------------------------------------- | -| ![](../assets/en/FormEditor/cssNo.png) | Nenhum | No CSS values are applied in the form and no CSS values or icons displayed in the Property List. | +| ![](../assets/en/FormEditor/cssNo.png) | Nenhum | Nenhum valor de CSS é aplicado no formulário e nenhum valor ou ícone de CSS é exibido na Lista de propriedades. | | ![](../assets/en/FormEditor/cssWin.png) | Windows | Os valores CSS para a plataforma Windows são aplicados no formulário. Valores CSS e ícones apresentados na Lista de Propriedades. | | ![](../assets/en/FormEditor/cssMac.png) | macOS | Os valores CSS para a plataforma macOS são aplicados no formulário. Valores CSS e ícones apresentados na Lista de Propriedades. | -> If a font size too large for an object is defined in a style sheet or JSON, the object will automatically be rendered to accommodate the font, however the size of the object will not be changed. +> Se um tamanho de fonte muito grande para um objeto for definido em uma folha de estilo ou JSON, o objeto será automaticamente renderizado para acomodar a fonte, mas o tamanho do objeto não será alterado. -The CSS preview mode reflects the priority order applied to style sheets vs JSON attributes as defined in the [JSON vs Style Sheet](stylesheets.html#json-vs-style-sheet) section. +O modo de visualização CSS reflete a ordem de prioridade aplicada às folhas de estilo vs atributos JSON, conforme definido na seção [JSON vs Folha de Estilo](stylesheets.html#json-vs-style-sheet). -Once a CSS preview mode is selected, objects are automatically displayed with the styles defined in a style sheet (if any). -> When copying or duplicating objects, only the CSS references (if any) and the JSON values are copied. +Uma vez que o modo de pré-visualização CSS é selecionado, os objetos são exibidos automaticamente com os estilos definidos em uma folha de estilo (se houver). +> Ao copiar ou duplicar objetos, apenas as referências do CSS (se houver) e os valores JSON são copiados. ### Suporte CSS na lista de propriedades -In CSS Preview mode, if the value of an attribute has been defined in a style sheet, the attribute's name will appear with a CSS icon displayed next to it in the Property List. Por exemplo, os valores dos atributos definidos nesta folha de estilos: +No modo Visualização de CSS, se o valor de um atributo tiver sido definido em uma folha de estilo, o nome do atributo aparecerá com um ícone CSS exibido ao lado dele na Lista de propriedades. Por exemplo, os valores dos atributos definidos nesta folha de estilos: ```4d .myButton { @@ -442,22 +442,22 @@ são apresentados com um ícone CSS na Lista de Propriedades: ![](../assets/en/FormEditor/cssPpropList.png) -An attribute value defined in a style sheet can be overridden in the JSON form description (except if the CSS includes the `!important` declaration, see below). In this case, the Property List displays the JSON form value in **bold**. You can reset the value to its style sheet definition with the **Ctrl + click** (Windows) or **Command + click** (macOs) shortcuts. -> If an attribute has been defined with the `!important` declaration for a group, an object within a group, or any object within a selection of multiple objects, that attribute value is locked and cannot be changed in the Property List. +Um valor de atributo definido em uma folha de estilo pode ser substituído na descrição do formulário JSON (exceto se a declaração `!important`, veja abaixo). Nesse caso, a Lista de propriedades exibe o valor do formulário JSON em **negrito**. Você pode redefinir o valor para sua definição de folha de estilo com os atalhos **Ctrl + clique**(Windows) ou **Command + clique** (macOs). +> Se um atributo tiver sido definido com a declaração `!important` para um grupo, um objeto em um grupo ou qualquer objeto em uma seleção de vários objetos, esse valor de atributo será bloqueado e não poderá ser alterado na Lista de propriedades. #### Lista de propriedades Ícones CSS | Ícone | Descrição | | --------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------ | | ![](../assets/en/FormEditor/cssIcon.png) | Indica que um valor de atributo foi definido em uma folha de estilo | -| ![](../assets/en/FormEditor/cssImportant.png) | Indicates that an attribute value has been defined in a style sheet with the `!important` declaration | -| ![](../assets/en/FormEditor/cssIconMixed.png) | Displayed when an attribute value defined in a style sheet for at least one item in a group or a selection of multiple objects is different from the other objects | +| ![](../assets/en/FormEditor/cssImportant.png) | Indica que um valor de atributo foi definido em uma folha de estilo com a declaração `!important` | +| ![](../assets/en/FormEditor/cssIconMixed.png) | Exibido quando um valor de atributo definido em uma folha de estilo para pelo menos um item em um grupo ou uma seleção de vários objetos difere dos outros objetos | ## Criação de list box -Puede crear rápidamente nuevos list box de tipo selección de entidades con el **Generador de list box**. The new list box can be used immediately or it can be edited via the Form Editor. +Puede crear rápidamente nuevos list box de tipo selección de entidades con el **Generador de list box**. O novo list box pode ser usada imediatamente ou pode ser editada por meio do Editor de formulários. -The List box builder lets you create and fill entity selection list boxes in a few simple operations. +O construtor de List box permite criar e preencher list boxes de tipo seleção de entidades em algumas operações simples. ### Usando o gerador de list box @@ -473,25 +473,25 @@ The List box builder lets you create and fill entity selection list boxes in a f ![](../assets/en/FormEditor/listboxBuilderTable.png) -3. Select the fields for the list box in the **Fields** area: +3. Selecione os campos para a caixa de listagem na área **Fields**: ![](../assets/en/FormEditor/listboxBuilderFields.png) - Por padrão, todos os campos são selecionados. You can select or deselect fields individually or use **Ctrl+click** (Windows) or **Cmd+click** (macOS) to select or deselect them all at once. + Por padrão, todos os campos são selecionados. Você pode selecionar ou desmarcar campos individualmente ou usar **Ctrl+clique** (Windows) ou **Cmd+clique** (macOS) para selecionar ou desmarcar todos de uma vez. Você pode alterar a ordem dos campos arrastando-os e soltando-os. -4. The expression to fill the list box's rows from the entity selection is prefilled: +4. A expressão para preencher as linhas do list box da seleção da entidade é preenchida: ![](../assets/en/FormEditor/listboxBuilderExpression.png) Esta expressão pode ser alterada se necessário. -5. Clicking on the **Copy** button will copy the expression for loading all records into memory: +5. Clicar no botão **Copiar** copiará a expressão para carregar todos os registros na memória: ![](../assets/en/FormEditor/listboxBuilderCode.png) -6. Click the the **Build widget** button to create the list box. +6. Clique no botão **Construir widget** para criar o list box. ![](../assets/en/FormEditor/listboxBuilderBuild.png) @@ -502,17 +502,17 @@ O list box final: ## Inserir campos -The **Insert fields** button inserts all fields (except object and blob type fields) of the form table in the form, along with their labels and with respect to interface standards. Esse assistente é um atalho para projetar formulários básicos de entrada ou formulários lista. +O botão **Inserir campos** insere todos os campos (exceto os campos do tipo objeto e bolha) da tabela do formulário no formulário, com seus rótulos e conforme os padrões de interface. Esse assistente é um atalho para projetar formulários básicos de entrada ou formulários lista. -The **Insert fields** button is only available with table forms. +O botão **Inserir campos** só está disponível em formulários de tabela. O desenho do formulário resultante depende do formulário: -- **Detail form**: clicking on the **Insert fields** button generates a form with a page design: +- **Formulário detalhado**: clicar no botão **Inserir campos** gera um formulário com um design de página: ![](../assets/en/FormEditor/insertFields2.png) -- **List form**: clicking on the **Insert fields** button generates a list form design with fields organized on a single line and area markers: +- **Formulário de lista**: clicar no botão **Inserir campos** gera um design de formulário de lista com campos organizados em uma única linha e marcadores de área: ![](../assets/en/FormEditor/insertFields3.png) @@ -521,20 +521,20 @@ O desenho do formulário resultante depende do formulário: ## Escudos -The 4D Form Editor uses shields to make viewing object properties easier. Pode encontrá-los na barra de ferramentas do formulário: +O Editor de Formulário 4D usa escudos para facilitar a visualização das propriedades do objeto. Pode encontrá-los na barra de ferramentas do formulário: ![](../assets/en/FormEditor/shields.png) -This function works as follows: Each shield is associated with a property (for example, **Views**, which means the object “is in the current view”). When you activate a shield, 4D displays a small icon (shield) in the upper left of each object of the form where the property is applied. +Essa função funciona da seguinte forma: cada escudo é associado a uma propriedade (por exemplo, **Vistas**, que significa que o objeto "está na visualização atual"). Quando você ativar um escudo, 4D exibe um ícone pequeno (escudo) no canto superior esquerdo de cada objeto do formulário onde a propriedade é aplicada. ![](../assets/en/FormEditor/shield.png) ### Usando escudos -To activate a shield, click the *Shield* icon from the toolbar until the desired shield is selected. You can also click on the right side of the button and select the type of shield to display directly in the associated menu: +Para ativar um escudo, clique no ícone *Escudo* na barra de ferramentas até que o escudo desejado seja selecionado. Você também pode clicar no lado direito do botão e selecionar o tipo de escudo para exibir diretamente no menu associado: -If you don't want to display shields, select **No Shields** in the selection menu. -> You can set which shields to display by default on the Forms Page of the application Preferences. +Se você não quer exibir escudos, selecione **Sem Escudos** no menu de seleção. +> Você pode definir quais escudos devem ser exibidos por padrão na Página de Formulários das Preferências do aplicativo. ### Descrição do badge @@ -555,9 +555,9 @@ Segue-se uma descrição de cada tipo de escudo: ## Vistas -The 4D Form Editor enables you to build complex forms by distributing form objects among separate views that can then be hidden or shown as needed. +O editor de formulários 4D permite que você crie formulários complexos distribuindo objetos de forma entre visualizações separadas, que podem ser ocultas ou mostradas conforme necessário. -For example, you can distribute objects according to type (fields, variables, static objects, etc.). Any type of form object, including subforms and plug-in areas, can be included in views. +Por exemplo, você pode distribuir objetos conforme o tipo (campos, variáveis, objetos estáticos, etc.). Qualquer tipo de objeto de formulário, inclusive subformulários e áreas de plug-in, pode ser incluído nas visualizações. Não há limite para o número de vistas por formulário. Pode criar tantas vistas diferentes quantas as necessárias. Além disso, cada vista pode ser apresentada, ocultada e/ou bloqueada. @@ -569,19 +569,19 @@ A gestão das vistas é efetuada através da paleta de vistas. Existem três formas de aceder à paleta de vistas: -- **Toolbar**: Click on the Views icon in the Form Editor toolbar. (This icon appears gray when at least one object belongs to a view other than the default view.) +- **Barra de Ferramentas**: clique no ícone das Visualizações na barra de ferramentas do Editor de formulário. (Este ícone aparece cinza quando pelo menos um objeto pertence a uma visualização diferente da visualização padrão.) | Vista por defeito apenas | Com vistas adicionais | |:------------------------------------------------------------:|:------------------------------------------------------:| | ![](../assets/en/FormEditor/icon.png "Nenhuma vista em uso") | ![](../assets/en/FormEditor/icon2.png "Vistas em uso") | -- **Context menu** (form or object): Right-click anywhere in the Form Editor or an object, and select **Current View** +- **Menu de contexto** (formulário ou objeto): clique com o botão direito do mouse em qualquer lugar do Form Editor ou de um objeto e selecione **Visualização atual** ![](../assets/en/FormEditor/contextMenu.png) -The current view is indicated with a check mark (*e.g.*, "Work Address" in the image above) +A visualização atual é indicada com uma marca de seleção (*por exemplo*, "Work Address" na imagem acima) -- **Form menu**: Click on the **Form** menu and select **View List** +- **Menu Formulário**: clique no menu **Formulário** e selecione **Visualizar Lista** ![](../assets/en/FormEditor/formMenu.png) @@ -589,32 +589,32 @@ The current view is indicated with a check mark (*e.g.*, "Work Address" in the i Aqui estão algumas coisas importantes que você deve saber antes de começar a trabalhar com vistas: -- **Context of use**: Views are a purely graphic tool which can only be used in the Form Editor; you cannot access views programmatically or in the Application environment. +- **Contexto de uso**: as visualizações são uma ferramenta puramente gráfica que só pode ser usada no Editor de Formulário; você não pode acessar as visualizações programaticamente ou no ambiente de Aplicações. -- **Views and pages**: Objects of the same view can belong to different form pages; only objects of the current page (and of page 0 if it is visible) can be displayed, regardless of the view configuration. +- **Visualizações e páginas**: os objetos da mesma visualização podem pertencer a páginas de formulário diferentes; somente os objetos da página atual (e da página 0, se ela estiver visível) podem ser exibidos, independentemente da configuração da visualização. -- **Views and levels**: Views are independent of object levels; there is no display hierarchy among different views. +- **Visualizações e níveis**: as visualizações são independentes dos níveis do objeto; não há hierarquia de exibição entre visualizações diferentes. -- **Views and groups**: Only objects belonging to the current view can be grouped. +- **Visualizações e grupos**: somente objetos pertencentes à visualização atual podem ser agrupados. -- **Current and Default** views: The Default view is the first view of a form and cannot be deleted; the Current view is the view that is being edited and the name is displayed in bold text. +- Visualizações **atuais e padrão**: a visualização padrão é a primeira vista de um formulário e não pode ser excluída; a visualização atual é a visualização que está sendo editada e o nome é exibido em negrito. ### Gestão da vistas #### Criar vistas -Qualquer objecto criado num formulário é colocado na primeira vista ("Vista 1") do formulário. A primeira vista é **sempre** a vista por defeito, indicada por (Default) após o nome. The view's name can be changed (see [Renaming views](#renaming-views)), however it remains the default view. +Qualquer objecto criado num formulário é colocado na primeira vista ("Vista 1") do formulário. A primeira vista é **sempre** a vista por defeito, indicada por (Default) após o nome. O nome da visualização pode ser alterado (consulte [Renomear vistas](#renaming-views)), porém ela continua a ser a visualização padrão. ![](../assets/en/FormEditor/createView.png) Existem duas formas de adicionar vistas adicionais: -- Click on the **Add a new view** button at the bottom of the View palette: +- Clique no botão **Adicionar uma nova exibição** na parte inferior da paleta Exibir: ![](../assets/en/FormEditor/addView.png) -- Right-click on an existing view and select **Insert view**: +- Clique com o botão direito do mouse em uma visualização existente e selecione **Inserir visualização**: ![](../assets/en/FormEditor/addView2.png) @@ -622,11 +622,11 @@ Não há limite para o número de vistas. #### Renomear vistas -By default views are named as "View" + the view number, however you can change these names to improve readability and better suit your needs. +Por padrão, as visualizações são nomeadas como "Vista" + o número da visualização, mas você pode alterar esses nomes para melhorar a legibilidade e atender melhor às suas necessidades. Para mudar o nome de uma vista, pode utilizar: -- Double-click directly on the view name (the selected view in this case). O nome torna-se então editável: +- Clique duas vezes diretamente no nome da visualização (a visualização selecionada, nesse caso). O nome torna-se então editável: ![](../assets/en/FormEditor/rename.png) @@ -636,7 +636,7 @@ Para mudar o nome de uma vista, pode utilizar: #### Reordenação de visualizações -You can change the display order of views by dragging/dropping them within the View palette. +Você pode alterar a ordem de exibição das exibições arrastando-as/soltando-as na paleta Exibir. Note-se que a vista padrão não é alterada: @@ -646,7 +646,7 @@ Note-se que a vista padrão não é alterada: Para mudar o nome de uma vista, pode utilizar: -- Click on the **Delete the selected view** button at the bottom of the View palette: +- Clique em **Excluir a visualização** selecionada na parte inferior da paleta de visualização: ![](../assets/en/FormEditor/deleteView.png) @@ -669,24 +669,24 @@ Uma vez criadas as vistas, pode utilizar a paleta Vista para: Um objeto só pode pertencer a uma única vista. -To create an object in another view, simply select the view in the View palette (prior to creating the object) by clicking its name (an Edit icon is displayed for the [Current view](#before-you-begin) and the name appears in bold text): +Para criar um objeto em outra visualização, basta selecionar a visualização na paleta Visualizar (antes de criar o objeto) clicando em seu nome (um ícone Editar é exibido para a [Visualização atual](#before-you-begin) e o nome aparece em negrito): ![](../assets/en/FormEditor/addObject.png) #### Mover objectos entre vistas -It's also possible to move one or more objects from one view to another. No formulário, selecionar o(s) objeto(s) cuja vista se pretende alterar. The view list indicates, using a symbol, the view to which the selection belongs: +Também é possível mover um ou mais objetos de uma visualização para outra. No formulário, selecionar o(s) objeto(s) cuja vista se pretende alterar. A lista de visualizações indica, por meio de um símbolo, a visualização à qual a seleção pertence: ![](../assets/en/FormEditor/symbol.png) > A seleção pode conter vários objetos pertencentes a diferentes visualizações. -Simply select the destination view, right-click, and select **Move to**: +Basta selecionar a visualização de destino, clicar com o botão direito do mouse e selecionar **Mover para**: ![](../assets/en/FormEditor/moveObject.png) OU -Select the destination view of the selection and click **Move to** button at the bottom of the View palette: +Selecione a exibição de destino da seleção e clique no botão **Mover para** na parte inferior da paleta Exibir: ![](../assets/en/FormEditor/moveObject3.png) @@ -694,16 +694,16 @@ A seleção é então colocada na nova vista: ![](../assets/en/FormEditor/objNewView.png) -Você também pode mover um objeto para outra visualização por meio do menu de contexto do objeto. Right-click on the object, select **Move to view**, and select a view from the list of available views: +Você também pode mover um objeto para outra visualização por meio do menu de contexto do objeto. Clique com o botão direito do mouse no objeto, selecione **Mover para visualização** e selecione uma visualização na lista de visualizações disponíveis: ![](../assets/en/FormEditor/moveObject2.png) > A [vista atual](#before-you-begin) é mostrado em negrito. #### Seleccionar todos os objectos de uma vista -You can select all objects belong to the same view in the current page of the form. This function is useful for applying global changes to a set of objects. +Você pode selecionar todos os objetos que pertencem à mesma exibição na página atual do formulário. Essa função é útil para aplicar alterações globais a um conjunto de objetos. -To do this, right-click on the view in which you wish to select all the objects, click on **Select All**: +Para fazer isso, clique com o botão direito do mouse no modo de exibição em que você deseja selecionar todos os objetos, clique em **Selecionar todos**: ![](../assets/en/FormEditor/selectAll.png) @@ -713,9 +713,9 @@ Também pode utilizar o botão na parte inferior da paleta de vistas: #### Mostrar ou esconder objectos de uma vista -You can show or hide objects belonging to a view at any time in the form's current page. Essa função pode ser usada, por exemplo, para focar em determinados objetos ao modificar o formulário. +Você pode mostrar ou ocultar objetos pertencentes a uma visualização a qualquer momento na página atual do formulário. Essa função pode ser usada, por exemplo, para focar em determinados objetos ao modificar o formulário. -By default, all views are shown, as indicated by the *Show/Hide* icon: +Por padrão, todas as exibições são mostradas, conforme indicado pelo ícone *Show/Hide*: ![](../assets/en/FormEditor/showHide.png) @@ -728,9 +728,9 @@ Para mostrar uma vista oculta, basta selecioná-la ou clicar no ícone *Mostrar/ #### Bloqueio de objetos de uma vista -É possível bloquear os objectos de uma vista. Isto impede que sejam selecionados, alterados ou eliminados do formulário. Once locked, an object cannot be selected by a click, a rectangle, or the **Select Similar Objects** command of the context menu. Esta função é útil para evitar erros de tratamento. +É possível bloquear os objectos de uma vista. Isto impede que sejam selecionados, alterados ou eliminados do formulário. Uma vez bloqueado, um objeto não pode ser selecionado por um clique, um retângulo, ou o comando **Selecione objetos similares** do menu de contexto. Esta função é útil para evitar erros de tratamento. -By default, all views are unlocked, as indicated by the *Lock/Unlock* icon next to each view: +Por padrão, todas as visualizações são desbloqueadas, como indicado pelo ícone *Bloquear/Desbloquear* ao lado de cada visualização: ![](../assets/en/FormEditor/lockUnlock.png) @@ -739,17 +739,17 @@ Para bloquear os objetos de uma visualização, clique no ícone *Bloquear/Desbl ![](../assets/en/FormEditor/locked.png) > A [vista atual](#before-you-begin) não pode ser bloqueada. -To unlock a view that is locked, simply select it or click on the *Lock/Unlock* icon for that view. +Para desbloquear uma exibição bloqueada, basta selecioná-la ou clique no ícone *Bloquear/Desbloquear* para essa exibição. ## Zoom -Pode fazer zoom no formulário atual. Switch to “Zoom” mode by clicking on the magnifying glass icon or clicking directly on the desired percentage bar (50%, 100%, 200%, 400% and 800%): +Pode fazer zoom no formulário atual. Alterne para o modo "Zoom" clicando no ícone da lupa ou clicando diretamente na barra de porcentagem desejada (50%, 100%, 200%, 400% e 800%): ![](../assets/en/FormEditor/zoom.png) - Quando se clica na lupa, o cursor transforma-se numa lupa. Pode então clicar no formulário para aumentar a visualização ou manter premida a tecla Shift e clicar para reduzir a percentagem de visualização. -- When you click on a percentage bar, the display is immediately modified. +- Quando você clica em uma barra de porcentagem, a exibição é imediatamente modificada. No modo Zoom, todas as funções do editor de formulários permanecem disponíveis(*). -(*) For technical reasons, it is not possible to select list box elements (headers, columns, footers) when the Form editor is in Zoom mode. +(*) Por motivos técnicos, não é possível selecionar elementos da caixa de listagem (cabeçalhos, colunas, rodapés) quando o editor de formulários está no modo Zoom. diff --git a/i18n/pt/docusaurus-plugin-content-docs/version-20/FormEditor/pictures.md b/i18n/pt/docusaurus-plugin-content-docs/version-20/FormEditor/pictures.md index b143e4e10b5112..155a3748b00249 100644 --- a/i18n/pt/docusaurus-plugin-content-docs/version-20/FormEditor/pictures.md +++ b/i18n/pt/docusaurus-plugin-content-docs/version-20/FormEditor/pictures.md @@ -49,7 +49,7 @@ As imagens de alta resolução com a convenção @nx podem ser utilizadas nos se * [Cabeçalhos de list box](FormObjects/listbox_overview.md#list-box-headers) * [Ícones de menu](Menus/properties.md#item-icon) -4D dá automaticamente prioridade às imagens com a resolução mais alta. Por exemplo, ao usar duas telas (uma de alta resolução e outra padrão) e mover um formulário de uma tela para outra, 4D renderiza automaticamente a resolução mais alta possível da imagem. Mesmo que um comando ou propriedade especifique *circle.png*, *circle@3x.png* será utilizado (se existir). +4D dá automaticamente prioridade às imagens com a resolução mais alta. 4D dá automaticamente prioridade às imagens com a resolução mais alta. Mesmo que um comando ou propriedade especifique *circle.png*, *circle@3x.png* será utilizado (se existir). > Note que a priorização da resolução ocorre apenas para a apresentação de imagens no ecrã, não havendo priorização automática durante a impressão. ### DPI (macOS and Windows) @@ -58,7 +58,7 @@ Embora 4D priorize automaticamente a resolução mais alta, há, no entanto, alg | Operação | Comportamento | | ------------------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------ | -| Soltar o pegar | Se a imagem tiver:
    • **72dpi ou 96dpi** - A imagem é "[Center](FormObjects/properties_Picture.md#center--truncated-non-centered)" formatada e o objeto que contém a imagem tem o mesmo número de pixels.
    • **Outros dpi** - A imagem está formatada como "[Scaled to fit](FormObjects/properties_Picture.md#scaled-to-fit)" e o objeto que contém a imagem é igual a (número de pixels da imagem * dpi da tela) / (dpi da imagem)
    • **No dpi** - A imagem é formatada como "[Scaled to fit](FormObjects/properties_Picture.md#scaled-to-fit)".
    | +| Soltar o pegar | Se a imagem tiver:
    • **72dpi ou 96dpi** - A imagem é "[Center](FormObjects/properties_Picture.md#center--truncated-non-centered)" formatada e o objeto que contém a imagem tem o mesmo número de píxeis.
    • **Outros dpi** - A imagem está formatada como "[Scaled to fit](FormObjects/properties_Picture.md#scaled-to-fit)" e o objeto que contém a imagem é igual a (número de pixels da imagem * dpi da tela) / (dpi da imagem)
    • **No dpi** - A imagem é formatada como "[Scaled to fit](FormObjects/properties_Picture.md#scaled-to-fit)".
    | | [Tamanho automático](https://doc.4d.com/4Dv19/4D/19/Setting-object-display-properties.300-5416671.en.html#148057) (menu contextual do Editor de formulários) | Se o formato de apresentação da imagem é:
    • **[Scaled](FormObjects/properties_Picture.md#scaled-to-fit)** - O objeto que contém a imagem é redimensionado de acordo com (número de pixels da imagem * dpi da tela) / (dpi da imagem)
    • **Não dimensionado** - O objeto que contém a imagem tem o mesmo número de pixels que a imagem.
    | *(\*) Normalmente, macOS = 72 dpi, Windows = 96 dpi* @@ -80,6 +80,6 @@ Em tempo de execução, 4D carregará automaticamente a imagem clara ou escura d 4D permite recuperar as coordenadas locais do mouse em um [objeto de entrada](FormObjects/input_overview.md) associado a uma [expressão de imagem](FormObjects/properties_Object.md#expression-type), no caso de que clique ou passe o cursor por cima, mesmo se não tiver aplicado um deslocamento ou zoom na imagem. Esse mecanismo, similar ao de um mapa de imagens, pode ser utilizado, por exemplo, para manejar barras de botões deslocáveis ou a interface de um software de cartografia. -The coordinates are returned in the *MouseX* and *MouseY* [System Variables](../Concepts/variables.md#system-variables). As coordenadas são expressas em píxeis em relação ao canto superior esquerdo da imagem (0,0). Se o mouse estiver fora do sistema de coordenadas da imagem, se devolverá -1 em *MouseX* e *MouseY*. +As coordenadas são retornadas na *MouseX* e *MouseY* [Variáveis de sistema](../Concepts/variables.md#system-variables). As coordenadas são expressas em píxeis em relação ao canto superior esquerdo da imagem (0,0). Se o mouse estiver fora do sistema de coordenadas da imagem, se devolverá -1 em *MouseX* e *MouseY*. Pode obter o valor dessas variáveis como parte dos eventos formulário `On Clicked`, `On Double Clicked`, `On Mouse up`, `On Mouse Enter`, ou `On Mouse Move`. diff --git a/i18n/pt/docusaurus-plugin-content-docs/version-20/FormEditor/properties_FormSize.md b/i18n/pt/docusaurus-plugin-content-docs/version-20/FormEditor/properties_FormSize.md index 3c40c38486bcb9..1fad204258bf15 100644 --- a/i18n/pt/docusaurus-plugin-content-docs/version-20/FormEditor/properties_FormSize.md +++ b/i18n/pt/docusaurus-plugin-content-docs/version-20/FormEditor/properties_FormSize.md @@ -12,7 +12,7 @@ As opções de tamanho dependem do valor da opção **Tamanho baseado em**. ## Tamanho baseado em -* **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. +* **Tamanho automático**: o tamanho do formulário será necessário para exibir todos os objetos, ao qual serão adicionados os valores de margem (em pixels) inseridos nos campos [**Hor Margin**](#hor-margin) e [**Margem Vert**](#vert-margin). You can choose this option when you want to use active objects placed in an offscreen area (*i.e.*, outside the bounding rectangle of the window) with an automatic size window. Thanks to this option, the presence of these objects will not modify the size of the window. @@ -45,7 +45,7 @@ Altura do formulário (em pixéis) quando o [tamanho do formulário](#size-based --- -## Margem hor. +## Margem Margem hor. Value to add (in pixels) to the right margin of the form when the [form size](#size-based-on) is **Automatic size** or `\<object name>` @@ -61,7 +61,7 @@ This value also determines the right-hand margins of forms used in the Label edi --- -## Margem hor. +## Margem Margem hor. Value to add (in pixels) to the bottom margin of the form when the [form size](#size-based-on) is **Automatic size** or `\<object name>`. diff --git a/i18n/pt/docusaurus-plugin-content-docs/version-20/FormObjects/button_overview.md b/i18n/pt/docusaurus-plugin-content-docs/version-20/FormObjects/button_overview.md index 64087f8afc1b4e..933c48ce201b99 100644 --- a/i18n/pt/docusaurus-plugin-content-docs/version-20/FormObjects/button_overview.md +++ b/i18n/pt/docusaurus-plugin-content-docs/version-20/FormObjects/button_overview.md @@ -37,7 +37,7 @@ Com excepção do [propriedades disponíveis](#supported-properties), muitos obj ### Clássico -The Regular button style is a standard system button (*i.e.*, a rectangle with a descriptive label) which executes code when a user clicks on it. +O estilo de botão Clássico é um botão padrão do sistema (*ou seja*, um retângulo com um rótulo descritivo) que executa o código quando o usuário clica nele. ![](../assets/en/FormObjects/button_regular.png) @@ -66,7 +66,7 @@ Only the Regular and Flat styles offer the [Default Button](properties_Appearanc ### Plano -The Flat button style is a standard system button (*i.e.*, a rectangle with a descriptive label) which executes code when a user clicks on it. +O estilo de botão Plano é um botão padrão do sistema (*ou seja*, um retângulo com um rótulo descritivo) que executa o código quando o usuário clica nele. ![](../assets/en/FormObjects/button_flat.png) @@ -94,7 +94,7 @@ Only the Regular and Flat styles offer the [Default Button](properties_Appearanc ### Barra de ferramentas -The Toolbar button style is primarily intended for integration in a toolbar. It includes the option to add a pop-up menu (indicated by an inverted triangle) which is generally used to display additional choices for the user to select. +The Toolbar button style is primarily intended for integration in a toolbar. Inclui a opção de adicionar um menu pop-up (indicado por um triângulo invertido), sendo geralmente usado para exibir opções adicionais para o usuário selecionar. By default, the Toolbar style has a transparent background with a label in the center. A aparência do botão pode ser diferente quando o cursor passar por cima dele, dependendo do SO: @@ -302,7 +302,7 @@ O estilo de botão Círculo aparece como um botão sistema redondo. Este estilo ![](../assets/en/FormObjects/button_circleM.png) -On Windows, it is identical to the “None” style (the circle in the background is not taken into account). +No Windows, ele é idêntico ao estilo "Nenhum" (o círculo no plano de fundo não é considerado). #### JSON Exemplo diff --git a/i18n/pt/docusaurus-plugin-content-docs/version-20/FormObjects/checkbox_overview.md b/i18n/pt/docusaurus-plugin-content-docs/version-20/FormObjects/checkbox_overview.md index 3521d117a1262b..bc85a5172fa600 100644 --- a/i18n/pt/docusaurus-plugin-content-docs/version-20/FormObjects/checkbox_overview.md +++ b/i18n/pt/docusaurus-plugin-content-docs/version-20/FormObjects/checkbox_overview.md @@ -33,7 +33,7 @@ Para ativar este terceiro estado, deve selecionar a propriedade [Três estados]( Essa propriedade só está disponível para caixas de seleção regulares e planas associadas a [variáveis ou expressões](properties_Object.md#variable-or-expression) — as caixas de seleção de expressões booleanas não podem usar a propriedade [Três Estados](properties_Display.md#three-states) (uma expressão Booleana não pode estar em um estado intermediário). A variável associada à caixa de seleção devolve o valor 2 quando a caixa estiver no terceiro estado. -> In entry mode, the Three-States check boxes display each state sequentially, in the following order: unchecked / checked / intermediary / unchecked, etc. No modo de entrada, as caixas de seleção dos três estados mostram cada estado de forma sequencial na ordem abaixo: sem marcar/marcado/intermediário/sem marcar, etc. O estado intermediário não é geralmente muito útil no modo entrada; no código, simplesmente force o valor da variável para 0 quando tomar o valor de 2 para passar diretamente de um estado marcado para o estado desmarcado. +> In entry mode, the Three-States check boxes display each state sequentially, in the following order: unchecked / checked / intermediary / unchecked, etc. No modo de entrada, as caixas de seleção dos três estados mostram cada estado de forma sequencial na ordem abaixo: sem marcar/marcado/intermediário/sem marcar, etc. O estado intermediário não é geralmente muito útil no modo entrada; no código, simplesmente force o valor da variável para 0 quando tomar o valor de 2 para passar diretamente de um estado marcado para o estado desmarcado. No modo de entrada, as caixas de seleção dos três estados mostram cada estado de forma sequencial na ordem abaixo: sem marcar/marcado/intermediário/sem marcar, etc. O estado intermediário não é geralmente muito útil no modo entrada; no código, simplesmente force o valor da variável para 0 quando tomar o valor de 2 para passar diretamente de um estado marcado para o estado desmarcado. ## Usar uma ação padrão diff --git a/i18n/pt/docusaurus-plugin-content-docs/version-20/settings/interface.md b/i18n/pt/docusaurus-plugin-content-docs/version-20/settings/interface.md index a6fc38e8aa574e..efdddaf43c6ced 100644 --- a/i18n/pt/docusaurus-plugin-content-docs/version-20/settings/interface.md +++ b/i18n/pt/docusaurus-plugin-content-docs/version-20/settings/interface.md @@ -64,7 +64,7 @@ Os seguintes esquemas estão disponíveis: O esquema de aplicação principal será aplicado aos formulários por defeito. No entanto, ele pode ser substituído: - pelo comando [SET APPLICATION COLOR SCHEME](https://doc.4d.com/4dv19R/help/command/en/page1762.html) no nível da sessão de trabalho; -- using by the [Color Scheme](../FormEditor/propertiesForm.html#color-scheme) form property at each form level (highest priority level). **Note:** When printed, forms always use the "Light" scheme. +- usando pela propriedade de formulário [esquema de cores](../FormEditor/propertiesForm.html#color-scheme) em cada nível de formulário (nível de prioridade mais alta). **Note:** When printed, forms always use the "Light" scheme. ## Atalhos diff --git a/versioned_docs/version-19/API/EntityClass.md b/versioned_docs/version-19/API/EntityClass.md index cf860b42806215..b3121f8e286a90 100644 --- a/versioned_docs/version-19/API/EntityClass.md +++ b/versioned_docs/version-19/API/EntityClass.md @@ -94,9 +94,11 @@ The attribute value type depends on the attribute [kind](DataClassClass.md#attri #### Description -The `.clone()` function creates in memory a new entity referencing the same record as the original entity. This function allows you to update entities separately. +The `.clone()` function creates in memory a new entity referencing the same record as the original entity. ->Keep in mind that any modifications done to entities will be saved in the referenced record only when the [`.save( )`](#save) function is executed. +This function allows you to update entities separately. Note however that, for performance reasons, the new entity shares the same reference of object attributes as the cloned entity. + +>Keep in mind that any modifications done to entities will be saved in the referenced record only when the [`.save()`](#save) function is executed. This function can only be used with entities already saved in the database. It cannot be called on a newly created entity (for which [`.isNew()`](#isnew) returns **True**). diff --git a/versioned_docs/version-20-R6/API/EntityClass.md b/versioned_docs/version-20-R6/API/EntityClass.md index 8b098ee967f061..53fca51ced4908 100644 --- a/versioned_docs/version-20-R6/API/EntityClass.md +++ b/versioned_docs/version-20-R6/API/EntityClass.md @@ -95,9 +95,11 @@ The attribute value type depends on the attribute [kind](DataClassClass.md#attri #### Description -The `.clone()` function creates in memory a new entity referencing the same record as the original entity. This function allows you to update entities separately. +The `.clone()` function creates in memory a new entity referencing the same record as the original entity. ->Keep in mind that any modifications done to entities will be saved in the referenced record only when the [`.save( )`](#save) function is executed. +This function allows you to update entities separately. Note however that, for performance reasons, the new entity shares the same reference of object attributes as the cloned entity. + +>Keep in mind that any modifications done to entities will be saved in the referenced record only when the [`.save()`](#save) function is executed. This function can only be used with entities already saved in the database. It cannot be called on a newly created entity (for which [`.isNew()`](#isnew) returns **True**). diff --git a/versioned_docs/version-20-R6/FormObjects/text.md b/versioned_docs/version-20-R6/FormObjects/text.md index 747bea46c6968f..c9c81b1d4a9f95 100644 --- a/versioned_docs/version-20-R6/FormObjects/text.md +++ b/versioned_docs/version-20-R6/FormObjects/text.md @@ -51,4 +51,4 @@ Once a text is rotated, you can still change its size or position, as well as al -[Bold](properties_Text.md#bold) - [Border Line Style](properties_BackgroundAndBorder.md#border-line-style) - [Bottom](properties_CoordinatesAndSizing.md#bottom) - [Class](properties_Object.md#css-class) - [Corner radius](properties_CoordinatesAndSizing.md#corner-radius) - [Fill Color(properties_BackgroundAndBorder.md#background-color--fill-color) - [Font](properties_Text.md#font) - [Font Color](properties_Text.md#font-color) - [Font Size](properties_Text.md#font-size) - [Height](properties_CoordinatesAndSizing.md#height) - [Horizontal Alignment](properties_Text.md#horizontal-alignment) - [Horizontal Sizing](properties_ResizingOptions.md#horizontal-sizing) - [Italic](properties_Text.md#italic) - [Left](properties_CoordinatesAndSizing.md#left) - [Object Name](properties_Object.md#object-name) - [Orientation](properties_Text.md#orientation) - [Right](properties_CoordinatesAndSizing.md#right) - [Title](properties_Object.md#title) - [Top](properties_CoordinatesAndSizing.md#top) - [Type](properties_Object.md#type) - [Underline](properties_Text.md#underline) - [Vertical Sizing](properties_ResizingOptions.md#vertical-sizing) - [Visibility](properties_Display.md#visibility) - [Width](properties_CoordinatesAndSizing.md#width) +[Bold](properties_Text.md#bold) - [Border Line Style](properties_BackgroundAndBorder.md#border-line-style) - [Bottom](properties_CoordinatesAndSizing.md#bottom) - [Class](properties_Object.md#css-class) - [Corner radius](properties_CoordinatesAndSizing.md#corner-radius) - [Fill Color](properties_BackgroundAndBorder.md#background-color--fill-color) - [Font](properties_Text.md#font) - [Font Color](properties_Text.md#font-color) - [Font Size](properties_Text.md#font-size) - [Height](properties_CoordinatesAndSizing.md#height) - [Horizontal Alignment](properties_Text.md#horizontal-alignment) - [Horizontal Sizing](properties_ResizingOptions.md#horizontal-sizing) - [Italic](properties_Text.md#italic) - [Left](properties_CoordinatesAndSizing.md#left) - [Object Name](properties_Object.md#object-name) - [Orientation](properties_Text.md#orientation) - [Right](properties_CoordinatesAndSizing.md#right) - [Title](properties_Object.md#title) - [Top](properties_CoordinatesAndSizing.md#top) - [Type](properties_Object.md#type) - [Underline](properties_Text.md#underline) - [Vertical Sizing](properties_ResizingOptions.md#vertical-sizing) - [Visibility](properties_Display.md#visibility) - [Width](properties_CoordinatesAndSizing.md#width) diff --git a/versioned_docs/version-20-R7/API/EntityClass.md b/versioned_docs/version-20-R7/API/EntityClass.md index 8b098ee967f061..53fca51ced4908 100644 --- a/versioned_docs/version-20-R7/API/EntityClass.md +++ b/versioned_docs/version-20-R7/API/EntityClass.md @@ -95,9 +95,11 @@ The attribute value type depends on the attribute [kind](DataClassClass.md#attri #### Description -The `.clone()` function creates in memory a new entity referencing the same record as the original entity. This function allows you to update entities separately. +The `.clone()` function creates in memory a new entity referencing the same record as the original entity. ->Keep in mind that any modifications done to entities will be saved in the referenced record only when the [`.save( )`](#save) function is executed. +This function allows you to update entities separately. Note however that, for performance reasons, the new entity shares the same reference of object attributes as the cloned entity. + +>Keep in mind that any modifications done to entities will be saved in the referenced record only when the [`.save()`](#save) function is executed. This function can only be used with entities already saved in the database. It cannot be called on a newly created entity (for which [`.isNew()`](#isnew) returns **True**). diff --git a/versioned_docs/version-20-R7/API/OutgoingMessageClass.md b/versioned_docs/version-20-R7/API/OutgoingMessageClass.md deleted file mode 100644 index 53e5852fd4c732..00000000000000 --- a/versioned_docs/version-20-R7/API/OutgoingMessageClass.md +++ /dev/null @@ -1,197 +0,0 @@ ---- -id: OutgoingMessageClass -title: OutgoingMessage ---- - - -The `4D.OutgoingMessage` class allows you to build messages to be returned by your application functions in response to [REST requests](../REST/REST_requests.md). If the response is of type `4D.OutgoingMessage`, the REST server does not return an object but the object instance of the `OutgoingMessage` class. - -Typically, this class can be used in functions declared with the [`onHttpGet`](../ORDA/ordaClasses.md#onhttpget-keyword) keyword and designed to handle HTTP GET requests. Such requests are used, for example, to implement features such as download file, generate and download picture as well as receiving any content-type via a browser. - -An instance of this class is built on 4D Server and can be sent to the browser by the [4D REST Server](../REST/gettingStarted.md) only. This class allows to use other technologies than HTTP (e.g. mobile). - - - - -
    History - -|Release|Changes| -|---|---| -|20 R7|Class added| - -
    - -### Example - -In this example, a `getFile()` function is implemented in the [Datastore class](../ORDA/ordaClasses.md#datastore-class) and [can be called](../ORDA/ordaClasses.md#onhttpget-keyword) by a REST request. The purpose is to return a **testFile.pdf** file as a response to the request: - -```4d -Class extends DataStoreImplementation - -exposed onHTTPGet Function getFile() : 4D.OutgoingMessage - - var $result:=4D.OutgoingMessage.new() - var $file:=File("/RESOURCES/testFile.pdf") - - $result.setBody($file.getContent()) // This is binary content - $result.setHeader("Content-Type"; "application/pdf") - return $result -``` - -### OutgoingMessage Object - - -4D.OutgoingMessage objects provide the following properties and functions: - -|| -|---| -|[](#body)
    | -|[](#headers)
    | -|[](#setbody)
    | -|[](#setheader)
    | -|[](#setstatus)
    | -|[](#status)
    | - -:::note - -A 4D.OutgoingMessage object is a [non-sharable](../Concepts/shared.md) object. - -::: - - - - - - -## .body - -**body** : any - -#### Description - -The `.body` property contains the outgoing message body. The following data types are supported in the `.body` property: - -- text -- blob -- object -- image - -The `.body` property is read-write. - -You can also set the `.body` property using the [`setBody()`](#setbody) function, in which case the `content-type` header is automatically set. - - - - - -## .headers - -**headers** : Object - -#### Description - -The `.headers` property contains the current headers of the outgoing message as key/value pairs. - -The `.headers` property is read-only. To set a header, use the [`setHeader()`](#setheader) function. - - - - - -## .setBody() - -**.setBody**( *body* : any ) - - - -|Parameter|Type||Description| -|---|--- |---|------| -|body|any |->|Body of the outgoing message| - - -#### Description - -The `.setBody()` function sets the outgoing message *body*. - - The following data types are supported in the *body*: - -- Text -- Blob -- Object -- Image - -When this function is used, the content-type header is automatically set depending on the *body* type: - -- Content-Type:text/plain if the body is a Text -- Content-Type:application/octet-stream if body is a Blob -- Content-Type:application/json if body is an Object -- Content-Type:image/jpeg, image/gif... if body is an Image - -If *body* is not of a supported value type, an error is returned. - - - - - -## .setHeader() - -**.setHeader**( *key* : Text ; *value* : Text ) - - - -|Parameter|Type||Description| -|---|--- |---|------| -|key|Text|->|Header property to set| -|value|Text|->|Value of the header property| - - -#### Description - -The `.setHeader()` function sets the outgoing message header *key* with the provided *value*. If both parameters are not Text values, an error is raised. - -When returning a 4D.OutgoingMessage object instance, 4D automatically sets some headers (e.g. `Set-Cookie` with `WASID4D=...` and `4DSID__ProjectName_=....`). - -:::note - -If you set a *value* for the "Content-Type" header *key*, make sure you call this function after the call to [`setBody()`](#setbody), because `setBody()` automatically fills this header. For a list of "Content-Type" header values, please refer to the [`WEB SEND BLOB`](../commands-legacy/web-send-blob.md) documentation. - -::: - - - - - -## .setStatus() - -**.setStatus**( *status* : Integer ) - - - -|Parameter|Type||Description| -|---|--- |---|------| -|status|Integer|->|Status to set| - - -#### Description - -The `.setStatus()` function sets the `status` property with the given *status*. - -If *status* is not an integer value, an error is raised. - -For a list of HTTP status codes, please refer the [HTTP status code list on Wikipedia](https://en.wikipedia.org/wiki/List_of_HTTP_status_codes). - - - - - - - -## .status - -**status** : Integer - -#### Description - -The `.status` property contains the current status of the outgoing message. This property can be set using the [`setStatus()`](setstatus) function. - - diff --git a/versioned_docs/version-20-R7/Concepts/classes.md b/versioned_docs/version-20-R7/Concepts/classes.md index f61e445431386f..d019550b570c0a 100644 --- a/versioned_docs/version-20-R7/Concepts/classes.md +++ b/versioned_docs/version-20-R7/Concepts/classes.md @@ -117,7 +117,7 @@ Available classes are accessible from their class stores. Two class stores are a |Parameter|Type||Description| |---|---|---|---| -|classStore|Object|←|User class store for the project or component| +|classStore|Object|←|User class store for the project or component| The `cs` command returns the user class store for the current project or component. It returns all user classes [defined](#class-definition) in the opened project or component. By default, only project [ORDA classes](ORDA/ordaClasses.md) are available. @@ -136,7 +136,7 @@ $instance:=cs.myClass.new() |Parameter|Type||Description| |---|---|---|---| -|classStore|Object|←|4D class store| +|classStore|Object|←|4D class store| The `4D` command returns the class store for available built-in 4D classes. It provides access to specific APIs such as [CryptoKey](API/CryptoKeyClass.md). diff --git a/versioned_docs/version-20-R7/FormObjects/text.md b/versioned_docs/version-20-R7/FormObjects/text.md index 747bea46c6968f..c9c81b1d4a9f95 100644 --- a/versioned_docs/version-20-R7/FormObjects/text.md +++ b/versioned_docs/version-20-R7/FormObjects/text.md @@ -51,4 +51,4 @@ Once a text is rotated, you can still change its size or position, as well as al -[Bold](properties_Text.md#bold) - [Border Line Style](properties_BackgroundAndBorder.md#border-line-style) - [Bottom](properties_CoordinatesAndSizing.md#bottom) - [Class](properties_Object.md#css-class) - [Corner radius](properties_CoordinatesAndSizing.md#corner-radius) - [Fill Color(properties_BackgroundAndBorder.md#background-color--fill-color) - [Font](properties_Text.md#font) - [Font Color](properties_Text.md#font-color) - [Font Size](properties_Text.md#font-size) - [Height](properties_CoordinatesAndSizing.md#height) - [Horizontal Alignment](properties_Text.md#horizontal-alignment) - [Horizontal Sizing](properties_ResizingOptions.md#horizontal-sizing) - [Italic](properties_Text.md#italic) - [Left](properties_CoordinatesAndSizing.md#left) - [Object Name](properties_Object.md#object-name) - [Orientation](properties_Text.md#orientation) - [Right](properties_CoordinatesAndSizing.md#right) - [Title](properties_Object.md#title) - [Top](properties_CoordinatesAndSizing.md#top) - [Type](properties_Object.md#type) - [Underline](properties_Text.md#underline) - [Vertical Sizing](properties_ResizingOptions.md#vertical-sizing) - [Visibility](properties_Display.md#visibility) - [Width](properties_CoordinatesAndSizing.md#width) +[Bold](properties_Text.md#bold) - [Border Line Style](properties_BackgroundAndBorder.md#border-line-style) - [Bottom](properties_CoordinatesAndSizing.md#bottom) - [Class](properties_Object.md#css-class) - [Corner radius](properties_CoordinatesAndSizing.md#corner-radius) - [Fill Color](properties_BackgroundAndBorder.md#background-color--fill-color) - [Font](properties_Text.md#font) - [Font Color](properties_Text.md#font-color) - [Font Size](properties_Text.md#font-size) - [Height](properties_CoordinatesAndSizing.md#height) - [Horizontal Alignment](properties_Text.md#horizontal-alignment) - [Horizontal Sizing](properties_ResizingOptions.md#horizontal-sizing) - [Italic](properties_Text.md#italic) - [Left](properties_CoordinatesAndSizing.md#left) - [Object Name](properties_Object.md#object-name) - [Orientation](properties_Text.md#orientation) - [Right](properties_CoordinatesAndSizing.md#right) - [Title](properties_Object.md#title) - [Top](properties_CoordinatesAndSizing.md#top) - [Type](properties_Object.md#type) - [Underline](properties_Text.md#underline) - [Vertical Sizing](properties_ResizingOptions.md#vertical-sizing) - [Visibility](properties_Display.md#visibility) - [Width](properties_CoordinatesAndSizing.md#width) diff --git a/versioned_docs/version-20-R7/Notes/updates.md b/versioned_docs/version-20-R7/Notes/updates.md index f50ae89573fc96..d5c6b3984d6a47 100644 --- a/versioned_docs/version-20-R7/Notes/updates.md +++ b/versioned_docs/version-20-R7/Notes/updates.md @@ -199,7 +199,7 @@ See [**Release Notes for 4D 20.x LTS**](../../version-20/Notes/updates.md). |Library|Current version|Updated in 4D|Comment| |---|---|---|----| |BoringSSL|0aa300b|20 R6|Used for QUIC| -|CEF|128|**20 R7**|Chromium 6613| +|CEF|121|20 R5|Chromium 6167| |Hunspell|1.7.2|20|Used for spell checking in 4D forms and 4D Write Pro| |ICU|73.2|20|This major upgrade forces an automatic rebuild of alphanumeric, text and object indexes.| |libldap|2.6.7|20 R6|| diff --git a/versioned_docs/version-20-R7/Project/code-overview.md b/versioned_docs/version-20-R7/Project/code-overview.md index afe85271ef0f08..4350d5eca2fd89 100644 --- a/versioned_docs/version-20-R7/Project/code-overview.md +++ b/versioned_docs/version-20-R7/Project/code-overview.md @@ -6,8 +6,7 @@ title: Methods and classes The 4D code used across your project is written in [methods](../Concepts/methods.md) and [classes](../Concepts/classes.md). -The 4D IDE provides you with various features to create, edit, export, or delete your code. You will usually use the 4D [code editor](../code-editor/write-class-method.md) to work with your code. - +The 4D IDE provides you with various features to create, edit, export, or delete your code. You will usually use the included 4D [code editor](../code-editor/write-class-method.md) to work with your code. You can also use other editors such as **VS Code**, for which the [4D-Analyzer extension](https://github.com/4d/4D-Analyzer-VSCode) is available. ## Creating methods diff --git a/versioned_docs/version-20-R7/Project/overview.md b/versioned_docs/version-20-R7/Project/overview.md index 758ffbb0500ca1..bbe26cf681f2dc 100644 --- a/versioned_docs/version-20-R7/Project/overview.md +++ b/versioned_docs/version-20-R7/Project/overview.md @@ -8,7 +8,7 @@ A 4D project contains all of the source code of a 4D application, whatever its d ## Project files -4D project files are open and edited using regular 4D platform applications (4D or 4D Server). With 4D, full-featured editors are available to manage files, including a structure editor, a Code Editor, a form editor, a menu editor... +4D project files are open and edited using regular 4D platform applications (4D or 4D Server). With 4D, full-featured editors are available to manage files, including a structure editor, a [Code Editor](../code-editor/write-class-method.md), a [form editor](../FormEditor/formEditor.md), a menu editor... Since projects are in human-readable, plain text files (JSON, XML, etc.), they can be read or edited manually by developers, using any code editor. diff --git a/versioned_docs/version-20-R7/WebServer/qodly-studio.md b/versioned_docs/version-20-R7/WebServer/qodly-studio.md index 0e10f7c6777c9d..6cbad2624fcc24 100644 --- a/versioned_docs/version-20-R7/WebServer/qodly-studio.md +++ b/versioned_docs/version-20-R7/WebServer/qodly-studio.md @@ -143,7 +143,7 @@ There is no direct compatibility between apps implemented with 4D and apps imple |Qodly pages|Qodly Studio Page Editor|Qodly Studio Page Editor| |Desktop forms|4D IDE|*not supported*| |Programming language|4D Language featuring ORDA|[QodlyScript](https://developer.qodly.com/docs/category/qodlyscript) featuring ORDA| -|Coding IDE|4D IDE code editor *or* VS Code with [4D extension](https://github.com/4d/4D-Analyzer-VSCode)
    *4D Server only*: Qodly Studio code editor (see (2))|Qodly Studio code editor| +|Coding IDE|4D IDE code editor *or* VS Code with [4D-Analyzer extension](https://github.com/4d/4D-Analyzer-VSCode)
    *4D Server only*: Qodly Studio code editor (see (2))|Qodly Studio code editor| |Debugger|4D IDE debugger
    *4D Server only*: Qodly Studio debugger (see [this paragraph](#using-qodly-debugger-on-4d-server))|Qodly Studio debugger| |REST/Web roles and privileges|roles.json direct edit/Qodly Studio roles and privileges editor|Qodly Studio role and privileges editor| diff --git a/versioned_docs/version-20-R7/code-editor/write-class-method.md b/versioned_docs/version-20-R7/code-editor/write-class-method.md index 04baaac1c02f51..2d413a4a04fa41 100644 --- a/versioned_docs/version-20-R7/code-editor/write-class-method.md +++ b/versioned_docs/version-20-R7/code-editor/write-class-method.md @@ -13,6 +13,12 @@ You can scroll through the contents of methods, classes and functions, which can The 4D Code Editor provides basic syntax error-checking. Additional error-checking is performed when the code executes. For more information on how to handle errors, see [Debugging](../Debugging/basics.md). +:::note + +If you are used to coding with **VS Code**, you can also use this editor with 4D code after installing the [4D-Analyzer](https://github.com/4d/4D-Analyzer-VSCode) extension. + +::: + ## Interface ### Toolbar diff --git a/versioned_docs/version-20-R7/commands-legacy/activated.md b/versioned_docs/version-20-R7/commands-legacy/activated.md index cd82ef1479214c..13aa0eb4b3502a 100644 --- a/versioned_docs/version-20-R7/commands-legacy/activated.md +++ b/versioned_docs/version-20-R7/commands-legacy/activated.md @@ -20,7 +20,7 @@ displayed_sidebar: docs The **Activated** command (obsolete) returns **True** in a form method when the window containing the form becomes the frontmost window of the frontmost process. -**Note:** This command is equivalent to using [Form event code](form-event-code.md) and testing whether it returns the On Activate event. +**Note:** This command is equivalent to using [Form event code](../commands/form-event-code.md) and testing whether it returns the On Activate event. **WARNING:** Do not place a command such as [TRACE](trace.md) or [ALERT](alert.md)in the **Activated** phase of the form, as this will cause an endless loop. @@ -29,4 +29,4 @@ displayed_sidebar: docs #### See also [Deactivated](deactivated.md) -[Form event code](form-event-code.md) \ No newline at end of file +[Form event code](../commands/form-event-code.md) \ No newline at end of file diff --git a/versioned_docs/version-20-R7/commands-legacy/after.md b/versioned_docs/version-20-R7/commands-legacy/after.md index db9d459e536400..e21c2e6f13fc34 100644 --- a/versioned_docs/version-20-R7/commands-legacy/after.md +++ b/versioned_docs/version-20-R7/commands-legacy/after.md @@ -22,8 +22,8 @@ displayed_sidebar: docs In order for the **After** execution cycle to be generated, make sure that the On Validate event property for the form and/or the objects has been selected in the Design environment. -**Note:** This command is equivalent to using [Form event code](form-event-code.md) and testing whether it returns the On Validate event. +**Note:** This command is equivalent to using [Form event code](../commands/form-event-code.md) and testing whether it returns the On Validate event. #### See also -[Form event code](form-event-code.md) \ No newline at end of file +[Form event code](../commands/form-event-code.md) \ No newline at end of file diff --git a/versioned_docs/version-20-R7/commands-legacy/array-text.md b/versioned_docs/version-20-R7/commands-legacy/array-text.md index 1abb962a40d13c..4e73032e807c68 100644 --- a/versioned_docs/version-20-R7/commands-legacy/array-text.md +++ b/versioned_docs/version-20-R7/commands-legacy/array-text.md @@ -55,6 +55,3 @@ This example creates an interprocess array of 50 [Text](# "A character string th  End for ``` -#### See also - -*\_o\_ARRAY STRING* \ No newline at end of file diff --git a/versioned_docs/version-20-R7/commands-legacy/before-selection.md b/versioned_docs/version-20-R7/commands-legacy/before-selection.md index 426928ba00ba42..08f0371dc1aa3f 100644 --- a/versioned_docs/version-20-R7/commands-legacy/before-selection.md +++ b/versioned_docs/version-20-R7/commands-legacy/before-selection.md @@ -59,6 +59,6 @@ This form method is used during the printing of a report. It sets a variable, *v [End selection](end-selection.md) [FIRST RECORD](first-record.md) -[Form event code](form-event-code.md) +[Form event code](../commands/form-event-code.md) [PREVIOUS RECORD](previous-record.md) [PRINT SELECTION](print-selection.md) \ No newline at end of file diff --git a/versioned_docs/version-20-R7/commands-legacy/before.md b/versioned_docs/version-20-R7/commands-legacy/before.md index 5df855eb2c5424..94a080a68f6b82 100644 --- a/versioned_docs/version-20-R7/commands-legacy/before.md +++ b/versioned_docs/version-20-R7/commands-legacy/before.md @@ -22,8 +22,8 @@ displayed_sidebar: docs In order for the **Before** execution cycle to be generated, make sure that the On Load event property for the form and/or the objects has been selected in the Design environment. -**Note:** This command is equivalent to using [Form event code](form-event-code.md) and testing whether it returns the On Load event. +**Note:** This command is equivalent to using [Form event code](../commands/form-event-code.md) and testing whether it returns the On Load event. #### See also -[Form event code](form-event-code.md) \ No newline at end of file +[Form event code](../commands/form-event-code.md) \ No newline at end of file diff --git a/versioned_docs/version-20-R7/commands-legacy/call-subform-container.md b/versioned_docs/version-20-R7/commands-legacy/call-subform-container.md index ec7cd9c58d2aa1..20cfa403a186a4 100644 --- a/versioned_docs/version-20-R7/commands-legacy/call-subform-container.md +++ b/versioned_docs/version-20-R7/commands-legacy/call-subform-container.md @@ -30,5 +30,5 @@ In *event*, you can pass any predefined form event of 4D (you can use the consta #### See also -[Form event code](form-event-code.md) +[Form event code](../commands/form-event-code.md) [GOTO OBJECT](goto-object.md) \ No newline at end of file diff --git a/versioned_docs/version-20-R7/commands-legacy/contextual-click.md b/versioned_docs/version-20-R7/commands-legacy/contextual-click.md index c94ec53f5cc168..41b4837788c22b 100644 --- a/versioned_docs/version-20-R7/commands-legacy/contextual-click.md +++ b/versioned_docs/version-20-R7/commands-legacy/contextual-click.md @@ -41,5 +41,5 @@ This method, combined with a scrollable area, enables you to change the value of #### See also -[Form event code](form-event-code.md) +[Form event code](../commands/form-event-code.md) [Right click](right-click.md) \ No newline at end of file diff --git a/versioned_docs/version-20-R7/commands-legacy/data-file.md b/versioned_docs/version-20-R7/commands-legacy/data-file.md index f7b10b541db9ae..16ded6da295ebc 100644 --- a/versioned_docs/version-20-R7/commands-legacy/data-file.md +++ b/versioned_docs/version-20-R7/commands-legacy/data-file.md @@ -30,6 +30,5 @@ If, for example, you are working with the database located in the folder Documen #### See also -*\_o\_DATA SEGMENT LIST* [Application file](application-file.md) [Structure file](structure-file.md) \ No newline at end of file diff --git a/versioned_docs/version-20-R7/commands-legacy/deactivated.md b/versioned_docs/version-20-R7/commands-legacy/deactivated.md index 9cebd9a3a2502a..1eee6e088af26b 100644 --- a/versioned_docs/version-20-R7/commands-legacy/deactivated.md +++ b/versioned_docs/version-20-R7/commands-legacy/deactivated.md @@ -22,9 +22,9 @@ displayed_sidebar: docs In order for the **Deactivated** execution cycle to be generated, make sure that the On Deactivate event property of the form and/or the objects has been selected in Design environment. -**Note:** This command is equivalent to using [Form event code](form-event-code.md) and testing whether it returns the On Deactivate event. +**Note:** This command is equivalent to using [Form event code](../commands/form-event-code.md) and testing whether it returns the On Deactivate event. #### See also [Activated](activated.md) -[Form event code](form-event-code.md) \ No newline at end of file +[Form event code](../commands/form-event-code.md) \ No newline at end of file diff --git a/versioned_docs/version-20-R7/commands-legacy/display-selection.md b/versioned_docs/version-20-R7/commands-legacy/display-selection.md index 221797aaea0ef0..a4b00a25266c15 100644 --- a/versioned_docs/version-20-R7/commands-legacy/display-selection.md +++ b/versioned_docs/version-20-R7/commands-legacy/display-selection.md @@ -63,7 +63,7 @@ The following example selects all the records in the \[People\] table. It then u #### Example 2 -See example #6 for the [Form event code](form-event-code.md) command. This example shows all the tests you may need to check in order to fully monitor the events that occur during a DISPLAY SELECTION. +See example #6 for the [Form event code](../commands/form-event-code.md) command. This example shows all the tests you may need to check in order to fully monitor the events that occur during a DISPLAY SELECTION. #### Example 3 @@ -93,6 +93,6 @@ You can also use other commands, such as [PRINT SELECTION](print-selection.md), #### See also -[Form event code](form-event-code.md) +[Form event code](../commands/form-event-code.md) [MODIFY SELECTION](modify-selection.md) *Sets* \ No newline at end of file diff --git a/versioned_docs/version-20-R7/commands-legacy/displayed-line-number.md b/versioned_docs/version-20-R7/commands-legacy/displayed-line-number.md index 07c67328dea515..5da170cd6017b0 100644 --- a/versioned_docs/version-20-R7/commands-legacy/displayed-line-number.md +++ b/versioned_docs/version-20-R7/commands-legacy/displayed-line-number.md @@ -45,5 +45,5 @@ This example lets you apply an alternating color to a list form displayed on scr #### See also -[Form event code](form-event-code.md) +[Form event code](../commands/form-event-code.md) [Selected record number](selected-record-number.md) \ No newline at end of file diff --git a/versioned_docs/version-20-R7/commands-legacy/drop-position.md b/versioned_docs/version-20-R7/commands-legacy/drop-position.md index 5d3dc79486b33d..3cd081f6726b17 100644 --- a/versioned_docs/version-20-R7/commands-legacy/drop-position.md +++ b/versioned_docs/version-20-R7/commands-legacy/drop-position.md @@ -94,5 +94,4 @@ The left (destination) list box object method contains the following code: #### See also -*\_o\_DRAG AND DROP PROPERTIES* *Drag and Drop* \ No newline at end of file diff --git a/versioned_docs/version-20-R7/commands-legacy/end-selection.md b/versioned_docs/version-20-R7/commands-legacy/end-selection.md index 67e9e843f57f38..f9f901f1686db4 100644 --- a/versioned_docs/version-20-R7/commands-legacy/end-selection.md +++ b/versioned_docs/version-20-R7/commands-legacy/end-selection.md @@ -57,7 +57,7 @@ This form method is used during the printing of a report. It sets the variable * #### See also [Before selection](before-selection.md) -[Form event code](form-event-code.md) +[Form event code](../commands/form-event-code.md) [LAST RECORD](last-record.md) [NEXT RECORD](next-record.md) [PRINT SELECTION](print-selection.md) \ No newline at end of file diff --git a/versioned_docs/version-20-R7/commands-legacy/filter-keystroke.md b/versioned_docs/version-20-R7/commands-legacy/filter-keystroke.md index 50c72c1eb950b0..bfd511b577d112 100644 --- a/versioned_docs/version-20-R7/commands-legacy/filter-keystroke.md +++ b/versioned_docs/version-20-R7/commands-legacy/filter-keystroke.md @@ -22,7 +22,7 @@ displayed_sidebar: docs If you pass an empty string, the keystroke is cancelled and ignored. -Usually, you will call **FILTER KEYSTROKE** within a form or object method while handling an On Before Keystroke form event. To detect keystroke events, use the command [Form event code](form-event-code.md). To obtain the actual keystroke, use the commands [Keystroke](keystroke.md) or [Get edited text](get-edited-text.md). +Usually, you will call **FILTER KEYSTROKE** within a form or object method while handling an On Before Keystroke form event. To detect keystroke events, use the command [Form event code](../commands/form-event-code.md). To obtain the actual keystroke, use the commands [Keystroke](keystroke.md) or [Get edited text](get-edited-text.md). **IMPORTANT NOTE:** The command **FILTER KEYSTROKE** allows you to cancel or replace the character entered by the user with another character. On the other hand, if you want to insert more than one character for a specific keystroke, remember that the text you see on the screen is NOT YET the value of the data source field or variable for the area being edited. The data source field or variable is assigned the entered value after the data entry for the area is validated. It is therefore up to you to “shadow” the data entry into a variable and then to work with this shadow value and reassign the enterable area (see the example in this section). You can also use the [Get edited text](get-edited-text.md) command. @@ -86,39 +86,37 @@ As explained above, during the editing of the text area, the data source for thi   // Shadow keystroke project method   // Shadow keystroke ( Pointer ; Pointer ; String ) -> String   // Shadow keystroke ( -> srcArea ; -> curValue ; Filter ) -> Old keystroke - C_STRING(1;$0) - var $1;$2 : Pointer +#DECLARE ($srcArea : Pointer ; $curVal : Pointer ; $filter : Text) -> $old : Text  var $vtNewValue : Text - C_STRING(255;$3)   // Return the original keystroke - $0:=Keystroke + $old:=Keystroke   // Get the text selection range within the enterable area - GET HIGHLIGHT($1->;$vlStart;$vlEnd) + GET HIGHLIGHT($srcArea->;$vlStart;$vlEnd)   // Start working with the current value - $vtNewValue:=$2-> + $vtNewValue:=$curVal->   // Depending on the key pressed or the character entered,   // Perform the appropriate actions  Case of   // The Backspace (Delete) key has been pressed -    :(Character code($0)=Backspace) +    :(Character code($old)=Backspace)   // Delete the selected characters or the character at the left of the text cursor        $vtNewValue:=Delete text($vtNewValue;$vlStart;$vlEnd)   // An Arrow key has been pressed   // Do nothing, but accept the keystroke -    :(Character code($0)=Left arrow key) -    :(Character code($0)=Right arrow key) -    :(Character code($0)=Up arrow key) -    :(Character code($0)=Down arrow key) +    :(Character code($old)=Left arrow key) +    :(Character code($old)=Right arrow key) +    :(Character code($old)=Up arrow key) +    :(Character code($old)=Down arrow key)     // An acceptable character has been entered -    :(Position($0;$3)=0) +    :(Position($old;$filter)=0)        $vtNewValue:=Insert text($vtNewValue;$vlStart;$vlEnd;$0)     Else   // The character is not accepted        FILTER KEYSTROKE("")  End case   // Return the value for the next keystroke handling - $2->:=$vtNewValue + $curVal->:=$vtNewValue ``` This method uses the two following submethods: @@ -127,26 +125,25 @@ This method uses the two following submethods:   // Delete text project method   // Delete text ( String ; Long ; Long ) -> String   // Delete text ( -> Text ; SelStart ; SelEnd ) -> New text - var $0;$1 : Text - var $2;$3 : Integer - $0:=Substring($1;1;$2-1-Num($2=$3))+Substring($1;$3) -  +#DECLARE ($src : Text ; $start : Integer ; $end : Integer) -> $new : Text  + $new:=Substring($src;1;$start-1-Num($start=$end))+Substring($src;$end) +``` +```4d    // Insert text project method   // Insert text ( String ; Long ; Long ; String ) -> String   // Insert text ( -> srcText ; SelStart ; SelEnd ; Text to insert ) -> New text - var $0;$1;$4 : Text - var $2;$3 : Integer - $0:=$1 - If($2#$3) -    $0:=Substring($0;1;$2-1)+$4+Substring($0;$3) +#DECLARE ($src : Text ; $start : Integer ; $end : Integer ; $toInsert : Text) -> $new : Text  + $new:=$src + If($start # $end) +    $new:=Substring($new;1;$start-1)+$toInsert+Substring($new;$end)  Else     Case of -       :($2<=1) -          $0:=$4+$0 -       :($2>Length($0)) -          $0:=$0+$4 +       :($start<=1) +          $new:=$toInsert+$new +       :($start>Length($new)) +          $new:=$new+$toInsert        Else -          $0:=Substring($0;1;$2-1)+$4+Substring($0;$2) +          $new:=Substring($new;1;$start-1)+$toInsert+Substring($new;$start)     End case  End if ``` @@ -180,13 +177,13 @@ The LOOKUP DICTIONARY project method is listed below. Its purpose is to use the   // LOOKUP DICTIONARY ( Pointer ; Pointer )   // LOOKUP DICTIONARY ( -> Enterable Area ; ->ShadowVariable )   - var $1;$2 : Pointer +#DECLARE ($area : Pointer ; $shadow : Pointer)  var $vlStart;$vlEnd : Integer     // Get the text selection range within the enterable area - GET HIGHLIGHT($1->;$vlStart;$vlEnd) + GET HIGHLIGHT($area->;$vlStart;$vlEnd)   // Get the selected text or the word on the left of the text cursor - $vtHighlightedText:=Get highlighted text($2->;$vlStart;$vlEnd) + $vtHighlightedText:=Get highlighted text($shadow->;$vlStart;$vlEnd)   // Is there something to look for?  If($vtHighlightedText#"")   // If the text selection was the text cursor, @@ -194,14 +191,14 @@ The LOOKUP DICTIONARY project method is listed below. Its purpose is to use the     If($vlStart=$vlEnd)        $vlStart:=$vlStart-Length($vtHighlightedText)     End if -  // Look for the first avaliable dictionary entry +  // Look for the first available dictionary entry     QUERY([Dictionary];[Dictionary]Entry=$vtHighlightedText+"@")   // Is there one?     If(Records in selection([Dictionary])>0)   // If so, insert it in the shadow text -       $2->:=Insert text($2->;$vlStart;$vlEnd;[Dictionary]Entry) +       $shadow->:=Insert text($shadow->;$vlStart;$vlEnd;[Dictionary]Entry)   // Copy the shadow text to the enterable being edited -       $1->:=$2-> +       $area->:=$shadow->   // Set the selection just after the insert dictionary entry        $vlEnd:=$vlStart+Length([Dictionary]Entry)        HIGHLIGHT TEXT(vsComments;$vlEnd;$vlEnd) @@ -221,29 +218,28 @@ The Get highlighted text method is listed here:   // Get highlighted text project method   // Get highlighted text ( String ; Long ; Long ) -> String   // Get highlighted text ( Text ; SelStart ; SelEnd ) -> highlighted text - var $0;$1 : Text - var $2;$3 : Integer - If($2<$3) -    $0:=Substring($1;$2;$3-$2) +#DECLARE ($text : Text ; $start : Integer ; $end : Integer) -> $highlight : Text + If($start<$end) +    $highlight:=Substring($text;$start;$end-$start)  Else -    $0:="" -    $2:=$2-1 +    $highlight:="" +    $start:=$start-1     Repeat -       If($2>0) -          If(Position($1[[$2]];"  ,.!?:;()-_–—")=0) -             $0:=$1[[$2]]+$0 -             $2:=$2-1 +       If($start>0) +          If(Position($text[[$start]];"  ,.!?:;()-_–—")=0) +             $highlight:=$text[[$start]]+$highlight +             $start:=$start-1           Else -             $2:=0 +             $start:=0           End if        End if -    Until($2=0) +    Until($start=0)  End if ``` #### See also -[Form event code](form-event-code.md) +[Form event code](../commands/form-event-code.md) [Get edited text](get-edited-text.md) [Is editing text](is-editing-text.md) [Keystroke](keystroke.md) \ No newline at end of file diff --git a/versioned_docs/version-20-R7/commands-legacy/font-list.md b/versioned_docs/version-20-R7/commands-legacy/font-list.md index ae4bfee6452ba3..0b351e173968ca 100644 --- a/versioned_docs/version-20-R7/commands-legacy/font-list.md +++ b/versioned_docs/version-20-R7/commands-legacy/font-list.md @@ -68,7 +68,6 @@ You want to get a list of recent fonts: #### See also -*\_o\_Font name* [FONT STYLE LIST](font-style-list.md) *Font Type List* [OBJECT SET FONT](object-set-font.md) diff --git a/versioned_docs/version-20-R7/commands-legacy/form-goto-page.md b/versioned_docs/version-20-R7/commands-legacy/form-goto-page.md index 710459498bcfd7..b5a62548060f80 100644 --- a/versioned_docs/version-20-R7/commands-legacy/form-goto-page.md +++ b/versioned_docs/version-20-R7/commands-legacy/form-goto-page.md @@ -32,7 +32,7 @@ Automatic action buttons perform the same tasks as the [FORM FIRST PAGE](form-fi Page commands can be used with input forms or with forms displayed in dialogs. Output forms use only the first page. A form always has at least one page—the first page. Remember that regardless of the number of pages a form has, only one form method exists for each form. * Use the [FORM Get current page](form-get-current-page.md) command to find out which page is being displayed. -* Use the On Page Change [Form event code](form-event-code.md) that is generated each time the current page of the form changes. +* Use the On Page Change [Form event code](../commands/form-event-code.md) that is generated each time the current page of the form changes. **Note:** When **designing** a form, you can work with pages 1 through X, as well as with page 0, in which you put objects that will appear in all of the pages. When **using** a form, and therefore when calling page commands, you work with pages 1 through X; page 0 is automatically combined with the page being displayed. diff --git a/versioned_docs/version-20-R7/commands-legacy/form-set-input.md b/versioned_docs/version-20-R7/commands-legacy/form-set-input.md index dd2784d9f89294..0c21d23750df18 100644 --- a/versioned_docs/version-20-R7/commands-legacy/form-set-input.md +++ b/versioned_docs/version-20-R7/commands-legacy/form-set-input.md @@ -98,7 +98,6 @@ which displays: #### See also -*\_o\_CREATE USER FORM* [ADD RECORD](add-record.md) [DISPLAY RECORD](display-record.md) [DISPLAY SELECTION](display-selection.md) diff --git a/versioned_docs/version-20-R7/commands-legacy/form-set-output.md b/versioned_docs/version-20-R7/commands-legacy/form-set-output.md index 1726ee61487c07..4234cbf3821d48 100644 --- a/versioned_docs/version-20-R7/commands-legacy/form-set-output.md +++ b/versioned_docs/version-20-R7/commands-legacy/form-set-output.md @@ -64,7 +64,6 @@ The following example uses the path to a .json form to print the records in an e #### See also -*\_o\_CREATE USER FORM* [DISPLAY SELECTION](display-selection.md) [EXPORT DIF](export-dif.md) [EXPORT SYLK](export-sylk.md) diff --git a/versioned_docs/version-20-R7/commands-legacy/get-document-properties.md b/versioned_docs/version-20-R7/commands-legacy/get-document-properties.md index cbc909d570bfe8..00bd3f8a63dfc3 100644 --- a/versioned_docs/version-20-R7/commands-legacy/get-document-properties.md +++ b/versioned_docs/version-20-R7/commands-legacy/get-document-properties.md @@ -207,6 +207,4 @@ Once this is implemented in the database, we have all we need to write the proje #### See also -*\_o\_Document creator* -*\_o\_Document type* [SET DOCUMENT PROPERTIES](set-document-properties.md) \ No newline at end of file diff --git a/versioned_docs/version-20-R7/commands-legacy/get-edited-text.md b/versioned_docs/version-20-R7/commands-legacy/get-edited-text.md index c502e3d86cc9e1..0ecaa05679d703 100644 --- a/versioned_docs/version-20-R7/commands-legacy/get-edited-text.md +++ b/versioned_docs/version-20-R7/commands-legacy/get-edited-text.md @@ -18,7 +18,7 @@ displayed_sidebar: docs #### Description -The **Get edited text** command is mainly to be used with the On After Edit form event to retrieve the text as it is being entered. It can also be used with the On Before Keystroke and On After Keystroke form events. For more information about those form events, please refer to the description of the command [Form event code](form-event-code.md). +The **Get edited text** command is mainly to be used with the On After Edit form event to retrieve the text as it is being entered. It can also be used with the On Before Keystroke and On After Keystroke form events. For more information about those form events, please refer to the description of the command [Form event code](../commands/form-event-code.md). The combination of this command with On Before Keystroke and On After Keystroke form events works as follows: @@ -66,5 +66,5 @@ Here is an example of how to process on the fly characters entered in a text fie #### See also -[Form event code](form-event-code.md) +[Form event code](../commands/form-event-code.md) [Is editing text](is-editing-text.md) \ No newline at end of file diff --git a/versioned_docs/version-20-R7/commands-legacy/get-highlight.md b/versioned_docs/version-20-R7/commands-legacy/get-highlight.md index f70dc4b74b267c..7b1c52a24c2162 100644 --- a/versioned_docs/version-20-R7/commands-legacy/get-highlight.md +++ b/versioned_docs/version-20-R7/commands-legacy/get-highlight.md @@ -42,8 +42,10 @@ If the object designated by the *object* parameter is not found in the form, the The following example gets the highlighted selection from the field called *\[Products\]Comments*: ```4d - GET HIGHLIGHT([Products]Comments;vFirst;vLast) - If(vFirst +GET HIGHLIGHT([Products]Comments;vFirst;vLast) +If(vFirst < vlast) + ALERT("The selected text is:"+Substring([Products]Comments;vFirst;vLast-vFirst)) +End if ``` #### Example 2 diff --git a/versioned_docs/version-20-R7/commands-legacy/get-process-variable.md b/versioned_docs/version-20-R7/commands-legacy/get-process-variable.md index 71aa3d02c5d9ea..04054d91bc6fe6 100644 --- a/versioned_docs/version-20-R7/commands-legacy/get-process-variable.md +++ b/versioned_docs/version-20-R7/commands-legacy/get-process-variable.md @@ -108,13 +108,8 @@ This example reads the source process instances of the variables *v1*,*v2*,*v3*  GET PROCESS VARIABLE($vlProcess;v1;v1;v2;v2;v3;v3) ``` -#### Example 7 - -See the example for the *\_o\_DRAG AND DROP PROPERTIES* command. - #### See also -*\_o\_DRAG AND DROP PROPERTIES* *Drag and Drop* [POST OUTSIDE CALL](post-outside-call.md) *Processes* diff --git a/versioned_docs/version-20-R7/commands-legacy/in-break.md b/versioned_docs/version-20-R7/commands-legacy/in-break.md index b0f51d1e2728b7..78c239ba3af84e 100644 --- a/versioned_docs/version-20-R7/commands-legacy/in-break.md +++ b/versioned_docs/version-20-R7/commands-legacy/in-break.md @@ -22,10 +22,9 @@ displayed_sidebar: docs In order for the **In break** execution cycle to be generated, make sure that the On Printing Break event property for the form and/or the objects has been selected in the Design environment. -**Note:** This command is equivalent to using [Form event code](form-event-code.md) and testing whether it returns the On Printing Break event. +**Note:** This command is equivalent to using [Form event code](../commands/form-event-code.md) and testing whether it returns the On Printing Break event. #### See also -*\_o\_During* [In footer](in-footer.md) [In header](in-header.md) \ No newline at end of file diff --git a/versioned_docs/version-20-R7/commands-legacy/in-footer.md b/versioned_docs/version-20-R7/commands-legacy/in-footer.md index e0bf3b21fc266c..84a401c0b0f138 100644 --- a/versioned_docs/version-20-R7/commands-legacy/in-footer.md +++ b/versioned_docs/version-20-R7/commands-legacy/in-footer.md @@ -22,10 +22,9 @@ displayed_sidebar: docs In order for the **In footer** execution cycle to be generated, make sure that the On Printing Footer event property for the form and/or the objects has been selected in the Design environment. -**Note:** This command is equivalent to using [Form event code](form-event-code.md) and testing whether it returns the On Printing Footer event. +**Note:** This command is equivalent to using [Form event code](../commands/form-event-code.md) and testing whether it returns the On Printing Footer event. #### See also -*\_o\_During* [In break](in-break.md) [In header](in-header.md) \ No newline at end of file diff --git a/versioned_docs/version-20-R7/commands-legacy/in-header.md b/versioned_docs/version-20-R7/commands-legacy/in-header.md index b68b7beb210f14..3e97756d4cd22e 100644 --- a/versioned_docs/version-20-R7/commands-legacy/in-header.md +++ b/versioned_docs/version-20-R7/commands-legacy/in-header.md @@ -22,10 +22,9 @@ displayed_sidebar: docs In order for the **In header** execution cycle to be generated, make sure that the On Header event property for the form and/or the objects has been selected in the Design environment. -**Note:** This command is equivalent to using [Form event code](form-event-code.md) and testing whether it returns the On Header event. +**Note:** This command is equivalent to using [Form event code](../commands/form-event-code.md) and testing whether it returns the On Header event. #### See also -*\_o\_During* [In break](in-break.md) [In footer](in-footer.md) \ No newline at end of file diff --git a/versioned_docs/version-20-R7/commands-legacy/integrate-mirror-log-file.md b/versioned_docs/version-20-R7/commands-legacy/integrate-mirror-log-file.md index 8006f7dde256e1..da3e69b237294a 100644 --- a/versioned_docs/version-20-R7/commands-legacy/integrate-mirror-log-file.md +++ b/versioned_docs/version-20-R7/commands-legacy/integrate-mirror-log-file.md @@ -98,6 +98,4 @@ If the integration is carried out correctly, the system variable OK is set to 1; #### See also - -*\_o\_INTEGRATE LOG FILE* [LOG FILE TO JSON](log-file-to-json.md) \ No newline at end of file diff --git a/versioned_docs/version-20-R7/commands-legacy/is-a-list.md b/versioned_docs/version-20-R7/commands-legacy/is-a-list.md index 2afca2e447859d..1c0e4fe8df3da5 100644 --- a/versioned_docs/version-20-R7/commands-legacy/is-a-list.md +++ b/versioned_docs/version-20-R7/commands-legacy/is-a-list.md @@ -21,14 +21,8 @@ displayed_sidebar: docs The Is a list command returns TRUE if the value you pass in *list* is a valid reference to a hierarchical list. Otherwise, it returns FALSE. -#### Example 1 +#### Example See example for the [CLEAR LIST](clear-list.md) command. -#### Example 2 -See examples for the *\_o\_DRAG AND DROP PROPERTIES* command. - -#### See also - -*\_o\_DRAG AND DROP PROPERTIES* \ No newline at end of file diff --git a/versioned_docs/version-20-R7/commands-legacy/is-waiting-mouse-up.md b/versioned_docs/version-20-R7/commands-legacy/is-waiting-mouse-up.md index 780cde1376018a..609385d4ffde16 100644 --- a/versioned_docs/version-20-R7/commands-legacy/is-waiting-mouse-up.md +++ b/versioned_docs/version-20-R7/commands-legacy/is-waiting-mouse-up.md @@ -52,4 +52,4 @@ The following code can be used to manage a mouse tracking feature in a picture o #### See also -[Form event code](form-event-code.md) \ No newline at end of file +[Form event code](../commands/form-event-code.md) \ No newline at end of file diff --git a/versioned_docs/version-20-R7/commands-legacy/keystroke.md b/versioned_docs/version-20-R7/commands-legacy/keystroke.md index 0b5b9b3acce34a..7df9fe0ba18d9c 100644 --- a/versioned_docs/version-20-R7/commands-legacy/keystroke.md +++ b/versioned_docs/version-20-R7/commands-legacy/keystroke.md @@ -20,7 +20,7 @@ displayed_sidebar: docs **Keystroke** returns the character entered by the user into a field or an enterable area. -Usually, you will call **Keystroke** within a form or object method while handling an On Before Keystroke or On After Keystroke form event. To detect keystroke events, use the command [Form event code](form-event-code.md). +Usually, you will call **Keystroke** within a form or object method while handling an On Before Keystroke or On After Keystroke form event. To detect keystroke events, use the command [Form event code](../commands/form-event-code.md). To replace the character actually entered by the user with another character, use the command [FILTER KEYSTROKE](filter-keystroke.md). @@ -169,5 +169,5 @@ Using the interprocess communication capabilities of 4D, you can similarily buil #### See also [FILTER KEYSTROKE](filter-keystroke.md) -[Form event code](form-event-code.md) +[Form event code](../commands/form-event-code.md) [Get edited text](get-edited-text.md) \ No newline at end of file diff --git a/versioned_docs/version-20-R7/commands-legacy/level.md b/versioned_docs/version-20-R7/commands-legacy/level.md index 4cac4f5e1172f6..d53ae5f4a1af13 100644 --- a/versioned_docs/version-20-R7/commands-legacy/level.md +++ b/versioned_docs/version-20-R7/commands-legacy/level.md @@ -67,5 +67,5 @@ This example is a template for a form method. It shows each of the possible even [ACCUMULATE](accumulate.md) [BREAK LEVEL](break-level.md) -[Form event code](form-event-code.md) +[Form event code](../commands/form-event-code.md) [PRINT SELECTION](print-selection.md) \ No newline at end of file diff --git a/versioned_docs/version-20-R7/commands-legacy/listbox-moved-column-number.md b/versioned_docs/version-20-R7/commands-legacy/listbox-moved-column-number.md index 40c43ad1fb3e6c..f02edb291196ef 100644 --- a/versioned_docs/version-20-R7/commands-legacy/listbox-moved-column-number.md +++ b/versioned_docs/version-20-R7/commands-legacy/listbox-moved-column-number.md @@ -25,11 +25,11 @@ displayed_sidebar: docs If you pass the optional *\** parameter, you indicate that the *object* parameter is an object name (string). If you do not pass this parameter, you indicate that the *object* parameter is a variable. In this case, you pass a variable reference instead of a string. For more information about object names, refer to the *Object Properties* section. -This command must be used with the form event On Column Moved (see the [Form event code](form-event-code.md) command). +This command must be used with the form event On Column Moved (see the [Form event code](../commands/form-event-code.md) command). **Note:** This command takes invisible columns into account. #### See also -[Form event code](form-event-code.md) +[Form event code](../commands/form-event-code.md) [LISTBOX MOVED ROW NUMBER](listbox-moved-row-number.md) \ No newline at end of file diff --git a/versioned_docs/version-20-R7/commands-legacy/listbox-moved-row-number.md b/versioned_docs/version-20-R7/commands-legacy/listbox-moved-row-number.md index 2d48812e786f29..31aec02ce91630 100644 --- a/versioned_docs/version-20-R7/commands-legacy/listbox-moved-row-number.md +++ b/versioned_docs/version-20-R7/commands-legacy/listbox-moved-row-number.md @@ -27,11 +27,11 @@ displayed_sidebar: docs If you pass the optional *\** parameter, you indicate that the *object* parameter is an object name (string). If you do not pass this parameter, you indicate that the *object* parameter is a variable. In this case, you pass a variable reference instead of a string. For more information about object names, refer to the *Object Properties* section. -This command must be used with the form event On Row Moved (see the [Form event code](form-event-code.md) command). +This command must be used with the form event On Row Moved (see the [Form event code](../commands/form-event-code.md) command). **Note:** This command does not take into account any hidden/displayed states of list box rows. #### See also -[Form event code](form-event-code.md) +[Form event code](../commands/form-event-code.md) [LISTBOX MOVED COLUMN NUMBER](listbox-moved-column-number.md) \ No newline at end of file diff --git a/versioned_docs/version-20-R7/commands-legacy/modified.md b/versioned_docs/version-20-R7/commands-legacy/modified.md index 5de3aaa83c28cb..8624604692c00c 100644 --- a/versioned_docs/version-20-R7/commands-legacy/modified.md +++ b/versioned_docs/version-20-R7/commands-legacy/modified.md @@ -33,7 +33,7 @@ In all cases, use the [Old](old.md) command to detect whether the field value ha **Note:** Although **Modified** can be applied to any type of field, if you use it in combination with the [Old](old.md) command, be aware of the restrictions that apply to the [Old](old.md) command. For details, see the description of the [Old](old.md) command. -During data entry, it is usually easier to perform operations in object methods using the [Form event code](form-event-code.md) command than to use **Modified** in form methods. Since an object method is sent an On Data Change event whenever a field is modified, the use of an object method is equivalent to using **Modified** in a form method. +During data entry, it is usually easier to perform operations in object methods using the [Form event code](../commands/form-event-code.md) command than to use **Modified** in form methods. Since an object method is sent an On Data Change event whenever a field is modified, the use of an object method is equivalent to using **Modified** in a form method. **Note:** To operate properly, the **Modified** command is to be used only in a form method or in a method called by a form method. @@ -68,5 +68,5 @@ You select a record for the table *\[anyTable\]*, then you call multiple subrout #### See also -[Form event code](form-event-code.md) +[Form event code](../commands/form-event-code.md) [Old](old.md) \ No newline at end of file diff --git a/versioned_docs/version-20-R7/commands-legacy/modify-selection.md b/versioned_docs/version-20-R7/commands-legacy/modify-selection.md index 9162222be92c6f..cdd1a32f101374 100644 --- a/versioned_docs/version-20-R7/commands-legacy/modify-selection.md +++ b/versioned_docs/version-20-R7/commands-legacy/modify-selection.md @@ -31,5 +31,5 @@ displayed_sidebar: docs #### See also [DISPLAY SELECTION](display-selection.md) -[Form event code](form-event-code.md) +[Form event code](../commands/form-event-code.md) *Sets* \ No newline at end of file diff --git a/versioned_docs/version-20-R7/commands-legacy/new-log-file.md b/versioned_docs/version-20-R7/commands-legacy/new-log-file.md index 582691b0b5b389..cd923d8489fea2 100644 --- a/versioned_docs/version-20-R7/commands-legacy/new-log-file.md +++ b/versioned_docs/version-20-R7/commands-legacy/new-log-file.md @@ -30,6 +30,3 @@ The file is renamed with the current backup numbers of the database and of the l In the event of an error, the command generates a code that can be intercepted using the [ON ERR CALL](on-err-call.md "ON ERR CALL") command. -#### See also - -*\_o\_INTEGRATE LOG FILE* \ No newline at end of file diff --git a/versioned_docs/version-20-R7/commands-legacy/object-set-action.md b/versioned_docs/version-20-R7/commands-legacy/object-set-action.md index 11a1227752a810..24970b4920809c 100644 --- a/versioned_docs/version-20-R7/commands-legacy/object-set-action.md +++ b/versioned_docs/version-20-R7/commands-legacy/object-set-action.md @@ -40,5 +40,4 @@ You want to associate the **Validate** standard action with a button: #### See also -*\_o\_OBJECT Get action* [OBJECT Get action](object-get-action.md) \ No newline at end of file diff --git a/versioned_docs/version-20-R7/commands-legacy/object-set-rgb-colors.md b/versioned_docs/version-20-R7/commands-legacy/object-set-rgb-colors.md index 5462f4ff8a4d91..20e126dec90c69 100644 --- a/versioned_docs/version-20-R7/commands-legacy/object-set-rgb-colors.md +++ b/versioned_docs/version-20-R7/commands-legacy/object-set-rgb-colors.md @@ -104,6 +104,5 @@ Changing to transparent background with a light font color: #### See also -*\_o\_OBJECT SET COLOR* [OBJECT GET RGB COLORS](object-get-rgb-colors.md) [Select RGB Color](select-rgb-color.md) \ No newline at end of file diff --git a/versioned_docs/version-20-R7/commands-legacy/open-window.md b/versioned_docs/version-20-R7/commands-legacy/open-window.md index 6406804add5db4..0f3c69a98eaf1c 100644 --- a/versioned_docs/version-20-R7/commands-legacy/open-window.md +++ b/versioned_docs/version-20-R7/commands-legacy/open-window.md @@ -50,7 +50,7 @@ If you pass an empty string ("") in *title,* you instruct 4D to use the Window T * The *controlMenuBox* parameter is the optional Control-menu box method for the window. If this parameter is specified, a Control-menu box (Windows) or a Close Box (Macintosh) is added to the window. When the user double-clicks the Control-menu box (Windows) or clicks on the Close Box (Macintosh), the method passed in *controlMenuBox* is called. -**Note:** You can also manage the closing of the window from within the form method of the form displayed in the window when an On Close Box event occurs. For more information, see the command [Form event code](form-event-code.md). +**Note:** You can also manage the closing of the window from within the form method of the form displayed in the window when an On Close Box event occurs. For more information, see the command [Form event code](../commands/form-event-code.md). If more than one window is open for a process, the last window opened is the active (frontmost) window for that process. Only information within the active window can be modified. Any other windows can be viewed. When the user types, the active window will always come to the front, if it is not already there. diff --git a/versioned_docs/version-20-R7/commands-legacy/outside-call.md b/versioned_docs/version-20-R7/commands-legacy/outside-call.md index 0aa695c880e3b5..5c2661bc04e37e 100644 --- a/versioned_docs/version-20-R7/commands-legacy/outside-call.md +++ b/versioned_docs/version-20-R7/commands-legacy/outside-call.md @@ -22,9 +22,9 @@ displayed_sidebar: docs In order for the **Outside call** execution cycle to be generated, make sure that the On Outside Call event property for the form and/or the objects has been selected in the Design environment. -**Note:** This command is equivalent to using [Form event code](form-event-code.md) and testing whether it returns the On Outside Call event. +**Note:** This command is equivalent to using [Form event code](../commands/form-event-code.md) and testing whether it returns the On Outside Call event. #### See also -[Form event code](form-event-code.md) +[Form event code](../commands/form-event-code.md) [POST OUTSIDE CALL](post-outside-call.md) \ No newline at end of file diff --git a/versioned_docs/version-20-R7/commands-legacy/picture-to-blob.md b/versioned_docs/version-20-R7/commands-legacy/picture-to-blob.md index f392c0846cd985..569b4d35aefd06 100644 --- a/versioned_docs/version-20-R7/commands-legacy/picture-to-blob.md +++ b/versioned_docs/version-20-R7/commands-legacy/picture-to-blob.md @@ -47,7 +47,6 @@ You want to convert an image from a proprietary format to GIF format and display #### See also -*\_o\_PICTURE TO GIF* [BLOB TO PICTURE](blob-to-picture.md) [PICTURE CODEC LIST](picture-codec-list.md) [WRITE PICTURE FILE](write-picture-file.md) \ No newline at end of file diff --git a/versioned_docs/version-20-R7/commands-legacy/post-outside-call.md b/versioned_docs/version-20-R7/commands-legacy/post-outside-call.md index cc56fb8e723f8f..23db8a7147c413 100644 --- a/versioned_docs/version-20-R7/commands-legacy/post-outside-call.md +++ b/versioned_docs/version-20-R7/commands-legacy/post-outside-call.md @@ -44,6 +44,6 @@ See example for [Semaphore](semaphore.md). #### See also -[Form event code](form-event-code.md) +[Form event code](../commands/form-event-code.md) [GET PROCESS VARIABLE](get-process-variable.md) [SET PROCESS VARIABLE](set-process-variable.md) \ No newline at end of file diff --git a/versioned_docs/version-20-R7/commands-legacy/print-selection.md b/versioned_docs/version-20-R7/commands-legacy/print-selection.md index ab80d9690bfd34..9e9117daa540d7 100644 --- a/versioned_docs/version-20-R7/commands-legacy/print-selection.md +++ b/versioned_docs/version-20-R7/commands-legacy/print-selection.md @@ -33,7 +33,7 @@ During printing, the output form method and/or the form’s object methods are e * An On Printing Break event is generated just before a break area is printed. * An On Printing Footer event is generated just before a footer is printed. -You can check whether **PRINT SELECTION** is printing the first header by testing [Before selection](before-selection.md) during an On Header event. You can also check for the last footer, by testing [End selection](end-selection.md) during an On Printing Footer event. For more information, see the description of these commands, as well as those of [Form event code](form-event-code.md) and [Level](level.md). +You can check whether **PRINT SELECTION** is printing the first header by testing [Before selection](before-selection.md) during an On Header event. You can also check for the last footer, by testing [End selection](end-selection.md) during an On Printing Footer event. For more information, see the description of these commands, as well as those of [Form event code](../commands/form-event-code.md) and [Level](level.md). To print a sorted selection with subtotals or breaks using **PRINT SELECTION**, you must first sort the selection. Then, in each Break area of the report, include a variable with an object method that assigns the subtotal to the variable. You can also use statistical and arithmetical functions like [Sum](sum.md) and [Average](average.md) to assign values to variables. For more information, see the descriptions of [Subtotal](subtotal.md), [BREAK LEVEL](break-level.md) and [ACCUMULATE](accumulate.md). @@ -59,7 +59,6 @@ The following example selects all the records in the \[People\] table. It then u #### See also -*\_o\_PAGE SETUP* [ACCUMULATE](accumulate.md) [BREAK LEVEL](break-level.md) [Level](level.md) diff --git a/versioned_docs/version-20-R7/commands-legacy/resolve-pointer.md b/versioned_docs/version-20-R7/commands-legacy/resolve-pointer.md index b2f90aa7104780..58d350c7180f93 100644 --- a/versioned_docs/version-20-R7/commands-legacy/resolve-pointer.md +++ b/versioned_docs/version-20-R7/commands-legacy/resolve-pointer.md @@ -103,7 +103,6 @@ Here is an example of a 2D array pointer: #### See also -*\_o\_DRAG AND DROP PROPERTIES* [Field](field.md) [Get pointer](get-pointer.md) [Is a variable](is-a-variable.md) diff --git a/versioned_docs/version-20-R7/commands-legacy/right-click.md b/versioned_docs/version-20-R7/commands-legacy/right-click.md index f954c8861150ba..0eb2e19c0b4e99 100644 --- a/versioned_docs/version-20-R7/commands-legacy/right-click.md +++ b/versioned_docs/version-20-R7/commands-legacy/right-click.md @@ -25,4 +25,4 @@ This command should be used only in the context of the On Clicked form event. It #### See also [Contextual click](contextual-click.md) -[Form event code](form-event-code.md) \ No newline at end of file +[Form event code](../commands/form-event-code.md) \ No newline at end of file diff --git a/versioned_docs/version-20-R7/commands-legacy/set-cursor.md b/versioned_docs/version-20-R7/commands-legacy/set-cursor.md index a0d034e0bd3a37..fcc136e2af889b 100644 --- a/versioned_docs/version-20-R7/commands-legacy/set-cursor.md +++ b/versioned_docs/version-20-R7/commands-legacy/set-cursor.md @@ -20,7 +20,7 @@ displayed_sidebar: docs The SET CURSOR command changes the mouse cursor to the system cursor whose ID number you pass in *cursor*. -This command must be called in the context of the On Mouse Move [Form event code](form-event-code.md). +This command must be called in the context of the On Mouse Move [Form event code](../commands/form-event-code.md). To restore the standard mouse cursor, call the command without any parameter. diff --git a/versioned_docs/version-20-R7/commands-legacy/set-document-properties.md b/versioned_docs/version-20-R7/commands-legacy/set-document-properties.md index 2388aff022c64f..42d7ff8c471df5 100644 --- a/versioned_docs/version-20-R7/commands-legacy/set-document-properties.md +++ b/versioned_docs/version-20-R7/commands-legacy/set-document-properties.md @@ -34,6 +34,4 @@ The dates and times of creation and last modification are managed by the file ma #### See also -*\_o\_SET DOCUMENT CREATOR* -*\_o\_SET DOCUMENT TYPE* [GET DOCUMENT PROPERTIES](get-document-properties.md) \ No newline at end of file diff --git a/versioned_docs/version-20-R7/commands-legacy/set-drag-icon.md b/versioned_docs/version-20-R7/commands-legacy/set-drag-icon.md index 0a936fb665cf86..a36f98d11cb3bb 100644 --- a/versioned_docs/version-20-R7/commands-legacy/set-drag-icon.md +++ b/versioned_docs/version-20-R7/commands-legacy/set-drag-icon.md @@ -22,7 +22,7 @@ displayed_sidebar: docs The **SET DRAG ICON** command associates the icon picture with the cursor during drag and drop operations that are managed by programming. -This command can only be called in the context of the On Begin Drag Over form event (see the [Form event code](form-event-code.md) command). +This command can only be called in the context of the On Begin Drag Over form event (see the [Form event code](../commands/form-event-code.md) command). In the *icon* parameter, pass the picture to use. Its maximum size is 256x256 pixels. If one of its dimensions exceeds 256 pixels, it is automatically resized. @@ -59,4 +59,4 @@ Note that you can modify the position of the cursor with respect to the picture: #### See also -[Form event code](form-event-code.md) \ No newline at end of file +[Form event code](../commands/form-event-code.md) \ No newline at end of file diff --git a/versioned_docs/version-20-R7/commands-legacy/set-timer.md b/versioned_docs/version-20-R7/commands-legacy/set-timer.md index 31820220e6b9b0..ea3029f05de26c 100644 --- a/versioned_docs/version-20-R7/commands-legacy/set-timer.md +++ b/versioned_docs/version-20-R7/commands-legacy/set-timer.md @@ -20,7 +20,7 @@ displayed_sidebar: docs The **SET TIMER** command activates the On Timer form event and sets, for the current form and process, the number of ticks elapsed between each On Timer form event. -**Note:** For more information about this form event, please refer to the description of the command [Form event code](form-event-code.md). +**Note:** For more information about this form event, please refer to the description of the command [Form event code](../commands/form-event-code.md). If this command is called in a context in which it is not displaying a form, it will have no effect. @@ -46,5 +46,5 @@ Let’s imagine that you want, when a form is displayed on screen, the computer #### See also -[Form event code](form-event-code.md) +[Form event code](../commands/form-event-code.md) [REDRAW](redraw.md) \ No newline at end of file diff --git a/versioned_docs/version-20-R7/commands-legacy/structure-file.md b/versioned_docs/version-20-R7/commands-legacy/structure-file.md index b6ae1e05bd47c7..f57733e76e13f1 100644 --- a/versioned_docs/version-20-R7/commands-legacy/structure-file.md +++ b/versioned_docs/version-20-R7/commands-legacy/structure-file.md @@ -64,7 +64,6 @@ The following example can be used to find out whether the method is called from #### See also -*\_o\_DATA SEGMENT LIST* [Application file](application-file.md) [COMPONENT LIST](component-list.md) [Data file](data-file.md) \ No newline at end of file diff --git a/versioned_docs/version-20-R7/commands-legacy/subtotal.md b/versioned_docs/version-20-R7/commands-legacy/subtotal.md index 21ade7c171b928..c74d1eace14360 100644 --- a/versioned_docs/version-20-R7/commands-legacy/subtotal.md +++ b/versioned_docs/version-20-R7/commands-legacy/subtotal.md @@ -26,7 +26,7 @@ displayed_sidebar: docs The second, optional, argument to **Subtotal** is used to cause page breaks during printing. If *pageBreak* is 0, **Subtotal** does not issue a page break. If *pageBreak* equals 1, **Subtotal** issues a page break for each level 1 break. If *pageBreak* equals 2, **Subtotal** issues a page break for each level 1 and level 2 break, and so on. -**Tip:** If you execute **Subtotal** from within an output form displayed at the screen, an error will be generated, triggering an infinite loop of updates between the form and the error window. To get out of this loop, press Alt+Shift (Windows) or Option-Shift (Macintosh) when you click on the Abort button in the Error window (you may have to do so several times). This temporarily stops the updates for the form’s window. Select another form as the output form so the error will occur again. Go back to the Design Environment and isolate the call to **Subtotal** into a test [Form event code](form-event-code.md)\= On Printing Break if you use the form both for display and printing. +**Tip:** If you execute **Subtotal** from within an output form displayed at the screen, an error will be generated, triggering an infinite loop of updates between the form and the error window. To get out of this loop, press Alt+Shift (Windows) or Option-Shift (Macintosh) when you click on the Abort button in the Error window (you may have to do so several times). This temporarily stops the updates for the form’s window. Select another form as the output form so the error will occur again. Go back to the Design Environment and isolate the call to **Subtotal** into a test [Form event code](../commands/form-event-code.md)\= On Printing Break if you use the form both for display and printing. #### Example diff --git a/versioned_docs/version-20-R7/commands-legacy/use-character-set.md b/versioned_docs/version-20-R7/commands-legacy/use-character-set.md index ab34eb0cec5ea8..1f039581391fd1 100644 --- a/versioned_docs/version-20-R7/commands-legacy/use-character-set.md +++ b/versioned_docs/version-20-R7/commands-legacy/use-character-set.md @@ -41,8 +41,6 @@ The OK system variable is set to 1 if the map is loaded correctly. Otherwise, it #### See also -*\_o\_Mac to Win* -*\_o\_Win to Mac* [EXPORT DIF](export-dif.md) [EXPORT SYLK](export-sylk.md) [EXPORT TEXT](export-text.md) diff --git a/versioned_docs/version-20-R7/commands-legacy/wa-get-last-url-error.md b/versioned_docs/version-20-R7/commands-legacy/wa-get-last-url-error.md index 1e8001ded1fffa..d33509c8acf6ff 100644 --- a/versioned_docs/version-20-R7/commands-legacy/wa-get-last-url-error.md +++ b/versioned_docs/version-20-R7/commands-legacy/wa-get-last-url-error.md @@ -37,4 +37,4 @@ It is recommended to call this command within the framework of the On URL Loadin #### See also -[Form event code](form-event-code.md) \ No newline at end of file +[Form event code](../commands/form-event-code.md) \ No newline at end of file diff --git a/versioned_docs/version-20-R7/commands-legacy/wa-run-offscreen-area.md b/versioned_docs/version-20-R7/commands-legacy/wa-run-offscreen-area.md index cbbed19f7332f2..98c89fc2268d68 100644 --- a/versioned_docs/version-20-R7/commands-legacy/wa-run-offscreen-area.md +++ b/versioned_docs/version-20-R7/commands-legacy/wa-run-offscreen-area.md @@ -96,6 +96,6 @@ The OK system variable is set to 0 if the timeout has been reached or the [CANCE #### See also -[FORM Event](form-event.md) +[FORM Event](../commands/form-event.md) *Programmed management of Web Areas* [WA OPEN WEB INSPECTOR](wa-open-web-inspector.md) \ No newline at end of file diff --git a/versioned_docs/version-20-R7/commands/command-index.md b/versioned_docs/version-20-R7/commands/command-index.md index 891eedcb638b48..0e81609306951d 100644 --- a/versioned_docs/version-20-R7/commands/command-index.md +++ b/versioned_docs/version-20-R7/commands/command-index.md @@ -316,8 +316,8 @@ title: Index [`Form`](../commands-legacy/form.md)
    [`FORM Convert to dynamic`](../commands-legacy/form-convert-to-dynamic.md)
    [`FORM EDIT`](../commands-legacy/form-edit.md)
    -[`FORM Event`](../commands-legacy/form-event.md)
    -[`Form event code`](../commands-legacy/form-event-code.md)
    +[`FORM Event`](../commands/form-event.md)
    +[`Form event code`](../commands/form-event-code.md)
    [`FORM FIRST PAGE`](../commands-legacy/form-first-page.md)
    [`FORM Get color scheme`](../commands-legacy/form-get-color-scheme.md)
    [`FORM Get current page`](../commands-legacy/form-get-current-page.md)
    diff --git a/versioned_docs/version-20-R7/commands/form-event-code.md b/versioned_docs/version-20-R7/commands/form-event-code.md index 5cef0cfa1cb920..49784531cf3a6f 100644 --- a/versioned_docs/version-20-R7/commands/form-event-code.md +++ b/versioned_docs/version-20-R7/commands/form-event-code.md @@ -1,7 +1,6 @@ --- id: form-event-code title: Form event code -slug: /commands/form-event-code displayed_sidebar: docs --- @@ -103,7 +102,7 @@ This example is a template for a form method. It shows each of the possible even #### Example 4 -This example shows the template of a form method that handles the events that can occur for a form displayed using the [DISPLAY SELECTION](display-selection.md) or [MODIFY SELECTION](modify-selection.md) commands. For didactic purposes, it displays the nature of the event in the title bar of the form window. +This example shows the template of a form method that handles the events that can occur for a form displayed using the [DISPLAY SELECTION](../commands-legacy/display-selection.md) or [MODIFY SELECTION](../commands-legacy/modify-selection.md) commands. For didactic purposes, it displays the nature of the event in the title bar of the form window. ```4d   //A form method @@ -142,7 +141,7 @@ This example shows the template of a form method that handles the events that ca #### Example 5 -For examples on how to handle [`On Before Keystroke`](../Events/onBeforeKeystroke.md) and [`On After Keystroke`](../Events/onAfterKeystroke.md) events, see examples for the [Get edited text](get-edited-text.md), [Keystroke](keystroke.md) and [FILTER KEYSTROKE](filter-keystroke.md) commands. +For examples on how to handle [`On Before Keystroke`](../Events/onBeforeKeystroke.md) and [`On After Keystroke`](../Events/onAfterKeystroke.md) events, see examples for the [Get edited text](../commands-legacy/get-edited-text.md), [Keystroke](../commands-legacy/keystroke.md) and [FILTER KEYSTROKE](../commands-legacy/filter-keystroke.md) commands. #### Example 6 @@ -344,11 +343,11 @@ As a result, the red rectangle follows the scrolling of the list box: #### See also [Form Events](../Events/overview.md) -[CALL SUBFORM CONTAINER](call-subform-container.md) -[Current form table](current-form-table.md) -[FILTER KEYSTROKE](filter-keystroke.md) +[CALL SUBFORM CONTAINER](../commands-legacy/call-subform-container.md) +[Current form table](../commands-legacy/current-form-table.md) +[FILTER KEYSTROKE](../commands-legacy/filter-keystroke.md) [FORM Event](form-event.md) -[Get edited text](get-edited-text.md) -[Keystroke](keystroke.md) -[POST OUTSIDE CALL](post-outside-call.md) -[SET TIMER](set-timer.md) \ No newline at end of file +[Get edited text](../commands-legacy/get-edited-text.md) +[Keystroke](../commands-legacy/keystroke.md) +[POST OUTSIDE CALL](../commands-legacy/post-outside-call.md) +[SET TIMER](../commands-legacy/set-timer.md) \ No newline at end of file diff --git a/versioned_docs/version-20-R7/commands/form-event.md b/versioned_docs/version-20-R7/commands/form-event.md index b87dd0fef2c487..1c7114902e2240 100644 --- a/versioned_docs/version-20-R7/commands/form-event.md +++ b/versioned_docs/version-20-R7/commands/form-event.md @@ -97,4 +97,4 @@ The resulting list box when rows are selected: #### See also [Form Events](../Events/overview.md) -[Form event code](form-event-code.md) \ No newline at end of file +[Form event code](../commands/form-event-code.md) \ No newline at end of file diff --git a/versioned_docs/version-20/API/EntityClass.md b/versioned_docs/version-20/API/EntityClass.md index b521f6b557a89b..ddff41dec98957 100644 --- a/versioned_docs/version-20/API/EntityClass.md +++ b/versioned_docs/version-20/API/EntityClass.md @@ -94,9 +94,11 @@ The attribute value type depends on the attribute [kind](DataClassClass.md#attri #### Description -The `.clone()` function creates in memory a new entity referencing the same record as the original entity. This function allows you to update entities separately. +The `.clone()` function creates in memory a new entity referencing the same record as the original entity. ->Keep in mind that any modifications done to entities will be saved in the referenced record only when the [`.save( )`](#save) function is executed. +This function allows you to update entities separately. Note however that, for performance reasons, the new entity shares the same reference of object attributes as the cloned entity. + +>Keep in mind that any modifications done to entities will be saved in the referenced record only when the [`.save()`](#save) function is executed. This function can only be used with entities already saved in the database. It cannot be called on a newly created entity (for which [`.isNew()`](#isnew) returns **True**). diff --git a/versioned_docs/version-20/FormObjects/text.md b/versioned_docs/version-20/FormObjects/text.md index 747bea46c6968f..c9c81b1d4a9f95 100644 --- a/versioned_docs/version-20/FormObjects/text.md +++ b/versioned_docs/version-20/FormObjects/text.md @@ -51,4 +51,4 @@ Once a text is rotated, you can still change its size or position, as well as al -[Bold](properties_Text.md#bold) - [Border Line Style](properties_BackgroundAndBorder.md#border-line-style) - [Bottom](properties_CoordinatesAndSizing.md#bottom) - [Class](properties_Object.md#css-class) - [Corner radius](properties_CoordinatesAndSizing.md#corner-radius) - [Fill Color(properties_BackgroundAndBorder.md#background-color--fill-color) - [Font](properties_Text.md#font) - [Font Color](properties_Text.md#font-color) - [Font Size](properties_Text.md#font-size) - [Height](properties_CoordinatesAndSizing.md#height) - [Horizontal Alignment](properties_Text.md#horizontal-alignment) - [Horizontal Sizing](properties_ResizingOptions.md#horizontal-sizing) - [Italic](properties_Text.md#italic) - [Left](properties_CoordinatesAndSizing.md#left) - [Object Name](properties_Object.md#object-name) - [Orientation](properties_Text.md#orientation) - [Right](properties_CoordinatesAndSizing.md#right) - [Title](properties_Object.md#title) - [Top](properties_CoordinatesAndSizing.md#top) - [Type](properties_Object.md#type) - [Underline](properties_Text.md#underline) - [Vertical Sizing](properties_ResizingOptions.md#vertical-sizing) - [Visibility](properties_Display.md#visibility) - [Width](properties_CoordinatesAndSizing.md#width) +[Bold](properties_Text.md#bold) - [Border Line Style](properties_BackgroundAndBorder.md#border-line-style) - [Bottom](properties_CoordinatesAndSizing.md#bottom) - [Class](properties_Object.md#css-class) - [Corner radius](properties_CoordinatesAndSizing.md#corner-radius) - [Fill Color](properties_BackgroundAndBorder.md#background-color--fill-color) - [Font](properties_Text.md#font) - [Font Color](properties_Text.md#font-color) - [Font Size](properties_Text.md#font-size) - [Height](properties_CoordinatesAndSizing.md#height) - [Horizontal Alignment](properties_Text.md#horizontal-alignment) - [Horizontal Sizing](properties_ResizingOptions.md#horizontal-sizing) - [Italic](properties_Text.md#italic) - [Left](properties_CoordinatesAndSizing.md#left) - [Object Name](properties_Object.md#object-name) - [Orientation](properties_Text.md#orientation) - [Right](properties_CoordinatesAndSizing.md#right) - [Title](properties_Object.md#title) - [Top](properties_CoordinatesAndSizing.md#top) - [Type](properties_Object.md#type) - [Underline](properties_Text.md#underline) - [Vertical Sizing](properties_ResizingOptions.md#vertical-sizing) - [Visibility](properties_Display.md#visibility) - [Width](properties_CoordinatesAndSizing.md#width)