SQL 2008 Reporting Servicesを使用しています。アプリケーションからパラメータを設定した後、ブラウザでレポートを開きます。私はPDFから添付ファイルと共に電子メールを送信するコードからの報告のサブスクリプションを作成します。複数の添付ファイルを含む電子メールをSQL Reporting Servicesを通じてPDFで送信
しかし、コードから複数のレポートのサブスクリプションを作成し、1つの電子メールを複数のPDF添付ファイルとともにクライアントに送信する必要があります。 (注:各サブスクリプションに対して電子メールを送信する必要はありません) 私は自分自身を試しましたが、解決策は見つかりませんでした。 1つのメールで複数のPDF添付ファイルレポートデータを電子メールで送信するにはどうすればいいのか教えてください。
または、複数のレポートをPDF形式で1つの電子メールで送信するこの目標を達成する他の方法はありますか?
以下は、私がcreate subscriptionに使用しているコードです。添付ファイルとともにメールを送信します。しかし、私は上記のように、私は1つの電子メールに複数の添付ファイルが必要です。
RSServiceReference05.ReportingService2005SoapClient rs = new RSServiceReference05.ReportingService2005SoapClient();
rs.ClientCredentials.Windows.AllowedImpersonationLevel = new System.Security.Principal.TokenImpersonationLevel();
string batchID = string.Empty;
RSServiceReference05.ServerInfoHeader infoHeader = rs.CreateBatch(out batchID);
RSServiceReference05.BatchHeader bh = new RSServiceReference05.BatchHeader()
{
BatchID = batchID,
AnyAttr = infoHeader.AnyAttr
};
string desc = "Report is attached.";
string eventType = "TimedSubscription";
DateTime dt = DateTime.Now;
string scheduleXml = "<ScheduleDefinition xmlns:xsd=\"http://www.w3.org/2001/XMLSchema\" xmlns:xsi=\"http://www.w3.org/2001/XMLSchema-instance\"><StartDateTime xmlns=\"http://schemas.microsoft.com/sqlserver/2006/03/15/reporting/reportingservices\">" + dt.AddMinutes(3).ToString("dd/MMM/yyyy HH:mm:ss")+"+05:00</StartDateTime></ScheduleDefinition>";
RSServiceReference05.ParameterValue[] extensionParams = new RSServiceReference05.ParameterValue[7];
extensionParams[0] = new RSServiceReference05.ParameterValue();
extensionParams[0].Name = "TO";
extensionParams[0].Value = txtEmailTo.Text;
extensionParams[1] = new RSServiceReference05.ParameterValue();
extensionParams[1].Name = "IncludeReport";
extensionParams[1].Value = "True";
extensionParams[2] = new RSServiceReference05.ParameterValue();
extensionParams[2].Name = "RenderFormat";
extensionParams[2].Value = "PDF";
extensionParams[3] = new RSServiceReference05.ParameterValue();
extensionParams[3].Name = "Subject";
extensionParams[3].Value = txtSubject.Text;
extensionParams[4] = new RSServiceReference05.ParameterValue();
extensionParams[4].Name = "Comment";
extensionParams[4].Value = txtMessage.Text;
extensionParams[5] = new RSServiceReference05.ParameterValue();
extensionParams[5].Name = "IncludeLink";
extensionParams[5].Value = "False";
extensionParams[6] = new RSServiceReference05.ParameterValue();
extensionParams[6].Name = "Priority";
extensionParams[6].Value = "NORMAL";
string matchData = scheduleXml;
RSServiceReference05.ExtensionSettings extSettings = new RSServiceReference05.ExtensionSettings();
extSettings.ParameterValues = extensionParams;
extSettings.Extension = "Report Server Email";
string sub = "";
RSServiceReference05.ServerInfoHeader SubID =
rs.CreateSubscription(bh, "/MyReports/MyTestReport", extSettings, desc, eventType, matchData, parameters, out sub);
RSServiceReference05.ServerInfoHeader EventID = rs.FireEvent(bh, "TimedSubscription", sub);
rs.ExecuteBatch(bh);