Началось у меня это все с того, что я в этот самый комбобокс букву ввел (как в ворде для быстрого перехода к шрифту начинающемуся с этой буквы), вместо ожидаемого шрафта на "t" комбобокс выдал Microsoft Sans Serif. После этого баг и выполз... При прокрутки шрифтов, имеющихся в комбобоксе, вверх и при многократной смене шрифта, появлялась указанная мной ошибка.
Нашел небольшой баг.
Если в превью вывести несколько страниц вертикальной ориентации а последнюю страницу сделать горизонтальной и изменить масштаб таким образом чтоб на станицы выстроились по две в ряду, то просмотр будет ограницен нажней границей горизонтально ориентированного листа и если прокрутить скрол в самый низ то будет видна вся горизонтальная страница и только часть предпоследней страницы (вертикальной)...
Добрый день. Весьма своевременный проект - вот только очень много ошибок. Немножко про ошибки -
1. При использовании фоновых страниц неправильно производится экспорт в RTF и HTML. JPG - нормально.
2. Не проходит печать в дуплексном режиме если отчет содержит две страницы - лицевая и обратная. (Печатает на разных страницах как при установке в свойствах принтера перед печатью так и при явном задании в свойствах отчета)
3. Похоже не совсем корректно обновляются коллекции в DataSource. (Если вы перепишите запрос с указанием полей в разных регистрах то получим поля от старого запроса и нового предпожи был select Custom_Id.. а стал select CUSTOM_ID - как результат в Wizarde будут присутствовать оба поля.) Однако можно получить в дальнейшем исключение.
4. При экспорте в RTF наблюдается грязь
5. При добавлении новой таблицы - свойство TableName - остаётся Table - если самому не заменить можем получить Exception
6. Что-то надо предпринять с timestamp для SqlServer - получаем Exception при просмотре данных, интересно что если исключить это поле из списка - то ошибка всё равно остаётся - не исключаю что и для RowGuid - будет то же самое
1) Эти экспорты - табличные, и не могут корректно экспортировать объекты, которые накладываются друг на друга.
2,3,5,6) исправил
4) какая грязь? Вы имеете в виду лишние ячейки? Это целиком зависит от того, как сделан отчет. Уменьшить количество "грязи" можно, отключив св-во Wysiwyg в настройках экспорта.
По пункту 1: Попробовал примерно такой же вариант отчета FastReport for VCL версия 3.16 - прекрасно справился. Как для Word так и для Excel и HTML. Может все таки где-то есть ошибки? Дополнительно проверил и на 4 версии - практически безупречно
Может, мы говорим о разных вещах? Что имеется в виду под "фоновой страницей"? Я имею в виду фоновый бэнд Overlay. И в FR VCL он не экпортится корректно в табличные форматы.
Если в свойствах отчета поставить пароль, н-р, 123, то при запуске формы(c#, winform) у меня спрашивают пароль.
Завожу 123, падает с комментом
An unhandled exception of type 'FastReport.Utils.DecryptException' occurred in FastReport.dll
Может, мы говорим о разных вещах? Что имеется в виду под "фоновой страницей"? Я имею в виду фоновый бэнд Overlay. И в FR VCL он не экпортится корректно в табличные форматы.
Я то же имею ввиду Overlay. Однако FR VCL - вполне достойно экспортируется
1. Источники данных. Если меняем запрос к примеру select A from B на select * from b (Таблица содержит несколько полей), то в инспекторе новые поля не добавляются (Приходится добавлять вручную)
2. Небольшая фича в режиме печати в дуплексе. Если установлено дуплекс по умолчанию, установка режима в настройках принтера перед печатью дуплекс - не воспринимается. Только если будет явно указано - печать в дуплексе на странице печать.
Я то же имею ввиду Overlay. Однако FR VCL - вполне достойно экспортируется
Я проверил это на нескольких отчетах. Ни один табличный экспорт с фоном не справился. Либо фон замещается объектами отчета, либо наоборот (если у него опция PrintOnTop), либо объекты съезжают.
1. Источники данных. Если меняем запрос к примеру select A from B на select * from b (Таблица содержит несколько полей), то в инспекторе новые поля не добавляются (Приходится добавлять вручную)
2. Небольшая фича в режиме печати в дуплексе. Если установлено дуплекс по умолчанию, установка режима в настройках принтера перед печатью дуплекс - не воспринимается. Только если будет явно указано - печать в дуплексе на странице печать.
foreach (DataTable thisTable in FDataSet.Tables)
{
foreach (DataRow row in thisTable.Rows)
{
foreach (DataColumn column in thisTable.Columns)
{
t = row[column].ToString();
int tt =0;
}
}
}
всё есть...
вызываю FReport.Show(); (в отчете только одно текстовое поле из одного столбца)
падает с ошибкой
An unhandled exception of type 'System.NullReferenceException' occurred in FastReport.dll
Additional information: Object reference not set to an instance of an object.
Чистая форма с кнопкой, двумя datetimepicker и textbox.
На форму положен рипорт и датасет.
В датасете сделал 1 таблицу, в ней 3 поля(имена совпадают с sql-выражением). Подключил датасет к отчету. В отчете выбрал его, в текстовом поле выбрал 1 поле из таблицы.
Данные берутся с SQL сервера.
При нажатии на кнопку строю sql-строку, далее код на выборку, проверка датасета и рипорт(см.выше).
Я делаю так, и у меня работает:
- создаю датасет в студийном мастере;
- на форму кладу DataSet, при этом студия предлагает подключить его к типизированному датасету, созданному мастером;
- кладу Report, выбираю Design Report. В окне подключения выбираю подключение к таблице датасета;
- делаю дизайн отчета. Уже в дизайнере есть возможность запустить отчет (FastReport заполняет типизированный датасет автоматически с помощью reflection);
- чтобы показать отчет в runtime, пишу обработчик кнопки ОК:
report1.Show();
Данные в этом случае регистрировать руками не надо, т.к. FastReport добавляет строку кода в файл Form1.Designer.cs:
this.report1.RegisterData(this.nwindDataSet1, "nwindDataSet1");
1. Окошко с процентом выполненых страниц (с кнопкой отмены) выходит только в дизайне. В рантайм - нет. Может чего задать где-то надо?
2. Если на дата-бенде выбрать кол-во колонок = 2 и флаг AcrossThenDown, то отчет из 620стр готовится быстро(секунд 10).
А вот если флаг = DownThenAcross, то отчет гововит страницы очень медленно и страниц становится бесконечно много, через 15 минут - около 2000, потом приходится снимать студию, т.к. кнопка отмены не работает.
3. Если на дата-бенде выбрать кол-во колонок = 2 и у самого дата-бенда включить все границы, то превью выглядит прикольно. Рамочки отрисовываются и на листе и справа.
AlexTZ
Отчет построил по вашему способу.
свой датасет заполняю как
OdbcConnection conn = new OdbcConnection(ConnectionString);
try
{
conn.Open();
OdbcDataAdapter myDA = new OdbcDataAdapter(sql, conn);
myDA.Fill( FDataSet, "t" );
}...
Если выбирается 1 или более строк, то всё работает как ожидалось.
Но если выбирается 0 строк(н-р, невыполнимые условия), то отчет печатается по всей таблице (>600 стр).
Не знаю где собака зарыта...
Сначала думал, что строки накапливаются, но после чистки строк(FDataSet.Tables["t"].Rows.Clear() и до выборки - 0, после выборки - 0, а печатается всё...
С простым FR в Билдере таких приколов никогда не было...
Комментарии
Сменил раз 50 с помощью комбобокса "Font" из панели инструментов. Нет ошибок. ОС - WinXP.
C:\Documents and Settings\Имя_юзера\Local Settings\Application Data\FastReport\
Если в превью вывести несколько страниц вертикальной ориентации а последнюю страницу сделать горизонтальной и изменить масштаб таким образом чтоб на станицы выстроились по две в ряду, то просмотр будет ограницен нажней границей горизонтально ориентированного листа и если прокрутить скрол в самый низ то будет видна вся горизонтальная страница и только часть предпоследней страницы (вертикальной)...
Row Datasource, Detail Rows
Row Datasource, Master-Detail
1. При использовании фоновых страниц неправильно производится экспорт в RTF и HTML. JPG - нормально.
2. Не проходит печать в дуплексном режиме если отчет содержит две страницы - лицевая и обратная. (Печатает на разных страницах как при установке в свойствах принтера перед печатью так и при явном задании в свойствах отчета)
3. Похоже не совсем корректно обновляются коллекции в DataSource. (Если вы перепишите запрос с указанием полей в разных регистрах то получим поля от старого запроса и нового предпожи был select Custom_Id.. а стал select CUSTOM_ID - как результат в Wizarde будут присутствовать оба поля.) Однако можно получить в дальнейшем исключение.
4. При экспорте в RTF наблюдается грязь
5. При добавлении новой таблицы - свойство TableName - остаётся Table - если самому не заменить можем получить Exception
6. Что-то надо предпринять с timestamp для SqlServer - получаем Exception при просмотре данных, интересно что если исключить это поле из списка - то ошибка всё равно остаётся - не исключаю что и для RowGuid - будет то же самое
С Уважением
Олег Высоцкий
1) Эти экспорты - табличные, и не могут корректно экспортировать объекты, которые накладываются друг на друга.
2,3,5,6) исправил
4) какая грязь? Вы имеете в виду лишние ячейки? Это целиком зависит от того, как сделан отчет. Уменьшить количество "грязи" можно, отключив св-во Wysiwyg в настройках экспорта.
Исправления залью сегодня в течение дня.
Завожу 123, падает с комментом
An unhandled exception of type 'FastReport.Utils.DecryptException' occurred in FastReport.dll
Additional information: Ошибка расшифровки: неверный пароль
Демку скачал сегодня.
В отчете только одно текстовое поле, нет источников данных.
Ха, теперь даже дизайнер формы VS2008 не открывается...
report1.ReportResourceString = ...
2. Небольшая фича в режиме печати в дуплексе. Если установлено дуплекс по умолчанию, установка режима в настройках принтера перед печатью дуплекс - не воспринимается. Только если будет явно указано - печать в дуплексе на странице печать.
Я проверил это на нескольких отчетах. Ни один табличный экспорт с фоном не справился. Либо фон замещается объектами отчета, либо наоборот (если у него опция PrintOnTop), либо объекты съезжают.
Исправлено.
выбираю так
проаеряю датасет как всё есть...
вызываю FReport.Show(); (в отчете только одно текстовое поле из одного столбца)
падает с ошибкой
An unhandled exception of type 'System.NullReferenceException' occurred in FastReport.dll
Additional information: Object reference not set to an instance of an object.
Где я чего неверно делаю?
FReport.Load(...);
FReport.RegisterData(FDataSet, "my dataset");
FReport.Show();
Я не надо сохранять или подгружать новые отчеты.
FReport.RegisterData(FDataSet, "my dataset"); - не помогает
На форму положен рипорт и датасет.
В датасете сделал 1 таблицу, в ней 3 поля(имена совпадают с sql-выражением). Подключил датасет к отчету. В отчете выбрал его, в текстовом поле выбрал 1 поле из таблицы.
Данные берутся с SQL сервера.
При нажатии на кнопку строю sql-строку, далее код на выборку, проверка датасета и рипорт(см.выше).
- создаю датасет в студийном мастере;
- на форму кладу DataSet, при этом студия предлагает подключить его к типизированному датасету, созданному мастером;
- кладу Report, выбираю Design Report. В окне подключения выбираю подключение к таблице датасета;
- делаю дизайн отчета. Уже в дизайнере есть возможность запустить отчет (FastReport заполняет типизированный датасет автоматически с помощью reflection);
- чтобы показать отчет в runtime, пишу обработчик кнопки ОК:
report1.Show();
Данные в этом случае регистрировать руками не надо, т.к. FastReport добавляет строку кода в файл Form1.Designer.cs:
this.report1.RegisterData(this.nwindDataSet1, "nwindDataSet1");
Кстати, когда ваш суппорт ответит мне по поводу невозможности скачать что-либо из моего клиентского раздела (TID#159422) ?
2. Если на дата-бенде выбрать кол-во колонок = 2 и флаг AcrossThenDown, то отчет из 620стр готовится быстро(секунд 10).
А вот если флаг = DownThenAcross, то отчет гововит страницы очень медленно и страниц становится бесконечно много, через 15 минут - около 2000, потом приходится снимать студию, т.к. кнопка отмены не работает.
3. Если на дата-бенде выбрать кол-во колонок = 2 и у самого дата-бенда включить все границы, то превью выглядит прикольно. Рамочки отрисовываются и на листе и справа.
Отчет построил по вашему способу.
свой датасет заполняю как Если выбирается 1 или более строк, то всё работает как ожидалось.
Но если выбирается 0 строк(н-р, невыполнимые условия), то отчет печатается по всей таблице (>600 стр).
Не знаю где собака зарыта...
Сначала думал, что строки накапливаются, но после чистки строк(FDataSet.Tables["t"].Rows.Clear() и до выборки - 0, после выборки - 0, а печатается всё...
С простым FR в Билдере таких приколов никогда не было...