for each report i am using separate microsoft report viewer control
Why so? Just place/use one viewer and change the source of report to it as per need. You would need to define the report for the viewer at runtime as defined by you.
reportViewer1.Reset();
reportViewer1.LocalReport.ReportEmbeddedResource = "WindowsApplication1.Report1.rdlc";
this.reportViewer1.RefreshReport();
reportViewer1.Reset();
reportViewer1.LocalReport.ReportEmbeddedResource = MapPath("Report1.rdlc");
this.reportViewer1.RefreshReport();