带有循环和附件的 CFMAIL

CFMAIL with loop and attachment

我有一个查询可以获取一组商店的销售报告数据。

我需要为每个商店创建每月销售额的 PDF,然后通过电子邮件将 his/her 商店的报告通过电子邮件发送给销售经理。

创建 PDF 部分工作正常。它为每个商店创建一个单独的报告。

当我尝试通过电子邮件发送报告时,它会为每条记录发送一份报告,而不是为所有销售人员发送一份报告。例如:如果 1 号商店的报告中有 4 个人,则销售经理将获得 4 份报告,而不是 1 份报告。

这是我的代码:创建 PDF

     <cfoutput query="data" group="site_name">
     <cfdocument format="pdf" overwrite="yes" fontembed="yes" 
     pagetype="Letter"
     filename="xxxxxxxxxxxxxxxsite_name#.pdf" margintop="0.25" 
     marginbottom="0.25" marginleft="0.25" marginright="0.25" 
     backgroundvisible="yes">
     <table width="100%" align="center" border="1" cellpadding="5"
     cellspacing="0"> 
     <tr bgcolor="##e1e8f7">
     <td colspan="8" align="center">Sales Report  -#today#-#site_name#</td>
     </tr>
     <tr align="center">
     <td>Sales Person</td>
     <td>Total Sales</td>
     </tr>
     <cfoutput>
     <tr>
    <td>#firstName# #lastName#</td>
    <td>#totalSales#</td>
    </tr>
    </cfoutput>
    </table>
    </cfdocument>
    </cfoutput>

CFMAIL

    <cfmail query="data" to="#salesmanageremail#" subject="monthly sales 
    report" 
    type="html">
    <style type="text/css">
    body { font-size: 12px; font-family: Arial; }
    </style>
    <body>
    Report attached.
   </body>
   <cfsilent>
   <cfmailparam file="xxxxxxxxxxxxxxxsite_name#.pdf">
   </cfsilent>
   </cfmail>

如何将包含所有数据的每个商店的一份报告通过电子邮件发送给每位销售经理?

您可以将 cfmail 标签视为 cfoutput 标签。这包括像创建 pdf 时那样使用 group 属性。

或者,您可以将 cfmail 标签放在您用来创建 pdf 的 cfoutput 块中。考虑到所有因素,这就是我要采取的方法。这样您就可以为每个站点发送正确的文件。