Under ideal situations, one need not link each page to the viewer in the code. Once the pages are created, the same are displayed in the viewer without any issues.
As per my understanding of the issue, you wish to bind your report to multiple datasources and then show the data in various tables/dataregion/subreports. If this is the case, then the suggestion would be make use of CPL PageReport wherein you can bind it to multiple datasources.
You mat refer to this walkthrough illustrates how to create a report using a subreport.
Regards, Mohita