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

1679111215

Комментарии

  • отредактировано 07:56
    Попробовал и так - параметры не удаляются, да и не должны. Можете описать пошагово?
  • отредактировано 07:56
    Добый день,
    визникли следующие проблемы (версия 1.0.16.0)
    1 как через бизнес обьекты передать картинку (EMF)? пробовал byte[] (колонка есть но тип не определен) Image (колонки нет) и Stream (ругается на какойто таймаут)
    2 можно ли в бизнес обьекте сразу указать alias для поля? пробовал DisplayNameAttribute и DescriptionAttribure
    3 если передать древовидный обьект то вываливается с переполнением стека
    4 необходимо сделать линию определенного цвета, типа, толщины, все данные есть в полях, как я понял надо делать через скритп или есть алтернативные варианты (в SSRS можно експрешенами задать)? да и почему то если редактировать стиль рамки в дезайнере то сохраняется только тип линии
  • отредактировано 07:56
    Здравствуйте,

    1) это баг, буду исправлять.
    2) сразу нельзя. Задать алиасы можно в окне "Данные", сделать это нужно один раз.
    3) если дерево слишком сложное, это возможно. В этом случае ограничьте уровень вложенности при регистрации данных в отчете (в методе RegisterData параметр maxNestingLevel). Если ошибка все еще есть, пришлите тестовое приложение на tz@fast-report.com.
    4) это делается в скрипте. Про редактирование не понял, объясните?
  • Сергей ЛукьяновСергей Лукьянов Санкт-Петербург
    отредактировано 07:56
    AlexTZ написал: »
    Попробовал и так - параметры не удаляются, да и не должны. Можете описать пошагово?

    1. Добавляем в отчет датасорсы (у меня их 3) и параметры.
    2. Из Visual Studio вызываем "Select Data Source..."
    3. В окне жмем кнопу "<<", т.е. удалить все и сразу.
    4. Сохраняем
    5. Открываем редактор отчета, игнорируя окно выбора дата сорса - параметров нет.
  • отредактировано 07:56
    AlexTZ написал: »
    Здравствуйте,

    2) сразу нельзя. Задать алиасы можно в окне "Данные", сделать это нужно один раз.
    3) если дерево слишком сложное, это возможно. В этом случае ограничьте уровень вложенности при регистрации данных в отчете (в методе RegisterData параметр maxNestingLevel). Если ошибка все еще есть, пришлите тестовое приложение на tz@fast-report.com.
    4) это делается в скрипте. Про редактирование не понял, объясните?

    2) было бы хорошо что-то типа DisplayNameAttribute (если использеутся PropertyDescriptor :) ).
    3) под деровом я имел ввиду что то типа class TreeNode { IList<TreeNode> Nodes {get;} }, maxNestingLevel выставлял в 2.
    4) при редактировании стиля в дезайнере для рамки не сохраняется цвет и толщина (т.е. зашли, отредактировали, нажали ок, еще раз зашли - цвет снова черный, толщина 1).
  • отредактировано 07:56
    написал: »
    1. Добавляем в отчет датасорсы (у меня их 3) и параметры.
    2. Из Visual Studio вызываем "Select Data Source..."
    3. В окне жмем кнопу "<<", т.е. удалить все и сразу.
    4. Сохраняем
    5. Открываем редактор отчета, игнорируя окно выбора дата сорса - параметров нет.

    Получилось, буду исправлять.
  • отредактировано 07:56
    Almaz написал: »
    4) при редактировании стиля в дезайнере для рамки не сохраняется цвет и толщина (т.е. зашли, отредактировали, нажали ок, еще раз зашли - цвет снова черный, толщина 1).
    Делаю так и все работает:
    - захожу в редактор стилей ("Отчет|Стили...")
    - добавляю стиль
    - у него ставлю параметры рамки - толщина 2, цвет красный
    - закрываю редактор кнопкой ОК
    - опять захожу в редактор - стиль в порядке, рамка 2 и цвет красный.
  • отредактировано 07:56
    AlexTZ написал: »
    Делаю так и все работает:
    - захожу в редактор стилей ("Отчет|Стили...")
    - добавляю стиль
    - у него ставлю параметры рамки - толщина 2, цвет красный
    - закрываю редактор кнопкой ОК
    - опять захожу в редактор - стиль в порядке, рамка 2 и цвет красный.

    Разобрался, я сначала выбрал сторону потом цвет и нажал ок, а надо сначала цвет потом сторону(ы) :)
    Не подскажите когда ждать п.1 (картинки в обьектах) ?
  • отредактировано 07:56
    Картинки - сегодня в полночь :)
    По поводу дерева: пробовал регистрировать такой бизнес-объект, работает нормально:
        class MyTreeNode 
        { 
          private IList<MyTreeNode> FNodes;
    
          public IList<MyTreeNode> Nodes 
          { 
            get { return FNodes; }
          }
          
          public MyTreeNode()
          {
            FNodes = new List<MyTreeNode>();
          }
        }
    
          List<MyTreeNode> nodes = new List<MyTreeNode>();
          MyTreeNode node = new MyTreeNode();
          node.Nodes.Add(new MyTreeNode());
          nodes.Add(node);
    
          FReport.RegisterData(nodes, "Nodes", BOConverterFlags.AllowFields, 3);
    
  • отредактировано 07:56
    AlexTZ написал: »
    По поводу дерева'...

    попробую вычленить минимально необходимый код

    P.S. за картинки спасибо, оперативно работаете
  • отредактировано 07:56
    Удалось повторить переполнение стека добавлением ссылки на родителя
    class MyTreeNode
        {
            private IList<MyTreeNode> FNodes;
            private MyTreeNode FParent;
    
            public IList<MyTreeNode> Nodes
            {
                get { return FNodes; }
            }
    
            public MyTreeNode Parent { get { return FParent; } }
    
            public MyTreeNode(MyTreeNode fParent)
            {
                FParent = fParent;
                FNodes = new List<MyTreeNode>();
            }
        }
    

    Картинки заработали, но почемуто если делать так
    List<TestItem> items = new List<TestItem>();
     items.Add(new TestItem() { Name = "Name1" });
     report1.RegisterData(items,  "Тест", BOConverterFlags.BrowsableOnly, 1);
     report1.Design();
    

    то в дизайнере когда делаем превью нет данных (вчера были :-) )

    P.S. отдельное спасибо за DisplayName
  • отредактировано 07:56
    Ссылки на родителя поправил. По поводу второго вопроса - попробовал на своих объектах - нормально. Как выглядит TestItem?
  • отредактировано 07:56
    AlexTZ написал: »
    Ссылки на родителя поправил. По поводу второго вопроса - попробовал на своих объектах - нормально. Как выглядит TestItem?
        public class TestItem
        {
            [DisplayName("Название")]
            public string Name { get; set; }
        }
    
    --------------------
     List<TestItem> items = new List<TestItem>();
     items.Add(new TestItem() {Name = "Name1"});
    ...
     items.Add(new TestItem() {Name = "Name5"});
     report1.RegisterData(items, "Тест", BOConverterFlags.BrowsableOnly, 1);
     report1.Design();
    

    В дизайнере подключаю данные, перетаскиваю из "Источники данных->Тест" поле "Название" в банд "Данные" (автоматом добавляется заголовок), нажимаю превью вижу только заголовок - "Название" данных нет :-)

  • отредактировано 07:56
    Да, атрибуты обрабатываются неверно... Исправил, но в сегодняшний билд уже не успеет попасть.
  • Сергей ЛукьяновСергей Лукьянов Санкт-Петербург
    отредактировано 07:56
    Здравствуйте!

    Такая ошибка: если в момент, когда происходит формирование отчета вызвать команду report.Prepare(bAppend); - вылетаем с эксцепшином...
  • отредактировано 07:56
    Надо делать проверку: if (!report1.IsRunning) report1.Prepare();
  • Сергей ЛукьяновСергей Лукьянов Санкт-Петербург
    отредактировано 07:56
    AlexTZ написал: »
    Надо делать проверку: if (!report1.IsRunning) report1.Prepare();

    Не помогает...
    Можно поймать такой момент, когда report1.IsRunning == false, а report1.Prepare() вылетает с эксепшином.
  • отредактировано 07:56
    Переделал так, чтобы флаг взводился при входе в Prepare.
  • Сергей ЛукьяновСергей Лукьянов Санкт-Петербург
    отредактировано 07:56
    AlexTZ написал: »
    Переделал так, чтобы флаг взводился при входе в Prepare.

    Метод Show() - та же проблема...
  • отредактировано November 2008
    Show внутри использует Prepare, проблемы быть не должно:
    if (!report.IsRunning)
    report.Show();

    Такую проверку надо делать при любых действиях с report, пока он строится. В демке так же сделано, проблем не вижу.
  • Сергей ЛукьяновСергей Лукьянов Санкт-Петербург
    отредактировано 07:56
    Здравствуйте!

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

    Можете посмотреть где ошибка, у меня или у Вас?
  • отредактировано 07:56
    Здравствуйте,

    Конечно, могу. Для начала пришлите скриншот?
  • Сергей ЛукьяновСергей Лукьянов Санкт-Петербург
    отредактировано 07:56
    AlexTZ написал: »
    Здравствуйте,

    Конечно, могу. Для начала пришлите скриншот?

    Отправил.
  • ShtirlizShtirliz Москва
    отредактировано 07:56
    В новых сборках сброс итогов опять неправильно отрабатывает. :)
    Проверено на 1.0.25, в 1.0.7 все нормально отрабатывает.
    Проверьте плиз...
  • отредактировано 07:56
    Проверил. Все работает как в Вашем отчете, так и в моих, тестовых. Работает в обоих случаях - когда последняя строка данных переносится на новую страницу, и когда не переносится.
  • ShtirlizShtirliz Москва
    отредактировано 07:56
    AlexTZ написал: »
    Проверил. Все работает как в Вашем отчете, так и в моих, тестовых. Работает в обоих случаях - когда последняя строка данных переносится на новую страницу, и когда не переносится.

    Выслал данные, файл отчета и скриншот.

    P.S.
    Как я писал уже, в 1.0.7 все прекрасно отрабатывает.
    Проверьте изменения между версиями 1.0.7 и 1.0.27.
  • ShtirlizShtirliz Москва
    отредактировано 07:56
    Вот еще столкнулся с проблемой.
    При печати штрих-кода.
    BarCode.png
    При подстановке '&A;''&B;''&C;' такая же беда.
    Тем более что в настройках стоит AutoEncode=true.
    Это ошибка или я чего-то неправильно делаю?
  • отредактировано 07:56
    Пришлите, пожалуйста, файл .fpx, посмотрю.
  • отредактировано 07:56
    Да, символика code128 поддерживает только ascii-символы. Русские буквы случайно не пытаетесь печатать?
  • ShtirlizShtirliz Москва
    отредактировано 07:56
    AlexTZ написал: »
    Да, символика code128 поддерживает только ascii-символы. Русские буквы случайно не пытаетесь печатать?

    Я в курсе какие символы она позволяет.
    Вот пример текста в штрих-коде:

    *652D3845-8A01*/01

    Щас вышлю данные и файл отчета.
Дискуссия закрыта.