每小时安排rdlc报告 [英] scheduling rdlc report every hour
问题描述
我想在报告查看器中自动生成PDF报告并将其附加到电子邮件中。
我想运行这个每天任务没有任何用户互动到网站。
我试过这个:
System.Timers.Timer myTimer = new System.Timers.Timer();
myTimer.Elapsed + = new System.Timers.ElapsedEventHandler(myEvent);
myTimer.Interval = 60000;
myTimer.Enabled = true;
private void myEvent(object source,System.Timers.ElapsedEventArgs e)
{
if(DateTime.Now.Hour> = 6)
{
SendEmailTimer();
}
}
public static void SendEmailTimer()
{
ReportViewer viewer = new ReportViewer();
viewer.LocalReport.ReportPath =abc.rdlc;
viewer.ProcessingMode = ProcessingMode.Local;
viewer.LocalReport.SetParameters(new ReportParameter(ReportName,R eport ABC));
viewer.LocalReport.DataSources.Add(new ReportDataSource(DataSet,GetData()));
bytes = viewer.LocalReport.Render (PDF,,out mimeType,out encoding,out extension,out streamids,out warnings);
fs = new System.IO.FileStream(HttpContext.Current.Server.MapPath( 〜/ Files / abc.pdf),System.IO.FileMode.Create);
fs.Write(bytes,0,bytes.Length);
fs。关闭();
}
请帮助,
谢谢,
Piyush
Hi,
I want to auto generate PDF report in report viewer and attached it to email.
I want to run this task daily without any user interaction to website.
I tried this:
System.Timers.Timer myTimer = new System.Timers.Timer();
myTimer.Elapsed += new System.Timers.ElapsedEventHandler(myEvent);
myTimer.Interval = 60000;
myTimer.Enabled = true;
private void myEvent(object source, System.Timers.ElapsedEventArgs e)
{
if (DateTime.Now.Hour >= 6)
{
SendEmailTimer();
}
}
public static void SendEmailTimer()
{
ReportViewer viewer = new ReportViewer();
viewer.LocalReport.ReportPath = "abc.rdlc";
viewer.ProcessingMode = ProcessingMode.Local;
viewer.LocalReport.SetParameters(new ReportParameter("ReportName", "Report ABC"));
viewer.LocalReport.DataSources.Add(new ReportDataSource("DataSet", GetData()));
bytes = viewer.LocalReport.Render("PDF", "", out mimeType, out encoding, out extension, out streamids, out warnings);
fs = new System.IO.FileStream(HttpContext.Current.Server.MapPath("~/Files/abc.pdf"), System.IO.FileMode.Create);
fs.Write(bytes, 0, bytes.Length);
fs.Close();
}
Please help,
Thanks,
Piyush
推荐答案
制作一个Windows服务。其中设置计时器并安排一小时,其中包括邮件代码。
Make a windows service. in which set timer and schedule it for an hour which includes code for mail.
这篇关于每小时安排rdlc报告的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!