动态为ASPxReportDesigner设置数据源时,字段列表不显示数据-DevExpress基于Web的报表设计器

萨尔曼

我目前正在尝试制定基于Web的报表设计器。我目前面临的问题是我无法在设计器中看到绑定数据源的字段。以下是我的代码

DataSet ds = new DataSet();
ds.DataSetName = "Data Set";
ds.Tables.Add(dataTable);

var report = new XtraReport();

report.DataSource = ds;
report.DataMember = ds.Tables[0].TableName;// "ExcelParser Data"

ASPxReportDesigner1.OpenReport(report);

由于使用excel工作表填充了dataTable,因此它包含列和行。即使我创建存根数据表,其字段也不会显示在报表设计器中。

在此处输入图片说明

我还尝试通过从数据集中的驱动器上写入.XSD文件并将文件路径称为DataSoruceSchema参数来进行尝试。还是没用。

无论使用ASP.NET报表设计器,在DevExpress门户上都没有太多帮助。

萨尔曼

最终,我在DevEx支持的帮助下使其工作。似乎需要自定义数据集序列化程序,以便在运行时创建的数据集可以正常工作。这是现在更新的代码

XtraReport report = new XtraReport();
                report.Extensions[SerializationService.Guid] = MyDataSerializer.Name;
                report.DataSource = MyDataSerializer.GenerateActorMembers();
                report.DataMember = "Actor Members";
                ASPxReportDesigner1.OpenReport(report);

这是我的数据的更新的自定义序列化程序

public class MyDataSerializer : IDataSerializer {
        public const string Name = "MyDataSerializer";

        public bool CanSerialize(object data, object extensionProvider) {
            return data is DataSet;
        }

        public string Serialize(object data, object extensionProvider) {
            var ds = (DataSet)data;
            return ds.DataSetName;
        }

        public bool CanDeserialize(string value, string typeName, object extensionProvider) {
            return value == "Members";
        }

        public object Deserialize(string value, string typeName, object extensionProvider) {
            if(value == "Members") {
                return GenerateActorMembers();
            }
            return null;
        }

        public static DataSet GenerateActorMembers() {
            var dt = new DataTable();
            dt.TableName = "Actor Members";

            dt.Columns.Add("MemberId");
            dt.Columns.Add("MemberName");
            dt.Columns.Add("MemberDOB");
            dt.Columns.Add("MemberAddress");

            dt.Rows.Add(dt.NewRow());// Rows.Add(new DataRow());
            dt.Rows[0]["MemberId"] = "1";
            dt.Rows[0]["MemberName"] = "George Clooney";
            dt.Rows[0]["MemberDOB"] = "1960/01/02";
            dt.Rows[0]["MemberAddress"] = "NY, NY, USA";

            dt.Rows.Add(dt.NewRow());
            dt.Rows[1]["MemberId"] = "2";
            dt.Rows[1]["MemberName"] = "Reober Deniro";
            dt.Rows[1]["MemberDOB"] = "1958/01/02";
            dt.Rows[1]["MemberAddress"] = "NY, NY, USA";

            dt.Rows.Add(dt.NewRow());
            dt.Rows[2]["MemberId"] = "3";
            dt.Rows[2]["MemberName"] = "Clive Owen";
            dt.Rows[2]["MemberDOB"] = "1965/01/02";
            dt.Rows[2]["MemberAddress"] = "London, London, UK";

            dt.Rows.Add(dt.NewRow());
            dt.Rows[3]["MemberId"] = "4";
            dt.Rows[3]["MemberName"] = "Clive Owen";
            dt.Rows[3]["MemberDOB"] = "1965/01/02";
            dt.Rows[3]["MemberAddress"] = "London, London, UK";

            var ds = new DataSet();
            ds.Tables.Add(dt);
            ds.DataSetName = "Members";
            return ds;
        }
    }

并且您将需要在Global.asax的Application_Start中注册序列化程序

SerializationService.RegisterSerializer(MyDataSerializer.Name, new MyDataSerializer());

这是解决方案,ASPxReportDesigner中的代码字段列表中的DevEx说明未显示

但是我仍在尝试弄清楚如何处理从数据库动态填充的数据集。问题是在那种情况下我不知道表的数量和名称。仍在努力中...

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

Devexpress最终用户报表设计器:从数据库检索报表时,数据源绑定为空

来自分类Dev

Devexpress报表和DBContext数据源

来自分类Dev

Stimulsoft创建连接/数据源未显示在报表设计器中

来自分类Dev

在Pentaho报表设计器中显示子报表

来自分类Dev

当数据源为XML时,报表中仅生成一行

来自分类Dev

DevExpress gridView数据源

来自分类Dev

Devexpress TileView数据源

来自分类Dev

Devexpress TileView数据源

来自分类Dev

动态数据源路由-数据源路由器未初始化

来自分类Dev

动态数据源路由-未初始化数据源路由器

来自分类Dev

pentaho报表设计器有条件的消息字段

来自分类Dev

EF6,代码优先。如何使用 XAML Devexpress 为 GridControl 列设置替代数据源

来自分类Dev

无法在Eclipse BIRT报表设计器中更改预览设置

来自分类Dev

Acumatica 为高级报表设计器添加新字体

来自分类Dev

在 Visual Studio 2017 中创建报表时,如何让 Microsoft Dynamics 365 出现在数据源列表中?

来自分类Dev

Pentaho报表设计器:将值列表作为参数传递给报表

来自分类Dev

Birt,XML,报表参数,数据源

来自分类Dev

如何在代码C#ASP.NET中为报表查看器提供数据源实例

来自分类Dev

如何在水晶报表中为主明细表设置子报表的数据源

来自分类Dev

报表查看器不显示数据集

来自分类Dev

SSRS-从CSV文件导入数据以用作报表服务器上的数据源

来自分类Dev

设置为json数据存储区时,dijit select的数据源未显示

来自分类Dev

基于环境的Spring数据源

来自分类Dev

创建基于文本的libreoffice数据源并使用Java设置设置

来自分类Dev

Linq查询为radioButton设置数据源字段

来自分类Dev

Linq查询为radioButton设置数据源字段

来自分类Dev

pentaho 报表设计器:如果值为空,则显示某个字符串

来自分类Dev

如何以编程方式为XtraPivotGrid(Devexpress)选择数据源

来自分类Dev

具有视图类型数据源的子报表在传递参数时返回空

Related 相关文章

  1. 1

    Devexpress最终用户报表设计器:从数据库检索报表时,数据源绑定为空

  2. 2

    Devexpress报表和DBContext数据源

  3. 3

    Stimulsoft创建连接/数据源未显示在报表设计器中

  4. 4

    在Pentaho报表设计器中显示子报表

  5. 5

    当数据源为XML时,报表中仅生成一行

  6. 6

    DevExpress gridView数据源

  7. 7

    Devexpress TileView数据源

  8. 8

    Devexpress TileView数据源

  9. 9

    动态数据源路由-数据源路由器未初始化

  10. 10

    动态数据源路由-未初始化数据源路由器

  11. 11

    pentaho报表设计器有条件的消息字段

  12. 12

    EF6,代码优先。如何使用 XAML Devexpress 为 GridControl 列设置替代数据源

  13. 13

    无法在Eclipse BIRT报表设计器中更改预览设置

  14. 14

    Acumatica 为高级报表设计器添加新字体

  15. 15

    在 Visual Studio 2017 中创建报表时,如何让 Microsoft Dynamics 365 出现在数据源列表中?

  16. 16

    Pentaho报表设计器:将值列表作为参数传递给报表

  17. 17

    Birt,XML,报表参数,数据源

  18. 18

    如何在代码C#ASP.NET中为报表查看器提供数据源实例

  19. 19

    如何在水晶报表中为主明细表设置子报表的数据源

  20. 20

    报表查看器不显示数据集

  21. 21

    SSRS-从CSV文件导入数据以用作报表服务器上的数据源

  22. 22

    设置为json数据存储区时,dijit select的数据源未显示

  23. 23

    基于环境的Spring数据源

  24. 24

    创建基于文本的libreoffice数据源并使用Java设置设置

  25. 25

    Linq查询为radioButton设置数据源字段

  26. 26

    Linq查询为radioButton设置数据源字段

  27. 27

    pentaho 报表设计器:如果值为空,则显示某个字符串

  28. 28

    如何以编程方式为XtraPivotGrid(Devexpress)选择数据源

  29. 29

    具有视图类型数据源的子报表在传递参数时返回空

热门标签

归档