1

SQL Webアプリケーションを使用しているJava WebアプリケーションとReporting Serverについて、SOAP Webサービスを使用してSSRSからJavaアプリケーションにレポートをレンダリングできるかどうかを知りたいと思っています。JARSとSOAP Webサービスを使用したSSRSレンダリングレポート

私はSSRSのフォルダ名、レポート名などについての情報を得るためにSSRS-APIを使用していますが、レポートをレンダリングすることも、PDFやその他の拡張子でアップロードすることもできません。

提案がありますか?

おかげ

EDIT

は、私は上記のSSRSのAPI(SSRS-API)のダウンロード機能(downloadReport)を使用し、ここでの関数のコードは次のとおりです。

public void downloadReport(final String path, final String filename) { 
    final File file = new File(filename); 
    final String physicalName = toPhysicalFileName(path); 

    info("Downloading Report with symbolic name " + path + " to " + file); 

    final byte[] data = _soap.getReportDefinition(physicalName); 

    try (final FileOutputStream out = new FileOutputStream(file)) { 
     out.write(data); 
    } catch (final IOException ioe) { 
     final String message = "Failed to download report with symbolic name " + path + " to " + file; 
     LOG.warning(message); 
     if (file.exists() && !file.delete()) { 
      throw new IllegalStateException(message + " and failed to delete temporary file", ioe); 
     } else { 
      throw new IllegalStateException(message, ioe); 

     } 
    } 
} 

そして、私がこの関数を呼び出す関数を次に示します:

public void downloadReport() { 
    ssrs.downloadReport('Path/Report name', 'C:\\PATH\\TO\\A\\FOLDER\\REPORT.XML'); 
} 

、与えられたパス(C:/PATH/TO/A/FOLDER/REPORT.XML)に私はこのようなXMLファイルを取得:

<?xml version="1.0" encoding="utf-8"?> 
<Report xmlns:rd="http://schemas.microsoft.com/SQLServer/reporting/reportdesigner" xmlns:cl="http://schemas.microsoft.com/sqlserver/reporting/2010/01/componentdefinition" xmlns="http://schemas.microsoft.com/sqlserver/reporting/2010/01/reportdefinition"> 
    <AutoRefresh>0</AutoRefresh> 
    <DataSources> 
    <DataSource Name="PercallAnalysisDW"> 
     <DataSourceReference>Entrepôt de données Percall Analysis</DataSourceReference> 
     <rd:SecurityType>None</rd:SecurityType> 
     <rd:DataSourceID>3a3e3aa4-c6d6-4b44-80f0-f18a9ecd2eac</rd:DataSourceID> 
    </DataSource> 
    </DataSources> 
    <DataSets> 
    <DataSet Name="DeliveryMarginCumuleDS"> 
     <SharedDataSet> 
     <SharedDataSetReference>DeliveryMarginCumuleDS</SharedDataSetReference> 
     </SharedDataSet> 
     <Fields> 
     <Field Name="Date"> 
      <DataField>Date</DataField> 
      <rd:TypeName>System.String</rd:TypeName> 
     </Field> 
     <Field Name="Projet"> 
      <DataField>Projet</DataField> 
      <rd:TypeName>System.String</rd:TypeName> 
     </Field> 
     <Field Name="LABOR_facturé"> 
      <DataField>LABOR_facturé</DataField> 
      <rd:TypeName>System.Int32</rd:TypeName> 
     </Field> 
     <Field Name="TL_facturé"> 
      <DataField>TL_facturé</DataField> 
      <rd:TypeName>System.Int32</rd:TypeName> 
     </Field> 
     <Field Name="Coût_total"> 
      <DataField>Coût_total</DataField> 
      <rd:TypeName>System.Int32</rd:TypeName> 
     </Field> 
     <Field Name="DM"> 
      <DataField>DM</DataField> 
      <rd:TypeName>System.Int32</rd:TypeName> 
     </Field> 
     <Field Name="Revenu"> 
      <Value>=Fields!LABOR_facturé.Value + Fields!TL_facturé.Value</Value> 
     </Field> 
     </Fields> 
    </DataSet> 
    </DataSets> 
    <ReportSections> 
    <ReportSection> 
     <Body> 
     <ReportItems> 
      <Tablix Name="Tablix1"> 
      <TablixBody> 
       ... 

答えて

1

私はここで、URLを使用してレポートを生成することで問題を解決し、私はレポートを生成することを可能にする機能は次のとおりです。

public void downloadReportExcel(String path) { 
    try { 
     String url = "http://" + SSRS_IP + "/ReportServer?/" + path + "&rs:Format=Excel"; 

     FacesContext.getCurrentInstance().getExternalContext().redirect(url); 

     return; 
    } catch (IOException e) { 
     throw new FacesException(e); 
    } 
} 

関数はパラメータのパスを取得し、2でサーバーのURLに私をリダイレクトパラメータ:?

  • /パス:フォーマット=エクセル:私はここ(世代の形式でレポートの(ルートフォルダからの)完全なパスは
  • RSを生成することですExcelにレポートをエクスポートしたいのですが、それはPDFを取ることができ、同様に:& RS:フォーマット= PDF)あなたの助け@RussellFoxため

おかげで、私は、.NETソリューションのため

1

はここanother answerからの記事ですが、注意してくださいそれは2005年からです: JavaWorldそして、ここでMSDNボード上の同様の質問から答えています:

は「ただし、レポートビューアーコントロールだけ。ネット アプリケーションでサポートされて、javaの ベースのフロントエンドとの報告をまとめることはほとんどありませんので。新しいブラウザページを起動する必要はありません。 WebアプリケーションのレポートへのURLアクセスを使用することをお勧めします。 ただし、そうすると、レポートは新しいブラウザ ページで開かれます。

+0

感謝を試してみますあなたの返事のために私はこれをすべて見て、私はあなたにフィードバックを与えるでしょう –

+0

こんにちは@RussellFox私は私のやりたいことを追加するために私の質問を編集しました、今私のレポートのXML記述を得ることができます。このファイルをPDFやEXCELのようなレポートに変換する方法を知っています。 –

関連する問題