Ru-Board.club
← Вернуться в раздел «Прикладное программирование»

» FastReport

Автор: xy
Дата сообщения: 11.02.2007 00:59
А еще у меня кросс-таб на child не печатается.. без child нормально. в бэнде - пусто :-/
и можно ли как-то заставить кросс-таб растягиваться по листу, если он не зполняет всю площадь :-?
Автор: InVariantian
Дата сообщения: 13.02.2007 08:33
Пользуюсь DB Cross-tab'ом. Данные из хранимой. Все работает отлично. Вопрос собственно: "Как прикрутить ещё один столбец?"
Есть:

Код:
Наименование | Кол-во за месяц | Всего
Сыр | 12 25 2 10 | 49
Молоко | 10 5 12 11 | 38
Автор: xy
Дата сообщения: 14.02.2007 22:07
Народ, меня фр41 уже достал изрядно :(
тупо не считает итого по по листу (пишет последнюю сумму из мастердаты)
просто убиваюсь уже - хоть вручную считай, может кто-то знает этот глюк и как его лечить :-?
Автор: gpi
Дата сообщения: 15.02.2007 07:34
xy
итоги по листу выводятся в PageFooter?
[SUM(<Dataset."Field">, Masterdata1)]
Автор: xy
Дата сообщения: 15.02.2007 15:09
gpi
Да, правда не указывал мастердату.. м.б. из-за этого лажа :-/
сейчас попробую

Добавлено:
Попробовал - нифига :(
вот скриншот конца страницы:

есть подозрение что глюк из-за субрепортов :-(
Автор: gpi
Дата сообщения: 15.02.2007 22:27
xy
а subreport-ы не разрываются при печати?
Хотелось бы взглянуть на fr3-файл. Мыло в ПМ
Автор: gpi
Дата сообщения: 16.02.2007 09:50
xy
Посмотрел. Причина в установленном свойстве KeepChild=True у мастердата. Написал о баге в форум по FR
Автор: xy
Дата сообщения: 16.02.2007 10:05
gpi
так мне же это вроде надо для того, чтобы линия была между строками, иначе между субрепортами пусто будет.. можно как-то иначе их очертить :-?
Автор: gpi
Дата сообщения: 16.02.2007 10:53
xy
Можно попробовать после вычисления высоты мастердата проверять свободное место на странице, если мастердата с дочерним бэндом не помещается, то переносить мастердата на следующую страницу
Автор: xy
Дата сообщения: 16.02.2007 13:52
gpi
хм.. так этож и есть основная работа фр - всё правильно переносить ?:)?:)

он вообще работает специфично (было бы время - уже б лицензию себе заработал на багах :):) )
Автор: ZalivkoDenis
Дата сообщения: 16.02.2007 14:59
Приветствую вас, девелоперы.

Может кто-нить подскажет, как мне справиться вот с такой проблеммой.
Комплект: FR4, FIBPlus, Delphi2006
Можно ли создать автономный отчёт с 2-мя БД (типа, мастер-деталь)?
С одной -- всё хорошо, конект автоматом цепляется и поехали... А вот с двумя... Поместил на форму в IDE 2 компонента TfrxFIBComponents. Назначил им свойство DefaultDatabase, вышел в режим редактирования отчёта. А там цепанулся коннект только последнего добавленного TfrxFIBComponents. Из выпадающего списка датабазы компонета frxFIBQuery в режиме дезигнера ничего не выбирается, руками прописать не получается (фаст ошибку выбрасывает)...
Так вот, мне интересно, так и должно быть, или у меня руки кривые???

Спасибо всем, кто попытался помочь...
Автор: gpi
Дата сообщения: 16.02.2007 16:24
xy

Цитата:
хм.. так этож и есть основная работа фр - всё правильно переносить ??

Ну так это временно, пока не пофиксят
Автор: xy
Дата сообщения: 16.02.2007 20:58
ZalivkoDenis
я с фибами использую стандартный TfrxDBDataset.. никаких проблем не наблюдал

Добавлено:
и вообще алгоритм такой - фр вообще не знает кто там как связан
внутри отчета задаются только датасеты, откуда качать данные
сами же FIBDataset связываются друг с другом вне зависимости от того, кто просит у них данные
Автор: gpi
Дата сообщения: 16.02.2007 22:20
xy

Цитата:
я с фибами использую стандартный TfrxDBDataset.. никаких проблем не наблюдал

Здесь речь ведётся об автономных отчётах, т.е. отчётах, в которых определены датасеты
ZalivkoDenis
Думаю, лучше просто добавить в отчёт две TfrxFIBDatabase, подсоединить к ним по датасету, а датасеты связать между собой

Автор: ShamaN
Дата сообщения: 18.02.2007 09:04
Есть ли в fast report-е возможность импортировать документы word?
Есть куча готовых шаблонов, хотелось бы с меньшими временными потерями перегнать в фаст.
Автор: xy
Дата сообщения: 18.02.2007 15:45
Подскажите пожалуйста как сохранить в ФР4 готовый отчет, т.е. не только его шаблон что делает по-умолчанию SaveToFile, а со всеми данными и переменными, т.е. полностью составленный отчет.. чтобы потом тупо подгрузить все готовые отчеты в один и показать

ибо композитный отчет _может_ состоять из 6 разных типов отчетов в зависимости от наличия данных и так по каждому подразделению.. в общем предьявить это в превью надо всё скопом..

Добавлено:
Частично разобрался - надо делать не SaveToFile, а PreviewPages.SaveToFile.. правда всё равно нифига не работает.. открывается пустой отчет
gpi если можно - можно я вышлю на мыло fp3 заготовки :-?

Как делаю - есть 6 TfrxReport компонент, которые я в определенном порядке запускаю многократно, после каждого PrepareReport делаю PreviewPages.SaveToFile("uniquebla-bla-bla.fp3")
потом у меня есть седьмой компонент с пустой страницей - делаю так:
with viewReport do begin
PrepareReport;
PreviewPages.Clear;

for I := Low(lFiles) to High(lFiles) do begin
PreviewPages.LoadFromFile(lFiles[I]);
end;

ShowPreparedReport;
end;
открывается, собака всё равно пустое окно предпросмотра.. :(
Автор: gpi
Дата сообщения: 18.02.2007 17:21
xy
Высылай
Вот только может просто обойтись одним frxReport, используя
frxReport.PrepareReport(False)
А вот подгружать готовые fp3 файлы можно через промежуточный TfrxReport. Т.е. сначала загрузить в TfrxReport fp3-файл, а затем додавить страницы в основной отчёт
frxReport1.PreviewPages.AddFrom(tempReport);
Автор: xy
Дата сообщения: 18.02.2007 18:18
gpi
т.е. если у меня есть viewReport - я могу в него по мере готовности подгружать viewReport.PreviewPages.AddFrom(tempReport) вместо того чтоб сохранять временные файлы :-?
это было бы замечательно :)

попробую

а надо ли делать viewReportу какой-нибудь препэйр до того :-?

Добавлено:
НЕ МОЖЕТ БЫТЬ %)%) я победил.. в общем конструкция такая
вьюРепорт - отчет с пустой страницей
делаем:
viewReport.PrepareReport();

потом по мере надобности
viewReport.PreviewPages.AddFrom(TfrxReport(lReport));

и в конце
viewReport.PreviewPages.DeletePage(0); //чтобы удалить изначальную пустую стрицу
viewReport.ShowPreparedReport;

работает только так.. из-за того, что AddFrom требует чтобы какая-то страница уже существовала

спасибо за помощь
Автор: gpi
Дата сообщения: 18.02.2007 20:38
xy
Я советую обратить всё-таки внимание на frxReport.PrepareReport(False)
Т.е. можно сделать так:
Код:
frxReport.LoadFromFile(filename1);
frxReport.PrepareReport(True);
frxReport.LoadFromFile(filename2);
frxReport.PrepareReport(False);
frxReport.LoadFromFile(filename3);
frxReport.PrepareReport(False);
frxReport.ShowPreparedReport;
Автор: xy
Дата сообщения: 18.02.2007 21:05
gpi
Если я сохраняю отчет как:
Report.PrepareReport;
Report.SaveToFile(..);
то сохранится только макет, правильно?

потом после
Report.LoadFromFile(filename3);
Report.PrepareReport(False);

оно попытается эти макеты выполнить.. а у меня отчеты все берут данные из одного и того же датасета, который переоткрывается с разными параметрами и так многократно, разные типы отчетов - т.е. запустить на выполнение сразу все невозможно.. поэтому мне и надо было сохранять готовые отчеты

впрочем решение "без файлов" мне вообще сразу понравилось - очень изящно :)

Добавлено:
аа.. я понял, что имелось ввиду.. делать препєйр сразу.. да, наверное сработало бы, но всё равно "без файлов" лучше, хотя жрёт больше памяти и наверное медленнее работает немного
Автор: ZalivkoDenis
Дата сообщения: 19.02.2007 09:43
gpi

Цитата:
Думаю, лучше просто добавить в отчёт две TfrxFIBDatabase, подсоединить к ним по датасету, а датасеты связать между собой

Возможно, нехрен пользоваться кряковолом, но, тем не меннее, может и в купленном такая беда есть... Ну не хочет он две базы видеть в дезигнере (даже так, как ты описал...), хоть ты (я ) тресни. Первую видит, а вторую -- хрен. А ведь поля квери перечитать нужно, чтобы в отчётик накидать... Можно, конечно и ручками, но смысл визуального проектирования тогда (ручками -- не проверял, но, имеется такое предположение, что и ручками работать не будет)

Предвосхищая ненужные предложения: отчёт автономный (!), с IBX такая же хрень... Причём, вот парадокс, кидаем один коннект FIBDatabase, второй IBXDatabase -- и, о чудо, всё работает... Но это же не выход....

Продолжаю с надеждой ждать предложений...

P.S. И нужно мне было две базы использовать? С одной всё ОК было... (вопрос чисто риторический)
Автор: gpi
Дата сообщения: 19.02.2007 10:30
ZalivkoDenis
Только что проверил. Работает Master-Detail с таблицами из двух баз
В проекте один TfrxFIBComponent с пустой базой по умолчанию. В отчёте две TfrxFIBDatabase, к каждой подключено по запросу. Между запросами установлена связь Master-Detail
Автор: ZalivkoDenis
Дата сообщения: 19.02.2007 12:05
gpi
Вот спасибочки! Действительно работает! Ура! Это уже хоть какой-то выход
Ошибочка была в том, что в проекте присваивал DefaultDatabase... Но, теперь, слава gpi, всё разрешилось.
Спасибо БОЛЬШОЕ за помощь!
Автор: fandm
Дата сообщения: 01.03.2007 11:07
Люди помогите!!!

Поставил версию 3.15, т.к. в 3.0.3 некорректно экспорт шёл субрепортов в ВОРД. Но столкнулся с новой проблемой!... Раньше [<дата>-<дата>] выдавало разницу в днях, а теперь какую-то отфонарную дату... причём если левая сторона меньше правой, то результат - это наименьшая дата, а если наоборот, то результат 01.11.1792.... Чё эт такое??? Как надо правильно написать, чтобы получить разницу в днях между двумя датами в отчёте FastReport 3.15?

Помогите плиз!!! Очень срочно надо!
Автор: gpi
Дата сообщения: 01.03.2007 23:03
fandm
Проверил и на FR 3.15, и на FR 4.1. Всё работает нормально
Автор: xy
Дата сообщения: 03.03.2007 18:28
Подскажите плиз можно ли в Кросс-табе переносить непоместившиеся колонки на новый лист не по нижнему уровню колонки, а группами
т.е. хадать уровень по которому рвать, например есть

Страна1 * Страна2
город1*город2*город3*город4

и не помещается город4, чтобы указать, чтоб перенесло не только город4, а всю страну2 целиком :-?
Автор: xy
Дата сообщения: 10.03.2007 23:28
мм.. не знает никто :(

А еще такой вопрос:
можно ли в групхедере задать условие группі не по одному полю, а по комбинации ( т.е. группа заканчивается, если изменилось значение хотя бі одного поля из (скажем) трёх) :-?
Автор: gpi
Дата сообщения: 11.03.2007 20:11
xy
Попробуй так:
<DataSet."Field1">+<DataSet."Field2">
Автор: xy
Дата сообщения: 11.03.2007 20:15
gpi
это не совсем корректно для строковых полей.. но попробую, спасибо
Автор: gpi
Дата сообщения: 12.03.2007 08:18
xy
для строк можно использовать <DataSet."Field1">+'|'+<DataSet."Field2">

Страницы: 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859

Предыдущая тема: CBuilder и копирование файла


Форум Ru-Board.club — поднят 15-09-2016 числа. Цель - сохранить наследие старого Ru-Board, истории становления российского интернета. Сделано для людей.