Лично меня на Windows сейчас удерживает только ваша FastrReport Studio, потому как приличной альтернативы генератора отчетов в Linux пока нет.
И на мой взгляд портирование FastrReport.NET под Linux заметно прибавило бы Вам сторонников.
PS
А под Wine c FastrReport.NET как нибудь пристроиться можно?
privatevoid_StartReport(object sender,EventArgs e){DataSet ds;...// инициализация и заполнение датасета string tablename = ds.Tables[0].TableName;Report.RegisterData(ds, tablename);DataSourceBase data =Report.GetDataSource(tablename);
data.Init();// источник данных получен и заполненMessageBox.Show(string.Format("Количество записей: {0}", data ==null?"null": data.Rows.Count.ToString()));// записи есть// настройка DataBandText2.Text="[LIB.ID]";Text6.Text="[LIB.NAME]";Text2.Style="Data";Text6.Style="Data";Text2.AllowExpressions=true;Text6.AllowExpressions=true;Data1.DataSource= data;}
При вызове у отчета Show() происходит NullReferenceException при отображении страницы (Page1_StartPage вызывается, Page1_FinishPage нет), как я понял из-за Expressions (если их установить в false, то отчет запускается, но вместо значений понятно выводится [LIB.ID] и т.д.), вот Stacktrace:
Как показать превью отчета в MDI окне, но каждое новое построение отчета надо показывать в новом MDI окне?
Да и еще - как заголовок окна присвоить для каждого такого MDI првью?
privatevoid_StartReport(object sender,EventArgs e){DataSet ds =newDataSet();
ds.ReadXml(@"d:\fr.net\demos\reports\nwind.xml");string tablename = ds.Tables[0].TableName;Report.RegisterData(ds);DataSourceBase data =Report.GetDataSource(tablename);
data.Init();MessageBox.Show(string.Format("Количество записей: {0}", data ==null?"null": data.Rows.Count.ToString()));Text1.Text="[Categories.CategoryName]";Text2.Text="[Categories.Description]";Data1.DataSource= data;}
Report.RegisterData(ds) - регистрация всего датасета. Если нужна только одна таблица, надо делать так:
Report.RegisterData(ds.Tables[0], tablename);
Создаю новый отчет, кидаю на Data1 Text1 и Text2 (источник данных вручную не добавляю), в обработчике _StartReport пишу код, при запуске выводится сообщение "Количество записей: 8", затем NullReferenceException, StackTrace:
в wjejkqAoQKeOnkA63h.E4NMk9c3f0MQ0yyQvH.5hDOKY1yt(String,Variant)вFastReport.Report.CalcExpression(String expression,Variant value)вFastReport.Report.Calc(String expression,Variant value)вFastReport.Report.Calc(String expression)вFastReport.TextObject.GetData()вFastReport.BandBase.GetData()вFastReport.Engine.ReportEngine.yjG24bPJQ(BandBase,Boolean)вFastReport.Engine.ReportEngine.CkSeMcTVl(BandBase,Boolean)вFastReport.Engine.ReportEngine.DI0PG8MgT(BandBase,Boolean)вFastReport.Engine.ReportEngine.ShowBand(BandBase band)вFastReport.Engine.ReportEngine.O35SH6Uhg(DataBand,Int32)вFastReport.Engine.ReportEngine.Upr8C3FFZ(DataBand,Int32,Boolean,Boolean,Boolean)вFastReport.Engine.ReportEngine.BbKFrq7ew(DataBand)вFastReport.Engine.ReportEngine.UdIsQk0Byu(BandCollection)вFastReport.Engine.ReportEngine.XXysa2U601(ReportPage)вFastReport.Engine.ReportEngine.96as7CQBf0()вFastReport.Engine.ReportEngine.d55vj5ytf(Boolean,Boolean,ReportPage)вFastReport.Engine.ReportEngine.2RUYGnQLo(Boolean,Boolean)вFastReport.Report.Prepare(Boolean append)вFastReport.Report.Prepare()вFastReport.Report.Show()
Создаю новый отчет, кидаю на Data1 Text1 и Text2 (источник данных вручную не добавляю), в обработчике _StartReport пишу код, при запуске выводится сообщение "Количество записей: 8", затем NullReferenceException, StackTrace:
Вроде поправил. Новая версия соберется в полночь.
Хоть такая возможность и предусмотрена, динамически строить отчет нежелательно. При запуске он будет скомпилирован дважды (первый раз - компиляция исходного кода отчета, второй - компиляция выражений, которые были добавлены в коде). Это лишние задержки, да и в medium trust работать не будет (если захотите работать с ASP).
Да и еще: свойство Text у MDI формы проставляется всюду одинаковое "PreviewControl", а не тот заголовок что устанавливается через
report.ReportInfo.Name = "...";
Где можно просмотреть информацию о правилах именования источников данных? Сейчас, если в наименовании источника данных встречается точка, например "Таблица.1", то обращение к полям в отчете вызывает ошибку ("[Таблица.1.NAME]"), как я понимаю, выражение разбирается по первой точке и данная ситуация исправляется только использованием алиасов (которые не должны включать в себя точку)?
В документации этого нет, нужно будет добавить.
В имени источника данных точка не допускается. Она может быть только в имени поля, при этом поле будет считаться составным и отображаться в виде дерева.
Здравствуйте.
Мы пользуемся BCB2007 + FastReport.VCL но в рамках нового проекта собираемся использовать FastReport.NET.
Нужно сделать сервер отчетов.
Все как обычно - шаблоны в БД, SQL-запросы там же.
Интерфейс к серверу - WEB Services. Клиентская часть - веб-браузер (не .ASP). Соответственно, отображать и печатать нужно не стредствами FastReport а будем использовать экспорт.
У меня вопросы по экспорту:
1. Очень нужна возможность экспорта в текстовый формат, пригодный для печати на матричные принтера (типа DotMatrixExport) или как в VCL.
Ну очень много у нас таких принтеров
Вы планируете экспорт в текст. Можно ли будет его ипользовать для печати на матричных принтерах?
2. Нужен экспорт в HTML в виде одной сплошной страницы без фреймов и навигатора.
Я попробовал сделать такой экспорт в демке версии 1.0.35 (SinglePage=true, все остальное=false), но страница формируется с навигатором и фреймами.
Это баг?
1) мы планируем добавить все экспорты, которые были доступны в VCL. Но времени на это уйдет достаточно много - я не могу сказать, когда будет готов TXT.
2) баг, будем исправлять.
Да, мы им сейчас занимаемся. Точных сроков сказать не могу - работы много.
Здравствуйте!
У меня вопрос по поводу отслеживания момента, когда начинает формироваться новая страница, т.к. необходимо в начале страницы вывести шапку таблицы отчета, которую я собираю используя методы PrintRow(...) и PrintColumn(...).
Можно подписаться на события бэнда PageHeader (BeforePrint/AfterPrint). Шапку можно сделать проще - укажите в св-ве таблицы FixedRows количество строк с начала таблицы, которые будут повторяться автоматически на каждой новой странице.
Ок, спасибо.
Еще такой вопрос: у MatrixObject колонки сортируются в алфавитном порядке. Если названиями колонок, например, являются названия месяцев, то они идут в неестественном порядке. Можно как-то решить эту проблему ?
rpt.Preview не установлен
rpt.Prepare();
rpt.ShowPrepared(false);
и если в отчете есть диалоговая форма, то при нажатии кнопки "Отмена" в этой форме, окно FastReport`a все равно показывается. Можно сделать чтобы оно не показывалось ? Так, как происходит при использовании метода Show().
Комментарии
И на мой взгляд портирование FastrReport.NET под Linux заметно прибавило бы Вам сторонников.
PS
А под Wine c FastrReport.NET как нибудь пристроиться можно?
Конфликтов не будет?
А можно ли отключить показ окон прогресса при формировании и печати?
Чего-то не нашёл я такого или конец дня просто
или в компоненте EnvironmentSettings (что в toolbox)
При вызове у отчета Show() происходит NullReferenceException при отображении страницы (Page1_StartPage вызывается, Page1_FinishPage нет), как я понял из-за Expressions (если их установить в false, то отчет запускается, но вместо значений понятно выводится [LIB.ID] и т.д.), вот Stacktrace:
Report.RegisterData(ds) - регистрация всего датасета. Если нужна только одна таблица, надо делать так:
Report.RegisterData(ds.Tables[0], tablename);
Как показать превью отчета в MDI окне, но каждое новое построение отчета надо показывать в новом MDI окне?
Да и еще - как заголовок окна присвоить для каждого такого MDI првью?
P.S.
До релиза еще далеко?
С релизом решили не торопиться. У меня пока есть претензии к асп-части.
Создаю новый отчет, кидаю на Data1 Text1 и Text2 (источник данных вручную не добавляю), в обработчике _StartReport пишу код, при запуске выводится сообщение "Количество записей: 8", затем NullReferenceException, StackTrace:
Прикладываю пример.
А как насчёт заголовка для каждого окна? Как его присвоить?
Мне надо что б каждое превью называлось по разному.
report.ReportInfo.Name = "...";
report.ShowPrepared(...)
либо так:
Config.PreviewSettings.Text = "...";
report.ShowPrepared(...)
Вроде поправил. Новая версия соберется в полночь.
Хоть такая возможность и предусмотрена, динамически строить отчет нежелательно. При запуске он будет скомпилирован дважды (первый раз - компиляция исходного кода отчета, второй - компиляция выражений, которые были добавлены в коде). Это лишние задержки, да и в medium trust работать не будет (если захотите работать с ASP).
report.ReportInfo.Name = "...";
Если вместо report.ReportInfo.Name = "..." сделать Config.PreviewSettings.Text = "...", то будет показано многоточие.
Где можно просмотреть информацию о правилах именования источников данных? Сейчас, если в наименовании источника данных встречается точка, например "Таблица.1", то обращение к полям в отчете вызывает ошибку ("[Таблица.1.NAME]"), как я понимаю, выражение разбирается по первой точке и данная ситуация исправляется только использованием алиасов (которые не должны включать в себя точку)?
В документации этого нет, нужно будет добавить.
В имени источника данных точка не допускается. Она может быть только в имени поля, при этом поле будет считаться составным и отображаться в виде дерева.
Мы пользуемся BCB2007 + FastReport.VCL но в рамках нового проекта собираемся использовать FastReport.NET.
Нужно сделать сервер отчетов.
Все как обычно - шаблоны в БД, SQL-запросы там же.
Интерфейс к серверу - WEB Services. Клиентская часть - веб-браузер (не .ASP). Соответственно, отображать и печатать нужно не стредствами FastReport а будем использовать экспорт.
У меня вопросы по экспорту:
1. Очень нужна возможность экспорта в текстовый формат, пригодный для печати на матричные принтера (типа DotMatrixExport) или как в VCL.
Ну очень много у нас таких принтеров
Вы планируете экспорт в текст. Можно ли будет его ипользовать для печати на матричных принтерах?
2. Нужен экспорт в HTML в виде одной сплошной страницы без фреймов и навигатора.
Я попробовал сделать такой экспорт в демке версии 1.0.35 (SinglePage=true, все остальное=false), но страница формируется с навигатором и фреймами.
Это баг?
1) мы планируем добавить все экспорты, которые были доступны в VCL. Но времени на это уйдет достаточно много - я не могу сказать, когда будет готов TXT.
2) баг, будем исправлять.
Будет ли он в ближайшее время?
Здравствуйте!
У меня вопрос по поводу отслеживания момента, когда начинает формироваться новая страница, т.к. необходимо в начале страницы вывести шапку таблицы отчета, которую я собираю используя методы PrintRow(...) и PrintColumn(...).
Как это можно сделать?
Можно подписаться на события бэнда PageHeader (BeforePrint/AfterPrint). Шапку можно сделать проще - укажите в св-ве таблицы FixedRows количество строк с начала таблицы, которые будут повторяться автоматически на каждой новой странице.
Как в дизайнере записать в окно сообщений свое отладочное сообщение? Отлаживать отчет с помощью MessageBox не очень удобно.
В очередном билде добавил:
Report.Designer.ShowMessage(string)
Report.Designer.ClearMessages()
Учтите, что при запуске не из дизайнера св-во Report.Designer == null.
Очередной билд соберется сегодня в полночь.
Еще такой вопрос: у MatrixObject колонки сортируются в алфавитном порядке. Если названиями колонок, например, являются названия месяцев, то они идут в неестественном порядке. Можно как-то решить эту проблему ?
rpt.Preview не установлен
rpt.Prepare();
rpt.ShowPrepared(false);
и если в отчете есть диалоговая форма, то при нажатии кнопки "Отмена" в этой форме, окно FastReport`a все равно показывается. Можно сделать чтобы оно не показывалось ? Так, как происходит при использовании метода Show().