Could you please let us know who the Data page is getting formed, if it is populated from different tables then write RD with same logic otherwise you need save Dpage to table and write the RD to fetch the data.
Usually for better performance, declare index will be created for page list and page groups. You can create a RD in the application class with a class join for the index class which contains the PL/PG values. Looks like you need to utilize page list values in another RD. You can have one RD to get the details with the above logic and configure this as a sub report in the main report to utilize values. Please let me know if it helps or If I miss anything.
Please provide more details about your requirement.
The primary purpose of declare index is to improve performance so if there are millions of records you should be using declare index with proper DB indexing of columns. You can probably work with DBA on the query generated by listview / summary view to optimize query.