# Report Module - Dynamic Table of Contents

**URL:** <https://forum.inductiveautomation.com/t/report-module-dynamic-table-of-contents/92407>\
**Category:** Ignition\
**Tags:** ignition81\
**Created:** [June 26, 2024, 3:39pm UTC](https://forum.inductiveautomation.com/t/report-module-dynamic-table-of-contents/92407 "2024-06-26T15:39:16Z")\
**Posts on this page:** 1\
**Page:** 1

<div class="post-metadata">

**Author:** ![marcelo.amorim](https://avatars.discourse-cdn.com/v4/letter/m/3bc359/32.png) [@marcelo.amorim](https://forum.inductiveautomation.com/u/marcelo.amorim)\
**Post date:** [June 26, 2024, 3:39pm UTC](https://forum.inductiveautomation.com/t/report-module-dynamic-table-of-contents/92407/1 "2024-06-26T15:39:16Z")

</div>

I am looking into getting a table of contents showing the pages of when certain data sources datakeys have been used. So far [PGriffith's solution from 4 years ago](https://forum.inductiveautomation.com/t/report-dynamic-table-of-contents/30576) does work wonders. The only thing that I am struggling with is that the generated pages are offset by 1 for some reason.  
Is there another way to accomplish dynamic page references for creating a table of contents for reports that have hundreds of pages?  
I have tried using [keychain expressions](https://www.docs.inductiveautomation.com/docs/8.1/ignition-modules/reporting/report-design/data-keys/keychain-expressions) (to subtract 1 from it) but they don't seem to work with @page@ keys.  
 ![image](https://us1.discourse-cdn.com/inductiveautomation/original/3X/2/d/2dd515bcde30b201b7bac5e35d1b53817a7e0894.png)
