tagCANDY CGI VBレスキュー(花ちゃん)の Visual Basic 6.0用 掲示板 [ツリー表示へ]   [Home]
一括表示(VB6.0)
タイトルActiveReportsのRDF作成
記事No12734
投稿日: 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」にはちゃんとパスが渡せているようなので、書き込み権限かとも思いいろいろとチェックしてみたのですが、どうしてもうまくいきません。

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

[ツリー表示へ]
タイトルRe: ActiveReportsのRDF作成
記事No12737
投稿日: 2008/07/08(Tue) 22:12
投稿者花ちゃん
マルチポスト先
http://bbs.wankuma.com/index.cgi?mode=al2&namber=21704

当サイトはマルチポストをお断りしております。
(書き込みの画面の上部に流れる文字でも表示していたはず)

[ツリー表示へ]