TEL:400-8793-956
当前位置:程序、服务器

从MMSQL中的数据生成图表并将其作为附件(PDF)发送到电子邮件中

提问者: 近期获赞: 浏览人数: 发布时间:2021-01-14 13:57:07

 问:我目前处于怀疑状态,我是否以正确的方式行事。基本上,我有一个任务,需要查询存储在MSSQL规范化数据库中的数据,以便在不同的图表中显示它们。然后,需要将这些图表转换为自定义PDF,并自动将其作为电子邮件附件发送。

 
我正在做什么:我目前正在使用LINQ查询数据,修改数据以使其在服务器端成为JSON结构。然后在客户端,我正在使用AJAX来使用JSON数据并使用Google图表显示它。然后,我使用jsPDF通过单击一个按钮来生成PDF。
 
我目前拥有的解决方案可以正常工作,但是从某种意义上来说,它是手动的,因为我需要单击一个按钮来生成PDF并发送电子邮件。您是否建议一个更好的工作流程来获取数据,将其生成为图表(即使这些是在服务器端完成的)并在一个自动过程中将其作为电子邮件发送?我从未使用过SSIS,SSRS和SSAS,因此这些可能值得研究。 
 
请对此有任何反馈吗?
 
答:您可以手动将这些报表另存为PDF(因为报表查看器中有一个选项) )或代码。我正在分享一些代码片段,您可以将其用于解决方案。
要将报告转换为PDF:
 
  私有字符串ExportReportToPDF(字符串reportNamewithFullPath)
    {
       警告[]警告;
       string [] streamids;
       字符串mimeType;
       字符串编码;
       字符串filenameExtension;
       byte []个字节= ReportViewer1.LocalReport.Render(
          “ PDF”,null,输出mimeType,输出编码,输出filenameExtension,
           掉流,掉警告);
 
       字符串文件名= Path.Combine(Path.GetTempPath(),reportNamewithFullPath);
       使用(var fs = new FileStream(filename,FileMode.Create))
       {
          fs.Write(bytes,0,bytes.Length);
          fs.Close();
       }
 
       返回文件名;
    }
通过邮件发送pdf:
 
私人void BtnSendByMail_ Click(对象发送者,EventArgs e)
{
      邮件邮件= sendMailView.CurrentItem; //某些邮件帮助程序类。你可以用你自己的
      mail.AttachmentFiles.Add(ExportReportToPDF(yourRdlcReportPath));
      mail.DeleteFilesAfterSend = true;
      mail.RequireAutentication = true;
      mail.Send();
}
因此,可以根据需要将这两种方法结合起来以创建完整的代码。
上一篇: 如何在Python脚本中将单词发送到翻译站点?
下一篇: 用Java处理JSON