水晶报表动态连接数据库

问题描述

现在碰到一个很刺手的问题:我想设计一个报表,然后我想在程序运行时动态绑定到数据库,但做的了很久都没有做成功,我先创建一个水晶报表,里面没有绑定到任何数据,只新建了一些我要显示的字段(未绑定字段),然后我想在程序运行时把sql语句查出来的的东西放在dataset中,然后把dataset中的某一个字段对应到我在报表中创建的未绑定的某一字段,但不知道这个怎么实现?????网上有说用:CrystalReportCustoms1.ReportDefinition.ReportObjects.Items("shipper_name_en");但我试了一下,ReportObjects没有Items这个属性,请问这是怎么回事?或者请问我需求的这种功能可以由别的方法实现的话,也请告知,谢谢

解决方案

解决方案二:
http://blog.csdn.net/pfworld/archive/2007/07/29/1715299.aspx这个应该可以解决你的问题!!
解决方案三:
没有,这个不可以啊,他会报“该报表不包含表”的错误,因为我设计报表的时候,只生成的一张空白表,然后添加了一些未绑定字段。请问这样做是否可行???
解决方案四:
另外,MySQLDriverCS可以当水晶报表的数据源吗?
解决方案五:
引用3楼gongluyang的回复:

另外,MySQLDriverCS可以当水晶报表的数据源吗?

可以!!使用CrystalReportCustoms1显示要装载一个默认报表。this.reportDocument1.Load(Application.StartupPath+"\RptPack\Rpt01.rpt");/*PUSH数据到Rpt01.rpt*/ReportDocumentreportDocument1=newReportDocument()reportDocument1.Load(Application.StartupPath+"\piaoju.rpt");//水晶报表绝对地址ds=selectPJ();reportDocument1.SetDataSource(ds);//填充数据到水晶报表this.crystalReportViewer1.ReportSource=this.reportDocument1;this.crystalReportViewer1.Zoom(90);

解决方案六:
我装载了的,我是手动装载的,不是在程序中装载的,但是setdatasource的时候,就会报“该报表不包含表”的错误strSQL="SELECTbsnIDfrombusinessWHEREbsnID='"+strBsnID+"'";MySQLDataAdapterdabsnDetail=newMySQLDataAdapter(strSQL,FormMain.gConn);DataSetdsbsnDetail=newDataSet();dabsnDetail.Fill(dsbsnDetail,"bsnDetail");//下面这一句,我用CrystalReportCustoms1.SetDataSource(dsbsnDetail.Tables["bsnDetail"]);也试过,但错误依旧CrystalReportCustoms1.SetDataSource(dsbsnDetail);crvCustoms.ReportSource=CrystalReportCustoms1;请问可以告知一下您的qq或msn吗?,我的:84142601,msn:gongluyang@hotmail.com
解决方案七:
你好像用错了!!this.crystalReportViewer1.ReportSource=this.reportDocument1;crystalReportViewer1是用来显示报表的控件,reportDocument1是用来装载报表的控件!!如果要显示报表首先把报表load到reportDocument1内,然后把reportDocument1装载到crystalReportViewer1内!
解决方案八:
而且我在BLOG里写了,如过要push模式一定要表名一样!!如果你要显示的表是business,那么dabsnDetail.Fill(dsbsnDetail,"business");也要是business,才可以PUSH成功!
解决方案九:
那如果我显示是多个表中的数据呢呢?,这个好像有点问题
解决方案十:
没有测试过!!你可以测试一下!!我是用多表一般是进行传参进行报表显示的!!因此没有遇到过多表PUSH!
解决方案十一:
唉,问题依旧,我现在代码改成这样的了,问题还是一样strSQL="SELECTbsnIDfrombusinessWHEREbsnID='"+strBsnID+"'";MySQLDataAdapterdabsnDetail=newMySQLDataAdapter(strSQL,FormMain.gConn);ReportDocumentreportDocument1=newReportDocument();stringstrPath=Application.StartupPath+"\..\..\CrystalReport1.rpt";reportDocument1.Load(strPath);DataSetdsbsnDetail=newDataSet();dabsnDetail.Fill(dsbsnDetail,"business");reportDocument1.SetDataSource(dsbsnDetail);crvCustoms.ReportSource=reportDocument1;
解决方案十二:
问题应该是在设计的报表中,我设计的报表,没有添加任何表信息,只加入的一些未绑定的Text字段?但我不知道这个怎么实现我想要的功能??
解决方案十三:
报表应该连接到business表!!
解决方案十四:
看看吧

时间: 2024-12-06 10:14:05

水晶报表动态连接数据库的相关文章

水晶报表动态合并列单元格

问题描述 给水晶报表动态生成的分组,合并分组内对应的某列值如:配货号品牌数量(需要合并的列)001A10001B8001C7002A11(根据配货号在同一页内新生成的一组数据)002B20002C0...(如未满页,下面的生成和上面类似的分组)合并后效果配货号品牌数量(需要合并的列)001A001B25001C002A002B31002C...急!!! 解决方案 本帖最后由 gekaitiantia 于 2015-10-23 07:26:32 编辑解决方案二:up!!!!解决方案三:设置相同则抑

在crystalReport(水晶报表)动态输入参数(转)

动态|水晶报表 命名空间为:using CrystalDecisions.Shared         private void BuildReportViewerParameters(CrystalDecisions.Web.CrystalReportViewer rptViewer, Hashtable ParamTable)        {            //定义报表视图的参数的方法            ParameterFields ParamFields = new Par

高手看看 急得很 水晶报表动态加载显示的问题

问题描述 公式绑定,实现代码是(总是报该字段名无效,怎么回事呢!!):CR_Document.DataDefinition.FormulaFields["paraField1"].Text="{"+ds.Tables["item"].TableName+"."+ds.Tables["item"].Columns[0].ColumnName.ToString()+""}";str

CrystalReport 水晶报表 动态增加记录的问题

问题描述 大家好,我在使用水晶报表时遇到一个问题,情况如下:我需要做一张装箱单标贴打印的报表,从数据库中提取出了一个字段number(箱数),并且此报表需要动态生成number这个字段的页数.而number这个字段只有一个数值,我应该怎样来实现呢?表达可能不是很准确,举例说明:数据库中的一张装箱单单据的装箱数量为5,即:number=5需要打印出5张标贴,第一张页脚显示为"共5箱,第1箱"第二张页脚显示为"共5箱,第2箱"依次类推,一共需要打印出5张纸.如果另外的一

vs2013使用水晶报表 动态加载图片不显示

问题描述 WIN10操作系统+VS2013使用CrystalReportsCRforVS_13_0_13在项目中添加了一个数据集DataTable1其中有三列S_Id,S_Name,S_Imgs其中S_imgs为Byte[]动态读取数据库数据,填充到该数据集,数据存中的S_Imgs为一个图片URL地址,下段代码将URL转换为Byte[]foreach(DataRowdrintables.Rows){using(varstreams=WebRequest.Create("http://qiniu/

c# winfrom怎么把一张图片用水晶报表打印出来?

问题描述 我想把我重绘的界面打印出来,用Control.DrawToBitmap得到一个Bitmap类型的图片,怎么把这图片用水晶报表打印出来? 解决方案 解决方案二:你可以参考下水晶报表动态加载图片

在vb中动态加载水晶报表rpt文件的方法

动态|加载|水晶报表 这个问题在很多论坛里边都有问到.但是一直没找到满意的答案.下边写出一个解决办法 Dim sql As String Dim rstLiuShui As New ADODB.Recordset Dim Rpt As New CRAXDDRT.Report Dim PrintApp As New CRAXDDRT.Application If Option2.Value = True Then sql = "select * from n_ihbill where datedi

变向实现动态水晶报表

动态|水晶报表 往往初学者觉得水晶报表像datagrid一样,给它个数据源,然后它就会显示出来不过这种动态的水晶报表也不是不能实现,只是要变向的实现,绝对的话得问水晶开发商了以下大概地讲一下如何来实现,原理是这样,具体的要求需要自己来调用了主要步骤如下: 1.在水晶报表中插入FormulaFields,text object 2.在程序中Dim dry As New CrystalReport1 '项目中水晶报表类名CrystalReport1'文本1dry.ReportDefinition.R

水晶报表 FieldObject 动态改变某行字体

问题描述 现有数据列1列2列3A1B1C1A2B2C2使用水晶报表中的FieldObejct填充上述内容后,想根据列1的值,动态设置列3的字体(如从宋体变成黑体)请问,如何实现呢? 解决方案 本帖最后由 starlessnt 于 2014-07-31 11:22:01 编辑解决方案二:TextObjecttx;tx=(TextObject)rptDoc.ReportDefinition.ReportObjects["Text23"];tx.ApplyFont(Font);解决方案三:是