- - PR -
ASP.NETでActiveReportが表示されない件
1
投稿者 | 投稿内容 | ||||
---|---|---|---|---|---|
|
投稿日時: 2008-03-27 15:37
ASP.net(2005)にActiveReportのWebViewerを設置し、ViewTypeプロパティを「ActiveXViewer」に設定し実行しましたが、レポートが表示されず、「No Report Specified.」というメッセージが表示されます。
色々調査した結果、レポートがNewした時と表示する時の2回走ってるようで、2回目に設定したDataSourceなどすべてNothingになってしまいます。WebViewerのReportNameには値は入れていないのですが・・・。 なぜ2回走るかがわからずに困っています。 よろしくお願い致します。 Form側 Public Class WebForm1 Inherits System.Web.UI.Page ・ ・ Private Sub Page_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load Dim rpt As New ActiveReport1 ← ここで1回目のレポート側のNewが走ります。 Dim retDataSet As New DataSet '表示するデータの取得 retDataSet = getDataset() 'レポートにデータをセット rpt.DataSource = retDataSet 'レポートを作成します。 rpt.Run(False) With Me.WebViewer1 .ClearCachedReport() .Report = rpt .Style.Item("Top") = "0px" .Style.Item("left") = "0px" ' WebViewerのサイズを設定します。 .Width = Unit.Percentage(100) .Height = Unit.Percentage(100) .Style.Item("height") = "100%" .Style.Item("width") = "100%" End With End Sub . . End Class レポート側 Public Class ActiveReport1 Inherits ActiveReport Public Sub New() MyBase.New() InitializeReport() End Sub . . End Class | ||||
|
投稿日時: 2008-03-27 17:14
? ASP.NET 基本の IsPostBack プロパティ分岐で問題ないように思えます。 _________________ C# と VB.NET の入門サイト じゃんぬねっと日誌 | ||||
|
投稿日時: 2008-03-27 18:47
じゃんぬねっと様
ありがとうございます。 デバッグしてみたのですが、 Page_Loadは2回実行されていませんでした。 もう少し調査してみます。 ありがとうございました。 | ||||
|
投稿日時: 2008-04-01 11:03
いつもお世話になっております。
根本的解決ではないのですが、解決をしましたのでご報告いたします。 結論から言いますと、「WebViewer」の使用をやめ、帳票をRDF形式でファイルに保存しaspx内で読み込むようにしました。 Form側(WebForm1.aspx.vb) Public Class WebForm1 Inherits System.Web.UI.Page ・ ・ Private Sub Page_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load Dim ds As New DataSet Dim rpt As ActiveReport1 = New ActiveReport1 Dim rdfFileName As String '表示するデータの取得 retDataSet = getDataset() 'レポートにデータをセット rpt.DataSource = retDataSet.Tables(0) 'レポート処理を開始 rpt.Run(False) 'rdfファイル名作成 rdfFileName = PartFunc.getSysdateYYYYMMDDHHMMSS + "_Print_" + Session.SessionID + ".rdf" 'セッションにrdfファイル名を格納(WebForm1.aspx内のdatapathの指定で使用) Session("Printfile_Name") = rdfFileName 'ドキュメントの内容をRDF形式でファイルに保存 rpt.Document.Save(Server.MapPath("") + "\\ReportOutput\\" & rdfFileName, DataDynamics.ActiveReports.Document.RdfFormat.AR20) End Sub . . End Class HTML側(WebForm1.aspx) <%@ Page Language="vb" AutoEventWireup="false" Codebehind="WebForm1.aspx.vb" Inherits="Web.WebForm1" %> <%@ Register TagPrefix="activereportsweb" Namespace="DataDynamics.ActiveReports.Web" Assembly="ActiveReports.Web, Version=4.3.0.1261, Culture=neutral, PublicKeyToken=cc4967777c49a3ff" %> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml" > <head id="Head1" runat="server"> <title>プリントテスト</title> <script FOR=arv EVENT=ControlLoaded language="javascript"> <!-- arv.datapath = "ReportOutput/<%=Session("Printfile_Name")%>"; ← ここでファイル名を使用 //--> </script> </head> <body> <form id="form1" runat="server"> <div> <OBJECT id="arv" codeBase="arview2.cab#Version=2,4,2,1303" height="100%" width="100%" classid="clsid:8569D715-FF88-44BA-8D1D-AD3E59543DDE" VIEWASTEXT> <PARAM NAME="_ExtentX" VALUE="11218"> <PARAM NAME="_ExtentY" VALUE="7329"> </OBJECT> </div> </form> </body> </html> 今回はRDFファイルを使用しましたのでMIMEの設定が必要になりました。 また、作成したRDFファイルを削除する仕組みが必要になりました。 もしかしたらもっと良い方法があったかもしれませんが、今回はこういう形になりました。 以上です。わかり辛くて申し訳ありません。 ありがとうございました。 |
1