找回密码
 立即注册

QQ登录

只需一步,快速开始

飞雪连天射

注册会员

19

主题

30

帖子

191

积分

注册会员

积分
191
飞雪连天射
注册会员   /  发表于:2023-10-17 17:29  /   查看:2941  /  回复:7
1金币
本帖最后由 飞雪连天射 于 2023-10-17 17:32 编辑

最近在用FlexReport做报表,遇到如下问题:
1、相同行多个Field保持高度一致问题
2、分组数据中包含base64图片显示问题
附件文件中数据源已含样例数据





附件: 您需要 登录 才可以下载或查看,没有帐号?立即注册

最佳答案

查看完整内容

问题1,设置anchor即可,这样这个格子会自动根据撑开的高度,上下都扩展 问题2,不支持直接加载base64数据,所有你需要做的是先进行转换,把base64数据转换为图片流

7 个回复

倒序浏览
最佳答案
最佳答案
Richard.Ma讲师达人认证 悬赏达人认证 SpreadJS 开发认证
超级版主   /  发表于:2023-10-17 17:29:20
来自 2#
本帖最后由 Richard.Ma 于 2023-10-23 09:55 编辑

问题1,设置anchor即可,这样这个格子会自动根据撑开的高度,上下都扩展


问题2,不支持直接加载base64数据,所有你需要做的是先进行转换,把base64数据转换为图片流

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
回复 使用道具 举报
飞雪连天射
注册会员   /  发表于:2023-10-21 11:47:11
3#
本帖最后由 飞雪连天射 于 2023-10-21 12:04 编辑
Richard.Ma 发表于 2023-10-17 18:33
收到,明天验证后给你回复

还没有验证吗?
另外还有新的问题,这个报表分为表头信息和内容信息,我分别为表头和内容设置了数据源,发现通过选择数据源,要么显示表头的数据,要么显示内容数据,只能选择一个,请确认一个报表是否只能有一个数据源?不能两个数据源一起命名用?报表见附件:






本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
回复 使用道具 举报
Richard.Ma讲师达人认证 悬赏达人认证 SpreadJS 开发认证
超级版主   /  发表于:2023-10-23 11:20:37
4#
多数据源绑定,可以参控这块
https://www.grapecity.com/compon ... esinFlexReport.html
回复 使用道具 举报
飞雪连天射
注册会员   /  发表于:2023-10-25 10:27:11
5#
Richard.Ma 发表于 2023-10-17 18:33
问题1,设置anchor即可,这样这个格子会自动根据撑开的高度,上下都扩展

你这里所讲的转换为图片流是指提前将base64转为byte?
回复 使用道具 举报
Richard.Ma讲师达人认证 悬赏达人认证 SpreadJS 开发认证
超级版主   /  发表于:2023-10-25 16:33:12
6#
是的,转换为byte[]
回复 使用道具 举报
飞雪连天射
注册会员   /  发表于:2023-10-26 15:50:45
7#
本帖最后由 飞雪连天射 于 2023-10-26 16:16 编辑
Richard.Ma 发表于 2023-10-23 11:20
多数据源绑定,可以参控这块
https://www.grapecity.com/componentone/docs/win/online-flexreport/DataSo ...

看了这个,但是和我所需要的多数据源不是一个意思,我所说的是一个报表上有表头信息和内容信息,表头部份是一个DataTable提供数据,Detail内容部份又是一个DataTable提供数据,分别绑定显示,我在附件给了一个我需要的示例的报表和样例数据,麻烦你帮我写一段代码实现一下,并且这个示例中我还需要知道怎么把base64转为byte[]绑定显示为图片,表头有图片,Detail中每个数据也有图片,也请一并给一个绑定显示图片的示例 ,我在前端获得的数据是base64格式的,之前你说需要转为byte[],一直没想好怎样转,又怎样实现和报表的绑定。



我的测试中表头和尾信息采用的是用代码赋值:




    public class ReportHelper
    {
        public C1.Win.FlexReport.C1FlexReport BuildReport()
        {
            DataSet ds = new DataSet();
            ds.ReadXml(System.IO.Directory.GetCurrentDirectory() + @"\data.xml");   //加载数据源,DataSet中包含两个DataTable,分别为报表的表头信息与Detail信息

            C1.Win.FlexReport.C1FlexReport c1FlexReport = new C1.Win.FlexReport.C1FlexReport();
            c1FlexReport.Load(System.IO.Directory.GetCurrentDirectory() + @"\客户订单主从带图示例报表.flxr", "主从带图报表样例");

            //报表主信息未实现自动绑定显示,采用代码赋值
            ImageField fld照片 = (ImageField)c1FlexReport.Fields["fld照片"];
            fld照片.Picture = Base64ToImage(ds.Tables[0].Rows[0]["照片"].ToString());

            TextField fld序号 = (TextField)c1FlexReport.Fields["fld序号"];
            fld序号.Text = "ZXW000000000001";

            TextField fld姓名 = (TextField)c1FlexReport.Fields["fld姓名"];
            fld姓名.Text = "张晓伟大";

            TextField fld合计 = (TextField)c1FlexReport.Fields["fld合计"];
            fld合计.Text = "220.00.000";

            TextField fld打印员 = (TextField)c1FlexReport.Fields["fld打印员"];
            fld打印员.Text = "这是打印员1";

            TextField fld打印时间 = (TextField)c1FlexReport.Fields["fld打印时间"];
            fld打印时间.Text = "2023-10-10 10:10:23";


            //子表自动绑定显示
            c1FlexReport.DataSource.Recordset = ds.Tables[1];

            c1FlexReport.Render();

            return c1FlexReport;
        }

        /// <summary>
        /// base64 转 Image,将base64格式的图片字符转为图片
        /// </summary>
        /// <param name="base64"></param>
        public static Image Base64ToImage(string base64)
        {
            base64 = base64.Replace("data:image/png;base64,", "").Replace("data:image/jgp;base64,", "").Replace("data:image/jpg;base64,", "").Replace("data:image/jpeg;base64,", "");//将base64头部信息替换
            byte[] bytes = Convert.FromBase64String(base64);
            MemoryStream memStream = new MemoryStream(bytes);
            Image mImage = Image.FromStream(memStream);
            return mImage;
        }

    }


本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
回复 使用道具 举报
Richard.Ma讲师达人认证 悬赏达人认证 SpreadJS 开发认证
超级版主   /  发表于:2023-10-26 18:45:11
8#
了解你的需求了,目前FELXREPORT不支持这种多数据源的绑定。这块建议您可以考虑使用我们的专业报表控件activeReport。

这个base64问题,我看你是转成image了,具体怎么绑定我调研一下,然你给你demo。帖子先保留处理

回复 使用道具 举报
您需要登录后才可以回帖 登录 | 立即注册
返回顶部