Показать источники данных дочернего класса в Telerik Reporting Visual Studio Data Explorer - PullRequest
0 голосов
/ 08 июня 2018

В Visual Studio Telerik Reporting Designer панель Data Explorer показывает все источники данных и их элементы для перетаскивания в конструктор.Однако у нас есть отчеты, которые мы наследуем от базового отчета.В этом случае в проводнике данных отображаются источники данных базового отчета (objectDataSource.DataSource = typeof(BaseViewModel)), а не дочерний отчет (objectDataSource.DataSource = typeof(ChildViewModel)), который в данный момент открыт в конструкторе.Есть ли способ заставить Data Explorer вместо этого показать источники данных дочернего отчета?

Вот наш соответствующий код:

public partial class BaseReport
{
    private void InitializeComponent()
    {
        objectDataSource = new Telerik.Reporting.ObjectDataSource();
        objectDataSource.DataMember = "GetRecords";
        objectDataSource.DataSource = typeof(BaseViewModel);
        objectDataSource.Name = "objectDataSource";
        DataSource = this.objectDataSource;
    }

    protected Telerik.Reporting.ObjectDataSource objectDataSource;
}

public class BaseViewModel
{
    ...
    // without this dummy method, an exception is thrown in Data Explorer
    public IEnumerable<string> GetRecords()
    {
        return new List<string>();
    }
    ...
}

public partial class ChildReport : BaseReport
{
    public ChildReport()
    {
        InitializeComponent();
        objectDataSource.DataSource = typeof(ChildViewModel);
    }
}

public class ChildViewModel
{
    ...
    public IEnumerable<MyRecord> GetRecords()
    {
        return GetMyRecords();
    }
    ...
}

1 Ответ

0 голосов
/ 08 июня 2018

Хм, похоже, известная проблема с Дизайнером.

Когда отчет наследуется от пользовательского класса вместо Telerik.Reporting.Report, вы потеряете поддержку этого отчета во время разработки.в конструкторе отчетов Visual Studio.Таким образом, мы рекомендуем наследовать от стандартного класса Telerik.Reporting.Report при разработке и сохранении отчета.Когда вы закончите, вы можете изменить наследование, чтобы применить свой пользовательский класс в качестве шаблона.

https://www.telerik.com/forums/report-inheritance#pckM3wbuxESVkRVB3icPWA

...