问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

C#操作水晶报表的一些疑问和求解

发布网友 发布时间:2022-05-01 19:45

我来回答

4个回答

热心网友 时间:2022-04-12 00:38

这么说吧,水晶报表压根不好用,我们宁愿用微软的。

一般如果你动手能力比较强的话 那就用Winform+Panl直接自己画一个

微软的报表是要设置数据源的,就是你所说的DataSet,再加载数据的时候你要去更新初始设置的DataSet,当报表有了DataSet后才建立报表框架,这时候你也可以向他传递参数,看一下我写的报表类里面的代码:

//显示报表类
        private void Baobiao(ReportViewer r,string ming,DataSet ds,string lujing)
        {
            //这里处理商标图片
            r.LocalReport.EnableExternalImages = true;
            ReportParameter[] image = new ReportParameter[1];
            string path = "file:///" + @lujing;   //图片地址    
            image[0] = new ReportParameter("商标", path);   //image1必须和报表参数一致
            r.LocalReport.SetParameters(image);
            r.LocalReport.Refresh();
            if (ming == "8RND4RNDQR")      //如果是二维码
            {
                //初始化数据保存二维码
                BarTu();
                //设置参数
                ReportParameter[] rp = new ReportParameter[4];
                rp[0] = new ReportParameter("shangjia", changming);
                rp[1] = new ReportParameter("Tel", rexian);
                rp[2] = new ReportParameter("di", di);
                rp[3] = new ReportParameter("wang", wang);
                r.LocalReport.SetParameters(new ReportParameter[] { rp[0], rp[1], rp[2], rp[3] });
                r.LocalReport.Refresh();
            }
            //这里处理报表
            r.LocalReport.ReportPath = Application.StartupPath + "/" + ming + ".rdlc";
            r.LocalReport.ReportEmbeddedResource = ming + ".rdlc";
            //设置打印布局模式,显示物理页面大小
            r.SetDisplayMode(Microsoft.Reporting.WinForms.DisplayMode.PrintLayout);
            //缩放模式为百分比,以300%方式显示
            r.ZoomMode = Microsoft.Reporting.WinForms.ZoomMode.Percent;
            r.ZoomPercent = 300;
            r.LocalReport.DataSources.Clear();
            r.LocalReport.DataSources.Add(new Microsoft.Reporting.WinForms.ReportDataSource("DBDataSet_下单表", ds.Tables[0]));
            r.RefreshReport();
        }

看到没,前提条件DBDataSet_下单表我是随手建立的,建立好了后,随便你怎么滴,把他删除就行了,FormLoad事件也不要加载,资源里面把数据源一并剔除。

之所以要DataSet是因为控件原因,巨阵工具是要数据源的,才能阶梯性显示

你可以不管他怎么设置dataset,但是如果要更新DATASET方式去更新字段,那表里面字段名要跟新的表字段名最起码要统一,如果不统一也没关系,只是麻烦点,你要传递参数。

设置参数的时候要允许他为空,报表区域要去关联参数

如上图,我是把路径值写在商标字段里,图片Value可以是路径名,加载报表是后就自动加载图片去了。

做好这些设计工作过后,把项目里面已经设计好的报表文件,全部复制到启动目录bin里面,然后用相对路径方法加载他,多余的数据源啊,数据库文件一并可以删除,完全用代码来操作

热心网友 时间:2022-04-12 01:56

水晶报表肯定是绑定DataSet或者DataTable数据缓存,不明白你为何用DataReader。如果一定要用DataReader可以把结果放在一张表里,然后再绑定到水晶报表。

热心网友 时间:2022-04-12 03:30

c#水晶报表用过,感觉操作太复杂,对新手来说有点勉强,现在改用finereport,它操作比较简单,适合新手用的。

热心网友 时间:2022-04-12 05:22

DataReader 行不行 没研究过, 我都是用Dataset 做的 把表字段 直接拖报表里面 setReportSource 绑定数据集 就可以了!
声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
福如东海终身寿险(A款)(分红型)能退多少钱 我买的新华人寿保险福如东海A型,但是想退了。 杭州樱花日语学校的学习效果如何得到管理与跟踪? 枣子不能与什么一起吃 枣子和什么食物相克 枣子和什么相克 枣子跟什么不能一起吃 电风扇带不动风叶拿掉风叶能转是怎么回事 嵌入式学习首先要学什么基础 学习嵌入式的基础是什么 企业实施crm系统前要分析什么数据呢? ...水晶报表,pull模式(不是用DataSet),怎么显示图片(字段在表中是一个... 物业管理系统的需求分析 运行水晶报表的时候,工具栏上的图片显示不出来? 小区物业管理系统需求分析有哪些 水晶报表 如何用水晶报表实现套打 SQLSERVER2000数据库中字段保存的是图片路径,如何在水晶报表中显示照片图象。 C# 2005 水晶报表背景如何透明 水晶报表的插入图表和设置大小问题首先图表为啥只能放在报表头节里放不到页眉或详细资料节里面呢 水晶报表动态显示图片 水晶报表的插入图表和设置大小问题 水晶报表的插入图表怎么使用 水晶报表中通过ole对象插入一图片,为什么通过修改图片而水晶报表必须通过更新才会显示新的图片呢 c# 水晶报表显示图片~ c#水晶报表中如何插入图片控件 用沐浴露SY 对JJ有害否? 沐浴露和人体润滑剂哪个刺激性强? 沐浴露和洗发液能代替电脑cup风扇润滑油吗? 大雁与鸭子,读懂了什么? 写字楼的物业管理信息系统需求分析 C#水晶报表中怎么打印ACCESS数据库中的图片? 水晶报表如何发布到服务器 请问下,crm系统需求文档应该是怎么样的?CRM系统应有哪些功能? 网脉crm系统需求分析 如何使用crm系统进行有效的潜在客户管理论文 精油怎样使用? 苹果笔记本找不到百度云HD下载的文件 精油如何使用? 精油的使用方法? 故宫博物院里的建筑:有那些 你好问一下我在淘宝用信用卡分期,买手机花2800,那么下个月信用卡账单出来,我还需要还2800吗 下载了百度云同盘后,在我苹果手机的文件,为什么在电脑里看不到呢 公积金是什么意思通俗点 用招商银行信用卡可以在淘宝上分期付款买手机吗? 故宫内所有建筑的名字分别叫什么? 2016央视春晚支付宝红包 猴年央视春晚支付宝红包领取攻略 任意盈余公积金是什么意思?安什么标准提取? 淘宝信用卡分期买手机问题 公积金什么意思冖