タイトル | : ActiveReportsのRDF作成 |
記事No | : 12734 |
投稿日 | : 2008/07/08(Tue) 14:36 |
投稿者 | : えいも |
突然でもうしわけありませんが教えてください。
ASPでActiveReports2.0Jを使ってRDFファイルを作成し、表示するプログラムを作っています。 以前は動いていたんですが、突然RDFファイルが作成されなくなってしまいました。 原因を調べたところDLLに問題があるところまではつかめました。 そのDLLはActiveReportsのサンプルをそのまま引用したものです。
-----以下ソース------ Public Function SaveToRDFFile(Optional datProvider As Variant, Optional strBoundRptsConnectionString As String = "") As String On Error GoTo errorhandler '=================================================================================== '第1引数<datProvider> .asp側で生成したdatProviderクラスオブジェクト '第2引数<strBoundRptsConnectionString> ' データベース接続文字列 '=================================================================================== '戻り値 成功時にサーバー上に保存したRDFファイル名(パスは含まない)を返します。 '=================================================================================== '=========================================================================== 'Webサーバー上に、レポートの出力結果をRDFファイル形式で出力します。 'この関数を呼び出すことで、呼び出しのASPページにバイト配列を渡すことができます。 'その後、バイト配列はASPの Response.BinaryWriteメソッドを使用して、クライアント 'ブラウザに直接配信できます。これはクライアントブラウザへレポートを配信するための '有効な方法です。 '=========================================================================== Dim strTrackLocation As String Dim rpt As ActiveReport SaveToRDFFile = "" strTrackLocation = "AR2 - SaveToRDFFile関数内でActiveReportのクラスを生成 " & Now TrackLocation (strTrackLocation) Set rpt = New ActiveReport rpt.LoadLayout mstrRPXInputPathandFileName rpt.Printer.DeviceName = "" If mblnIsUnbound Then 'アンバウンドのとき strTrackLocation = "AR2 - AddNamedItemメソッドの呼び出し" TrackLocation (strTrackLocation) rpt.AddNamedItem "DataClass", datProvider Else 'バウンドのとき 'データーベース接続文字が指定されていれば、DataControlへセットします。 If strBoundRptsConnectionString <> "" Then strTrackLocation = "AR2 - レポートのDataControlに、データベース接続文字を設定" TrackLocation (strTrackLocation) rpt.Sections("Detail").Controls("DataControl1").ConnectionString = strBoundRptsConnectionString End If End If rpt.Run False Dim m_sFName 'ランダムな名前に出力します。 m_sFName = GetRandomFileName("\reports\", "AR", "RDF") rpt.Pages.Save m_sFName Dim i For i = Len(m_sFName) - 1 To 0 Step -1 If Mid$(m_sFName, i, 1) = "\" Then SaveToRDFFile = Mid$(m_sFName, i + 1, Len(m_sFName) - i) 'ファイル名を返します。 Exit For End If Next Exit Function errorhandler: End Function -----以上------
引数なしでASP側から読み出しています。 このプログラムの「rpt.Pages.Save m_sFName」の部分でエラーに落ちているようです。 「sFName」にはちゃんとパスが渡せているようなので、書き込み権限かとも思いいろいろとチェックしてみたのですが、どうしてもうまくいきません。
ご存知の人がいればなにかアドバイスなど、いただけると助かります
|