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に変更します。
2. 32ビットのみを使用するようにプロジェクト設定を変更します。
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.Printメソッドを使用すると、例外が発生する
レポートが完全にロードされていないタイミングでViewerクラスのPrintメソッドを使用して印刷処理を行うと、例外が発生します。この例外を回避するには、LoadCompletedイベントで印刷を実行してください。
WPF プロジェクトでツールボックスにWPFビューワが表示されない
Visual Studioにおいて、新規プロジェクトにMESCIUS.ActiveReports.Viewer.Wpf.jaパッケージを追加すると、ツールボックスにWPFビューワが表示されません。
これは、Visual Studioの制限であり、XAML ホットリロードが正しく機能しないことに関連して発生します。
この事象を回避するには、次のようにXAML ホットリロードを有効にしてください。
詳細については、「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;
});
|