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

» FastReport

Автор: royt
Дата сообщения: 20.01.2007 15:13
Только недавно стал использовать FastReport 4-ой версии. Скаченный для него help (именно для 4-ой версии) какой-то корявый весь - то русские текст почему-то кракозябрами рисуется, то WinHlp32.exe падает (как с русским fr4.hlp, так и с английским вариантом). Это только у меня так, или у всех? Может есть сносная версия справки? (Именно в формате .hlp, потому как хотелось бы работать со справкой из IDE Delphi).
Автор: ultima
Дата сообщения: 21.01.2007 19:27
У меня help нормально работает, претензии есть только по объему, далеко не все описано в справке, релизы(бетки) выходят чаще, чем обновляется help...
Автор: JonyBes
Дата сообщения: 23.01.2007 19:54
Проблема такая : Стоял до этого FastReport демо.
Накопил постов скачал из обменника Про версию, а он на всех бланках пишет, что это демо. Что можно сделать?
Подскажите FastReport 4-ой версии только английский или есть русский? Высталяю русский язык при компиляции - получается все равно английский.
Автор: gpi
Дата сообщения: 23.01.2007 20:33
JonyBes
Нужно удалить все bpl-пакеты из Delphi и Windows\System, а затем заново поставить FR.
Для перекомпиляции с русскими языковыми ресурсами нужно воспользоваться утилитой recompile.exe. В Delphi в LibraryPath прописать папку LibDn, созданную утилитой recompile.exe
Автор: Erazer
Дата сообщения: 29.01.2007 17:57
Ставлю вручную FastReport 4, сразу после установки рабоатет , после закрытия и повторного запуска Delphi 6 и попытки установить на форму при попытке поместить на форму frxReport , получаю access violation in module frx6.bpl.... пути прописаны верно - 200%
шо робыть ?
Автор: royt
Дата сообщения: 29.01.2007 19:59
Ткните пожалуйста носом в сторонние компоненты для фаст-репорта.

Например, очень интересуют компоненты для создания табличек (не таблиц БД, а обычных таблиц - из колонок и строк, как например в Word-е). Утомительно бывает составлять многоколоночные таблицы из отдельных ячеек (компонентов memo) или "изображать" их линиями.
Или может оно есть в стандартной библиотеке и я чего-то не прочухал?
Автор: gpi
Дата сообщения: 29.01.2007 21:43
Erazer
Update2 for D6 установлен?
royt
См. пример PrintTable в папке Demos из комплекта поставки фаста
Автор: Erazer
Дата сообщения: 30.01.2007 10:03
не... ща поставлю... походу подобные приколы из-за непропатченной делфи... т.к. тот проэкт который глючит например под d6 upd1 в d7 рабоает на ура... бум апдейтиться....
Автор: royt
Дата сообщения: 30.01.2007 15:13
gpi
Цитата:
См. пример PrintTable
Это не то... Нужно получить не автоматически генерируемую таблицу (для заданного перечня полей/колонок), а скажем так "нарисовать" рамки таблицы, с точным указанием количества колонок и строк (т.е. кол-во строк должно быть фиксированным, а не зависеть от коли-ва записей в датасете!). В нужные ячейки (причем не во все) вставить разные memo/поля, в т.ч. из разных датасетов, какие-то ячейки оставить пустыми. Иметь возможность точно настроить высоту у разных строк таблицы - в общем, получить не обязательно одинаковые строки в одной таблице. Настроить ширину колонок. В разных ячейках сделать разное оформление... Ну и т.д., т.е. по типу как это можно сделать например в Word.

Всё описанное реализуется штатными средствами? Если чего-то не догоняю - приму простой ответ "да", буду тогда дальше разбираться.

И, независимо от первой части вопроса: вообще существуют ли сторонние компоненты для FastReport? Ведь последний это позволяет, и давно, но что-то вообще ничего не нашел в сети.
Кстати, их собственный PowerPack - это теперь часть FastReport или существует в виде отдельного продукта? (на сайте информацию не нашел)
Автор: gpi
Дата сообщения: 30.01.2007 20:11
royt

Цитата:
В нужные ячейки (причем не во все) вставить разные memo/поля


Цитата:
какие-то ячейки оставить пустыми. Иметь возможность точно настроить высоту у разных строк таблицы - в общем, получить не обязательно одинаковые строки в одной таблице. Настроить ширину колонок. В разных ячейках сделать разное оформление... Ну и т.д., т.е. по типу как это можно сделать например в Word.

Для этого можно использовать условное выделение (для простых случаев) или скрипты

Цитата:
в т.ч. из разных датасетов

это зависит от структуры отчёта

Цитата:
вообще существуют ли сторонние компоненты для FastReport?

http://www.stalker4.dp.ua/ru
Автор: royt
Дата сообщения: 31.01.2007 07:33
gpi
Скрипты это уже принципиально другой подход, запрограммировать то много чего можно...
За ссылку спасибо! Другие ссылки также приветствуются.
Автор: ym
Дата сообщения: 02.02.2007 11:31
В своей программе я использую свой список открытых MDIChild окон. Дело в том, что у меня используется dxBar от DevExpress'a... и там приходится это делать самому.

Вот так добавляю заголовоки:
_fMain._fM_dxBarMRUListItem.Items.AddObject('Чилд 1', Self);

Перед закрытием формы соответственно убираю:
with _fMain._fM_dxBarMRUListItem.Items do
Delete(IndexOfObject(Self));

И при использовании FastReport MDIChild'a возникает вопрос - а как можно добавить заголовок окна MDIChild'a в мой список и как потом после закрытия просмотра можно этот заголовок убрать?
Автор: 1enka
Дата сообщения: 04.02.2007 13:11
Подскажите, пожалуйста, я в приложении программно меняю картинку(TImage), сохраняю измененную картинку на жесткий диск. Мне надо, чтобы вызывая в программе ShowReport, я получала в отчете уже измененную картинку. А то, я определила в отчете, картинку(picture1) открыть из файла, и когда его изменяю, открываю сново отчет, а картинка не меняется естественно. Помоги, плз.. =)
Автор: pochti
Дата сообщения: 05.02.2007 08:00
1enka
Какая у вас версия FR?
у меня на одной из версий тоже такое было, но потом прошло.
Автор: xy
Дата сообщения: 05.02.2007 09:07
Здравствуйте - возникла проблемка в фр4.1 с итогами по листу

Идея стандартная:
1. итог по листу на приклеивать к мастердате
-- для этого вводится переменная Y которая на AfterPrint увеличивается, а у PageFooter1.BeforePrint ставится Engine.CurY := Y;

2. на последней странице надо выводить итог страницы перед итогом всего отчета, для чего Engine.ShowBand(PageFooter1) прописывается в ReportSummary.OnAfterCalcHeight при этом PageFooter1.PrintOnLastPage := False;

всё вроде хорошо и работает, но теперь у меня появляются группы в отчете, которые очень большие и по сути мне надо, чтобы подвал группы с итогами печатался после итогов страницы (так как раньше было с итогами отчета)
PrintOnLastPage тут не работает и вылазит странный глюк.. для того, чтобы печатать подвал страницы только там где надо я делаю следующее:

procedure MasterData1OnAfterPrint(Sender: TfrxComponent);
begin
Y:=Engine.CurY;
PageFooter1.Visible := True;
end;

procedure PageFooter1OnBeforePrint(Sender: TfrxComponent);
begin
Engine.CurY:=Y;
end;

procedure GroupFooter1OnAfterCalcHeight(Sender:TfrxComponent);
begin
if PageFooter1.Visible then
Engine.ShowBand(PageFooter1);
end;

procedure PageFooter1OnAfterPrint(Sender:TfrxComponent);
begin
PageFooter1.Visible := False;
end;

Таким образом, если на странице нет данных, а попадают только итоги группы - нули не печатаются (новая группа - с нового листа)
однако эти меры - уже следствие того, что на одной из страниц (где попадает только итог) - фастрепорт проглючивает и он в итогах листа пишет не ноль, а итоги предыдущей полной страницы (счетчик не сбрасывает), после этого на всех последующих страницах - одни и те же итоги по листу, хотя итоги по группам и общий итог продолжают считаться правильно

отчет на примерно 250 листов, и глюк начинается примерно с 100-го

если включить два прохода - тогда итоги по листам на всех страницах перезаписываются глюком на одинаковые

если же поменять местами итог по группе и итог по странице, то глюк пропадает, однако это не совсем правильно - бутерброд такой:
- итог группа (много)
- итог лист (мало)
- итог отчет (очень много)

естественно хочется получить:
- итог лист (мало)
- итог группа (много)
- итог отчет (очень много)

может как-то иначе выводить итог по листу принудительно перед итого группы?
Автор: gpi
Дата сообщения: 05.02.2007 09:39
xy
Может быть, попытаться выводить постраничные итоги на дочернем бэнде. После печати мастердата определять оставшееся место на странице, и если места хватает только для вывода дочернего бэнда, то выводить итог по странице, используя Engine.ShowBand(Child1)
Автор: 1enka
Дата сообщения: 05.02.2007 10:47
Привет всем!
у меня тут проблема с fr3:
есть кнопка "сохранить в хтмл файл" нужно, чтобы куда пользователь сохранит файл хтмл, сохранятся и файл отчета .fr3
Я пользую frxHTMLExport.
Незнаю, нужно создавать свой компонент frxHTMLExport, или можно обойтись без этого?
Автор: gpi
Дата сообщения: 05.02.2007 11:35
1enka

Цитата:
Незнаю, нужно создавать свой компонент frxHTMLExport, или можно обойтись без этого?

Для экспорта в HTML нужен фильтр
Цитата:
нужно, чтобы куда пользователь сохранит файл хтмл, сохранятся и файл отчета .fr3

для сохранения в формате fp3 нужно добавить
frxReport1.PreviewPages.SaveToFile('filename');

Цитата:
А то, я определила в отчете, картинку(picture1) открыть из файла, и когда его изменяю, открываю сново отчет, а картинка не меняется естественно.

В скрипте отчёта в событии Picture1OnBeforePrint добавьте
Picture1.Picture.LoadFromFile('filename');


Автор: 1enka
Дата сообщения: 05.02.2007 11:39
gpi
дак frxHTMLExport - это разве не фильтр? =)

а с картинкой я уже разобралась.. спасибо =)
Автор: gpi
Дата сообщения: 05.02.2007 11:43
1enka

Цитата:
дак frxHTMLExport - это разве не фильтр? =)

Фильтр. И он нужен для экспорта в HTML
Автор: xy
Дата сообщения: 05.02.2007 11:43
gpi

Цитата:
Может быть, попытаться выводить постраничные итоги на дочернем бэнде. После печати мастердата определять оставшееся место на странице

а как определять оставшееся место?
Автор: 1enka
Дата сообщения: 05.02.2007 11:49
а как мне узнать, куда пользователь экспортировал в html, чтобы туда же сохранить отчет .fp3?

Цитата:
для сохранения в формате fp3 нужно добавить
frxReport1.PreviewPages.SaveToFile('filename');

мне и нужно узнать это filename
Автор: gpi
Дата сообщения: 05.02.2007 13:10
xy

Цитата:
а как определять оставшееся место?

Engine.FreeSpace
1enka

Цитата:
мне и нужно узнать это filename

frxHTMLExport1.FileName

Автор: 1enka
Дата сообщения: 05.02.2007 13:20
а не подскажете, как мне сделать:
нужно чтобы отчет группировался, а в этой группе разбеть еще на группы?
Автор: xy
Дата сообщения: 05.02.2007 15:39
1enka
в хелпе єто расписано настолько подробно, что мы вряд ли сможем еще что-то добавить :-(
Автор: gpi
Дата сообщения: 05.02.2007 15:43
1enka
Данные должны быть отсортированы по двум группируемым полям. В отчёте добавить GroupHeader1, GroupHeader2. Для каждого из GroupHeader задать условия группировки
Автор: BeerSeller
Дата сообщения: 05.02.2007 16:45
Доброе время суток.
Есть ли в природе DOA db engine для FastReport 4?

А то я задрался патчить сырцы(в новых версиях), чтобы Report видел список полей

Проблемма в том что для frxDBEngine юзайтся GetFieldNames и при этом вылетает с Exception о несоответствии типов. Я просто заменяю вызов GetFieldNames на обычный цикл.

Кста DOA так ведёт себя с разными Reports (проверял ReportBuilder, FastReport, ExpressPrintingSystem).

И ещё GetFieldNames помечена в Delphi 2006 как устаревшая.
Автор: 1enka
Дата сообщения: 06.02.2007 10:28
Здравствуйте!
как можно сделать, чтобы заполнялся ProgressBar, пока строится отчет (выполняется ShowReport)?
Автор: mmlm10
Дата сообщения: 06.02.2007 20:23
1enka
Если я правильно понял вопрос, то frReport.ShowProgress := True
Автор: xy
Дата сообщения: 10.02.2007 22:52
Я немного зашел в тупик :)
Как правильно построить кросс-таб в фр4 при использовании нормальных DataSet, т.е. которые не открыты во время проектирования
вроде такой классный инструмент и так нехорошо, что с ним нельзя работать :(

Страницы: 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859

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


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