Связь один-к-одному
Нужно сделать отчет по датасету из формы, но этот датасет не содержит некоторый полей, нужных для отчета. Но эти поля можно молучить из добавочного запроса, который можно поместить на форму диалога фаста и указав datasource на основной датасет, но при этом если выполнить disablecontrols основному датасету, то связь мастер-детейл соответсвенно не работает. можно ли этот как-то обойти не изменяя основной запрос (именно средствами фаста)?
Комментарии
1. неэстетично
2. заметно тормозит формирование отчета
Полностью автономный отчет сделать не представляется возможным.
И вот это "Полностью автономный отчет сделать не представляется возможным" - тоже мало похоже на правду.
Короче - подробнее.
Но в приведенном коде что именно не работает - можешь сказать?
Детайл не обновляется - не может быть! Гон!
Или детайл обновился - а в отчет не передался - тоже мало верится.
Дебаггером пользоваться умеешь в конце концов?!!!
А не проще у гридового датасоурца обнулить DataSet перед формированием отчёта ?
Типа такого:
теперь бы решить, что лучше - грид "ехал" или очищался на время формирования отчета
Ибо мастер-деталь никак не зависит в твоем случае.
Более того у тебя вообще связка мастер-деталь "отсутствует", потому что
А дебаггер тебе просто необходим, чтобы выявить ошибку, которая НЕ СВЯЗАНА СО СВЯЗКОЙ МАСТЕР-ДЕТАЛЬ!
У тебя нет связки мастер-деталь на момент выполнения отчета!
Потому что из подчиненной таблицы тебе нужны записи, относящиеся ТОЛЬКО к ПЕРВОЙ записи мастер-таблицы. То есть фиксированный набор. Когда ты делаешь DisableControls мастер-таблицы, ты дизаблишь ее, а не деталь-таблицу. Таким образом деталь-таблица полностью функциональна! И отчет по ней строить можно также, как и обычно!
Ясное дело, что у тебя твои проблемы связаны с DisableControls, но не по самому факту, а потому что ты его неправильно используешь! Переделай код - придет и на твою улицу счастье!
А искать пути, типа занулить Datasourse у грида - это всего лишь выход из ситуации, но не решение проблемы.
Ну сделай простейший отчет с мастер-деталью и проверь его с DisableControls и без него.