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

1246715

Комментарии

  • отредактировано 16:47
    Garrett написал: »
    Да, так работает, но 2008-я студия периодически мучает мессагами "object referense not....".

    Кстати, когда ваш суппорт ответит мне по поводу невозможности скачать что-либо из моего клиентского раздела (TID#159422) ?

    Можно подробнее насчет object referense? Когда это происходит, если вышлете тестовый пример - будет вообще замечательно.
    Саппорт, я полагаю, ответит в ближайший рабочий день - понедельник.
  • отредактировано 16:47
    Garrett написал: »
    1. Окошко с процентом выполненых страниц (с кнопкой отмены) выходит только в дизайне. В рантайм - нет. Может чего задать где-то надо?

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

    3. Если на дата-бенде выбрать кол-во колонок = 2 и у самого дата-бенда включить все границы, то превью выглядит прикольно. Рамочки отрисовываются и на листе и справа.

    1. Да, надо указать report1.ShowProgress = true. Я поправлю исходники, чтобы св-во по умолчанию было true.
    2. Тестирую на отчете master-detail, в обычном режиме без колонок он генерит 2000 страниц за 16сек. В режиме с двумя колонками, AcrossThenDown - 1000 страниц за 23сек, в режиме DownThenAcross - 1000 страниц за 14сек. Режим AcrossThenDown более медленный, т.к. в процессе построения происходит дополнительное копирование данных. В вашем случае какая-то другая ошибка, если пришлете демку, буду премного благодарен.
    3. Это исправил.
  • отредактировано 16:47
    Garrett написал: »
    Если выбирается 1 или более строк, то всё работает как ожидалось.
    Но если выбирается 0 строк(н-р, невыполнимые условия), то отчет печатается по всей таблице (>600 стр).

    Если FR видит, что таблица пустая, он пытается заполнить ее данными, вызвав метод Fill типизированного датасета. Он, естественно, возвращает все данные. Поправлю, т.к. это должно работать только в дизайн-тайме.
  • Dracula_DISDracula_DIS Москва
    отредактировано 16:47
    Открываем шаблон отчета, добавляем данные, кидаем на форму несколько текст боксов в ДатаБэнд. закрываем отчет
    изменяем датасет, добавив убрав несколько полей. передаем его в отчет, выводим. оказывается что выводимые данные сместились. текстбокс должен выводить одно значение а выводит значение из другого поля. хотя при просмотре данных в дизайнере все данные соответствуют своим полям.
  • отредактировано 16:47
    Здравствуйте,

    Не смог воспроизвести. Можно кусок кода, как делаете?
  • Dracula_DISDracula_DIS Москва
    отредактировано 16:47
    Сделал солюшин в которм есть этот баг, отправил вам на tz мыло.
    также сделал серию снимков описывающих баг.
    + обнаружил еще один баг, на снимке он тоже есть. отображение Картинки в просмотре данных как кодированную строку.
  • Dracula_DISDracula_DIS Москва
    отредактировано 16:47
    Если объеденить две ячейки в колонке. а потом пытаться обеденить получившеюся ячейку еще с одной происходит разобъединение уже объедененной ячейки.
  • отредактировано 16:47
    Поправил оба бага, сегодня в полночь соберется новая версия.

    > отображение Картинки в просмотре данных как кодированную строку.
    Это потому, что не загружена схема данных (файл .xsd).
  • отредактировано 16:47
    Свежая сборка - непонятная ошибка

    в FastReport.Data.TableDataSource.GetNativeColumnIndex(String name)
    в FastReport.Data.DataSourceBase.ODHKeU9lr(String )
    в FastReport.Report.8o5FvN2RC()
    в FastReport.Report.7M0kR0SZ7()
    в FastReport.Report.Prepare(Boolean append)
    в FastReport.Report.Show()
    в aSB1Q3Eywv52nOG19D3.LWR3GsElifRQOAQ5BqH.YCTq7P10G()

    Предварительный просмотр выдает ошибка не задана ссылка на объект - входим в источники данных делаем просмотр таблицы - после этого делаем предварительный просмотр - всё в порядке, закрываем окно предварительного просмотра и заново входим в предварительный просмотр - получаем вышеуказанную ошибку.
  • отредактировано 16:47
    Поправил, свежая версия соберется сегодня ночью
  • отредактировано 16:47
    AlexTZ
    Смотрите почту.

    Было бы неплохо, если бы в инсталляторе FR.NET было автоматическое удаление предыдущей версии...
  • отредактировано 16:47
    AlexTZ написал: »
    Поправил оба бага, сегодня в полночь соберется новая версия.

    > отображение Картинки в просмотре данных как кодированную строку.
    Это потому, что не загружена схема данных (файл .xsd).

    Подскажите, пожалуйста, какими именно действиями можно загрузить схему данных (.xsd файл) ?
  • отредактировано 16:47
    DataSet.ReadXmlSchema(schema_file);
  • отредактировано 16:47
    Garrett написал: »
    AlexTZ
    Смотрите почту.

    Исправил, соберется сегодня ночью.
  • отредактировано 16:47
    AlexTZ
    А что насчет FR для C++Builder2009?
  • отредактировано 16:47
    Сделаем на днях.
  • отредактировано 16:47
    AlexTZ
    Запустите мой пример(TestFR4) с новой сборкой.

    1. посмотрите на страницу 29 - она пустая, если на очереди длинный бенд и свойство разрываться не указано..

    2. если ТОЛЬКО у дата бенда становить может разрываться, то отчет считает 3500(вместо ~600) страниц, потом падает.

    3. есть поставить разрываться у всех "заинтересованных" объектов (дата-бенд, Text1, Тext3), то печатается визуально верно, но длинный бенд с 29 стр вместо отрисовки продолжения на второй, пустой, колонке, рисуется на след.странице.

    Все эти пункты проверьте и на C++Builder2009 (как будет для него готов FR, черкните мне письмо, если не трудно).

  • отредактировано 16:47
    Кое-что поправил, но...
    Вам в данном случае лучше использовать не колонки бэнда, а колонки страницы - так оно правильнее, да и работать быстрее будет.
  • отредактировано 16:47
    AlexTZ
    Пропало свойство ShowProgress...

    Сделал колонки страницы, стало не лучше.
    Во-первых иногда колонки разнятся по высоте, н-е Вы отрисовываете межбендовый пустой интервал на самом верху второй колонки. Думаю там его рисовать не надо. Отступ от верхнего края страницы у всех колонок должен быть одинаковым.

    Во-вторых, объясните мне как сделать, чтобы бенды короче высоты страницы(колонки) рисовались целиком, т.е. если не помещаются в текущей колонке рисовались на следующей.
    И только бенды, длиннее высоты страницы и колонки, отрисовывались с начала новой колонки и дробились по колонкам пока не закончатся.
  • отредактировано October 2008
    И еще.
    Если я к примеру не поставил свойство разрываться, то длинный бенд отрисовавается на нижнем колонтитуле и чуть ниже края страницы.
    Предлагаю НИКОГДА не рисовать бенд на нижнем колонтитуле(все колонтитулы - запретная зона для отчета), а при формировании отчета в этом случае выводить сообщение, что бенд на такой-то странице не помещается и останавливать формирование отчета. Чтоб ошибка разработчика отчета или ошибка в самом ФР отлавливалась сразу и не формировались проблемные(неполноценные) отчеты.
  • отредактировано 16:47
    Garrett написал: »
    Пропало свойство ShowProgress...

    Сделал колонки страницы, стало не лучше.
    Во-первых иногда колонки разнятся по высоте, н-е Вы отрисовываете межбендовый пустой интервал на самом верху второй колонки. Думаю там его рисовать не надо. Отступ от верхнего края страницы у всех колонок должен быть одинаковым.

    Во-вторых, объясните мне как сделать, чтобы бенды короче высоты страницы(колонки) рисовались целиком, т.е. если не помещаются в текущей колонке рисовались на следующей.
    И только бенды, длиннее высоты страницы и колонки, отрисовывались с начала новой колонки и дробились по колонкам пока не закончатся.

    Св-во ShowProgress перенесено в компонент EnvironmentSettings, он есть в VS Toolbox.

    1) бэнд всегда рисуется вверху второй колонки. Интервал в Вашем случае - это отступ объекта от верхнего края бэнда.
    2) это невозможно сделать штатными средствами. Можно задействовать скрипт, проверяющий перед печатью бэнда свободное место.
  • отредактировано 16:47
    Garrett написал: »
    И еще.
    Если я к примеру не поставил свойство разрываться, то длинный бенд отрисовавается на нижнем колонтитуле и чуть ниже края страницы.
    Предлагаю НИКОГДА не рисовать бенд на нижнем колонтитуле(все колонтитулы - запретная зона для отчета), а при формировании отчета в этом случае выводить сообщение, что бенд на такой-то странице не помещается и останавливать формирование отчета. Чтоб ошибка разработчика отчета или ошибка в самом ФР отлавливалась сразу и не формировались проблемные(неполноценные) отчеты.

    Подумаю над этим.
  • отредактировано October 2008
    написал:
    бэнд всегда рисуется вверху второй колонки. Интервал в Вашем случае - это отступ объекта от верхнего края бэнда.
    в моём примере установите колонки у страницы и запустите, Вы найдете страницы с колонками начинающимися по разной высоте. н-р, 1, 9, 46...
    написал:
    это невозможно сделать штатными средствами. Можно задействовать скрипт, проверяющий перед печатью бэнда свободное место.
    Может всё же реализовать такой функционал в ФР? Чтоб люди не мучались с бендами длиннее высоты колонки, и чтоб такой даже один бенд не влиял на неразрывное размещение коротких бендов...
  • Dracula_DISDracula_DIS Москва
    отредактировано 16:47
    После установки свежей версии при вызове дизайнера из демо - вываливается
    System.Reflection.TargetInvocationException: Адресат вызова создал исключение. ---> System.Exception: Cannot use SyntaxEdit outside of FastReport.Net!
    в FastReport.Editor.SyntaxEdit.OnParentChanged(EventArgs e)
    в System.Windows.Forms.Control.AssignParent(Control value)
    в System.Windows.Forms.Control.ControlCollection.Add(Control value)
    в Ugaf30ATJUZqGCFkZn7.QYL5RsAJhhwYs1CFwHt..ctor(Designer designer)
    --- Конец трассировки внутреннего стека исключений ---
    в System.RuntimeMethodHandle._InvokeConstructor(Object[] args, SignatureStruct& signature, IntPtr declaringType)
    в System.RuntimeMethodHandle.InvokeConstructor(Object[] args, SignatureStruct signature, RuntimeTypeHandle declaringType)
    в System.Reflection.RuntimeConstructorInfo.Invoke(BindingFlags invokeAttr, Binder binder, Object[] parameters, CultureInfo culture)
    в System.RuntimeType.CreateInstanceImpl(BindingFlags bindingAttr, Binder binder, Object[] args, CultureInfo culture, Object[] activationAttributes)
    в System.Activator.CreateInstance(Type type, BindingFlags bindingAttr, Binder binder, Object[] args, CultureInfo culture, Object[] activationAttributes)
    в TjGQkEAldRUvXumJ6Gq.cdC6pIAoO2dR9gAyurb.WSbbXgX4u(PageBase )
    в TjGQkEAldRUvXumJ6Gq.cdC6pIAoO2dR9gAyurb.I0dWinwRS(PageBase )
    в TjGQkEAldRUvXumJ6Gq.cdC6pIAoO2dR9gAyurb.PPalvkASH(Object , EventArgs )
    в mgUMSQv1ZonGhnRv3Cs.nQuWbWvvxBUpfRrjyxD.NonPWMwTW(Int32 )
    в TjGQkEAldRUvXumJ6Gq.cdC6pIAoO2dR9gAyurb.8CdqQemHO(Int32 )
    в TjGQkEAldRUvXumJ6Gq.cdC6pIAoO2dR9gAyurb.vmbNp8v6x(Int32 )
    в TjGQkEAldRUvXumJ6Gq.cdC6pIAoO2dR9gAyurb.P9SPhqpg1()
    в TjGQkEAldRUvXumJ6Gq.cdC6pIAoO2dR9gAyurb..ctor(Designer designer, Report report)
    в FastReport.Design.Designer.DdxtYkWSO()
    в FastReport.Design.Designer.MZ2pqUyLJ(Boolean )
    в FastReport.Report.Design(Boolean modal, Form mdiParent)
    в FastReport.Report.Design()
    в Demo.Form1.btnDesign_Click(Object sender, EventArgs e)
    в System.Windows.Forms.Control.OnClick(EventArgs e)
    в System.Windows.Forms.Button.OnClick(EventArgs e)
    в System.Windows.Forms.Button.OnMouseUp(MouseEventArgs mevent)
    в System.Windows.Forms.Control.WmMouseUp(Message& m, MouseButtons button, Int32 clicks)
    в System.Windows.Forms.Control.WndProc(Message& m)
    в System.Windows.Forms.ButtonBase.WndProc(Message& m)
    в System.Windows.Forms.Button.WndProc(Message& m)
    в System.Windows.Forms.Control.ControlNativeWindow.OnMessage(Message& m)
    в System.Windows.Forms.Control.ControlNativeWindow.WndProc(Message& m)
    в System.Windows.Forms.NativeWindow.Callback(IntPtr hWnd, Int32 msg, IntPtr wparam, IntPtr lparam)

    привью отрабатывает нормально
  • отредактировано 16:47
    Dracula_DIS написал: »
    После установки свежей версии при вызове дизайнера из демо - вываливается

    Сейчас пересоберу...
  • отредактировано 16:47
    Garrett написал: »
    в моём примере установите колонки у страницы и запустите, Вы найдете страницы с колонками начинающимися по разной высоте. н-р, 1, 9, 46...

    Это отступ объектов от верхнего края бэнда. При разрыве он остается на предыдущей странице/колонке. Делайте отступ не сверху, а снизу, добавив бэнд "Дочерний".
    Garrett написал: »
    Может всё же реализовать такой функционал в ФР? Чтоб люди не мучались с бендами длиннее высоты колонки, и чтоб такой даже один бенд не влиял на неразрывное размещение коротких бендов...

    Попробую сделать.
  • отредактировано 16:47
    написал:
    Это отступ объектов от верхнего края бэнда. При разрыве он остается на предыдущей странице/колонке. Делайте отступ не сверху, а снизу, добавив бэнд "Дочерний".
    Я не могу сейчас зайти в дизайнер, он падает, но Вы что-то не то говорите.
    Когда у меня стояли колонки "неправильно" в дата-бенде, то все колонки начинались с одинакового отступа от верхнего края страницы. Когда я поставил по вашему совету колонки=2 у страницы, а не у бенда, то колонки стали на некоторых страницах начинаться с разной высоты. И чем страница 1 отличается от страниц 2 или 3 к примеру у всех у них внизу есть место(т.е. нельзя сказать что колонка заполнена до отказа)...
  • отредактировано October 2008
    написал:
    Когда у меня стояли колонки "неправильно" в дата-бенде, то все колонки начинались с одинакового отступа от верхнего края страницы.

    Потому что разрыв данных между колонками в этом режиме не работает. Кстати, возможно, это именно то, что Вам нужно... Остается открытым вопрос о разрыве, это постараюсь доделать.
    написал:
    как сделать, чтобы бенды короче высоты страницы(колонки) рисовались целиком, т.е. если не помещаются в текущей колонке рисовались на следующей.
    И только бенды, длиннее высоты страницы и колонки, отрисовывались с начала новой колонки и дробились по колонкам пока не закончатся.
  • отредактировано 16:47
    AlexTZ написал: »
    Сейчас пересоберу...

    Выложил исправленную версию.
  • Dracula_DISDracula_DIS Москва
    отредактировано 16:47
    Хорошо бы сделать возможность задавать Format для TimeSpan также как и для Date
Дискуссия закрыта.