Обнаруженные баги в Fastreport .net

1356715

Комментарии

  • отредактировано 18:58
    Здравствуйте,

    Сменил раз 50 с помощью комбобокса "Font" из панели инструментов. Нет ошибок. ОС - WinXP.
  • отредактировано 18:58
    Началось у меня это все с того, что я в этот самый комбобокс букву ввел (как в ворде для быстрого перехода к шрифту начинающемуся с этой буквы), вместо ожидаемого шрафта на "t" комбобокс выдал Microsoft Sans Serif. После этого баг и выполз... При прокрутки шрифтов, имеющихся в комбобоксе, вверх и при многократной смене шрифта, появлялась указанная мной ошибка.

  • отредактировано 18:58
    Вижу, буду исправлять.
  • отредактировано 18:58
    Удалите конфиг-файл FastReport, он находится
    C:\Documents and Settings\Имя_юзера\Local Settings\Application Data\FastReport\
  • отредактировано 18:58
    Спасибо, проблема решилась. Но стили шрифтов теперь стали не доступны, в комбобоксе есть только Select style / No style.
  • отредактировано 18:58
    Это не стили шрифтов, а просто стили. Их надо определять самому в меню Report|Styles...
  • отредактировано 18:58
    Понятно, спасибо еще раз.
  • Dracula_DISDracula_DIS Москва
    отредактировано 18:58
    Нашел небольшой баг.
    Если в превью вывести несколько страниц вертикальной ориентации а последнюю страницу сделать горизонтальной и изменить масштаб таким образом чтоб на станицы выстроились по две в ряду, то просмотр будет ограницен нажней границей горизонтально ориентированного листа и если прокрутить скрол в самый низ то будет видна вся горизонтальная страница и только часть предпоследней страницы (вертикальной)...
  • отредактировано 18:58
    Вижу, буду исправлять.
  • отредактировано 18:58
    Все исправлено в последней сборке.
  • Dracula_DISDracula_DIS Москва
    отредактировано September 2008
    Ребята, забыли добавить шаблоны примеров:
    Row Datasource, Detail Rows
    Row Datasource, Master-Detail
  • отредактировано 18:58
    Добрый день. Весьма своевременный проект - вот только очень много ошибок. Немножко про ошибки -
    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 - будет то же самое

    С Уважением
    Олег Высоцкий
  • отредактировано 18:58
    Здравствуйте,

    1) Эти экспорты - табличные, и не могут корректно экспортировать объекты, которые накладываются друг на друга.
    2,3,5,6) исправил
    4) какая грязь? Вы имеете в виду лишние ячейки? Это целиком зависит от того, как сделан отчет. Уменьшить количество "грязи" можно, отключив св-во Wysiwyg в настройках экспорта.

    Исправления залью сегодня в течение дня.
  • отредактировано September 2008
    По пункту 1: Попробовал примерно такой же вариант отчета FastReport for VCL версия 3.16 - прекрасно справился. Как для Word так и для Excel и HTML. Может все таки где-то есть ошибки? Дополнительно проверил и на 4 версии - практически безупречно
  • отредактировано 18:58
    Может, мы говорим о разных вещах? Что имеется в виду под "фоновой страницей"? Я имею в виду фоновый бэнд Overlay. И в FR VCL он не экпортится корректно в табличные форматы.
  • отредактировано 18:58
    Если в свойствах отчета поставить пароль, н-р, 123, то при запуске формы(c#, winform) у меня спрашивают пароль.
    Завожу 123, падает с комментом
    An unhandled exception of type 'FastReport.Utils.DecryptException' occurred in FastReport.dll

    Additional information: Ошибка расшифровки: неверный пароль

    Демку скачал сегодня.
    В отчете только одно текстовое поле, нет источников данных.

    Ха, теперь даже дизайнер формы VS2008 не открывается...
  • отредактировано 18:58
    Поправил. Чтобы открыть дизайнер формы, откройте файл YourForm.Designer.cs и удалите строку:
    report1.ReportResourceString = ...
  • отредактировано 18:58
    AlexTZ написал: »
    Может, мы говорим о разных вещах? Что имеется в виду под "фоновой страницей"? Я имею в виду фоновый бэнд Overlay. И в FR VCL он не экпортится корректно в табличные форматы.
    Я то же имею ввиду Overlay. Однако FR VCL - вполне достойно экспортируется
  • отредактировано September 2008
    1. Источники данных. Если меняем запрос к примеру select A from B на select * from b (Таблица содержит несколько полей), то в инспекторе новые поля не добавляются (Приходится добавлять вручную)
    2. Небольшая фича в режиме печати в дуплексе. Если установлено дуплекс по умолчанию, установка режима в настройках принтера перед печатью дуплекс - не воспринимается. Только если будет явно указано - печать в дуплексе на странице печать.
  • отредактировано 18:58
    написал: »
    Я то же имею ввиду Overlay. Однако FR VCL - вполне достойно экспортируется

    Я проверил это на нескольких отчетах. Ни один табличный экспорт с фоном не справился. Либо фон замещается объектами отчета, либо наоборот (если у него опция PrintOnTop), либо объекты съезжают.
  • отредактировано 18:58
    написал: »
    1. Источники данных. Если меняем запрос к примеру select A from B на select * from b (Таблица содержит несколько полей), то в инспекторе новые поля не добавляются (Приходится добавлять вручную)
    2. Небольшая фича в режиме печати в дуплексе. Если установлено дуплекс по умолчанию, установка режима в настройках принтера перед печатью дуплекс - не воспринимается. Только если будет явно указано - печать в дуплексе на странице печать.

    Исправлено.
  • отредактировано 18:58
    У меня не получается привязать данные к отчету.
    выбираю так
    написал:
    OdbcConnection conn = new OdbcConnection( ConnectionString );
    try
    {
    conn.Open();
    OdbcDataAdapter myDA = new OdbcDataAdapter( sql, conn );
    FDataSet = new DataSet();
    myDA.Fill( FDataSet, "MyTable" );
    }
    catch (OdbcException ex)
    {
    MessageBox.Show("Ошибка чтения из базы!!!\n\n" + ex.Message, this.Text);
    }
    finally
    {
    conn.Close();
    }

    проаеряю датасет как
    написал:
    string t;

    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.

    Где я чего неверно делаю?





  • отредактировано 18:58
    Данные в отчете зарегистрировали?

    FReport.Load(...);
    FReport.RegisterData(FDataSet, "my dataset");
    FReport.Show();
  • отредактировано 18:58
    Зачем мне делать FReport.Load(...); ?
    Я не надо сохранять или подгружать новые отчеты.

    FReport.RegisterData(FDataSet, "my dataset"); - не помогает
  • отредактировано September 2008
    Опишите по шагам, как вы используете компонент Report? Какие данные вы используете в отчете и как к ним подключаетесь?
  • отредактировано 18:58
    Чистая форма с кнопкой, двумя datetimepicker и textbox.
    На форму положен рипорт и датасет.
    В датасете сделал 1 таблицу, в ней 3 поля(имена совпадают с sql-выражением). Подключил датасет к отчету. В отчете выбрал его, в текстовом поле выбрал 1 поле из таблицы.
    Данные берутся с SQL сервера.
    При нажатии на кнопку строю sql-строку, далее код на выборку, проверка датасета и рипорт(см.выше).
  • отредактировано 18:58
    Я делаю так, и у меня работает:
    - создаю датасет в студийном мастере;
    - на форму кладу DataSet, при этом студия предлагает подключить его к типизированному датасету, созданному мастером;
    - кладу Report, выбираю Design Report. В окне подключения выбираю подключение к таблице датасета;
    - делаю дизайн отчета. Уже в дизайнере есть возможность запустить отчет (FastReport заполняет типизированный датасет автоматически с помощью reflection);
    - чтобы показать отчет в runtime, пишу обработчик кнопки ОК:
    report1.Show();
    Данные в этом случае регистрировать руками не надо, т.к. FastReport добавляет строку кода в файл Form1.Designer.cs:
    this.report1.RegisterData(this.nwindDataSet1, "nwindDataSet1");
  • отредактировано September 2008
    Да, так работает, но 2008-я студия периодически мучает мессагами "object referense not....".

    Кстати, когда ваш суппорт ответит мне по поводу невозможности скачать что-либо из моего клиентского раздела (TID#159422) ?
  • отредактировано September 2008
    1. Окошко с процентом выполненых страниц (с кнопкой отмены) выходит только в дизайне. В рантайм - нет. Может чего задать где-то надо?

    2. Если на дата-бенде выбрать кол-во колонок = 2 и флаг AcrossThenDown, то отчет из 620стр готовится быстро(секунд 10).
    А вот если флаг = DownThenAcross, то отчет гововит страницы очень медленно и страниц становится бесконечно много, через 15 минут - около 2000, потом приходится снимать студию, т.к. кнопка отмены не работает.

    3. Если на дата-бенде выбрать кол-во колонок = 2 и у самого дата-бенда включить все границы, то превью выглядит прикольно. Рамочки отрисовываются и на листе и справа.
  • отредактировано September 2008
    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 в Билдере таких приколов никогда не было...
Дискуссия закрыта.