Я сделал что-то подобное не совсем идеальным способом при интеграции служб отчетов в более крупные приложения. Поскольку мне требовалось, чтобы отчеты запускались для разных баз данных с одинаковыми схемами, в зависимости от клиентской базы данных, из которой они поступали, я использовал настраиваемый поставщик аутентификации, чтобы мой код служб отчетов развернул новый отчет для пользователя клиента при первом запросе этого клиента. (Файлы rdl хранятся в моих клиентских базах данных, и при входе в систему они развертываются, и я программно изменяю источники данных, когда он развертывается впервые для этого клиента).
Это решение хорошо сработало для моей ситуации, но оно довольно сложное и, вероятно, не совсем то, что вы ищете. Если вы можете, http://www.gotreportviewer.com/ может удовлетворить ваши потребности.