docs: document v7.13.0 features
- Live formulas (HARDFORMULA/SOFTFORMULA) with HyperFormula in dcc-validations - Formula Rules section with column-name syntax, DC.* literals, editor behaviour - MPE_VALIDATIONS table doc: add HARDFORMULA/SOFTFORMULA to RULE_TYPE values - Roadmap: mark Frontend Formulae and Regex Rules as delivered - SAS VA Embed: document Live vs Confirm filter modes and pending-changes UX - ViewBoxes: document edge/corner drag resizing - Licensing: combined-key paste, live key preview, protocol mismatch guard - CAS Tables: REPLACE load type support and temp table cleanup - Editor: native date/time pickers, paste-validation overlay, row status indicators - Stage page: Formatted/Unformatted toggle on the approvals screen - Viya deploy: configurator overhaul, deploy checks, login page UX - Index page: add live formulas and VA embed to features list
This commit is contained in:
@@ -22,4 +22,11 @@ Button info as follows:
|
|||||||
|Update Licence Key| Link to the screen for providing a new Data Controller licence key|
|
|Update Licence Key| Link to the screen for providing a new Data Controller licence key|
|
||||||
|Export DC Library DDL|COMING SOON!! <br>Exports the data controller control library in DB specific DDL (eg SAS, PGSQL, TSQL) and allows an optional schema name to be included|
|
|Export DC Library DDL|COMING SOON!! <br>Exports the data controller control library in DB specific DDL (eg SAS, PGSQL, TSQL) and allows an optional schema name to be included|
|
||||||
|
|
||||||
|
## Licence Key Screen
|
||||||
|
|
||||||
|
The licence key screen accepts a Data Controller licence key and activation key. The following features are available:
|
||||||
|
|
||||||
|
* **Combined-key paste** - paste a multi-field licence key (prefixed `DCKEY1:`) into either the licence key field or the dedicated combined-key input, and both the licence key and activation key are populated automatically. The key format can be toggled between combined and legacy two-field input.
|
||||||
|
* **Live key preview** - as soon as both fields are populated, the key is decrypted speculatively and its details (valid until, number of users, feature flags, etc.) are displayed before you click Apply, so you can verify the key is correct.
|
||||||
|
* **Protocol mismatch guard** - if you paste a key generated for a different protocol than the page is currently using (http vs https), the Apply button is blocked and a warning is shown. A key generated for an insecure connection carries the same text in both fields; a key generated for a secure connection carries two different values, so the mismatch can be detected before any decrypt attempt.
|
||||||
|
|
||||||
|
|||||||
@@ -39,6 +39,16 @@ Note that since the CAS connection is using a shared account, the CASUSER librar
|
|||||||
|
|
||||||
It can happen that a CAS table is configured in Data Controller but not loaded into memory. In this case, when a user selects the table, it will be automatically loaded.
|
It can happen that a CAS table is configured in Data Controller but not loaded into memory. In this case, when a user selects the table, it will be automatically loaded.
|
||||||
|
|
||||||
|
### REPLACE Load Type
|
||||||
|
|
||||||
|
The REPLACE load type is fully supported on CAS tables. When a REPLACE load is applied to a CAS target, Data Controller:
|
||||||
|
|
||||||
|
1. Casts any fixed-length character variables in the staging table to varchar (matching the target table structure), since fixed char variables cannot be appended to CAS varchar columns.
|
||||||
|
2. Truncates the target CAS table in-place using `proc cas; table.deleteRows` (CAS tables do not support SQL deletes).
|
||||||
|
3. Appends the staged data via a data step with `sessref=dcsession`.
|
||||||
|
|
||||||
|
The truncate is deliberately the last step before the append, to minimise the time in which the target table is empty. See [MPE_TABLES](/dcc-tables/#loadtype) for general REPLACE documentation.
|
||||||
|
|
||||||
## Unloading
|
## Unloading
|
||||||
|
|
||||||
After an approval, the in-memory version of the CAS Table will be updated. To apply this to the underlying file on disk, the following code must be executed (eg in a POST APPROVE HOOK):
|
After an approval, the in-memory version of the CAS Table will be updated. To apply this to the underlying file on disk, the following code must be executed (eg in a POST APPROVE HOOK):
|
||||||
@@ -54,3 +64,7 @@ quit;
|
|||||||
## Special Variables
|
## Special Variables
|
||||||
|
|
||||||
Processing of data in Data Controller is performed in SPRE with SAS datasets - and as such, it is not possible to process character variables longer than 32k or other CAS specific data types.
|
Processing of data in Data Controller is performed in SPRE with SAS datasets - and as such, it is not possible to process character variables longer than 32k or other CAS specific data types.
|
||||||
|
|
||||||
|
## Temporary Table Cleanup
|
||||||
|
|
||||||
|
Temporary `casuser` tables created during loading (eg the REPLACE cast-and-append step above) are cleaned up correctly, including in error conditions. If a load is aborted before completion, any temp tables created mid-process are dropped before the lock is released.
|
||||||
|
|||||||
@@ -48,6 +48,18 @@ After this, remaining columns are shown. Dates / datetime fields have appropria
|
|||||||
|
|
||||||
New rows can be added using the right click context menu, or the 'Add Row' button. The data can also be sorted by clicking on the column headers.
|
New rows can be added using the right click context menu, or the 'Add Row' button. The data can also be sorted by clicking on the column headers.
|
||||||
|
|
||||||
|
#### Native Date and Time Pickers
|
||||||
|
|
||||||
|
Date, time, and datetime columns use native browser pickers in the editor, providing a familiar, locale-aware editing experience. Date columns use an `<input type="date">` picker, time columns use `<input type="time">` (24-hour), and datetime columns use `<input type="datetime-local">`. The pickers are backed by Handsontable 17 Intl cell types for consistent formatting.
|
||||||
|
|
||||||
|
#### Paste Validation Overlay
|
||||||
|
|
||||||
|
When you paste data into the editor (or autofill cells by dragging), a validation overlay appears before the changes are applied. This lets you review the pending changes and cancel or confirm them. All pasted and autofilled cells are validated against the configured [validation rules](/dcc-validations/). For large pastes, a progress banner shows the validation status.
|
||||||
|
|
||||||
|
#### Row Status Indicators
|
||||||
|
|
||||||
|
The row-header status cells are colour-coded to show whether each row is modified, added, deleted, or unchanged. The "modified" symbol is `±` for clearer visual feedback.
|
||||||
|
|
||||||
When ready to submit, hit the SUBMIT button and enter a reason for the change. The owners of the data are now alerted (so long as their email addresses are in metadata) with a link to the approve screen.
|
When ready to submit, hit the SUBMIT button and enter a reason for the change. The owners of the data are now alerted (so long as their email addresses are in metadata) with a link to the approve screen.
|
||||||
If you are also an approver you can approve this change yourself.
|
If you are also an approver you can approve this change yourself.
|
||||||
|
|
||||||
@@ -65,6 +77,8 @@ This page shows a list of the changes you have submitted (that are not yet appro
|
|||||||
### Approvals
|
### Approvals
|
||||||
This shows the list of changes that have been submitted to you (or your groups) for approval.
|
This shows the list of changes that have been submitted to you (or your groups) for approval.
|
||||||
|
|
||||||
|
When you open a submitted change for review, the staged data is displayed alongside the current values so you can see exactly what will change. A **Formatted / Unformatted** toggle on the staging page lets you switch between viewing the data with SAS formats applied (eg `DATE9.` dates, `DOLLAR8.` currency) or as raw underlying values. This is useful when you need to verify the actual value being submitted rather than its display representation.
|
||||||
|
|
||||||
### History
|
### History
|
||||||
View the list of changes to each table, who made the change, when, etc.
|
View the list of changes to each table, who made the change, when, etc.
|
||||||
|
|
||||||
|
|||||||
+51
-1
@@ -23,7 +23,7 @@ It is possible to configure a number of other rules by updating the MPE_VALIDATI
|
|||||||
|
|
||||||
## Configurable Checks
|
## Configurable Checks
|
||||||
|
|
||||||
Check back frequently as we plan to keep growing this list of checks.
|
Check back frequently as we keep growing this list of checks.
|
||||||
|
|
||||||
|Rule Type|Example Value |Description|
|
|Rule Type|Example Value |Description|
|
||||||
|---|---|---|
|
|---|---|---|
|
||||||
@@ -35,6 +35,8 @@ Check back frequently as we plan to keep growing this list of checks.
|
|||||||
|HIDDEN|(defaultval) |Hides the column from the editor grid while still submitting its data. The defaultval is used when rows are added. |
|
|HIDDEN|(defaultval) |Hides the column from the editor grid while still submitting its data. The defaultval is used when rows are added. |
|
||||||
|ROUND|2 |Rounds numeric input on paste/edit. Positive digits round to number of decimal places (eg 2 rounds to 0.01) Negative digits round to the nearest ten/hundred etc. Half-away-from-zero rounding is applied so `-0.5 → -1` and `2.5 → 3`. |
|
|ROUND|2 |Rounds numeric input on paste/edit. Positive digits round to number of decimal places (eg 2 rounds to 0.01) Negative digits round to the nearest ten/hundred etc. Half-away-from-zero rounding is applied so `-0.5 → -1` and `2.5 → 3`. |
|
||||||
|NUMBER_FORMAT|`{"style":"currency","currency":"GBP"}` |Display-only [`Intl.NumberFormat` renderer](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Intl/NumberFormat). RULE_VALUE is the JSON options object passed straight to `Intl.NumberFormat`. Does not change the stored value. |
|
|NUMBER_FORMAT|`{"style":"currency","currency":"GBP"}` |Display-only [`Intl.NumberFormat` renderer](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Intl/NumberFormat). RULE_VALUE is the JSON options object passed straight to `Intl.NumberFormat`. Does not change the stored value. |
|
||||||
|
|HARDFORMULA|`= PRICE * VOLUME`|Evaluates a live, spreadsheet-style formula in the editor using [HyperFormula](https://hyperformula.handsontable.com/). The column is rendered read-only and the computed value (not the formula text) is submitted on save. See [Formula Rules](#formula-rules) below.|
|
||||||
|
|SOFTFORMULA|`= if( DC.ROW_STATUS != 'U', DC.USER_NAME, DC.ORIG_VALUE )`|Same as HARDFORMULA but the cell remains editable - the user can override the computed value. See [Formula Rules](#formula-rules) below.|
|
||||||
|HARDREGEX|`^[A-Z]{3}$`|The cell value **must** match the regex pattern, otherwise submission is blocked and the cell is highlighted red. See [Regex Rules](#regex-rules) below.|
|
|HARDREGEX|`^[A-Z]{3}$`|The cell value **must** match the regex pattern, otherwise submission is blocked and the cell is highlighted red. See [Regex Rules](#regex-rules) below.|
|
||||||
|SOFTREGEX|`^[A-Z]{3}$`|A cell value that does not match the regex pattern is highlighted yellow as a warning, but submission is **not** blocked. See [Regex Rules](#regex-rules) below.|
|
|SOFTREGEX|`^[A-Z]{3}$`|A cell value that does not match the regex pattern is highlighted yellow as a warning, but submission is **not** blocked. See [Regex Rules](#regex-rules) below.|
|
||||||
|HARDSELECT|sashelp.class.name|A distinct list of values (max 1000) are taken from this library.member.column reference, and the value **must** be in this list. This list may be supplemented by entries in the MPE_SELECTBOX table.|
|
|HARDSELECT|sashelp.class.name|A distinct list of values (max 1000) are taken from this library.member.column reference, and the value **must** be in this list. This list may be supplemented by entries in the MPE_SELECTBOX table.|
|
||||||
@@ -43,6 +45,54 @@ Check back frequently as we plan to keep growing this list of checks.
|
|||||||
|[SOFTSELECT_HOOK](/dynamic-cell-dropdown)|/physical/path/program.sas|A SAS service (STP or Viya Job) or a path to a SAS program on the filesystem. User-provided values may (or may not) be in this list. Cannot be used alongside a HARDSELECT_HOOK.|
|
|[SOFTSELECT_HOOK](/dynamic-cell-dropdown)|/physical/path/program.sas|A SAS service (STP or Viya Job) or a path to a SAS program on the filesystem. User-provided values may (or may not) be in this list. Cannot be used alongside a HARDSELECT_HOOK.|
|
||||||
|
|
||||||
|
|
||||||
|
## Formula Rules
|
||||||
|
|
||||||
|
HARDFORMULA and SOFTFORMULA bring live, spreadsheet-style formula evaluation to the Data Editor using the [HyperFormula](https://hyperformula.handsontable.com/) engine (the same library that powers formula calculation in Handsontable). When a column has either rule, the editor evaluates the formula in real time and displays the computed value in each cell.
|
||||||
|
|
||||||
|
### How formulas are written
|
||||||
|
|
||||||
|
Formulas are written using column names rather than cell references, so end users do not need to know the grid layout:
|
||||||
|
|
||||||
|
|ITEM|PRICE|VOLUME|REVENUE|
|
||||||
|
|---|---|---|---|
|
||||||
|
|PAPER|4.20|100|`= PRICE * VOLUME`|
|
||||||
|
|PEN|61.02|1,971|`= PRICE * VOLUME`|
|
||||||
|
|
||||||
|
At runtime the editor translates each column name to the correct cell reference for the current row (eg `PRICE` becomes `B1` in the first row, `B2` in the second, and so on).
|
||||||
|
|
||||||
|
!!! note
|
||||||
|
Each named variable **must have a leading and trailing blank** so it does not clash with function names (eg `MATCH()`). Variables inside single or double quoted strings are left untouched - eg `= "hello " & ITEM & " world"` resolves `ITEM` but not the word `ITEM` inside the string literal.
|
||||||
|
|
||||||
|
### HARDFORMULA vs SOFTFORMULA
|
||||||
|
|
||||||
|
* **HARDFORMULA** - the column is read-only. The formula is always evaluated and the computed value is displayed and submitted. The user cannot override it.
|
||||||
|
* **SOFTFORMULA** - the cell starts with the computed value but remains editable. The user can type a different value, which is then submitted instead of the formula result.
|
||||||
|
|
||||||
|
### Formula-aware behaviour across the editor
|
||||||
|
|
||||||
|
Live formulas are evaluated for any character column, not just those with explicit HARDFORMULA / SOFTFORMULA rules. Several editor behaviours have been extended to be formula-aware:
|
||||||
|
|
||||||
|
* When you paste a formula, column names are automatically translated to the correct cell references.
|
||||||
|
* A cell overwritten by a formula is flagged so you can revert it; cell revert has been generalised to any overwritten value, not just formulas.
|
||||||
|
* The primary key and numeric columns resolve a live formula to its computed value (not the raw formula text) when submitted.
|
||||||
|
* Formula-looking values pasted from Excel are auto-escaped so they are treated as data, not evaluated as formulas, unless you explicitly choose "Apply as formula".
|
||||||
|
* A dedicated `DC.ROW_STATUS` column is driven live by formulas, and has been hardened against collisions with real columns of that name.
|
||||||
|
|
||||||
|
### Special formula literals
|
||||||
|
|
||||||
|
The following literals are available for use in formula rules:
|
||||||
|
|
||||||
|
* `DC.ROW_STATUS` - replaced at runtime with the cell reference (eg `A1`). Values are `M` (Modified), `A` (Added), `D` (Deleted), or `U` (Unchanged).
|
||||||
|
* `DC.USER_NAME` - replaced at runtime with the logged-in user id.
|
||||||
|
* `DC.ORIG_VALUE` - replaced at runtime with the original cell value before the current edit.
|
||||||
|
|
||||||
|
Example - show the current user id if the row has been changed, otherwise keep the original value:
|
||||||
|
|
||||||
|
```
|
||||||
|
RULE_VALUE = if( DC.ROW_STATUS != 'U', DC.USER_NAME, DC.ORIG_VALUE )
|
||||||
|
```
|
||||||
|
|
||||||
|
|
||||||
## Regex Rules
|
## Regex Rules
|
||||||
|
|
||||||
HARDREGEX and SOFTREGEX validate cell values against a SAS (Perl-style) regular expression provided in `RULE_VALUE` - the same syntax accepted by [PRXPARSE](https://documentation.sas.com/doc/en/pgmsascdc/9.4_3.5/lefunctionsref/p0s9ilagexmjl8n1u7e1t1jfnzlk.htm).
|
HARDREGEX and SOFTREGEX validate cell values against a SAS (Perl-style) regular expression provided in `RULE_VALUE` - the same syntax accepted by [PRXPARSE](https://documentation.sas.com/doc/en/pgmsascdc/9.4_3.5/lefunctionsref/p0s9ilagexmjl8n1u7e1t1jfnzlk.htm).
|
||||||
|
|||||||
+16
-1
@@ -130,6 +130,19 @@ Now the services are deployed (including the service which creates the staging a
|
|||||||
* Admin Group - the members of this group will have full access to Data Controller
|
* Admin Group - the members of this group will have full access to Data Controller
|
||||||
* Compute Context - the context configured in Step 1
|
* Compute Context - the context configured in Step 1
|
||||||
|
|
||||||
|
!!! note
|
||||||
|
The first-launch configuration tab has been overhauled. The **Groups** dropdown starts with the logged-in user's own groups, the **Contexts** dropdown is grouped by batch user id (contexts without batch ids appear last), and a new **Verify** button calls the startup service to confirm it is running before switching to the regular flow. If the getAdminGroup response is missing items, an abort modal is shown instead of failing silently.
|
||||||
|
|
||||||
|
!!! note
|
||||||
|
The login page has been improved with better input contrast and validation. Submitting empty fields no longer produces an infinite spinner.
|
||||||
|
|
||||||
|
### Deploy Checks
|
||||||
|
|
||||||
|
The deploy flow now includes Viya deploy checks and startup diagnostics to catch configuration issues early. A chunked deploy script is used for reliability on larger Viya installations. During deploy, the compute context is auto-fixed and `ComputeContextDetails` is extended with Viya response fields.
|
||||||
|
|
||||||
|
!!! note
|
||||||
|
A debug comment is added to the compute context during deploy. This is permanent - it is not removed by subsequent deploys.
|
||||||
|
|
||||||
|
|
||||||
### Optimisation
|
### Optimisation
|
||||||
|
|
||||||
@@ -174,4 +187,6 @@ To update DC, just deploy it as a fresh instance, then move the new config acros
|
|||||||
|
|
||||||
It is possible to embed a Data Controller table within SAS Visual Analytics by simply pasting the URL.
|
It is possible to embed a Data Controller table within SAS Visual Analytics by simply pasting the URL.
|
||||||
|
|
||||||
To make the portlet more visually appealing, the Data Controller title bar can be removed by adding `?embed=true` to the URL. When opening in a new window, the title bar will be gone.
|
To make the portlet more visually appealing, the Data Controller title bar can be removed by adding `?embed=true` to the URL. When opening in a new window, the title bar will be gone.
|
||||||
|
|
||||||
|
For a deeper VA integration - where report row selections drive filters and column visibility in the Data Controller editor - append `?embed=va` instead. See the [SAS Visual Analytics Embed](/embed-va/) page for details on filter modes, configuration, and debugging.
|
||||||
@@ -38,6 +38,15 @@ If VA sends an empty / unmatched message the editor falls back to the unfiltered
|
|||||||
|
|
||||||
More logic available in [`va-messaging.service.ts'](https://git.datacontroller.io/dc/dc/src/branch/main/client/src/app/services/va-messaging.service.ts).
|
More logic available in [`va-messaging.service.ts'](https://git.datacontroller.io/dc/dc/src/branch/main/client/src/app/services/va-messaging.service.ts).
|
||||||
|
|
||||||
|
## Filter Modes
|
||||||
|
|
||||||
|
When running in `embed=va` mode, the editor provides two filter modes, controlled by the **Auto-apply** checkbox:
|
||||||
|
|
||||||
|
* **Live (default)** - each VA row selection is applied automatically after a short debounce, so the editor updates as you interact with the report.
|
||||||
|
* **Confirm** - VA filter changes are staged but not applied until you click the **Apply** button. This is useful in edit mode, where an automatic reload would discard unsaved changes.
|
||||||
|
|
||||||
|
In both modes a status indicator shows whether a VA filter change is pending, loading, or idle. In edit mode, a pending filter stays staged until the user leaves edit mode, so unsaved edits are never lost.
|
||||||
|
|
||||||
## Configuration in VA
|
## Configuration in VA
|
||||||
|
|
||||||
In the VA Report Designer, add a **Data-Driven Content** object and set the URL to the editor route shown above. Be sure that any report level filters have their corresponding parameters added to the DDC object itself.
|
In the VA Report Designer, add a **Data-Driven Content** object and set the URL to the editor route shown above. Be sure that any report level filters have their corresponding parameters added to the DDC object itself.
|
||||||
|
|||||||
+2
-1
@@ -31,7 +31,7 @@ Data Controller is regularly updated with new features. If you see something th
|
|||||||
|
|
||||||
* [Excel uploads](/excel) - drag & drop directly into SAS. All versions of excel supported.
|
* [Excel uploads](/excel) - drag & drop directly into SAS. All versions of excel supported.
|
||||||
* Data Lineage - at both table and column level, export as image or CSV
|
* Data Lineage - at both table and column level, export as image or CSV
|
||||||
* Data Validation Rules - both automatic and user defined
|
* Data Validation Rules - both automatic and user defined, including [live formulas](/dcc-validations/#formula-rules)
|
||||||
* Data Dictionary - map data definitions and ownership
|
* Data Dictionary - map data definitions and ownership
|
||||||
* Data Catalog - including primary key extraction
|
* Data Catalog - including primary key extraction
|
||||||
* DDL generator - in SAS, TSQL and PGSQL flavours
|
* DDL generator - in SAS, TSQL and PGSQL flavours
|
||||||
@@ -42,6 +42,7 @@ Data Controller is regularly updated with new features. If you see something th
|
|||||||
* [Row Level Security](/row-level-security)
|
* [Row Level Security](/row-level-security)
|
||||||
* Excel [formula support](excel)
|
* Excel [formula support](excel)
|
||||||
* Dynamic [cell dropdown](/dynamic-cell-dropdown)
|
* Dynamic [cell dropdown](/dynamic-cell-dropdown)
|
||||||
|
* [SAS Visual Analytics embed](/embed-va/) - drive the editor from VA report selections
|
||||||
* Works on ALL flavours of SAS (Base, EBI, Viya)
|
* Works on ALL flavours of SAS (Base, EBI, Viya)
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
+2
-2
@@ -28,8 +28,8 @@ The following features are currently requested:
|
|||||||
|
|
||||||
The following additional features are necessary:
|
The following additional features are necessary:
|
||||||
|
|
||||||
* Frontend Formulae
|
* ~~Frontend Formulae~~ - **Delivered** in v7.13.0. See [Formula Rules](/dcc-validations/#formula-rules).
|
||||||
* Regex Rules
|
* Regex Rules - **Delivered**. See [Regex Rules](/dcc-validations/#regex-rules).
|
||||||
|
|
||||||
The above rules will apply only at frontend, and will be configurable in the MPE_VALIDATIONS table. The values will appear as part of the [editors/getdata](https://code.datacontroller.io/getdata_8sas_source.html) service response in the `dqrules` object.
|
The above rules will apply only at frontend, and will be configurable in the MPE_VALIDATIONS table. The values will appear as part of the [editors/getdata](https://code.datacontroller.io/getdata_8sas_source.html) service response in the `dqrules` object.
|
||||||
|
|
||||||
|
|||||||
@@ -20,6 +20,6 @@ A detailed breakdown is available in the [validations](/dcc-validations/) sectio
|
|||||||
- 🔑 `BASE_LIB char(8)`: SAS Libref (8 chars)
|
- 🔑 `BASE_LIB char(8)`: SAS Libref (8 chars)
|
||||||
- 🔑 `BASE_DS char(32)`: The library member name
|
- 🔑 `BASE_DS char(32)`: The library member name
|
||||||
- 🔑 `BASE_COL char(32)`: The column name
|
- 🔑 `BASE_COL char(32)`: The column name
|
||||||
- 🔑 `RULE_TYPE char(32)`: The name of the rule to apply. Valid values include `CASE`, `NOTNULL`, `MINVAL`, `MAXVAL`, `READONLY`, `HIDDEN`, `ROUND`, `NUMBER_FORMAT`, `HARDREGEX`, `SOFTREGEX`, `HARDSELECT`, `SOFTSELECT`, `HARDSELECT_HOOK` and `SOFTSELECT_HOOK`.
|
- 🔑 `RULE_TYPE char(32)`: The name of the rule to apply. Valid values include `CASE`, `NOTNULL`, `MINVAL`, `MAXVAL`, `READONLY`, `HIDDEN`, `ROUND`, `NUMBER_FORMAT`, `HARDFORMULA`, `SOFTFORMULA`, `HARDREGEX`, `SOFTREGEX`, `HARDSELECT`, `SOFTSELECT`, `HARDSELECT_HOOK` and `SOFTSELECT_HOOK`.
|
||||||
- `RULE_VALUE char(128)`: The value of the rule.
|
- `RULE_VALUE char(128)`: The value of the rule.
|
||||||
- `RULE_ACTIVE num`: Set to 1 for an active rule, or 0 to disable the rule.
|
- `RULE_ACTIVE num`: Set to 1 for an active rule, or 0 to disable the rule.
|
||||||
|
|||||||
+1
-1
@@ -12,7 +12,7 @@ Often when editing (or examining) raw data, it is helpful to see it alongside re
|
|||||||
Each individual viewbox has the following features:
|
Each individual viewbox has the following features:
|
||||||
|
|
||||||
* Choose the columns to display (and which order)
|
* Choose the columns to display (and which order)
|
||||||
* Resize individual boxes (or reset to original)
|
* Resize individual boxes by dragging any of the four edges or corners (or reset to original)
|
||||||
* Full filtering capability (complex clauses)
|
* Full filtering capability (complex clauses)
|
||||||
* Minimise / Restore all, or individually
|
* Minimise / Restore all, or individually
|
||||||
* Reposition - manually, or snap to grid
|
* Reposition - manually, or snap to grid
|
||||||
|
|||||||
Reference in New Issue
Block a user