Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
64 commits
Select commit Hold shift + click to select a range
cd03b99
New translations debuglogfiles.md (French)
arnaud4d Mar 14, 2026
42f6dcd
New translations debuglogfiles.md (French)
arnaud4d Mar 14, 2026
ac8bf02
New translations createstylesheet.md (French)
arnaud4d Mar 14, 2026
ab09a4c
New translations updates.md (French)
arnaud4d Mar 14, 2026
42cd691
New translations main.png (French)
arnaud4d Mar 14, 2026
69d6f2f
New translations user-settings-2.png (French)
arnaud4d Mar 14, 2026
f27b005
New translations overview.md (French)
arnaud4d Mar 14, 2026
244d288
New translations debuglogfiles.md (French)
arnaud4d Mar 14, 2026
fccf6c9
New translations debuglogfiles.md (French)
arnaud4d Mar 14, 2026
5dad668
New translations collectionclass.md (Spanish)
arnaud4d Mar 14, 2026
daa1769
New translations debuglogfiles.md (Spanish)
arnaud4d Mar 14, 2026
e0a710a
New translations entityselectionclass.md (Spanish)
arnaud4d Mar 14, 2026
4fb20b4
New translations functionclass.md (Spanish)
arnaud4d Mar 14, 2026
657dfc4
New translations dt_date.md (Spanish)
arnaud4d Mar 14, 2026
b93098a
New translations parameters.md (Spanish)
arnaud4d Mar 14, 2026
55cd40c
New translations debuglogfiles.md (Spanish)
arnaud4d Mar 14, 2026
9c25059
New translations createstylesheet.md (Spanish)
arnaud4d Mar 14, 2026
1576def
New translations listbox_overview.md (Spanish)
arnaud4d Mar 14, 2026
06def5a
New translations updates.md (Spanish)
arnaud4d Mar 14, 2026
90af6fb
New translations main.png (Spanish)
arnaud4d Mar 14, 2026
5da438d
New translations user-settings-2.png (Spanish)
arnaud4d Mar 14, 2026
2f29ca3
New translations overview.md (Spanish)
arnaud4d Mar 14, 2026
f732a10
New translations entityselectionclass.md (Spanish)
arnaud4d Mar 14, 2026
5c71345
New translations dt_date.md (Spanish)
arnaud4d Mar 14, 2026
d186abd
New translations parameters.md (Spanish)
arnaud4d Mar 14, 2026
85de096
New translations debuglogfiles.md (Spanish)
arnaud4d Mar 14, 2026
660dda1
New translations listbox_overview.md (Spanish)
arnaud4d Mar 14, 2026
e17b0ac
New translations listbox-get-property.md (Spanish)
arnaud4d Mar 14, 2026
388a417
New translations user-new.md (Spanish)
arnaud4d Mar 14, 2026
3c156e5
New translations entityselectionclass.md (Spanish)
arnaud4d Mar 14, 2026
d41d98c
New translations dt_date.md (Spanish)
arnaud4d Mar 14, 2026
365cf9f
New translations parameters.md (Spanish)
arnaud4d Mar 14, 2026
2b99b32
New translations debuglogfiles.md (Spanish)
arnaud4d Mar 14, 2026
20ff11e
New translations listbox_overview.md (Spanish)
arnaud4d Mar 14, 2026
0be77bb
New translations listbox-get-property.md (Spanish)
arnaud4d Mar 14, 2026
3598b68
New translations async.md (Spanish)
arnaud4d Mar 14, 2026
ff6b967
New translations methodclass.md (Spanish)
arnaud4d Mar 14, 2026
e0118a3
New translations wp-new-style-sheet.md (Spanish)
arnaud4d Mar 14, 2026
ce1cf8d
New translations wp-delete-style-sheet.md (Spanish)
arnaud4d Mar 14, 2026
ae2df27
New translations wp-get-style-sheet.md (Spanish)
arnaud4d Mar 14, 2026
7740652
New translations ordering.md (Spanish)
arnaud4d Mar 14, 2026
7cec022
New translations async.md (Spanish)
arnaud4d Mar 14, 2026
1e4909e
New translations async.md (Spanish)
arnaud4d Mar 14, 2026
1be8a60
New translations debuglogfiles.md (Japanese)
arnaud4d Mar 14, 2026
4618bca
New translations debuglogfiles.md (Japanese)
arnaud4d Mar 14, 2026
6f3046d
New translations createstylesheet.md (Japanese)
arnaud4d Mar 14, 2026
a198ae1
New translations updates.md (Japanese)
arnaud4d Mar 14, 2026
446d70a
New translations main.png (Japanese)
arnaud4d Mar 14, 2026
2786376
New translations user-settings-2.png (Japanese)
arnaud4d Mar 14, 2026
35bbd50
New translations overview.md (Japanese)
arnaud4d Mar 14, 2026
23485ec
New translations debuglogfiles.md (Japanese)
arnaud4d Mar 14, 2026
d517631
New translations debuglogfiles.md (Japanese)
arnaud4d Mar 14, 2026
cf45d55
New translations debuglogfiles.md (Portuguese, Brazilian)
arnaud4d Mar 14, 2026
4abdb80
New translations debuglogfiles.md (Portuguese, Brazilian)
arnaud4d Mar 14, 2026
3c50ec8
New translations createstylesheet.md (Portuguese, Brazilian)
arnaud4d Mar 14, 2026
b54e925
New translations updates.md (Portuguese, Brazilian)
arnaud4d Mar 14, 2026
6689630
New translations main.png (Portuguese, Brazilian)
arnaud4d Mar 14, 2026
758409e
New translations user-settings-2.png (Portuguese, Brazilian)
arnaud4d Mar 14, 2026
2343d47
New translations overview.md (Portuguese, Brazilian)
arnaud4d Mar 14, 2026
84de95a
New translations debuglogfiles.md (Portuguese, Brazilian)
arnaud4d Mar 14, 2026
a00be99
New translations debuglogfiles.md (Portuguese, Brazilian)
arnaud4d Mar 14, 2026
4e228bd
New translations wp-get-attributes.md (Japanese)
arnaud4d Mar 16, 2026
3d8a41d
New translations wp-get-attributes.md (Japanese)
arnaud4d Mar 16, 2026
ff75ca8
New translations wp-get-attributes.md (Japanese)
arnaud4d Mar 16, 2026
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
Expand Up @@ -785,7 +785,7 @@ $jobs:=ds.Employee.all().distinct("jobName";dk count values)
| Parámetros | Tipo | | Descripción |
| ---------- | ---------- | :-------------------------: | -------------------------------------------------------- |
| atributo | Text | -> | Nombre del atributo del objeto cuyas rutas desea obtener |
| Resultado | Collection | <- | New collection with distinct paths |
| Resultado | Collection | <- | Nueva colección con rutas distintas |

</div>
<!-- END REF -->
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -14,7 +14,7 @@ Un objeto **`4D.Function`** contiene un trozo de código que puede ser ejecutado
- **formula functions**, i.e. functions that can execute formula code stored in [4D.Formula](./FormulaClass.md) objects,
- **method functions**, i.e. functions that can execute source code as text stored in [4D.Method](./MethodClass.md) objects.

### Executing code in Function objects
### Ejecución del código en los objetos Function

Function objects can be encapsulated in object properties:

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -35,7 +35,7 @@ var $result2:=$o.multiplication(2;3) // 6
var $result3:=4D.Method.new($myCode).call(Null; 10; 5) // 50
```

#### Using `This` inside method code
#### Uso de `This` dentro del código del método

```4d
var $myCode:="#DECLARE ($str1:text):text"+Char(13)+"return $str1+This.name"
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -48,7 +48,7 @@ Una fecha null es especificada por *!00-00-00!*.
| Menor o igual que | Date <= Date | Boolean | !2017-01-20! - !2017-01-01! <= !2017-01-20! | True |
| | | | !2017-01-20! <= !2017-01-01! | False |

## Conversion of dates from JavaScript
## Conversión de fechas desde JavaScript

Como las fechas en JavaScript son objetos, se envían a 4D como texto que contiene su forma JSON como cualquier otro objeto. Este principio se aplica en particular cuando se utilizan [comandos JSON](../commands/theme/JSON) o [Áreas Web](../FormObjects/webArea_overview.md).

Expand Down
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
---
id: ordering
title: Ordering collections and objects
title: Ordenando colecciones y objetos
---

To sort a series of data, 4D compares each value against the others by applying comparison criteria defined according to the data type (see [sorting rules](#sorting-rules)). This process relies on a sorting algorithm that establishes a total order across all elements. When all data belongs to the same [data type](./data-types.md), the comparison rules are straightforward and well-defined.
Expand Down Expand Up @@ -28,7 +28,7 @@ Types are ordered according to the following sequence, with their respective com

| Rank | Tipo | Also includes | Comparison rule |
| ---- | -------------- | ---------------------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------- |
| 1 | **null** | pointers (null pointers only for collections) | no comparison criteria applicable |
| 1 | **null** | pointers (null pointers only for collections) | no se aplican criterios de comparación |
| 2 | **boolean** | | orden lógico: false *antes que* true |
| 3 | **string** | | lexicographical order (e.g., "a" *before* "ab" *before* "b") |
| 4 | **number** | time (converted to milliseconds or seconds depending on the `Time inside objects` database setting) | standard algebraic order (numeric comparison) |
Expand All @@ -40,7 +40,7 @@ Types are ordered according to the following sequence, with their respective com

Special floating-point values `+INF` (positive infinity), `-INF` (negative infinity), and `NaN` (Not-a-Number) present in collections and objects are ordered according to the following natural sequence: **NaN < -INF < finite values < +INF**.

### Consistent ordering in collections
### Ordenación coherente de las colecciones

Collection sorting functions (see [Ordering functions](#ordering-functions) section above) implement a **consistent sort** for complex types such as objects and collections. By "consistent", we mean that successive calls to the same sorting function (e.g., `collection.orderBy()`) on the same collection produce identical ordering for complex type values. Formally, if a sort expression yields the same comparative result for two elements, the relative order of those elements is preserved.

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -174,7 +174,7 @@ Function square($x : Integer) : Integer
return $x * $x
```

La instrucción `return` puede utilizarse junto con la sintaxis estándar para los [valores devueltos](#valor-devuelto) (el valor devuelto debe ser del tipo declarado). When you have declared a return parameter (e.g. `myFunction() -> $myReturnValue : Text`), `return $x` implicitely executes `$myReturnValue:=$x`, and returns to the caller. Keep in mind that it ends immediately the code execution. Examine the following examples:
La instrucción `return` puede utilizarse junto con la sintaxis estándar para los [valores devueltos](#valor-devuelto) (el valor devuelto debe ser del tipo declarado). When you have declared a return parameter (e.g. `myFunction() -> $myReturnValue : Text`), `return $x` implicitely executes `$myReturnValue:=$x`, and returns to the caller. Keep in mind that it ends immediately the code execution. Examine los siguientes ejemplos:

```4d
Function getValue -> $v : Integer
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -254,7 +254,7 @@ Los siguientes campos se registran para cada evento:
| timestamp | Fecha y hora en el formato ISO 8601: (YYYY-MM-DDThh:mm:ss.mmm) |
| loggerID | Opcional |
| componentSignature | Opcional - firma del componente interno |
| messageLevel | Información, avisos, errores |
| messageLevel | Trace, Debug, Info, Warning, Error, Fatal |
| message | Descripción de la entrada del historial |

Dependiendo del evento, se pueden incluir otros campos en el registro, como la tarea, socket, etc.
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -93,8 +93,8 @@ Si desea "forzar" la liberación de un objeto en cualquier momento, utilice un `

| Feature | Async Launch | Callback / Event Handling |
| ------------------------------- | ------------------------------------------------------------------------------------- | ------------------------------------------------------------------- |
| CALL WORKER | CALL WORKER("wk"; "MyMethod"; $params) | MyMethod is called with $params |
| CALL FORM | CALL FORM($win; "MyMethod"; $params) | MyMethod is called with $params |
| CALL WORKER | CALL WORKER("wk"; "MyMethod"; $params) | MyMethod se llama con $params |
| CALL FORM | CALL FORM($win; "MyMethod"; $params) | MyMethod se llama con $params |
| 4D.SystemWorker | 4D.SystemWorker.new(cmd; $options) | Callbacks: onData, onResponse, onError, onTerminate |

## Asynchronous programming with 4D classes
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -212,10 +212,10 @@ Una consulta de medios está formada por características y valores de medios (p

Available media features and values:

| Media features | Valores | Descripción |
| ---------------------- | ---------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| `prefers-color-scheme` | <li>**light**</li><li>**dark**</li> | Color scheme to use |
| `form-theme` | <li>**fluent-ui**</li><li>**win-classic**</li> | Tema de la plataforma a utilizar (Windows). Para más información sobre el tema **fluent-ui**, consulte [esta sección](./forms.md#fluent-ui-rendering) |
| Media features | Valores | Descripción |
| ---------------------- | -------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| `prefers-color-scheme` | <ul><li>**light**</li><li>**dark**</li></ul> | Color scheme to use |
| `form-theme` | <ul><li>**fluent-ui**</li><li>**win-classic**</li><li>**liquid-glass**</li><li>**mac-classic**</li></ul> | Platform theme to use. Para más información sobre el tema **fluent-ui**, consulte [esta sección](./forms.md#fluent-ui-rendering). |

:::note

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -30,7 +30,7 @@ El usuario puede seleccionar una o varias líneas utilizando los atajos estánda
Un list box se compone de cuatro partes distintas:

- the [list box object](./listbox-object.md) in its entirety,
- [columns](./listbox-column.md),
- [columnas](./listbox-column.md),
- column [headers](./listbox-header-footer.md#headers), and
- column [footers](./listbox-header-footer.md#footers).

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -12,10 +12,17 @@ title: Notas del lanzamiento
- Ability to use a custom certificate from the macOS keychain instead of a local certificates folder in [`HTTPRequest`](../API/HTTPRequestClass.md#4dhttprequestnew) and [`HTTPAgent`](../API/HTTPAgentClass.md#4dhttpagentnew) classes.
- New [`4D.Method` class](../API/MethodClass.md) to create and execute a 4D method code from text source. [`METHOD Get path`](../commands/method-get-path) and [`METHOD RESOLVE PATH`](../commands/method-resolve-path) commands support a new `path volatile method` constant (128).

#### Soporte de Liquid glass en macOS

- Automatic support of [**Liquid glass** interface](https://www.apple.com/newsroom/2025/06/apple-introduces-a-delightful-and-elegant-new-software-design/) with 4D on macOS 26 Tahoe. See [this blog post](https://blog.4d.com/the-new-macos-tahoe-design-comes-to-your-4d-applications) for detailed information.
- New values returned by the [`FORM Theme`](../commands/form-theme) command and [CSS Media queries](../FormEditor/createStylesheet.md#media-queries).
- To help developers gradually adapt their interfaces, ability to **disable Liquid glass in 4D engine-based applications** via the "UIDesignRequiresCompatibility" key in the application's *Info.plist* file (see [Apple's documentation about this key](https://developer.apple.com/documentation/BundleResources/Information-Property-List/UIDesignRequiresCompatibility)).

#### Cambios de comportamiento

- El comando [`JSON Validate`](../commands/json-validate) ahora tiene en cuenta la llave *$schema* y genera un error si se declara una versión no soportada en el esquema.
- For clarity, formula objects are now instances of a new [`4D.Formula`](../API/FormulaClass.md) class that inherits from the generic [`4D.Function`](../API/FunctionClass.md) class.
- The "PHP" page has been removed from the [Settings dialog box](../settings/overview.md). Use the [PHP selectors with the `SET DATABASE PARAMETER`](../commands/set-database-parameter#php-interpreter-ip-address-55) command to configure a PHP interpeter.

## 4D 21 R2

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -24,10 +24,10 @@ displayed_sidebar: docs
<div class="no-index">
<details><summary>Historia</summary>

| Lanzamiento | Modificaciones |
| ----------- | -------------------------------- |
| 4D 18 | Created |
| 4D 21 R3 | *listLevelIndex* parameter added |
| Lanzamiento | Modificaciones |
| ----------- | --------------------------------------------- |
| 4D 18 | Created |
| 4D 21 R3 | \*Se ha añadido el parámetro *listLevelIndex* |

</details>
</div>
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -24,10 +24,10 @@ displayed_sidebar: docs
<div class="no-index">
<details><summary>Historia</summary>

| Lanzamiento | Modificaciones |
| ----------- | -------------------------------- |
| 4D 18 | Created |
| 4D 21 R3 | *listLevelIndex* parameter added |
| Lanzamiento | Modificaciones |
| ----------- | --------------------------------------------- |
| 4D 18 | Created |
| 4D 21 R3 | \*Se ha añadido el parámetro *listLevelIndex* |

</details>
</div>
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -25,10 +25,10 @@ displayed_sidebar: docs
<div class="no-index">
<details><summary>Historia</summary>

| Lanzamiento | Modificaciones |
| ----------- | -------------------------------- |
| 4D 18 | Created |
| 4D 21 R3 | *listLevelCount* parameter added |
| Lanzamiento | Modificaciones |
| ----------- | --------------------------------------------- |
| 4D 18 | Created |
| 4D 21 R3 | \*Se ha añadido el parámetro *listLevelCount* |

</details>
</div>
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -130,7 +130,7 @@ When created, hierarchical list style sheets use predefined values:
- Ejemplo:

- Root level: `"MyList"`
- First sub-level: `"MyList lvl 2"`
- Primer subnivel: `"MyList nivel 2"`
- Segundo subnivel: `"MyList lvl 3"`

<!-- END REF -->
Expand Down
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Original file line number Diff line number Diff line change
Expand Up @@ -121,7 +121,6 @@ La siguiente tabla lista las páginas de parámetros que se encuentran en las ca
| [Página Web/Historial (backup)](./web.md#log-backup) | Idéntica a las Propiedades estándar | Idéntica a las Propiedades estándar |
| [Página Web/Servicios Web](./web.md#web-services) | Opción de prefijación de los métodos no disponible | Opción de prefijación de los métodos no disponible |
| [SQL page](./sql.md) | Idéntica a las Propiedades estándar | Idéntica a las Propiedades estándar |
| [PHP page](./php.md) | Idéntica a las Propiedades estándar | Idéntica a las Propiedades estándar |
| [Página Seguridad](./security.md) | N/a | N/a |
| [Página Compatibilidad](./compatibility.md) | N/a | N/a |

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -1478,8 +1478,8 @@ $first:=$emptyCol.first() // devuelve Undefined

|Parameter|Type||Description|
|---------|--- |:---:|------|
|depth|Integer |->|How deep a nested collection structure should be flattened. Default=1|
|Result|Collection |<-|Flattened collection|
|depth|Integer |->|How deep a nested collection structure should be flattened. Por defecto=1|
|Resultado|Colección |<-|Flattened collection|
</div>
<!-- END REF -->

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -254,7 +254,7 @@ Los siguientes campos se registran para cada evento:
| timestamp | Fecha y hora en el formato ISO 8601: (YYYY-MM-DDThh:mm:ss.mmm) |
| loggerID | Opcional |
| componentSignature | Opcional - firma del componente interno |
| messageLevel | Información, avisos, errores |
| messageLevel | Trace, Debug, Info, Warning, Error, Fatal |
| message | Descripción de la entrada del historial |

Dependiendo del evento, se pueden incluir otros campos en el registro, como la tarea, socket, etc.
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -785,7 +785,7 @@ $jobs:=ds.Employee.all().distinct("jobName";dk count values)
| Parámetros | Tipo | | Descripción |
| ---------- | ---------- | :-------------------------: | -------------------------------------------------------- |
| atributo | Text | -> | Nombre del atributo del objeto cuyas rutas desea obtener |
| Resultado | Collection | <- | New collection with distinct paths |
| Resultado | Collection | <- | Nueva colección con rutas distintas |

</div>
<!-- END REF -->
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -48,7 +48,7 @@ Una fecha null es especificada por *!00-00-00!*.
| Menor o igual que | Date <= Date | Boolean | !2017-01-20! - !2017-01-01! <= !2017-01-20! | True |
| | | | !2017-01-20! <= !2017-01-01! | False |

## Conversion of dates from JavaScript
## Conversión de fechas desde JavaScript

Como las fechas en JavaScript son objetos, se envían a 4D como texto que contiene su forma JSON como cualquier otro objeto. Este principio se aplica en particular cuando se utilizan [comandos JSON](../commands/theme/JSON.md) o [Áreas Web](../FormObjects/webArea_overview.md).

Expand Down
Loading
Loading