如何在 crystal 报告中打印日期时间选择器?
How to print Datetime picker in crystal report?
DataSet ds = new DataSet();
DataTable dt = new DataTable();
dt.Columns.Add("Name", typeof(String));
dt.Columns.Add("Class", typeof(String));
dt.Columns.Add("RollNo", typeof(String));
foreach (DataGridViewRow dgr in dgv_Student.Rows)
{
dt.Rows.Add(dgr.Cells["Name"].Value, dgr.Cells["Class"].Value, dgr.Cells["RollNo"].Value);
}
ds.Tables.Add(dt);
CrystalReport1 cr = new CrystalReport1 ();
cr.SetDataSource(ds);
这是为了 datagridview 到 crystal 报告。我还想将 dtpFrom 和 dtpTo 的 datimepicker 值显示到 crystal 报告。
首先通过 Crystal Reports -> [= 在您的 Crystal 报告中的某处添加一个 文本对象 17=]插入 -> 文本对象。文本对象的默认名称是 Text1。您可以在文本对象属性下看到它。如果需要,您可以更改此名称。现在,在您的 C# 代码中,您需要传递时间值。
示例:
ReportDocument rptDoc = new ReportDocument();
protected void Page_Init(object sender, EventArgs e)
{
// Load the report path
string reportPath = Server.MapPath("~/CrystalReportTime.rpt");
rptDoc.Load(reportPath);
CrystalReportViewer1.ReportSource = rptDoc;
}
protected void Page_Load(object sender, EventArgs e)
{
if (!IsPostBack)
{
string reportPath = Server.MapPath("~/CrystalReportTime.rpt");
rptDoc.Load(reportPath);
CrystalReportViewer1.ReportSource = rptDoc;
}
DataSet ds = new DataSet();
DataTable dt = new DataTable();
dt.Columns.Add("Name", typeof(String));
dt.Columns.Add("Class", typeof(String));
dt.Columns.Add("RollNo", typeof(String));
foreach (DataGridViewRow dgr in dgv_Student.Rows)
{
dt.Rows.Add(dgr.Cells["Name"].Value, dgr.Cells["Class"].Value, dgr.Cells["RollNo"].Value);
}
ds.Tables.Add(dt);
rptDoc.SetDataSource(ds);
// Pass the time to the Crystal Reports text object
CrystalDecisions.CrystalReports.Engine.TextObject Text1;
Text1 = rptDoc.ReportDefinition.ReportObjects["Text1"] as TextObject;
Text1.Text = "Time from " + String.Format("{0:MMMM dd, yyyy}", Convert.ToDateTime(dtpFrom)) + " to " + String.Format("{0:MMMM dd, yyyy}", Convert.ToDateTime(dtpTo));
}
protected void Page_UnLoad(object sender, EventArgs e)
{
this.CrystalReportViewer1.Dispose();
this.CrystalReportViewer1 = null;
rptDoc.Close();
rptDoc.Dispose();
rptDoc = null;
GC.Collect();
}
希望对您有所帮助。
DataSet ds = new DataSet();
DataTable dt = new DataTable();
dt.Columns.Add("Name", typeof(String));
dt.Columns.Add("Class", typeof(String));
dt.Columns.Add("RollNo", typeof(String));
foreach (DataGridViewRow dgr in dgv_Student.Rows)
{
dt.Rows.Add(dgr.Cells["Name"].Value, dgr.Cells["Class"].Value, dgr.Cells["RollNo"].Value);
}
ds.Tables.Add(dt);
CrystalReport1 cr = new CrystalReport1 ();
cr.SetDataSource(ds);
这是为了 datagridview 到 crystal 报告。我还想将 dtpFrom 和 dtpTo 的 datimepicker 值显示到 crystal 报告。
首先通过 Crystal Reports -> [= 在您的 Crystal 报告中的某处添加一个 文本对象 17=]插入 -> 文本对象。文本对象的默认名称是 Text1。您可以在文本对象属性下看到它。如果需要,您可以更改此名称。现在,在您的 C# 代码中,您需要传递时间值。
示例:
ReportDocument rptDoc = new ReportDocument();
protected void Page_Init(object sender, EventArgs e)
{
// Load the report path
string reportPath = Server.MapPath("~/CrystalReportTime.rpt");
rptDoc.Load(reportPath);
CrystalReportViewer1.ReportSource = rptDoc;
}
protected void Page_Load(object sender, EventArgs e)
{
if (!IsPostBack)
{
string reportPath = Server.MapPath("~/CrystalReportTime.rpt");
rptDoc.Load(reportPath);
CrystalReportViewer1.ReportSource = rptDoc;
}
DataSet ds = new DataSet();
DataTable dt = new DataTable();
dt.Columns.Add("Name", typeof(String));
dt.Columns.Add("Class", typeof(String));
dt.Columns.Add("RollNo", typeof(String));
foreach (DataGridViewRow dgr in dgv_Student.Rows)
{
dt.Rows.Add(dgr.Cells["Name"].Value, dgr.Cells["Class"].Value, dgr.Cells["RollNo"].Value);
}
ds.Tables.Add(dt);
rptDoc.SetDataSource(ds);
// Pass the time to the Crystal Reports text object
CrystalDecisions.CrystalReports.Engine.TextObject Text1;
Text1 = rptDoc.ReportDefinition.ReportObjects["Text1"] as TextObject;
Text1.Text = "Time from " + String.Format("{0:MMMM dd, yyyy}", Convert.ToDateTime(dtpFrom)) + " to " + String.Format("{0:MMMM dd, yyyy}", Convert.ToDateTime(dtpTo));
}
protected void Page_UnLoad(object sender, EventArgs e)
{
this.CrystalReportViewer1.Dispose();
this.CrystalReportViewer1 = null;
rptDoc.Close();
rptDoc.Dispose();
rptDoc = null;
GC.Collect();
}
希望对您有所帮助。