在c#里面怎样打开一个Report1.rpt文件? 我做了个Report1.rpt报表:1、想在c#里点击一个按钮把它给调起来,不知道是那个方法才能实现。2、那报表在c#里面怎样进行预览、设置和打印。谢谢大家! 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 using System;using System.Drawing;using System.Collections;using System.ComponentModel;using System.Windows.Forms;namespace com.zggps{ /// <summary> /// frmReportView 的摘要说明。 /// </summary> public class frmReportView : System.Windows.Forms.Form { public CrystalDecisions.Windows.Forms.CrystalReportViewer rptView; /// <summary> /// 必需的设计器变量。 /// </summary> private System.ComponentModel.Container components = null; public frmReportView() { // // Windows 窗体设计器支持所必需的 // InitializeComponent(); // // TODO: 在 InitializeComponent 调用后添加任何构造函数代码 // } /// <summary> /// 清理所有正在使用的资源。 /// </summary> protected override void Dispose( bool disposing ) { if( disposing ) { if(components != null) { components.Dispose(); } } base.Dispose( disposing ); } #region Windows 窗体设计器生成的代码 /// <summary> /// 设计器支持所需的方法 - 不要使用代码编辑器修改 /// 此方法的内容。 /// </summary> private void InitializeComponent() { this.rptView = new CrystalDecisions.Windows.Forms.CrystalReportViewer(); this.SuspendLayout(); // // rptView // this.rptView.ActiveViewIndex = -1; this.rptView.Anchor = ((System.Windows.Forms.AnchorStyles)((((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom) | System.Windows.Forms.AnchorStyles.Left) | System.Windows.Forms.AnchorStyles.Right))); this.rptView.DisplayGroupTree = false; this.rptView.Location = new System.Drawing.Point(8, 8); this.rptView.Name = "rptView"; this.rptView.ReportSource = "F:\\user\\我的文档\\环卫处\\dataInput\\Rerport.rpt"; this.rptView.ShowCloseButton = false; this.rptView.ShowGroupTreeButton = false; this.rptView.ShowRefreshButton = false; this.rptView.ShowTextSearchButton = false; this.rptView.Size = new System.Drawing.Size(680, 376); this.rptView.TabIndex = 0; // // frmReportView // this.AutoScaleBaseSize = new System.Drawing.Size(6, 14); this.ClientSize = new System.Drawing.Size(688, 382); this.Controls.Add(this.rptView); this.FormBorderStyle = System.Windows.Forms.FormBorderStyle.SizableToolWindow; this.Name = "frmReportView"; this.StartPosition = System.Windows.Forms.FormStartPosition.CenterScreen; this.Text = "报表预览"; this.WindowState = System.Windows.Forms.FormWindowState.Maximized; this.ResumeLayout(false); } #endregion }} /// <summary> /// 生成报表 /// </summary> private void GenReport() { ShowProcess(); try { accessConnect.Open(); } catch(Exception err) { MessageBox.Show(string.Format("打开数据库错误,错误{0}",err.Message)); } string strSql="SELECT * FROM 环卫所"; DataSet dsHws=new DataSet(); System.Data.OleDb.OleDbDataAdapter adp=new System.Data.OleDb.OleDbDataAdapter(strSql,accessConnect); adp.Fill(dsHws); strSql=""; nMaxPos=dsHws.Tables[0].Rows.Count; for(int i=0;i<dsHws.Tables[0].Rows.Count;i++) { strSql+=string.Format("(SELECT '{0}' AS 环卫编号, '{1}' AS 环卫所名称, COUNT(*) AS 车次, SUM(重量) AS 净重 FROM (SELECT A.车牌号, B.净重 AS 重量, B.记录时间, C.ID AS 环卫所编号, C.CONTENT AS 环卫所 FROM ((车辆 A LEFT OUTER JOIN 日常 B ON A.车牌号 = B.车牌号) LEFT OUTER JOIN 环卫所 C ON A.环卫所 = C.ID) WHERE 记录时间>=#{2}# AND 记录时间<#{3}# AND C.ID = '{0}' ORDER BY C.ID)) UNION ",dsHws.Tables[0].Rows[i]["ID"].ToString(),dsHws.Tables[0].Rows[i]["CONTENT"].ToString(),dtDay.ToString("yyyy-MM-dd"),dtDay.AddDays(1).ToString("yyyy-MM-dd")); } strSql=strSql.Substring(0,strSql.Length-7); adp.SelectCommand.CommandText=strSql; DataSet dsTemp=new DataSet(); adp.Fill(dsTemp); nValue=1; ShowProcess(); foreach(System.Data.DataRow row in dsTemp.Tables[0].Rows) { System.Data.DataRow newRow=dsResult.Tables[0].NewRow(); newRow[0]=row[0]; newRow[1]=row[1]; newRow[2]=row[2].ToString(); if(row[3].ToString()=="") newRow[3]="0"; else newRow[3]=row[3].ToString(); dsResult.Tables[0].Rows.Add(newRow); } dsResult.AcceptChanges(); nValue=2; ShowProcess(); accessConnect.Close(); dataInput.Rerport rpt=new dataInput.Rerport(); rpt.SetDataSource(dsResult.Tables[0]); TextObject text; text = (TextObject)rpt.ReportDefinition.ReportObjects["txtTitle"]; text.Text="汇总日报表"; text = (TextObject)rpt.ReportDefinition.ReportObjects["txtDate"]; text.Text=string.Format("统计日期:{0}",dtDay.ToString("yyyy年M月d日")); frmReportView frmPre=new frmReportView(); frmPre.rptView.ReportSource=rpt; frmPre.ShowDialog(this); Close(); } public CrystalDecisions.Windows.Forms.CrystalReportViewer rptView;这个CrystalReportViewer可以打印及其设置 把预览、设置和打印做一个dll控件,怎样放到Crystal reports报表里去? 用 窗体 + crystalreportviewer 把预览、设置和打印做一个dll控件,怎样放到Crystal reports报表里去?--------------水晶报表都有了,你还要用其他控件为什么? Crystal reports使用帮助那里有? 不明白用BindingContext对数据项进行监控更新怎么会出错 纠结啊,几个字的就给难住了。 关于c#的一个url问题 c#写地图传参,急,散分了 请问在tcp连接时,为什么会说"端口"不能重复使用啊? 在C#中如何接收net send 发过来的信息?(up给分~~) 控件的问题?谢谢大家了! c# 中表单之间怎么传递变量的? 看似简单的正则表达式问题? 哪有DevPartner下载 对于dataset中的表中的数据如何用sql语句进行操作? 如何将输入的"string"类型的文字转换成 "Bitmap"类型的位图
using System.Drawing;
using System.Collections;
using System.ComponentModel;
using System.Windows.Forms;namespace com.zggps
{
/// <summary>
/// frmReportView 的摘要说明。
/// </summary>
public class frmReportView : System.Windows.Forms.Form
{
public CrystalDecisions.Windows.Forms.CrystalReportViewer rptView;
/// <summary>
/// 必需的设计器变量。
/// </summary>
private System.ComponentModel.Container components = null; public frmReportView()
{
//
// Windows 窗体设计器支持所必需的
//
InitializeComponent(); //
// TODO: 在 InitializeComponent 调用后添加任何构造函数代码
//
} /// <summary>
/// 清理所有正在使用的资源。
/// </summary>
protected override void Dispose( bool disposing )
{
if( disposing )
{
if(components != null)
{
components.Dispose();
}
}
base.Dispose( disposing );
} #region Windows 窗体设计器生成的代码
/// <summary>
/// 设计器支持所需的方法 - 不要使用代码编辑器修改
/// 此方法的内容。
/// </summary>
private void InitializeComponent()
{
this.rptView = new CrystalDecisions.Windows.Forms.CrystalReportViewer();
this.SuspendLayout();
//
// rptView
//
this.rptView.ActiveViewIndex = -1;
this.rptView.Anchor = ((System.Windows.Forms.AnchorStyles)((((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom)
| System.Windows.Forms.AnchorStyles.Left)
| System.Windows.Forms.AnchorStyles.Right)));
this.rptView.DisplayGroupTree = false;
this.rptView.Location = new System.Drawing.Point(8, 8);
this.rptView.Name = "rptView";
this.rptView.ReportSource = "F:\\user\\我的文档\\环卫处\\dataInput\\Rerport.rpt";
this.rptView.ShowCloseButton = false;
this.rptView.ShowGroupTreeButton = false;
this.rptView.ShowRefreshButton = false;
this.rptView.ShowTextSearchButton = false;
this.rptView.Size = new System.Drawing.Size(680, 376);
this.rptView.TabIndex = 0;
//
// frmReportView
//
this.AutoScaleBaseSize = new System.Drawing.Size(6, 14);
this.ClientSize = new System.Drawing.Size(688, 382);
this.Controls.Add(this.rptView);
this.FormBorderStyle = System.Windows.Forms.FormBorderStyle.SizableToolWindow;
this.Name = "frmReportView";
this.StartPosition = System.Windows.Forms.FormStartPosition.CenterScreen;
this.Text = "报表预览";
this.WindowState = System.Windows.Forms.FormWindowState.Maximized;
this.ResumeLayout(false); }
#endregion
}
}
/// 生成报表
/// </summary>
private void GenReport()
{
ShowProcess();
try
{
accessConnect.Open();
}
catch(Exception err)
{
MessageBox.Show(string.Format("打开数据库错误,错误{0}",err.Message));
}
string strSql="SELECT * FROM 环卫所";
DataSet dsHws=new DataSet();
System.Data.OleDb.OleDbDataAdapter adp=new System.Data.OleDb.OleDbDataAdapter(strSql,accessConnect);
adp.Fill(dsHws);
strSql="";
nMaxPos=dsHws.Tables[0].Rows.Count;
for(int i=0;i<dsHws.Tables[0].Rows.Count;i++)
{
strSql+=string.Format("(SELECT '{0}' AS 环卫编号, '{1}' AS 环卫所名称, COUNT(*) AS 车次, SUM(重量) AS 净重 FROM (SELECT A.车牌号, B.净重 AS 重量, B.记录时间, C.ID AS 环卫所编号, C.CONTENT AS 环卫所 FROM ((车辆 A LEFT OUTER JOIN 日常 B ON A.车牌号 = B.车牌号) LEFT OUTER JOIN 环卫所 C ON A.环卫所 = C.ID) WHERE 记录时间>=#{2}# AND 记录时间<#{3}# AND C.ID = '{0}' ORDER BY C.ID)) UNION ",dsHws.Tables[0].Rows[i]["ID"].ToString(),dsHws.Tables[0].Rows[i]["CONTENT"].ToString(),dtDay.ToString("yyyy-MM-dd"),dtDay.AddDays(1).ToString("yyyy-MM-dd"));
}
strSql=strSql.Substring(0,strSql.Length-7);
adp.SelectCommand.CommandText=strSql;
DataSet dsTemp=new DataSet();
adp.Fill(dsTemp);
nValue=1;
ShowProcess();
foreach(System.Data.DataRow row in dsTemp.Tables[0].Rows)
{
System.Data.DataRow newRow=dsResult.Tables[0].NewRow();
newRow[0]=row[0];
newRow[1]=row[1];
newRow[2]=row[2].ToString();
if(row[3].ToString()=="")
newRow[3]="0";
else
newRow[3]=row[3].ToString();
dsResult.Tables[0].Rows.Add(newRow);
}
dsResult.AcceptChanges();
nValue=2;
ShowProcess();
accessConnect.Close();
dataInput.Rerport rpt=new dataInput.Rerport();
rpt.SetDataSource(dsResult.Tables[0]);
TextObject text;
text = (TextObject)rpt.ReportDefinition.ReportObjects["txtTitle"];
text.Text="汇总日报表";
text = (TextObject)rpt.ReportDefinition.ReportObjects["txtDate"];
text.Text=string.Format("统计日期:{0}",dtDay.ToString("yyyy年M月d日"));
frmReportView frmPre=new frmReportView();
frmPre.rptView.ReportSource=rpt;
frmPre.ShowDialog(this);
Close();
}
这个CrystalReportViewer可以打印及其设置
水晶报表都有了,你还要用其他控件为什么?