tagCANDY CGI VBレスキュー(花ちゃん) の Visual Basic 2010 用 掲示板(VB.NET 掲示板) [ツリー表示へ]   [Home]
一括表示(VB.NET VB2005)
タイトルCSVファイルを使って、RPTデータを出力する
記事No6266
投稿日: 2007/09/10(Mon) 18:00
投稿者
王と申します。

下記の問題があります。皆様は教えていただけませんか。

元プログラムはWindowsNT VB5、CrystalReports6、Oracle7、ODBCでCSVファイルを使って、帳票を出力できます。

現在はWindowsXP Pro+SP2 VB.net2005、CrystalReports11、Oracle10G、ODBCでCSVファイルを使って、帳票を出力すると、「アプリケーション定義またはオブジェクト定義のエラーです。」(Errid:20525)をのエラーを発せしました。

どの原因でしょうか。皆様是非御願いいたします。

[ツリー表示へ]
タイトルRe: CSVファイルを使って、RPTデータを出力する
記事No6272
投稿日: 2007/09/11(Tue) 13:26
投稿者花ちゃん
回答ではありません。何方からもレスが付かないのは、質問内容が理解できないから
だと思います。

どのようなコードのどの部分でエラーが発生しているのか、現在のコードを投稿して
頂いた方がレスがつき易いかも知れません。

[ツリー表示へ]
タイトルRe^2: CSVファイルを使って、RPTデータを出力する
記事No6276
投稿日: 2007/09/11(Tue) 15:28
投稿者
> 回答ではありません。何方からもレスが付かないのは、質問内容が理解できないから
> だと思います。
>
> どのようなコードのどの部分でエラーが発生しているのか、現在のコードを投稿して
> 頂いた方がレスがつき易いかも知れません。

[ツリー表示へ]
タイトルRe^3: CSVファイルを使って、RPTデータを出力する
記事No6277
投稿日: 2007/09/11(Tue) 15:35
投稿者
花ちゃん:
  ご回答ありがとうございました。


昨日の問題は下記のコードを貼り付けます。

VB5のコード:
Private Sub Cmd_PreView_Click()
    Dim Lv_Int_Rpt_Res As Integer
    Dim Lv_Int_Idx As Integer
    
    ''プレビューにツールバーを表示しない
    'CrystalReport.WindowControls = 0
    ''SQLサーバーログオン
    CrystalReport.Connect = "DSN=" & Lv_Str_DSN & ";UID=;PWD=;DSQ=Administration"
    ''レポートファイル設定
    CrystalReport.ReportFileName = Lv_Str_ReportFile
    ''データファイル設定
    CrystalReport.DataFiles(0) = Lv_Str_DataFile
    For Lv_Int_Idx = 0 To 10
        If Lv_Str_OtherDataFile(Lv_Int_Idx) = "" Then
            Exit For
        End If
        CrystalReport.DataFiles(Lv_Int_Idx + 1) = Lv_Str_OtherDataFile(Lv_Int_Idx)
    Next Lv_Int_Idx
    ''0:プレビュー 1:印刷
    CrystalReport.Destination = 0
    ''部数
    'Report1.CopiesToPrinter = 3
    ''ディテールは1行表示
    CrystalReport.DetailCopies = 1
    ''ウィンドウタイトル指定
    CrystalReport.WindowTitle = "印刷プレビュー"
    ''ウィンド最大表示
    'CrystalReport.WindowState = 2
    ''ウィンド幅
    CrystalReport.WindowWidth = 800
    ''ウィンド幅
    CrystalReport.WindowHeight = 600
        
    ''印刷
    Lv_Int_Rpt_Res = CrystalReport.PrintReport
    'MsgBox CrystalReport.ReportDisplayPage
    If Lv_Int_Rpt_Res <> 0 Then
        MsgBox "印刷エラー " & vbCrLf & Error(Lv_Int_Rpt_Res) & " (" & Lv_Int_Rpt_Res & ")"
    End If

End Sub

[ツリー表示へ]
タイトルRe^4: CSVファイルを使って、RPTデータを出力する
記事No6278
投稿日: 2007/09/11(Tue) 15:37
投稿者魔界の仮面弁士
> 昨日の問題は下記のコードを貼り付けます。

その中のどの行を実行したときに、くだんのエラーが派生したのでしょうか?

[ツリー表示へ]
タイトルRe^3: CSVファイルを使って、RPTデータを出力する
記事No6279
投稿日: 2007/09/11(Tue) 15:40
投稿者
続けます。

VB.NETのコード:

Imports CrystalDecisions.CrystalReports.Engine
Imports CrystalDecisions.Shared
Public Class Form1
    Private MyConnectioninfo As New ConnectionInfo
    Private ReportDoucment As New ReportDocument
    Private Disk As New DiskFileDestinationOptions
    Private Sub CrystalReportViewer1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles CrystalReportViewer1.Load
        Try
            MyConnectioninfo.DatabaseName = GV_Str_CsvId & ".CSV"
            MyConnectioninfo.UserID = ""
            MyConnectioninfo.Password = ""
            MyConnectioninfo.ServerName = GV_Str_DsnId

            ReportDoucment.Load(GV_Str_RptId)
            Dim DTS As Tables = ReportDoucment.Database.Tables
            Dim MYDTINFO As TableLogOnInfo
            For Each MYDT As Table In DTS
                MYDTINFO = MYDT.LogOnInfo
                MYDT.ApplyLogOnInfo(MYDTINFO)
            Next
            CrystalReportViewer1.ReportSource = ReportDoucment
            CrystalReportViewer1.Cursor = Cursors.Default
        Catch ex As CrystalDecisions.CrystalReports.Engine.PrintException
            MsgBox("印刷エラー " & vbCrLf & ErrorToString(ex.ErrorID) & " (" &             ex.Message.ToString & ")")
        End Try
    End Sub
End Class

以上のように処理したら、昨日のエラーを解決されましたが、レポート出力のスピードはとても遅いです。どの原因がわかりませんので、教えていただけませんでしょうか。どのように修正すれば、よろしいでしょうか。

[ツリー表示へ]
タイトルRe^4: CSVファイルを使って、RPTデータを出力する
記事No6323
投稿日: 2007/09/18(Tue) 18:54
投稿者
皆様へ
ありがとうございました。

現在はCrystalReport6のCRYSTL32.OCXを使って、正常に出力しました。スピードも早くなりました。

下記の問題があります。
CrystalReport11のOCXを使いたいですが、VB.Net、CrystalReport11の環境で、どのようにCSVと関連して、出力しますか。

[ツリー表示へ]
タイトルRe^5: CSVファイルを使って、RPTデータを出力する
記事No6324
投稿日: 2007/09/18(Tue) 19:59
投稿者魔界の仮面弁士
CrystalReport ではなく、
Crystal Reports ですよね。複数形の -s が抜けています。

で。最終的に使用されたのは マネージ版ではなく COM 版のようですが、
それは速度面での都合によるものでしょうか? それとも別の理由によるのでしょうか?


> 現在はCrystalReport6のCRYSTL32.OCXを使って、正常に出力しました。
> CrystalReport11のOCXを使いたいですが、
OCX を使いたいなら、それが技術的に可能であるかどうかを、
まずは Business Objects 社に尋ねた方が良いかも知れません。

Crystal Reports XI のユーザでは無いので、仔細な情報は持ち合わせていないのですが、
Ver.9 以降においては、Crystl32.ocx が廃止されており、CRAXDDRT からの単純呼び出し
または CRAXDRT による制御に切り替わっていたように聞いていますので。


> どのようにCSVと関連して、出力しますか。
旧バージョンでは、ODBC 接続に頼る事になるかと思いますが、XI であるならば、
CSV ファイルを直接利用できるようになっていると聞いていますので、恐らくは
CSV 利用のための手順についても、ドキュメントに書かれているかと思います。
もし見当たらなければ、Business Objects 社のサポートに問い合わせてみましょう。

[ツリー表示へ]
タイトルRe^6: CSVファイルを使って、RPTデータを出力する
記事No6326
投稿日: 2007/09/18(Tue) 22:38
投稿者
魔界の仮面弁士さんありがとうございました。

>Crystal Reports XI のユーザでは無いので、仔細な情報は持ち合わせていないのですが、
>Ver.9 以降においては、Crystl32.ocx が廃止されており、CRAXDDRT からの単純呼び出し
>または CRAXDRT による制御に切り替わっていたように聞いていますので。

CRAXDRTを使いたいなら、どのようにCSVを関連しますか。

[ツリー表示へ]
タイトルRe^7: CSVファイルを使って、RPTデータを出力する
記事No6328
投稿日: 2007/09/18(Tue) 22:54
投稿者魔界の仮面弁士
> CRAXDRTを使いたいなら、どのようにCSVを関連しますか。
それは直前の私の回答にある、最後の2行が該当します。

[ツリー表示へ]
タイトルRe^8: CSVファイルを使って、RPTデータを出力する
記事No6329
投稿日: 2007/09/18(Tue) 23:27
投稿者
> > CRAXDRTを使いたいなら、どのようにCSVを関連しますか。
> それは直前の私の回答にある、最後の2行が該当します。
わかりました。
ありがとうございます。

[ツリー表示へ]
タイトルRe^9: CSVファイルを使って、RPTデータを出力する
記事No6332
投稿日: 2007/09/19(Wed) 19:57
投稿者
皆様、お世話になっております。

CrystalReports11、VB.NET2005でCSV関連します。コードは下記でございます。

Imports CrystalDecisions.CrystalReports.Engine
Imports CrystalDecisions.Shared
Public Class Form1
  
    Private Sub AxCrystalActiveXReportViewer1_Enter(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles AxCrystalActiveXReportViewer1.Enter
        Dim doc As New ReportDocument
        Dim dcon As New TableLogOnInfo
        doc.Load("C:\setsubi\\01-Kanri\\Report\\MAFSC010.rpt")
        dcon.ConnectionInfo.DatabaseName = "C:\setsubi\CSV\01-Kanri\MAFSC010.CSV"
        dcon.ConnectionInfo.UserID = ""
        dcon.ConnectionInfo.Password = ""
        dcon.ConnectionInfo.ServerName = "KanriReport"

        doc.Database.Tables(0).ApplyLogOnInfo(dcon)
        AxCrystalActiveXReportViewer1.ReportSource = doc
        AxCrystalActiveXReportViewer1.PrintReport()
    End Sub
End Class

ここでCrystalReports11のDLLを使っています。AxCrystalActiveXReportViewer1.ReportSource = docに運行すると、「指定されたキャストは有効ではありません」というエラーを発生しました。

VB.NETのCrystalReports10のDLLを使いたら、エラーがありません。正常に運行できます。

原因はわかりません。皆様よろしく御願いいたします。

[ツリー表示へ]