Развертывание SSRS и JAVA

Я написал прокси-сервер java, чтобы получить отчет от ssrs 2008. он отлично работает, если я получаю доступ к нему через URL-адрес сервера отчетов, но в моем приложении Java-Spring он теряет функциональность. Например, у меня есть сводный отчет о том, что если я нажимаю на знак "плюс", чтобы развернуть его, он работает в URL-адресе ssrs, но в моем jsp рендеринг html не работает, он должен работать так, как если бы я использовал URL-адрес сервера отчетов. вот пример моего кода, пожалуйста, скажите мне, возможно ли это.

public String getReport(String ReportUrl) throws Exception
 {
 ReportExecutionServiceSoapStub service = getService();


 ExecutionInfo info = service.loadReport(ReportUrl, null); //Load report
 info.setHasDocumentMap(false);
 setExecutionId(service, info.getExecutionID()); //You must set the session id before **********


 String format = "HTML4.0"; //Valid options are HTML4.0, MHTML, EXCEL, CSV, PDF, etc
 String deviceInfo = "<deviceinfo><toolbar>True</toolbar></deviceinfo>"; //Only generate an HTML fragment
 ByteArrayHolder result = new ByteArrayHolder();
 StringHolder extension = new StringHolder();
 StringHolder mimeType = new StringHolder();
 StringHolder encoding = new StringHolder();
 ArrayOfWarningHolder warnings = new ArrayOfWarningHolder();
 ArrayOfStringHolder streamIDs = new ArrayOfStringHolder(); 

 service.render(format, deviceInfo, result, extension, mimeType, encoding, warnings, streamIDs); //Render report to HTML

 System.out.println(new String(result.value)); //Prints the report HTML; this could be embedded in a JSP 
 return new String(result.value);
 }

 public static void setExecutionId(ReportExecutionServiceSoapStub service, String id) throws SOAPException
 {
 SOAPHeaderElement sessionHeader = new SOAPHeaderElement("http://schemas.microsoft.com/sqlserver/2005/06/30/reporting/reportingservices", "ExecutionHeader");
 sessionHeader.addChildElement("ExecutionID").addTextNode(id);
 service.setHeader(sessionHeader);
 }

 public static ReportExecutionServiceSoapStub getService() throws Exception{

 String endpoint = "http://192.168.69.213/reportserver/ReportExecution2005.asmx";
 AuthPolicy.registerAuthScheme(AuthPolicy.NTLM, JCIFS_NTLMScheme.class);
 ReportExecutionServiceSoapStub service = (ReportExecutionServiceSoapStub)new ReportExecutionServiceLocator(getEngineConfiguration()).getReportExecutionServiceSoap(new URL(endpoint));
 service.setUsername("192.168.69.213\\administrator");
 service.setPassword("secret");

 return service;
 }

 public static org.apache.axis.EngineConfiguration getEngineConfiguration()
 {
 java.lang.StringBuffer sb = new java.lang.StringBuffer();

 sb.append("<!--?xml version=\"1.0\" encoding=\"UTF-8\"?-->\r\n");
 sb.append("<deployment name="\" defaultclientconfig\"\r\n");"="" sb.append("xmlns="\" http:="" xml.apache.org="" axis="" wsdd="" \"\r\n");"="" sb.append("xmlns:java="\" providers="" java\""="">\r\n");
 sb.append("<globalconfiguration>\r\n");
 sb.append("<parameter name="\" disableprettyxml\""="" value="\" true\"="" "="">\r\n");
 sb.append("<parameter name="\" enablenamespaceprefixoptimization\""="" value="\" true\"="" "="">\r\n");
 sb.append("</parameter></parameter></globalconfiguration>\r\n");
 sb.append("<transport name="\" http\""="" pivot="\" java:org.apache.axis.transport.http.commonshttpsender\"="" "="">\r\n");
 sb.append("<transport name="\" local\""="" pivot="\" java:org.apache.axis.transport.local.localsender\"="" "="">\r\n");
 sb.append("<transport name="\" java\""="" pivot="\" java:org.apache.axis.transport.java.javasender\"="" "="">\r\n");
 sb.append("</transport></transport></transport></deployment>\r\n");

 return new org.apache.axis.configuration.XMLStringProvider(sb.toString());
 }

Спасибо, любая помощь будет оценена.

1 ответ

В качестве одного из возможных решений я буду делать следующее.

В Ssrs есть изображения плюс и минус gif, которые вы можете скачать и включить в свой военный проект. Пользователь будет нажимать на одну из сгруппированных строк, затем я вызову другой отчет, чтобы получить сгруппированные данные и заменить изображение плюс минус-изображением. Его в значительной степени способ проделать работу, за исключением того, что вы делаете какую-то логику для создания html по-разному. Если вы откроете отчет в браузере, посмотрите на его источник, чтобы получить представление о том, что нужно манипулировать.

licensed under cc by-sa 3.0 with attribution.