# Filters on Perspective table

**URL:** <https://forum.inductiveautomation.com/t/filters-on-perspective-table/99381>\
**Category:** Ignition\
**Tags:** perspective, scripting\
**Created:** [December 3, 2024, 7:13pm UTC](https://forum.inductiveautomation.com/t/filters-on-perspective-table/99381 "2024-12-03T19:13:28Z")\
**Posts on this page:** 9\
**Page:** 1

<div class="post-metadata">

**Author:** ![JMarc](https://avatars.discourse-cdn.com/v4/letter/j/7993a0/32.png) [@JMarc](https://forum.inductiveautomation.com/u/JMarc)\
**Post date:** [December 3, 2024, 7:13pm UTC](https://forum.inductiveautomation.com/t/filters-on-perspective-table/99381/1 "2024-12-03T19:13:28Z")

</div>

Is there a way to add multiple filters to an ignition perspective table?

---

<div class="post-metadata">

**Author:** ![YF129701](https://sea1.discourse-cdn.com/inductiveautomation/user_avatar/forum.inductiveautomation.com/yf129701/32/60498_2.png) [@YF129701](https://forum.inductiveautomation.com/u/YF129701)\
**Post date:** [December 3, 2024, 7:18pm UTC](https://forum.inductiveautomation.com/t/filters-on-perspective-table/99381/2 "2024-12-03T19:18:27Z")

</div>

You can do [column filters](https://docs.inductiveautomation.com/docs/8.1/appendix/components/perspective-components/perspective-display-palette/perspective-table#columnsfilter-properties) (you first have to create the column objects)

 ![image](https://us1.discourse-cdn.com/inductiveautomation/original/3X/7/8/78ecfeffec01a542079b976bb1382c69e373534c.png)

---

<div class="post-metadata">

**Author:** ![JMarc](https://avatars.discourse-cdn.com/v4/letter/j/7993a0/32.png) [@JMarc](https://forum.inductiveautomation.com/u/JMarc)\
**Post date:** [December 3, 2024, 7:40pm UTC](https://forum.inductiveautomation.com/t/filters-on-perspective-table/99381/3 "2024-12-03T19:40:35Z")

</div>

![image](https://us1.discourse-cdn.com/inductiveautomation/original/3X/b/7/b7300017d4ca5fb6a875fee40b5e61607a4da7f9.png)  
Thanks for the response. I dont see that and I have my objects created

---

<div class="post-metadata">

**Author:** ![josborn](https://avatars.discourse-cdn.com/v4/letter/j/4bbf92/32.png) [@josborn](https://forum.inductiveautomation.com/u/josborn)\
**Post date:** [December 3, 2024, 7:45pm UTC](https://forum.inductiveautomation.com/t/filters-on-perspective-table/99381/4 "2024-12-03T19:45:53Z")

</div>

The column filter was added in 8.1.31, you would need to upgrade.

---

<div class="post-metadata">

**Author:** ![JMarc](https://avatars.discourse-cdn.com/v4/letter/j/7993a0/32.png) [@JMarc](https://forum.inductiveautomation.com/u/JMarc)\
**Post date:** [December 3, 2024, 7:46pm UTC](https://forum.inductiveautomation.com/t/filters-on-perspective-table/99381/5 "2024-12-03T19:46:51Z")

</div>

Ahhh okay, thank you

---

<div class="post-metadata">

**Author:** ![YF129701](https://sea1.discourse-cdn.com/inductiveautomation/user_avatar/forum.inductiveautomation.com/yf129701/32/60498_2.png) [@YF129701](https://forum.inductiveautomation.com/u/YF129701)\
**Post date:** [December 3, 2024, 7:50pm UTC](https://forum.inductiveautomation.com/t/filters-on-perspective-table/99381/6 "2024-12-03T19:50:49Z")

</div>

OR, there is a possibility that you are on 8.1.33+ but you still don't see the new options for filtering and a few others they've added recently - this could be for a few reasons:

- You create the `columns` objects by using a script - in that case, you'll need to add the `filter` object to your script
- You created the project and added the column objects in a version before 8.1.33, but you've since upgraded - I believe I remember seeing that the new options won't show up for you automatically, but you will get a suggestion for them if you click on the `+` icon, like so

 ![image](https://us1.discourse-cdn.com/inductiveautomation/original/3X/a/f/af1f6b80866e2804523ae09c6aa1b1ea8a50ddc6.png)

I'm not sure this applies to you specifically, but I wanted to address future users who are on 8.1.33+ but still don't see those options.

---

<div class="post-metadata">

**Author:** ![JMarc](https://avatars.discourse-cdn.com/v4/letter/j/7993a0/32.png) [@JMarc](https://forum.inductiveautomation.com/u/JMarc)\
**Post date:** [December 3, 2024, 7:53pm UTC](https://forum.inductiveautomation.com/t/filters-on-perspective-table/99381/7 "2024-12-03T19:53:33Z")

</div>

Thanks!

If you don't mind can you show me how the filters look in your table?

---

<div class="post-metadata">

**Author:** ![YF129701](https://sea1.discourse-cdn.com/inductiveautomation/user_avatar/forum.inductiveautomation.com/yf129701/32/60498_2.png) [@YF129701](https://forum.inductiveautomation.com/u/YF129701)\
**Post date:** [December 3, 2024, 8:08pm UTC](https://forum.inductiveautomation.com/t/filters-on-perspective-table/99381/8 "2024-12-03T20:08:59Z")

</div>

Sure - here is a small snip of what it looks like. You get a little filter icon next to your column's header text

 ![image](https://us1.discourse-cdn.com/inductiveautomation/original/3X/9/f/9fc9ed043b64bfba32777fc11b106f5a12458e8f.png)

The options you have that get displayed in the `Select condition` dropdown are based on what datatype the column is (what you set the column's `render` property to). For instance, here are the options for numeric and date values, respectively:

 ![image](https://us1.discourse-cdn.com/inductiveautomation/original/3X/2/7/2731746c9635126b9c4cf7dfd426389c1cc06b34.png)

 ![image](https://us1.discourse-cdn.com/inductiveautomation/original/3X/0/3/03bc3f334ece32aa979931a57f6f2393f2804679.png)

---

<div class="post-metadata">

**Author:** ![msteele](https://sea1.discourse-cdn.com/inductiveautomation/user_avatar/forum.inductiveautomation.com/msteele/32/77889_2.png) [@msteele](https://forum.inductiveautomation.com/u/msteele)\
**Post date:** [December 3, 2024, 10:55pm UTC](https://forum.inductiveautomation.com/t/filters-on-perspective-table/99381/9 "2024-12-03T22:55:31Z")

</div>

Of course, one limitation of filtering in a Perspective table is that it will only filter on data within the table's data property which excludes cells displayed via embedded views.

We generally will pull actual values into table.data for any value which should be static during a user's session (e.g. a device's name, attributes, relationships, etc) but will pass a tagPath and a key and embed a view for anything dynamic (e.g. a process value - even if we're displaying plain text).

We then drive those values to a common pageVarMap in our view.custom bindings before they ever hit the table.data, then bind labels or whatever else in our cell embedded views to that pageVarMap filtered for the tagPath and key provided by the table.

This results in a much higher performance display and gets rid of that annoying behavior in Designer where table.data refreshes and collapses every time a value within it changes.

Example of this within @pturmel's Tag Report Utility: [Ignition Exchange | Inductive Automation](https://inductiveautomation.com/exchange/2687/overview)
