From 172c9d26c73e3abc13ced24e5951409b082dc9ce Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?SAL=C4=B0H=20=C3=96ZKARA?= Date: Fri, 22 May 2026 11:21:18 +0300 Subject: [PATCH] Document low-code exportable fields --- docs/en/low-code/designer.md | 3 +++ docs/en/low-code/index.md | 2 +- docs/en/low-code/model-json.md | 13 +++++++++++-- docs/en/low-code/react-runtime.md | 8 ++++---- 4 files changed, 19 insertions(+), 7 deletions(-) diff --git a/docs/en/low-code/designer.md b/docs/en/low-code/designer.md index 0ac48b6a2f..fcaf31940c 100644 --- a/docs/en/low-code/designer.md +++ b/docs/en/low-code/designer.md @@ -65,6 +65,7 @@ Pages can define data grid, kanban, calendar, gallery, standalone form, and dash * Entity * Create and edit forms * Visible grid/card fields +* Exportable fields for Excel and CSV * Field labels and column widths * Default sorting * Filter fields and defaults @@ -75,6 +76,8 @@ Kanban pages add `groupByProperty`, calendar pages add date/time properties, gal Pages are exposed in React under `/dynamic/` and can also appear as dynamic menu items. +The **View Fields** section has separate **Show** and **Export** choices. Use **Show** for fields that should be rendered in the runtime view. Use **Export** for fields that may be included in Excel or CSV output. A visible field can be excluded from export, and an exportable field can be hidden from the page but still available through **Export options > All exportable fields**. + ## Forms Use **Forms** to define create and edit experiences. diff --git a/docs/en/low-code/index.md b/docs/en/low-code/index.md index c08ada2e18..4a0b6f05c2 100644 --- a/docs/en/low-code/index.md +++ b/docs/en/low-code/index.md @@ -112,7 +112,7 @@ React low-code filters are type-aware. The runtime shows only operators that mak Every dynamic entity page can export data to Excel or CSV. Export requests use the current search, sorting, and filters from the runtime view, so a filtered page exports the matching subset instead of the whole entity. -The React runtime exports visible columns by default. These columns come from the page fields configured in the Low-Code Designer, so changing a page's visible fields also changes the quick export output. Users can open **Export options** to switch to all exportable fields or to export only the current page of rows. Server-only fields are always excluded, and foreign key values are displayed through their configured display property. +The React runtime exports visible exportable columns by default. These columns come from the page fields configured in the Low-Code Designer. A field can be visible but not exportable, or hidden but still available in the **All exportable fields** option. Use this when a page should display operational data that should not leave the system through Excel or CSV. Server-only fields are always excluded, and foreign key values are displayed through their configured display property. File and image fields are exported as file names by default. Export options can expand those fields into metadata columns or include small files as `data:;base64,...` values. The data URL option is intended for small files only; files over the configured `LowCode:Export:MaxDataUrlFileSizeBytes` limit are skipped with a marker instead of failing the whole export. diff --git a/docs/en/low-code/model-json.md b/docs/en/low-code/model-json.md index 28662cde7e..5c7f1b6ada 100644 --- a/docs/en/low-code/model-json.md +++ b/docs/en/low-code/model-json.md @@ -242,7 +242,7 @@ Pages create runtime routes and menu entries. They also choose how entity data i "columns": [ { "propertyName": "Name", "order": 0 }, { "propertyName": "Status", "order": 1 }, - { "propertyName": "Budget", "order": 2 } + { "propertyName": "Budget", "order": 2, "exportable": false } ], "filters": [ { "propertyName": "Name", "control": "text", "defaultOperator": "contains" }, @@ -253,6 +253,15 @@ Pages create runtime routes and menu entries. They also choose how entity data i } ``` +Page columns support two independent flags: + +| Field | Default | Purpose | +|-------|---------|---------| +| `visible` | `true` | Renders the field in the React page view | +| `exportable` | `true` | Allows the field to be included in Excel and CSV export | + +If `columns` is present, export uses this list as the page-level export policy. `exportable: false` prevents the field from being exported even if a caller sends the field name manually. Server-only entity properties are never exportable. + | Page type | Required fields | Purpose | |-----------|-----------------|---------| | `dataGrid` | `entityName` | Searchable, sortable CRUD grid | @@ -483,7 +492,7 @@ Background workers require either `period` in milliseconds or `cronExpression`. "columns": [ { "propertyName": "Name", "order": 0 }, { "propertyName": "Status", "order": 1 }, - { "propertyName": "Budget", "order": 2 } + { "propertyName": "Budget", "order": 2, "exportable": false } ], "filters": [ { "propertyName": "Name", "control": "text", "defaultOperator": "contains" }, diff --git a/docs/en/low-code/react-runtime.md b/docs/en/low-code/react-runtime.md index cf845a00ee..c809c89d7d 100644 --- a/docs/en/low-code/react-runtime.md +++ b/docs/en/low-code/react-runtime.md @@ -151,7 +151,7 @@ The URL keeps the existing `lcFilters` query parameter shape. The runtime maps u ## Export -The runtime export button opens a small menu with direct Excel and CSV actions. Direct export uses the current search, sorting, filters, and visible columns from the page definition maintained in the Low-Code Designer. Use **Export options** when users need a different row or column scope. +The runtime export button opens a small menu with direct Excel and CSV actions. Direct export uses the current search, sorting, filters, and visible exportable columns from the page definition maintained in the Low-Code Designer. Use **Export options** when users need a different row or column scope. Available options: @@ -159,13 +159,13 @@ Available options: |--------|----------| | Rows: all matching records | Exports all records matching the current search, filters, and sorting | | Rows: current page | Exports only the current page using the runtime `skipCount` and `maxResultCount` | -| Columns: visible columns | Exports the columns visible in the current page definition | -| Columns: all exportable fields | Exports all non-server-only fields that can appear in generated views | +| Columns: visible exportable columns | Exports columns that are both visible and exportable in the current page definition | +| Columns: all exportable fields | Exports page fields marked exportable in the Low-Code Designer, including fields that are hidden from the grid | | File/image: file name | Writes the uploaded file name, or an empty value | | File/image: metadata columns | Writes file name, content type, size, width, and height columns | | File/image: data URL | Writes small linked files as `data:;base64,...`; large or unavailable files are written as markers | -The runtime first requests a short-lived token and then calls the Excel or CSV export endpoint. The token is single-use and is bound to the current page, entity, tenant, child page, and foreign-access context. Text that looks like a spreadsheet formula is escaped in exported cells. +The runtime first requests a short-lived token and then calls the Excel or CSV export endpoint. The token is single-use and is bound to the current page, entity, tenant, child page, and foreign-access context. Text that looks like a spreadsheet formula is escaped in exported headers and cells. If a caller manually sends a non-exportable field name, the backend rejects the request. | Endpoint | Description | |----------|-------------|