レポートからxmlを解析し、それをカスタムテーブルに表示する、アプリケーションに接続されたテストWCFクライアントがあります。テーブル上で最初に実行可能な一意のIDのリストのために折りたたむことができるようにしたいセルがあります。問題は、データが多すぎることです。最初にレポートからIDをロードし、IDがクリックされたときに動的に追加情報を呼び出す方法があるかどうか疑問に思いました。このようにして、アプリの起動時にロードするデータがはるかに少なくなります。
レポートのsoapリクエストでこれを実行できるかもしれないと思いましたが、APIをどのように理解するのか本当にわかりません。これは、WCFアプリケーションのために過去の誰かによって行われました。これに追加すると、テーブルの特定の部分しか取得できないと思いましたか?多分私はこれに近づく方法で完全に間違っています。
public string Invoke(string reportPath, FilterViewModel reportParameter, NetworkCredential networkCredential)
{
if (NetworkInterface.GetIsNetworkAvailable())
{
m_NetworkCredential = networkCredential;
m_reportParameter = reportParameter;
Dictionary<string, string> headers = new Dictionary<string, tring>();
headers.Add("charset", "utf-8");
headers.Add("useUnsafeHeaderParsing", "true");
headers.Add("SOAPAction", "http://schemas.microsoft.com/sqlserver/2005/06/30/reporting/reportingservices/LoadReport");
StringBuilder reqSOAPEnv = new StringBuilder();
reqSOAPEnv.Append("<s:Envelope xmlns:s='http://schemas.xmlsoap.org/soap/envelope/'>");
reqSOAPEnv.Append("<s:Body xmlns:xsi='http://www.w3.org/2001/XMLSchema-instance' ");
reqSOAPEnv.Append("xmlns:xsd='http://www.w3.org/2001/XMLSchema'>");
reqSOAPEnv.Append("<LoadReport xmlns='http://schemas.microsoft.com/sqlserver/2005/06/30/reporting/reportingservices'>");
reqSOAPEnv.Append("<Report>");
reqSOAPEnv.Append(reportPath);
reqSOAPEnv.Append("</Report>");
reqSOAPEnv.Append("</LoadReport>");
reqSOAPEnv.Append("</s:Body>");
reqSOAPEnv.Append("</s:Envelope>");
SSRS_ServiceRequestController serviceRequest = new SSRS_ServiceRequestController();
result = serviceRequest.MakeWebRequest(ServiceURL, m_ContentType, m_Method, headers, networkCredential, reqSOAPEnv.ToString());
}
return result;
}