C# と VB.NET の質問掲示板

ASP.NET、C++/CLI、Java 何でもどうぞ

C# と VB.NET の入門サイト

ASPでActiveReportsのRDFファイルを作成


(過去ログ 41 を表示中)

[トピック内 1 記事 (1 - 1 表示)]  << 0 >>

■21704 / inTopicNo.1)  ASPでActiveReportsのRDFファイルを作成
  
□投稿者/ えの (1回)-(2008/07/08(Tue) 09:56:37)

分類:[VB6 以前] 

突然でもうしわけありませんが教えてください。

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」にはちゃんとパスが渡せているようなので、書き込み権限かとも思いいろいろとチェックしてみたのですが、どうしてもうまくいきません。

ご存知の人がいればなにかアドバイスなど、いただけると助かります。

引用返信 編集キー/


トピック内ページ移動 / << 0 >>

このトピックに書きこむ

過去ログには書き込み不可

管理者用

- Child Tree -