代码之家  ›  专栏  ›  技术社区  ›  Collin Barrett

在Telerik Reporting Visual Studio数据资源管理器中显示子类的数据源

  •  0
  • Collin Barrett  · 技术社区  · 6 年前

    在visual studio telerik报表设计器中,数据资源管理器窗格显示所有数据源及其成员,以便拖放到设计器中。但是,我们有从基报表继承的报表。在这种情况下,数据资源管理器将显示基本报表的数据源( objectDataSource.DataSource = typeof(BaseViewModel) )而不是孩子的报告( objectDataSource.DataSource = typeof(ChildViewModel) )当前在设计器中打开的。是否有方法让数据资源管理器显示子报表的数据源?

    以下是我们的相关代码:

    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 回复  |  直到 6 年前
        1
  •  0
  •   Collin Barrett    6 年前

    嗯,这似乎是设计师的一个已知问题。

    当报表从自定义类继承而不是 telerik.reporting.report您将失去对 此报表位于Visual Studio报表设计器中。因此,我们建议 从默认的telerik.reporting.report类继承 设计并保存报表。完成后,您可以更改 继承以将自定义类作为模板应用。

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