# How to dynamically configure table columns

**URL:** <https://forum.inductiveautomation.com/t/how-to-dynamically-configure-table-columns/112860>\
**Category:** Ignition\
**Tags:** perspective, ignition81\
**Created:** [December 17, 2025, 10:52am UTC](https://forum.inductiveautomation.com/t/how-to-dynamically-configure-table-columns/112860 "2025-12-17T10:52:26Z")\
**Posts on this page:** 4\
**Page:** 1

<div class="post-metadata">

**Author:** ![danielps1818](https://avatars.discourse-cdn.com/v4/letter/d/ecae2f/32.png) [@danielps1818](https://forum.inductiveautomation.com/u/danielps1818)\
**Post date:** [December 17, 2025, 10:52am UTC](https://forum.inductiveautomation.com/t/how-to-dynamically-configure-table-columns/112860/1 "2025-12-17T10:52:26Z")

</div>

Hi!

I have some array tags with the historian configured.  
This means that whenever I want to show the data in a table I need to configure each column of the data. However, we don't know how long is the array and what type is going to be.

The first column is always a timestamp, the other columns are the type of the array.

If I dont configure the _props.columns_ the timestamps doesn't get shown correctly. If I configure the _props.columns_ it will always show the amount of columns that are configured. If the array has any other amount it will not show some data or show empty columns.

How could I configure it so it will always show the timestamp correctly but also the correct amount of columns depending on the array lenght?

Also, would be nice not having a complex binding script (if any).

Thx!

---

<div class="post-metadata">

**Author:** ![Transistor](https://sea1.discourse-cdn.com/inductiveautomation/user_avatar/forum.inductiveautomation.com/transistor/32/3380_2.png) [@Transistor](https://forum.inductiveautomation.com/u/Transistor)\
**Post date:** [December 17, 2025, 11:58am UTC](https://forum.inductiveautomation.com/t/how-to-dynamically-configure-table-columns/112860/2 "2025-12-17T11:58:01Z")

</div>

> [@danielps1818](#):
>
> Also, would be nice not having a complex binding script (if any).

You need to script it.

- Create a property binding on the table's `columns` property and bind it to the table's `data` property. This will trigger the binding to reevaluate any time the data changes.
- Add a Script Transform operation, cycle through the columns and add them to the data to be returned from the function. Advice here is to write the script in the Project Browser | Scripting | Project Library and call it from the Script Transform, passing the data into the function..

Your script will need a protype for the t\_stamp column and for one of the other columns. Set those up in designer and copy each into your script as JSON variables, modifying the field name to that of the column name in each case.

---

<div class="post-metadata">

**Author:** ![danielps1818](https://avatars.discourse-cdn.com/v4/letter/d/ecae2f/32.png) [@danielps1818](https://forum.inductiveautomation.com/u/danielps1818)\
**Post date:** [December 17, 2025, 12:00pm UTC](https://forum.inductiveautomation.com/t/how-to-dynamically-configure-table-columns/112860/3 "2025-12-17T12:00:25Z")

</div>

Thx!

Is a bit sad that I need a script, would be nice to do it automatically. Or being able to configure only specific columns (as the timestamp).

Now I'm trying to resolve why the historian is not saving the array when is set OnChange 😕  
But that is another history...

Thanks transistor!

---

<div class="post-metadata">

**Author:** ![danielps1818](https://avatars.discourse-cdn.com/v4/letter/d/ecae2f/32.png) [@danielps1818](https://forum.inductiveautomation.com/u/danielps1818)\
**Post date:** [December 17, 2025, 12:14pm UTC](https://forum.inductiveautomation.com/t/how-to-dynamically-configure-table-columns/112860/4 "2025-12-17T12:14:57Z")

</div>

I figured it out!

Changing the value of an array doesn't _update_ the timestamp. This mean that the historian doesn't save it. However, If u write the entire tag as an array. It does update the timestamp and saves it.
