TFSのAPIおよびSSRSを使用してレポートを生成するReportExecutionService Classによる方法があります。
すでにWebサービス参照が プロジェクトに追加されている場合は、指定されたパラメータを持つファイルが生成されます。ここでは の開始日と終了日がパラメータとして提供され、レポートは で、Render()メソッドを使用して生成されます。生成されたレポート後にソースLink
private void GenerateReport()
{
ReportExecutionService rs = new ReportExecutionService();
rs.Credentials = System.Net.CredentialCache.DefaultCredentials;
rs.Url = "http://<TFS server name>/reportserver/ReportExecution2005.asmx";
// Render arguments
byte[] result = null;
tring reportPath = @"<SSRS report path>";
string format = "PDF";
string historyID = null;
string devInfo = @"<DeviceInfo><Toolbar>False</Toolbar></DeviceInfo>";
// Prepare report parameter.
ParameterValue[] parameters = new ParameterValue[2];
parameters[0] = new ParameterValue();
parameters[0].Name = "StartDateParam";
parameters[0].Value = "2016-05-01 00:00:00";
parameters[1] = new ParameterValue();
parameters[1].Name = "EndDateParam";
parameters[1].Value = "2016-05-30 00:00:00";
parameters[2] = new ParameterValue();
parameters[2].Name = "AreaParam";
parameters[2].Value = "[Work Item].[Area Hierarchy].[All]";
parameters[3] = new ParameterValue();
parameters[3].Name = "WorkItemTypeParam";
parameters[3].Value = "[Work Item].[System_WorkItemType].&[Task]";
parameters[4] = new ParameterValue();
parameters[4].Name = "StateParam";
parameters[4].Value = "[Work Item].[System_State].&[Active]";
parameters[5] = new ParameterValue();
parameters[5].Name = "TrendLineParam";
parameters[5].Value = "both";
DataSourceCredentials[] credentials = null;
string showHideToggle = null;
string encoding;
string mimeType;
string extension;
Warning[] warnings = null;
ParameterValue[] reportHistoryParameters = null;
string[] streamIDs = null;
ExecutionInfo execInfo = new ExecutionInfo();
ExecutionHeader execHeader = new ExecutionHeader();
rs.ExecutionHeaderValue = execHeader;
execInfo = rs.LoadReport(reportPath, historyID);
var parameters_ = rs.GetExecutionInfo().Parameters;
rs.SetExecutionParameters(parameters, "en-us");
String SessionId = rs.ExecutionHeaderValue.ExecutionID;
Console.WriteLine("SessionID: {0}", rs.ExecutionHeaderValue.ExecutionID);
try
{
result = rs.Render(format, devInfo, out extension, out encoding, out mimeType, out warnings, out streamIDs);
execInfo = rs.GetExecutionInfo();
Console.WriteLine("Execution date and time: {0}", execInfo.ExecutionDateTime);
}
catch (SoapException e)
{
Console.WriteLine(e.Detail.OuterXml);
}
// Write the contents of the report to an MHTML file.
try
{
FileStream stream = File.Create("report.pdf", result.Length);
Console.WriteLine("File created.");
stream.Write(result, 0, result.Length);
Console.WriteLine("Result written to the file.");
stream.Close();
}
catch (Exception e)
{
Console.WriteLine(e.Message);
}
}
、あなただけのTFSサーバーにそれらを確認する必要があります。次に、内部差分エンジンを使用して2つのファイルを比較し、DiffSegmentsのリンクリストを返すDifference.DiffFiles
メソッドを使用するだけです。詳細は、MSDN blogを参照してください。
あなたの答えはパトリックにありがとうございますが、私が求めていたものではありません。 SSRSサーバーに保存されているレポート(.rdlファイル)のソースを、TFSで現在チェックインされているものと自動的に比較したいと思います。 – dobrzak
なぜ2つのファイルを比較したいのですか?状況に応じて、2つのファイルまたは同じファイルの2つのバージョンの違いを明確に表示するためにVSにdiffウィンドウがあります。 https://www.visualstudio.com/en-us/docs/tfvc/compare-files TFS APIを使用してファイルを比較する方法については、次のブログを参照してください。https://blogs.msdn.microsoft.com/mohamedg/2009/03/08/how-to-diff-files-using-tfs-apis/ –
SSRS/SSIS/SQLの内容がTFSと同じかどうかを確認するために、それを調査しなければ。異なることに取り組んでいる人はほとんどなく、常に正しくプロセスに従うとは限りません。 – dobrzak