Click here to Skip to main content
15,890,670 members
Please Sign up or sign in to vote.
1.00/5 (1 vote)
See more:
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
Posted
Comments
ZurdoDev 6-Oct-15 11:33am    
I would suggest using SSRS report subscriptions.

1 solution

Make a windows service. in which set timer and schedule it for an hour which includes code for mail.
 
Share this answer
 
Comments
Piyush K Vaja 4-Nov-15 11:37am    
Thanks

This content, along with any associated source code and files, is licensed under The Code Project Open License (CPOL)



CodeProject, 20 Bay Street, 11th Floor Toronto, Ontario, Canada M5J 2N8 +1 (416) 849-8900