Глюк или фитча? :)
Встретился с рядом проблем:
1) создаю в рантайме датасет в памяти, фильтрую его и на каждом фильтре строю отчет со своим шаблоном с помощью report.PrepareReport(false). Но вот какая штука, отчет в результате получается пустым, а если сделать report.PrepareReport(false) дважды то первая страница пустая а вторая с данными. Парадокс аднака
2) В цикле меняю значение переменной следующим образом Report.Variables := mtTemplate.FieldByName('orderlist_id').AsInteger
В дизайнере я вижу что переменная существует а вот значения ее отсутсвует, не могли бы Вы пояснить это?
3) Так как я создаю датасет с данными для отчета на лету я делаю следующее
frxDBDataset:= TfrxDBDataset.Create(nil);
frxDBDataset.DataSet:= mt;
frxDBDataset.Name:= 'Main';
Report.DataSets.Add(frxDBDataset);
В результате в дизайнере сразу не отображается датасет Main. Его приходится добавлять руками через меню
4) Если в цикле на каждом шаге я меняю шаблон отчета и затем вызываю дизайнер, то при первом запуске дизайнера все в порядке, а при следующих дизайнер падает со страшными криками. PrepareReport проходит нормально.
Не могли бы Вы ответить на вышеперечисленные вопросы как можно скорее, а то я решил все отчеты перевести под FR4, а тут такие закидоны что хоть стой хоть падай
1) создаю в рантайме датасет в памяти, фильтрую его и на каждом фильтре строю отчет со своим шаблоном с помощью report.PrepareReport(false). Но вот какая штука, отчет в результате получается пустым, а если сделать report.PrepareReport(false) дважды то первая страница пустая а вторая с данными. Парадокс аднака
2) В цикле меняю значение переменной следующим образом Report.Variables := mtTemplate.FieldByName('orderlist_id').AsInteger
В дизайнере я вижу что переменная существует а вот значения ее отсутсвует, не могли бы Вы пояснить это?
3) Так как я создаю датасет с данными для отчета на лету я делаю следующее
frxDBDataset:= TfrxDBDataset.Create(nil);
frxDBDataset.DataSet:= mt;
frxDBDataset.Name:= 'Main';
Report.DataSets.Add(frxDBDataset);
В результате в дизайнере сразу не отображается датасет Main. Его приходится добавлять руками через меню
4) Если в цикле на каждом шаге я меняю шаблон отчета и затем вызываю дизайнер, то при первом запуске дизайнера все в порядке, а при следующих дизайнер падает со страшными криками. PrepareReport проходит нормально.
Не могли бы Вы ответить на вышеперечисленные вопросы как можно скорее, а то я решил все отчеты перевести под FR4, а тут такие закидоны что хоть стой хоть падай
Комментарии
2) Попробуйте установить Report.EngineOptions.DestroyForms:=False;
3) Добавьте в код Report.EnabledDataSets.Add(frxDBDataset);
4) Тестовый пример сделать можете?
2) полегчало
3) полегчало
4) хмм... надо попробовать, из проекта реально не выдрать, если только создать искусственный пример.
Кстати, тут мне знакомый сообщил что у него в другом проекте такая же бодяга. Так он просто двойным prepare обошелся, к сожалению мне этот вариант не подходит
Кстати, а после фильтрации датасета и перед вызовом PrepareReport выполняется позиционирование на первую запись отфильтрованного датасета?
Да кстати, First не помог.
Подготовил пример программы с реальными данными. Куда слать?
Добавьте
Да и получается что при первом превью он автоматом не сопоставляется, а при втором сопоставляется? Вам не кажется это странным?
Но все равно спасибо за потраченное время и подсказку.
Сегодня огреб еще один прикол
Report.Variables:= mtOrderlist.FieldByName('orderlist_id').AsString;
Report.Variables:= postav_name;
В отчете на второй переменной получаю ошибку <Неопределенный идентификатор: 'IPSA'>, где IPSA - правильное значение второй переменной, т.е значение он вроде как видит, а вот вывести его гордо отказывается Первую переменную видит и выводит без проблем.
Вобщем я медленно зверею и думаю об откате на FR2 Пошел 4 день как я не могу нормально собрать 1 несложный динамический отчет. Все его отличие от представленных в демо это то, что я создаю датасеты с данными для него в рантайме и загружаю темплейт из потока. На деньги в принципе плевать, а вот потраченного времени безусловно жалко. Продукт слишком сырой чтобы использовать его в реальных проектах.
Функция есть, но она работает не совсем как надо, либо глючит, либо не работает вообще. Гуй дизайнера периодически слетает, т.е ObjectInspector схлопывается в несколько пикселов и не разворачивается. С переменными надо работать по особо хитрому способу, иначе они могут не работать. Датасеты репорту надо назначать особым способом, иначе репорт их теряет и восстанавливает только при повторном превью или препаре. Вобщем список фитч FR4 безусловно впечатляет, и возможно через несколько месяцев когда такие же платные альфа-тестеры вроде меня его вылижут до приемлимого уровня его можно будет использовать в реальных и крупных проектах. Но в данное время я не готов бороться с недокументированными фитчами FR4, у меня проект горит
Спасибо qpi за проявленное терпение и внимание к моим проблемам, как жаль что коммерческий суппорт в который я написал через специальную страницу полностью проигнорировал меня. Вобщем в данный момент остаюсь на FR2, а через полгодика посмотрим.