ActiveReports for .NET 18.0J
プレビュー
ActiveReportsユーザーガイド > よくある質問 > 共通の項目(ページレポート/RDLレポート/セクションレポート) > プレビュー

64ビット環境でOleDbプロバイダに接続しているレポートをプレビューすると「'Microsoft.Jet.OLEDB.4.0'プロバイダはローカルのコンピュータに登録されていません。」という例外が発生する

64ビット環境でOleDbプロバイダに接続しているレポートをプレビューすると、エラーメッセージ「System.InvalidOperationException:'Microsoft.Jet.OLEDB.4.0'プロバイダはローカルのコンピュータに登録されていません。」が表示されます。

これは、Microsoft.Jet.OLEDB.4.0は64ビットと互換性がないため、64ビットオペレーティングシステムでは失敗するから発生します。

この事象を回避するには、以下の2つの方法があります。

1. (推奨)OleDbプロバイダをMicrosoft.ACE.OLEDB.12.0に変更します。

メモ:お使いのマシンが、32ビットと64ビットバージョンの両方のMicrosoft.ACE.OLEDB.12.0が使用可能である必要があります。

2. 32ビットのみを使用するようにプロジェクト設定を変更します。

  1. Visual Studioでプロジェクトを開いた状態で、[プロジェクト] > [プロジェクトのプロパティ]を選択します。
  2. 表示されるページで、VBプロジェクトの[コンパイル]タブ、またはC#プロジェクトの[ビルド]タブを選択します。
  3. VBの場合はターゲットCPU、またはC#の場合はPlatform target(デフォルトではAnyCPUに設定)のドロップダウンリストからx86を選択します。

Viewerのボタン(印刷ボタンなど)が英語表示になる

この現象は、日本語リソースを含んでいるサテライトアセンブリファイルが、配布先環境上で正常に参照できていない場合に発生します。

サテライトアセンブリファイルには、ユーザーインタフェース部分の日本語リソースが含まれており、本体アセンブリを配置したフォルダに\Jaフォルダを作成して、その中に配置する必要があります。

詳細については、よくある質問の「配布・ライセンス」で「アプリケーションを配布する」を参照してください。

表示倍率の初期値を設定する

ViewerコントロールのZoomプロパティで、プレビュー時の表示倍率を設定することが可能です。
こちらのプロパティを「-1」に設定すると「ページ幅を基準」で、「-2」に設定すると「ページ全体」でプレビュー表示が行われます。
なお、表示倍率を「ページ幅を基準」と「ページ全体」に設定できるのは、レポートの表示形式(ViewTypeプロパティ)が「Single(単一ページ形式)」に設定されている時のみです。「Continuous(連続ページ形式)」の時には設定できません。

Visual Basic

Visual Basicコード
コードのコピー
Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
    Dim rpt As New SectionReport1()
    rpt.Run()
    Viewer1.Document = rpt.Document

    ' 表示形式を"単一ページ"形式に設定します。
    Me.Viewer1.ViewType = GrapeCity.Viewer.Common.Model.ViewType.SinglePage
    Viewer1.Zoom = -1  ' ページ幅を基準
    'Viewer1.Zoom = -2 ' ページ全体
End Sub
  

C#

C#コード
コードのコピー
private void Form1_Load(object sender, EventArgs e)
   {
    SectionReport1 rpt = new SectionReport1();
    rpt.Run();
    this.viewer1.Document = rpt.Document;

    // 表示形式を"単一ページ"形式に設定します。
    this.viewer1.ViewType = GrapeCity.Viewer.Common.Model.ViewType.SinglePage;
    this.viewer1.Zoom = -1;  // ページ幅を基準
    //this.viewer1.Zoom = -2;  // ページ全体
   }
                                                

改ページ時に常にそのページの先頭を表示する

レポートのプレビュー時、ページを切り替えたときに、表示位置をページの先頭に戻すには
ビューワコントロールの、ViewerクラスのRepositionPageプロパティを、Trueに設定することで実現できます。

Viewerをカスタマイズする

Windowsフォーム上で使用するViewerコントロールの外観をカスタマイズできます。詳細は、「Viewerコントロールのカスタマイズ」を参照してください。

Viewerのツールバーにコントロールを追加する

Viewerのツールバーにコントロールを追加するには、「Viewerコントロールのカスタマイズ」を参照してください。

Viewerコントロールの表示内容をクリアする

空のSectionDocumentオブジェクトをLoadDocumentメソッドで読み込むことで、Viewerコントロールにセットされているレポートをクリアし、レポートが読み込まれていない状態にすることができます。

Visual Basic

Visual Basicコード
コードのコピー
Private Sub Button1_Click(...) Handles Button1.Click
   Me.Viewer1.LoadDocument(New GrapeCity.ActiveReports.Document.SectionDocument)
End Sub
 

C#

C#コード
コードのコピー
private void button1_Click(object sender, System.EventArgs e)
 {
   this.viewer1.LoadDocument(new GrapeCity.ActiveReports.Document.SectionDocument());
 }
 
メモ: この方法は、Viewerコントロール上に表示されているレポートがページレポート/RDLレポートの場合でも有効です。

Viewer.Printメソッドを使用すると、例外が発生する

レポートが完全にロードされていないタイミングでViewerクラスのPrintメソッドを使用して印刷処理を行うと、例外が発生します。この例外を回避するには、LoadCompletedイベントで印刷を実行してください。

WPF プロジェクトでツールボックスにWPFビューワが表示されない

Visual Studioにおいて、新規プロジェクトにMESCIUS.ActiveReports.Viewer.Wpf.jaパッケージを追加すると、ツールボックスにWPFビューワが表示されません。

これは、Visual Studioの制限であり、XAML ホットリロードが正しく機能しないことに関連して発生します。

この事象を回避するには、次のようにXAML ホットリロードを有効にしてください。

  1. [デバッグ]メニューの[オプション]から[全般]を選択します。
  2. [XAML の UI デバッグツールを有効にする]および[XAML ホットリロードを有効にする]のオプションを選択します。
  3. MainWindow.xamlを開きます。ツールバーに[WPFビューワ]タブが表示されます。

詳細については、「XAML ホット リロードのトラブルシューティング」を参照してください。

ASP.NET Core MVCアプリケーションで実行されているJSビューワからページ/RDLレポートをエクスポートする時にエラーが表示される

.NET Coreデスクトップアプリでは、Windowsフォーム用ビューワまたはWPFビューワを使用してスクリプトを含むセクションレポートをプレビューする時、「System.NotSupportedException:1252のエンコードに使用できるデータはありません。」例外が発生します。カスタムエンコーディングを定義する方法については、Encoding.RegisterProviderメソッドを参照してください。

ASP.NET Core MVCアプリケーションで実行されているJSビューワからページレポートおよびRDLレポートをエクスポートする時に、エクスポートエラーが表示されます。

本現象は、ASP.NET Core MVCではいくつかの変更があって、同期サーバー操作が無効になっているから発生しています。詳細については、こちらを参照してください。

同期サーバー操作を有効にするには、次の内容をStartup.csに追加してください。

Startup.cs
コードのコピー
services.Configure<IISServerOptions>(options =>
{
    options.AllowSynchronousIO = true;
});
関連トピック