我们有一个连接到我们的应用程序的测试 WCF 客户端,它从报告中解析 xml 并将其显示在自定义表中。我们有一些单元格,我们希望能够折叠这些单元格,以获得最初在桌子上可行的唯一 ID 列表。问题是他们的数据太多,我想知道是否有一种方法可以首先从报告中加载 ID,然后在单击 ID 时动态调用额外信息。这样,我们将在应用程序启动时加载更少的数据。
我以为我可以通过报告的肥皂请求来做到这一点,但我真的不明白我应该如何弄清楚他们的 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;
}