社区
C#
帖子详情
有关水晶报表的菜鸟问题
killua820812
2004-12-22 09:53:56
1. 是否在做每个报表之前一定要先写一个.rpt文件?
2. 若我仅仅建了个空白的rpt后如何通过dataset将查询结果传入水晶报表?
3. 若我仅仅想用水晶报表的样式,又想用自己的sql那对应的字段又应该如何和报表绑定?
4. 看了一些大家别的帖子的回复,好像意思是多表联查的结果放入报表要有处理?我没看懂,是否能解释一下?
5. 能否提供代码实例让我学习学习,谢谢!
...全文
264
17
打赏
收藏
有关水晶报表的菜鸟问题
1. 是否在做每个报表之前一定要先写一个.rpt文件? 2. 若我仅仅建了个空白的rpt后如何通过dataset将查询结果传入水晶报表? 3. 若我仅仅想用水晶报表的样式,又想用自己的sql那对应的字段又应该如何和报表绑定? 4. 看了一些大家别的帖子的回复,好像意思是多表联查的结果放入报表要有处理?我没看懂,是否能解释一下? 5. 能否提供代码实例让我学习学习,谢谢!
复制链接
扫一扫
分享
转发到动态
举报
AI
作业
写回复
配置赞助广告
用AI写文章
17 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
hanbinghai
2004-12-22
打赏
举报
回复
你还是自己给水晶报表dataSet比较容易控制
killua820812
2004-12-22
打赏
举报
回复
sqlserver 表里的数据
hanbinghai
2004-12-22
打赏
举报
回复
你用的什么数据源?
killua820812
2004-12-22
打赏
举报
回复
6. 我根据它的向导生成了一个很简单的报表,但是运行时每次都提示要输入数据库密码?请问这个怎么解决,不能象adapter一样记住密码吗?
是你建立水晶报表的时候连接数据库不正确导致的,你重新建立水晶报表看看
我建立的时候都是按照步骤一步一步建的呀,所有输入的东西和以后提示输入的东西都是一样的
lyvvvv
2004-12-22
打赏
举报
回复
看来你真的是什么都不懂啊,你至少可以先多去试试玩啊。看看下面得代码,看对你有没有一点帮助。
这个form得到DataSet,并将此DataSet传给下面得专门得报表打印form
private void btPreview_Click(object sender, System.EventArgs e)
{
PrintOrPreViewReport(false);
}
private void PrintOrPreViewReport(bool bPrint)
{
if(dsTTHMKK.Tables[0].Rows.Count<=0)
{
MessageBox.Show("当前没有可供打印的记录,请先选择条件并执行查询动作之后再打印。",this.Text);
return;
}
//dsTTHMKK.WriteXml(SysInfo.sReportPath+@"JYYM.xml",System.Data.XmlWriteMode.WriteSchema);
string[] sParametername =new string[3]{"companyname","datefrom","dateto"};
string[] sParametervalue =new string[3]{"","",""};
sParametervalue[0]=SysInfo.sConame;
sParametervalue[1]=(dtDateFr.Checked)?dtDateFr.Value.ToShortDateString():"";
sParametervalue[2]=(dtDateTo.Checked)?dtDateTo.Value.ToShortDateString():"";
new frmReport(bPrint,"JYWZ.RPT",sParametername,sParametervalue,dsTTHMKK).ShowDialog();
}
专门得报表打印form,上面有一个crystalReportViewer控件
private bool bPrint=false;
private string sReportname="";
private string[] sParametername;
private object[] sParametervalue;
private DataSet dsReport;
private void frmReport_Load(object sender, System.EventArgs e)
{
if(bPrint)this.Opacity =0;
else this.WindowState =System.Windows.Forms.FormWindowState.Maximized;
CrystalDecisions.CrystalReports.Engine.ReportDocument doc=new CrystalDecisions.CrystalReports.Engine.ReportDocument();
doc.Load(SysInfo.sReportPath+sReportname);
if(dsReport != null)doc.SetDataSource(dsReport.Tables[0]);
if(sReportname.StartsWith("CaseReport"))
{
doc.OpenSubreport("CaseSubReport1").SetDataSource(dsReport.Tables["procsk"]);
doc.OpenSubreport("CaseSubReport2").SetDataSource(dsReport.Tables["pathdrug"]);
}
if(sParametername!=null)
{
for(int i=0;i<sParametername.Length;i++)
{
try
{
doc.SetParameterValue(sParametername[i],sParametervalue[i]);
}
catch(Exception ee)
{
MessageBox.Show("字段名称:"+sParametername[i]+"。"+ee.Message);
}
}
}
this.crystalReportViewer1.ReportSource=doc;
this.crystalReportViewer1.RefreshReport();
if(bPrint)
{
this.crystalReportViewer1.PrintReport();
this.Close();
}
}
至于你的问题:
1.要设计好报表,也就是.rpt文件,之后你才能去调用它,改变它的数据,打印等;
2.DataSet可以作为水晶报表的数据源,比如上面的代码if(dsReport != null)doc.SetDataSource(dsReport.Tables[0]);
3.不一定非用它自带的样式,你可以自己设计,想设计成什么样都可以啊;设置好数据源,将相应的字段插入你想排放的位置;
4.比如主从表,比如发票这样的报表,有头有明细;
5.在上面
6.可以,上面的例子就不需要什么密码,当然设置其他的数据源你也可以在代码写好报表的数据源的连接,就不会在运行提示要密码。
hanbinghai
2004-12-22
打赏
举报
回复
1. 是否在做每个报表之前一定要先写一个.rpt文件?
2. 若我仅仅建了个空白的rpt后如何通过dataset将查询结果传入水晶报表?
以上两个问题,我认为必须要先建立一个水晶报表文件即.rpt文件
3. 若我仅仅想用水晶报表的样式,又想用自己的sql那对应的字段又应该如何和报表绑定?
4. 看了一些大家别的帖子的回复,好像意思是多表联查的结果放入报表要有处理?我没看懂,是否能解释一下?
上边两个问题其实是一个问题,你用强类型的dataSet建立水晶报表,只要传给水晶报表相同结构的DataSet即可
概步骤如下:
你在窗体里设计好强类型的dataSet,也就就是你托拽sqlDataAdapter生成的dataSet
在项目中添加新项选择水晶报表,使用报表专家,在数据中选择项目数据,再选择ado.net数据集,就可以看见刚才生成的dataSet了
在窗体中你在工具箱中添加CrystalReportViewer控件
最后
this.Cursor = Cursors.WaitCursor;
CrystalDecisions.CrystalReports.Engine.ReportDocument crpt = new CrystalDecisions.CrystalReports.Engine.ReportDocument();
crpt.Load(@"D:\crpt_input_find.rpt");
//Ds就是你要绑定的dataSet
crpt.SetDataSource(this.Ds);
this.crystalReportViewer1.ReportSource =crpt;
this.Cursor = Cursors.Arrow;
当然dataSet可以带参数的
5. 能否提供代码实例让我学习学习,谢谢!
http://blog.csdn.net/haibodotnet/category/13322.aspx
6. 我根据它的向导生成了一个很简单的报表,但是运行时每次都提示要输入数据库密码?请问这个怎么解决,不能象adapter一样记住密码吗?
是你建立水晶报表的时候连接数据库不正确导致的,你重新建立水晶报表看看
以上仅是个人观点
killua820812
2004-12-22
打赏
举报
回复
什么书,你也推荐下,最好有下载地址
bhwhy
2004-12-22
打赏
举报
回复
在Csdn中搜一下水晶报表的相关文章
KentYu
2004-12-22
打赏
举报
回复
你最好自己找本书稍微看一下:)都是很基本的东西
killua820812
2004-12-22
打赏
举报
回复
哦,还有个问题
6. 我根据它的向导生成了一个很简单的报表,但是运行时每次都提示要输入数据库密码?请问这个怎么解决,不能象adapter一样记住密码吗?
killua820812
2004-12-22
打赏
举报
回复
哦,原来这个就是强类型,那有没有弱类型呢?呵呵,好了,结贴了,谢谢你
hanbinghai
2004-12-22
打赏
举报
回复
谁开始都是一点不懂的,慢慢来
不过要先看看书,掌握一点基础的东西是必要的
什么都需要一个过程,学习更是这样
^_^
hanbinghai
2004-12-22
打赏
举报
回复
你在窗体里设计好强类型的dataSet,也就就是你托拽sqlDataAdapter生成的dataSet
直接用控件生成的就是强类型的dataSet
killua820812
2004-12-22
打赏
举报
回复
不过这个要先做完,另外 强类型的dataSet 是什么 dataSet?
killua820812
2004-12-22
打赏
举报
回复
哦,有点明白你的意思了,唉,人比较笨,看来我真的不适合搞编程
hanbinghai
2004-12-22
打赏
举报
回复
上边都白说了:(
怎么把dataset里的数据和我生成的rpt里的字段绑定?
你自己做的水晶报表就是根据你的dataSet结构做的,所有在程序中传给相同结构的dataSet即可,楼主再看看前边的回复,我也好像都说了怎么做了
killua820812
2004-12-22
打赏
举报
回复
恩恩,是的,我现在就准备这么做,但是怎么把dataset里的数据和我生成的rpt里的字段绑定呢?
水晶报表
设计,学习资料。
水晶报表
是一种强大的报表设计工具,尤其在商务智能和企业级数据可视化领域中广泛应用。它以其灵活性、可定制性和丰富的功能而著称。本学习资料主要针对
水晶报表
9.0版本,这一版本在功能和易用性上都有显著提升,是...
vs2008
水晶报表
源码(C#)
仅6行代码,
菜鸟
也能看懂,sql语句可自行修改。 MSsql2000自带的Northwind资料,使用前如果没有Northwind资料,请...如果
水晶报表
服务器没有,请先安装部署(详见www.baidu.com),如果不明白请MSN联系:mansai@163.com
CODE128Auto条码打印
在IT行业中,条形码是一种广泛应用于商品标识、库存管理、物流追踪等领域的编码系统。CODE128条码是其中一种高效且通用的条码标准,它支持包含数字、字母和特殊字符的全ASCII字符集,具有较高的数据密度和错误纠正...
PB 中文入门教程 看看哈
在掌握了PB的基本知识后,可以进一步学习如何使用.NET或Java与PB集成,利用PB的AppServer功能构建分布式应用,或者探索更高级的特性,如
水晶报表
(Crystal Reports)和Web服务。 通过这个PB中文入门教程,你将能够...
毕业设计:基于ASP.NET的Talkweb班车管理系统.zip
7. 报表和数据分析:系统可能还包括报表生成模块,利用
水晶报表
(Crystal Reports)或其他报表工具,为管理者提供班车运营情况的统计报告。 通过这个毕业设计,学生不仅可以掌握ASP.NET Web应用程序开发的基本技能...
C#
111,097
社区成员
642,554
社区内容
发帖
与我相关
我的任务
C#
.NET技术 C#
复制链接
扫一扫
分享
社区描述
.NET技术 C#
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
让您成为最强悍的C#开发者
试试用AI创作助手写篇文章吧
+ 用AI写文章