0

我正在尝试在 Orchestrator 中设置一个进程,该进程将从 HTML 模板生成并发送电子邮件。但是,我还希望能够从 SQL Server 查询的结果向该模板添加数据。

例如,这是我要添加数据的模板部分:

<tr>
    <td align="right" valign="top">
        <font color="#2684AB" face="arial" />
        File:
    </td>
    <td align="left" valign="top">
        <font color="#2684AB" face="arial" />
        &nbsp; <!-- Data goes here (field is named FileName) -->
    </td>
</tr>

唯一的问题是我不知道该怎么做。我知道如何调用查询,但我不知道如何将数据添加到模板中。如果这有帮助,我也知道我从中提取数据的所有字段。有什么建议么?我还应该补充一点,我对在 Orchestrator 中工作还比较陌生。

4

1 回答 1

0

这是我的代码示例:

      SET @tableHTML =@tableHTML+'<h3>'+@Title+N'</h3>' +
            N'<tr style="background-color: #248157;color: white;height: 40px;">
            <th style="border: 1px solid #ccc">Ext PONo</th><th style="border: 1px solid #ccc">Order ID</th>
            <th style="border: 1px solid #ccc">Client</th><th style="border: 1px solid #ccc">Amount</th><th style="border: 1px solid #ccc">Order Date</th>
            <th style="border: 1px solid #ccc">Status</th><th style="border: 1px solid #ccc">Hold Reason</th>
            <th style="border: 1px solid #ccc">Hold User</th><th style="border: 1px solid #ccc">Hold Date</th>
            </tr>'+CONVERT(NVARCHAR(max),(
                SELECT '<tr style='+CASE WHEN ROW_NUMBER()OVER(ORDER BY OrderID)%2=0 THEN  '"background-color: #ffffff;"' ELSE '"background-color: #f2f2f2;"' END +'>'
                      ,[td/@style]='border: 1px solid #ccc',td=ExtPO,''
                      ,[td/@style]='border: 1px solid #ccc',td='<a href=http://xxxxxxxxxxxx='+LTRIM(OrderID)+'>'+LTRIM(OrderID)+'</a>',''
                      ,[td/@style]='border: 1px solid #ccc',td=LTRIM(ClientID)+'-'+ClientName,''
                      ,[td/@style]='border: 1px solid #ccc',td=ISNULL(SubTotal,0),''
                      ,[td/@style]='border: 1px solid #ccc',td=ISNULL(CONVERT(VARCHAR,OrderDate,101),'')+'<BR><font color=red>Held '+LTRIM(HeldCount)+' time(s)</font>',''
                      ,[td/@style]='border: 1px solid #ccc',td=OrderStatus+ISNULL('<br><font color=red>In Flag:'+FlagStatus+'</font>',''),''
                      ,[td/@style]='border: 1px solid #ccc',td=CASE WHEN HoldReasonCode='290' THEN REPLACE(HoldReason,'!',' of <a href=http://xxxxxxxxx?orderID='+LTRIM(ParentOrderID)+'>'+LTRIM(ParentOrderID)+'</a>!') ELSE HoldReason END+ISNULL('<BR><font color=red>'+Comments+'</font>','')  ,''
                      ,[td/@style]='border: 1px solid #ccc',td=HoldUser,''
                      ,[td/@style]='border: 1px solid #ccc',td=ISNULL(CONVERT(VARCHAR,HoldDate,101),''),'','</tr>'
                FROM #HeldOrder WHERE SourceCode=@SourceCode ORDER BY HoldReasonCode
                FOR XML PATH(''),TYPE
            ))+N'</table>'



IF LEN(@tableHTML)>0
    BEGIN
        SET @HTMLContent='<!DOCTYPE html>
        <html><head>
        <style>
        table, td, th {border: 1px solid #ccc;font-family:Cambria}
        table {border-collapse: collapse;width: 100%;}
        th {background-color: #248157;color: white;height: 40px}
        td {height: 40px;vertical-align: middle;}
        .even {background-color: #f2f2f2;}
        .odd {background-color: #ffffff;}
        tr:nth-child(even) {background-color: #f2f2f2}
        </style></head>
        <body>

        <p> </p>'
        SET @HTMLContent=@HTMLContent+@tableHTML+'<BR>'+CONVERT(VARCHAR,GETDATE())+'</body></html>'
于 2017-10-31T01:47:27.500 回答