# Creating a Summary Page for UDT Tags in Perspective Flex Repeater

**URL:** <https://forum.inductiveautomation.com/t/creating-a-summary-page-for-udt-tags-in-perspective-flex-repeater/99024>\
**Category:** Ignition\
**Tags:** ignition81, perspective\
**Created:** [November 22, 2024, 10:15pm UTC](https://forum.inductiveautomation.com/t/creating-a-summary-page-for-udt-tags-in-perspective-flex-repeater/99024 "2024-11-22T22:15:33Z")\
**Posts on this page:** 7\
**Page:** 1

<div class="post-metadata">

**Author:** ![Ryan\_Crawford](https://avatars.discourse-cdn.com/v4/letter/r/a587f6/32.png) [@Ryan\_Crawford](https://forum.inductiveautomation.com/u/Ryan_Crawford)\
**Post date:** [November 22, 2024, 10:15pm UTC](https://forum.inductiveautomation.com/t/creating-a-summary-page-for-udt-tags-in-perspective-flex-repeater/99024/1 "2024-11-22T22:15:33Z")

</div>

Good Morning,

I am working within Perspective and I need some help.This project is within a flex repeater. What I am wanting to do is create a summary page of the tags in a UDT that would be put in a table. I have a variety of different tag types, but when the table is populated on the summary page, it must only populate with the active row (I have a tag for that). I was just wondering what is the best way to do this?

here is an image on what I am after:

 ![image](https://us1.discourse-cdn.com/inductiveautomation/original/3X/8/6/86cb30cc5be469037544d7616ec52458611badbc.png)

Thanks,  
Ryan

---

<div class="post-metadata">

**Author:** ![Reese\_Tyson](https://sea1.discourse-cdn.com/inductiveautomation/user_avatar/forum.inductiveautomation.com/reese_tyson/32/70155_2.png) [@Reese\_Tyson](https://forum.inductiveautomation.com/u/Reese_Tyson)\
**Post date:** [November 26, 2024, 4:36pm UTC](https://forum.inductiveautomation.com/t/creating-a-summary-page-for-udt-tags-in-perspective-flex-repeater/99024/2 "2024-11-26T16:36:09Z")

</div>

There are several different ways you could do this, but I would use a combination of [system.tag.browse()](https://docs.inductiveautomation.com/docs/8.1/appendix/scripting-functions/system-tag/system-tag-browse) starting at the root tag path of your Row UDTs and [system.tag.readBlocking()](https://docs.inductiveautomation.com/docs/8.1/appendix/scripting-functions/system-tag/system-tag-readBlocking) to read the desired tags within the rows(looks like that would be your header values and Row Active member). You can dynamically append dictionaries of the desired tags to a list based on the Row Active value. You would put this binding that returns the list on the instances property of the flex repeater.

---

<div class="post-metadata">

**Author:** ![Ryan\_Crawford](https://avatars.discourse-cdn.com/v4/letter/r/a587f6/32.png) [@Ryan\_Crawford](https://forum.inductiveautomation.com/u/Ryan_Crawford)\
**Post date:** [November 26, 2024, 4:50pm UTC](https://forum.inductiveautomation.com/t/creating-a-summary-page-for-udt-tags-in-perspective-flex-repeater/99024/3 "2024-11-26T16:50:45Z")

</div>

Thanks for the response Reese.

Would have anything in the past I could reference to get the ball rolling? Otherwise I will give it a crack.

---

<div class="post-metadata">

**Author:** ![Reese\_Tyson](https://sea1.discourse-cdn.com/inductiveautomation/user_avatar/forum.inductiveautomation.com/reese_tyson/32/70155_2.png) [@Reese\_Tyson](https://forum.inductiveautomation.com/u/Reese_Tyson)\
**Post date:** [November 27, 2024, 12:50am UTC](https://forum.inductiveautomation.com/t/creating-a-summary-page-for-udt-tags-in-perspective-flex-repeater/99024/4 "2024-11-27T00:50:49Z")

</div>

Something along these lines. You will have to tweak for your environment, but hopefully that gets you going in the right direction.

```python
path = '[default]'
finalList = []
rows = system.tag.browse(path, {'name': '*row*'})
for row in rows:
	print row['fullPath']
	rowActivePath =str(row['fullPath'])+'/Row Active'
	rowActive = system.tag.readBlocking([rowActivePath])[0].value

	if rowActive:
		data = {
			'activeBatch': 'value',
			'activeCode': 'value',
			'comp1': 'value',
			'comp2': 'value'
		}
		finalList.append(data)

return finalList

```

---

<div class="post-metadata">

**Author:** ![pturmel](https://sea1.discourse-cdn.com/inductiveautomation/user_avatar/forum.inductiveautomation.com/pturmel/32/3295_2.png) [@pturmel](https://forum.inductiveautomation.com/u/pturmel)\
**Post date:** [November 27, 2024, 1:00am UTC](https://forum.inductiveautomation.com/t/creating-a-summary-page-for-udt-tags-in-perspective-flex-repeater/99024/5 "2024-11-27T01:00:05Z")

</div>

> [@Reese\_Tyson](#):
>
> `rowActive = system.tag.readBlocking(...)`

Ewww! Don't do that inside a loop. Use a loop or comprehension to feed all of the tagpaths to a single `readBlocking()` call.

---

<div class="post-metadata">

**Author:** ![nminchin](https://sea1.discourse-cdn.com/inductiveautomation/user_avatar/forum.inductiveautomation.com/nminchin/32/6911_2.png) [@nminchin](https://forum.inductiveautomation.com/u/nminchin)\
**Post date:** [November 27, 2024, 1:02am UTC](https://forum.inductiveautomation.com/t/creating-a-summary-page-for-udt-tags-in-perspective-flex-repeater/99024/6 "2024-11-27T01:02:24Z")

</div>

> [@Ryan\_Crawford](#):
>
> This project is within a flex repeater

> [@Ryan\_Crawford](#):
>
> that would be put in a table

These are conflicting. Are you wanting the result to be a flex repeater or a table?

If it's a table, then you would need to use the Reese's approach, except _bulk_ read the tags (as Phil said) and then create the dataset for the table. (Or you could use Phil's toolkit module's `tags` expression function to subscribe to a dynamic list of tags and create the dataset from that)

If it's a flex repeater, then you can use the `tag.browse` function (faster than the `tag.query` function) to find all of your UDT Instances and create your flex repeater's instances list passing in the tagpath to the udt instances into that. Then the flex repeater's rows template would bind to the tags in your UDT for display

---

<div class="post-metadata">

**Author:** ![Ryan\_Crawford](https://avatars.discourse-cdn.com/v4/letter/r/a587f6/32.png) [@Ryan\_Crawford](https://forum.inductiveautomation.com/u/Ryan_Crawford)\
**Post date:** [November 29, 2024, 5:07pm UTC](https://forum.inductiveautomation.com/t/creating-a-summary-page-for-udt-tags-in-perspective-flex-repeater/99024/7 "2024-11-29T17:07:33Z")

</div>

Thanks @Reese_Tyson, I used your approach with @pturmel read and got the result I was after. Thanks for the help!
