找回密码
 立即注册

QQ登录

只需一步,快速开始

HopeFul

初级会员

17

主题

45

帖子

485

积分

初级会员

积分
485
HopeFul
初级会员   /  发表于:2019-4-22 17:45  /   查看:4144  /  回复:4
      在 C1FlexReport 自定义数据源的过程中
代码如下

       //获取自定义数据源对象
            IC1FlexReportRecordset rs = (IC1FlexReportRecordset)GetData();
            //加载报表定义(在设置数据源之前)
            _flexReport.Load(_reportStream, f);

            //在c1flexReport组件中使用自定义数据源对象
            _flexReport.DataSource.Recordset = rs;



   会出现类型转换错误  
   会出现类型转换错误  
   会出现类型转换错误   


       IC1FlexReportRecordset  文档上说支持  IList 类型
     GetData()的定义如下

private IList<CodePrint> GetData() {

            IList<CodePrint> list = new List<CodePrint>();
            // 后期直接通过接口来获取数据
            for (int i = 1; i < 3; i++)
            {
             list.Add(new CodePrint() {
                 S1 = "1111",//订单号
                 S2 = "1111",//物料编码
                 S3 = "1111",//物料描述
                 S4 = 1,//物料单位
                 S5 = 2,//总数量
                 S6 = 3,//单张数量
                 S7 = 1,//打印数量
                 S8 = "1111",//仓库
                 S9 = "1111",//库位
                 S10 = "1111",//质量状态
                 S11 = "1111",//物流状态
                 S12 = "2019/04/15",//创建日期
             });
            }
            return list;
        }

  该怎么解决?
各位大佬求眼熟

4 个回复

倒序浏览
Richard.Ma讲师达人认证 悬赏达人认证 SpreadJS 开发认证
超级版主   /  发表于:2019-4-22 18:27:15
沙发
你是说IC1FlexReportRecordset rs = (IC1FlexReportRecordset)GetData();这句话报错还是运行的时候会报错,方便的话最好是直接打包项目上来,我帮你确认下问题
回复 使用道具 举报
HopeFul
初级会员   /  发表于:2019-4-23 09:28:33
板凳
运行时候报错  类型转换失败     不好意思   项目不能打包的
就是自定义新的数据源的时候  Ilist的这个不行   
回复 使用道具 举报
HopeFul
初级会员   /  发表于:2019-4-23 10:03:05
地板
基于上面的
就是 我现在是 ILisT的数据  
怎么转换成 C1FlexReport能够接受的  展示出来的呢
通过后台代码 来实现   而不用去创建新加项
回复 使用道具 举报
Richard.Ma讲师达人认证 悬赏达人认证 SpreadJS 开发认证
超级版主   /  发表于:2019-4-23 17:17:10
5#
自定义一个List数据替代Ilist数据就可以了

  1. List<CodePrint> GetData(){
  2. }
复制代码
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 立即注册
返回顶部