水晶报表crystal reportrs 请哪位给我一个操作水晶报表(CrystalReportViewer)结合Crystal Reports库的详细步骤 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 VS2008下水晶报表之简单示例1、先新建一个Web项目2、在刚刚新建的项目下,为项目添加新项,如: CrystalReport1.rpt 在弹出的对话框,选择作为空白报表。用向导当然更方便。3、在工具箱选择 Text Object,拖到报表头。设置字体之类的。在属性选项卡设置它的名字为 txtTitle 以供将来程序访问。 水晶报表对于程序员来说其实跟 Repeater 控件是很相似的。于是需要数据和字段名。在Repeater 控件中你可以很随意 地指定要绑定的字 段名。在程序还没有真正运行之前,这个字段名可以没有任何表的字段名跟它匹配,也可以没有任何类 的属性名跟它匹配。但在水晶报表中,字段名在设计阶段就必须是真实存在的。水晶报表一旦设计好之后,就能像 Repeater 控件那样绑定任意类型的对像。而不必是设计时指定字段来源的表或类。所以我们现在要创造些真实 存在的字段名……4、下面我们再建个DataSet1.xsd 文件,用于给报表使用,在文件添加DATATABLE与字段列5、在 "字段资源管理器" 的 "数据库字段" 上按右键,选择 "数据库专家..."。在弹出的对话框中,创建新连接==> ADO.NET然后找到刚刚建的DataSet1.xsd。按提示一步步地做,直到连上数据库。选择表 TabTest,把它弄到右边的框中。 再点击确定。6、把需要显示的字段拖到 "详细资料"。"页眉" 和 Word 文档中的页眉完全不是一回事。这里的页眉其实就是列名(表头)。 列名可以自己修改吧。默认是有下划线的,可以改一下格式。7、你可以添加页眉、页脚,点击工具箱中的 Line Object 可以为报表画线。在报表空白处按右键,设计==>打印机设置8、接下来需要数据。数据当然可以是来自设计时的表。9、新建一个页面,将CrystalReportViewer拖入页面中。10、添加一个button按钮,12、代码如:private void button1_Click(object sender, EventArgs e) { ReportDocument doc = new ReportDocument(); /*------------------------------- Winform下用这个-------------------------------------------------------------string reportPath = Application.StartupPath.Substring(0, Application.StartupPath.Substring(0, Application.StartupPath.LastIndexOf("\\")).LastIndexOf("\\")); reportPath += @"\CrystalReport1.rpt"; //获取报表路径ReportDocument doc = new ReportDocument();--------------------------------------------------------------------------------------*/ //load data string mysql = "select * from city"; string strConnection = "user id=sa;password=123456;"; strConnection += "initial catalog=数据库名;Server=.;"; strConnection += "Connect Timeout=30"; SqlConnection myconn = new SqlConnection(strConnection); SqlDataAdapter myda = new SqlDataAdapter(mysql, myconn); DataSet dt = new DataSet(); if (myconn.State == ConnectionState.Closed) { myconn.Open(); } myda.Fill(dt); myconn.Close(); doc.Load(Server.MapPath("CrystalReport1.rpt"));//webform下用这个/*------------------------------- Winform下用这个------------------------------------------------------------- doc.Load(reportPath);-------------------------------------------------------------------------------------------- */ TextObject txtTitle = (TextObject)doc.ReportDefinition.ReportObjects["txtTitle"]; txtTitle.Text = "报表标题"; doc.SetDataSource(dt.Tables[0].DefaultView); this.crystalReportViewer1.ReportSource = doc; }13、这样水晶报表就能根据程序提供的,然后再自动获取数据了 在知道DataTable某一列数据的情况下,如何得到这个数据的行索引? 关于线程的一个问题 如何判断软件已经启动? vs2005 中 webBrowser怎么捕获Refresh()事件 谁来总结一下c#连接数据库共有几种方式 用单个static的OledbConnection的问题。。。。。。。。 系统编译时提示 应输入方法名称 fastReport .net 控件的自定义纸张高度 怎样把asp按钮的type="submit"的属性屏蔽掉? 一个API问题(在线等待) 软件开发结束了,在写一份给用户单位领导的汇报中如何体现软件的强大性? 请教一个目录树的问题
{ ReportDocument doc = new ReportDocument();
/*------------------------------- Winform下用这个-------------------------------------------------------------string reportPath = Application.StartupPath.Substring(0, Application.StartupPath.Substring(0, Application.StartupPath.LastIndexOf("\\")).LastIndexOf("\\"));
reportPath += @"\CrystalReport1.rpt"; //获取报表路径ReportDocument doc = new ReportDocument();--------------------------------------------------------------------------------------*/
//load data
string mysql = "select * from city";
string strConnection = "user id=sa;password=123456;";
strConnection += "initial catalog=数据库名;Server=.;";
strConnection += "Connect Timeout=30"; SqlConnection myconn = new SqlConnection(strConnection);
SqlDataAdapter myda = new SqlDataAdapter(mysql, myconn);
DataSet dt = new DataSet(); if (myconn.State == ConnectionState.Closed)
{
myconn.Open();
}
myda.Fill(dt);
myconn.Close();
doc.Load(Server.MapPath("CrystalReport1.rpt"));//webform下用这个/*------------------------------- Winform下用这个------------------------------------------------------------- doc.Load(reportPath);
-------------------------------------------------------------------------------------------- */
TextObject txtTitle = (TextObject)doc.ReportDefinition.ReportObjects["txtTitle"];
txtTitle.Text = "报表标题"; doc.SetDataSource(dt.Tables[0].DefaultView);
this.crystalReportViewer1.ReportSource = doc;
}13、这样水晶报表就能根据程序提供的,然后再自动获取数据了