Рекурсия в BussinessObject

Обсуждение Stimulsoft Reports.NET
Ответить
kavit
Сообщения: 47
Зарегистрирован: 23 янв 2014, 11:14

Рекурсия в BussinessObject

Сообщение kavit »

Добрый день. Есть класс, содержащий рекурсию (ссылку на класс такого же типа, в данном примере Parent)

Код: Выделить всё

    [Description("Базовый класс B")]
    internal class ClassB
    {
        #region Properties

        [Description("Ссылка на родителя")]
        public ClassB Parent { get; set; }

        [Description("Идентификатор объекта")]
        public int Id { get; set; }

        [Description("Описание объекта")]
        public string Desc { get; set; }

        [Description("Список")]
        public List<string> List { get; set; }

        [Description("Guid")]
        public Guid GuidValue { get; set; }

        [Description("TimeSpan")]
        public TimeSpan TimeSpanValue { get; set; }

        [Description("Object")]
        public Object ObjectValue { get; set; }

        [Description("Char")]
        public Char CharValue { get; set; }

        [Description("Byte[]")]
        public Byte[] ByteArrayValue { get; set; }

        #endregion
    }
Создается список объектов для подключения к отчету следующим образом:

Код: Выделить всё

var list = new List<ClassB>
    {
        new ClassB()
            {
                Id = 3,
                Parent = new ClassB()
            },
        new ClassB()
            {
                Id = 4,
                Parent = new ClassB()
            },
        new ClassB()
            {
                Id = 5,
                Parent = new ClassB()
            }
    };
Отчет заполняется данными и вызывается в дизайнере

Код: Выделить всё

report.RegBusinessObject("Item", list);
report.Dictionary.SynchronizeBusinessObjects(3);  // Уровень максимальной вложенности = 3 (!)
report.Design();
После запуска дизайнера, нажав "Проверка отчетов" получаю ошибку "В отчете 'Report' выявлена ошибка компиляции 'ParentBusinessObject': member names cannot be the same as their enclosing type"

Предполагаю,что дело в рекурсии. Если да, какое решение вы можете предложить, чтобы избавиться от ошибки, но сохранить иерархию объектов (Parent->Parent->...)
Вложения
error_recursive_bo.png
error_recursive_bo.png (233.13 КБ) 2616 просмотров
Stimulsoft 2014.1.1900.0 Winforms / Windows 7 / Visual Studio 2012 UP4
HighAley
Сообщения: 1998
Зарегистрирован: 08 июн 2011, 11:36
Откуда: Stimulsoft Office

Re: Рекурсия в BussinessObject

Сообщение HighAley »

Здравствуйте.

Мы в курсе данной проблемы.
В данный момент работаем над её решением.
О результатах сообщим позже.

Спасибо.
Ivan
Сообщения: 641
Зарегистрирован: 10 авг 2006, 05:40
Откуда: Stimulsoft Office

Re: Рекурсия в BussinessObject

Сообщение Ivan »

Здравствуйте.

Произвели доработку.
Патч будет включен в следующий билд в пятницу.

Спасибо.
kavit
Сообщения: 47
Зарегистрирован: 23 янв 2014, 11:14

Re: Рекурсия в BussinessObject

Сообщение kavit »

Спасибо. Будем готовы попробовать.

Есть еще один вопрос. Он связан с перебором вложенных полей, поэтому пишу в ветке про рекурсию.

Регистрируется список данных. Каждый элемент списка = объект, содержащий другие вложенные объекты.
Есть два случая 1 (рабочий) и 2 (нерабочий)
  • root-объект не содержит свойства и вложенность = 3
  • root-объект содержит свойства и вложенность = 4
Понимаю, что объяснения расплывчатые, но рабочий вариант был найден после нескольких часов поиска, поэтому не могу назвать точную разницу между рабочим и нерабочим вариантом.
Для наглядности прикрепил файлы проекта и демо (swf) как проявляется ситуация
Можете подсказать в чем проблема?
Вложения
TestStimulsoft.Video.zip
(3.37 МБ) 171 скачивание
TestStimulsoft.Project.zip
(17.79 КБ) 161 скачивание
Stimulsoft 2014.1.1900.0 Winforms / Windows 7 / Visual Studio 2012 UP4
kavit
Сообщения: 47
Зарегистрирован: 23 янв 2014, 11:14

Re: Рекурсия в BussinessObject

Сообщение kavit »

Создал отдельную тему: http://forumru.stimulsoft.com/viewtopic.php?f=8&t=3595
Stimulsoft 2014.1.1900.0 Winforms / Windows 7 / Visual Studio 2012 UP4
HighAley
Сообщения: 1998
Зарегистрирован: 08 июн 2011, 11:36
Откуда: Stimulsoft Office

Re: Рекурсия в BussinessObject

Сообщение HighAley »

Здравствуйте.

Мы ответим вам в соответствующей теме.

Спасибо.
Ответить