DBX с ClientDataSet
Предлагается для теста вариант DBX с поддержкой ClientDataSet. Внутренняя реализация немного отличается от стандартной поэтому допускаю некоторую несовместимость. Для проверки существующую версию надо убрать в сторону, заменить этой и перекомпилять/переустановить.
Комментарии
В нашей системе сейчас порядка 200 отчётов и многие используют связку Master->Detail.
Что выступает в качестве Master и Detail? Оба ClientDataSet? Или для Detail можно DBXQuery?
Я не о внутренней реализации.
Я просто спросил в отчёте Master и Detail были ClientDataset или только мастер был ClientDataset .
Попробую покопать, может удасться исправить.
Для ClientDataSet MasterDetail можно задать только как и для TTablу (BDE). Т.е. определяя MasterSource, MasterFields, IndexFieldNames, причём в where запроса не надо указывать условие как для случая Master->Detail с TQuery.
Наблюдается нехороший эффект поскольку для связи строится индекс по полям указанным в IndexFieldNames, условие сортировки заданное в order by запроса игнорируется. Если хочется сохранить сортировку необходимо дописать эти поля в IndexFieldNames.
Т.е. в принципе можно реализовать это, достаточно добавить два свойства MasterFields, IndexFieldNamesдля и поправаить реализацию SetMaster.
Либо переоткрывать Detail набор перед печатью, например на OnBeforePrint у MasterBand.
Вопрос:
Надо ли это? и Что будем делать?