先建一个数据集,名称为dataset1.xsd。在第一行中写表名comeout
从第二行开始将数据表中的所有字段写上。要选择E。
再添加一个水晶报表,名称为myrpt.rpt。用报表专家向导完成。
最后写代码:
//引用using CrystalDecisions.CrystalReports.Engine;
//引用using CrystalDecisions.Shared;
String constr="Provider=SQLOLEDB.1;Password=sa;Persist Security Info=True;User ID=sa;Initial Catalog=dianxinkapin;Data Source=new";
String command="select * from comeout";
OleDbConnection myConn = new OleDbConnection(constr) ;
myConn.Open ( ) ;
//创建一个 DataSet
DataSet myDataSet = new DataSet ( ) ;
//用 OleDbDataAdapter 得到一个数据集
OleDbDataAdapter myCommand = new OleDbDataAdapter (command,constr ) ;
//把Dataset绑定person数据表
myCommand.Fill (myDataSet,command) ;
//关闭此OleDbConnection
myConn.Close () ;
myrpt rpt1=new myrpt();
rpt1.SetDataSource(myDataSet.Tables[0]);
crptv.ReportSource=rpt1;
rpt1.PrintOptions.PrinterName=@"\\SCB\HP";//指定打印机名
rpt1.PrintToPrinter(1,true,0,0);//开始打印参数分别是(几份,是否纵向打印,开始页,结束页)
//水晶报表登陆的一种方法
TableLogOnInfos crTableLogonInfos = new TableLogOnInfos();
TableLogOnInfo crTableLogonInfo = new TableLogOnInfo();
ConnectionInfo crConnectionInfo = new ConnectionInfo();
crConnectionInfo.ServerName = "local";
crConnectionInfo.DatabaseName = "dianxinkapin";
crConnectionInfo.UserID = "sa";
crConnectionInfo.Password = "sa";
crTableLogonInfo.ConnectionInfo = crConnectionInfo;
crTableLogonInfo.TableName = "comeout";
crTableLogonInfos.Add(crTableLogonInfo);
crptv.LogOnInfo = crTableLogonInfos;
myrpt crReportDocument = new myrpt();
crReportDocument.SetDataSource(myDataSet.Tables[0]);
crptv.ReportSource = crReportDocument;
//这中方法可以不用,就用原来的三行就行了。
//水晶报表的自定义预揽界面
//自定义打印界面,将报表的工具拦不显示然后自己放按钮
//第一页
crptv.ShowFirstPage();
//最后一页
crptv.ShowLastPage();
//上一页
crptv.ShowPreviousPage();
//下一页
crptv.ShowNextPage();
//百分之百显示
crptv.Zoom(100);
//搜索
crptv.SearchForText(TextBox1.Text, SearchDirection.Forward);