не совсем понял, кто кого юзает, модуль данных командует модулем отчёта, или наоборот?
Модуль отчета пользует модуль данных для получения необходимой информации.
В то же время модуль данных может использоваться.
можно, например, завести один модуль данных, и научить с ним работать модуль отчёта. в модуле данных основные функции сделать виртуальными. а далее остальные модули данных будут наследоваться от исходного и, при необходимости, переопределять эти самые основные функции.
Тэкс... это-то как раз таким образом почти и реализуется.
Когда я говорил о модуле данных, я имел ввиду самостоятельное приложение, например dll-файл.
Модуль отчета умеет работать с интерфейсом модуля данных. Остальное ему знать и не нужно.