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において、新規プロジェクトにGrapeCity.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;
});
|
|