Подмена DataSet в runtime?
Народ, я возможно торможу, но даже не представляю как это сделать. Хотя, может это и по-другому делается? Надо вывести запрос с группировкой, даже если в нем нет строк. Придумал, что в случае, если запрос возвращает 0 строк, подменять датасет у мастер бэнда. Не представляю, как ему скормить новый датасет, который "single rows". Подскажите!!! :-)
Комментарии
правда там речь о 3-ке.... но принцип может подойти
А мысль была значительно проще. Реализация идеи заключается в том, чтобы получить объект датасета в рантайме и присвоить ему другой объект, который "single rows". Просто я не очень понимаю, как эти объекты хранятся в ФР и как к ним можно осуществить программный доступ средствами дельфей, а не встроенного языка.
http://www.fast-report.com/en/forum/?p=/discussion/3162
и здесь
http://www.fast-report.com/en/forum/?p=/discussion/3249
procedure Page1OnBeforePrint(Sender: TfrxComponent);
begin
if TfrxBandView(frReport1.FindObject('Band3')).DataSet = '0' then
TfrxBandView(frReport1.FindObject('Band3')).DataSet := '10';
end;
Ошибка: undeclared identifier TfrxBandView.
Что не так?
Спасибо, буду пробовать! :-)
И опять не то. Отчет выводится, но шапки в нем нет. Есть только подвал. А мне надо присвоить не количество строк, а другой датасет. Пусть даже и фиктивный, собраный специально для подмены тут же на коленке, потому что отчет - с группировкой! Насколько я понимаю, там же должна быть хотя бы одна строка... :-(