带有循环和附件的CFMAIL

时间:2017-12-27 16:25:38

标签: coldfusion cfmail

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

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

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

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

以下是我的代码:创建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>

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

1 个答案:

答案 0 :(得分:3)

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

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