作成日: 2022/09/30 最終更新日: 2023/09/05
文書種別
使用方法
詳細
.NET Core および .NET (5/6) でActiveReportsを使用するとき、以下の点にご留意ください。
コード形式セクションレポートのデザイナは非対応
コード形式セクションレポート(.cs/.vb)のデザイナは.NET Coreおよび.NETに対応していません。
XML形式セクションレポート(.rpx)を使用するか、以下のヘルプトピックやブログ記事で紹介している方法のように.NET Frameworkのプロジェクトを利用してレポートを編集してください。
ActiveReports(セクションレポート)をASP.NET Core(Linux)で使用する(2)| GrapeCity.devlog
セクションレポートのレンダリングエンジンが.NET Frameworkと異なる
.NET Core および .NETでは、クロスプラットフォームに対応した新しいレンダリングエンジンがデフォルトで使用されます。これは .NET Frameworkで使用される旧来のレンダリングエンジン(GDI)とは異なるため、描画結果にも差異が発生する場合があります。
詳しくは以下のナレッジをご確認ください。
セクションレポートのCompatibilityModeプロパティについて
サポートされているエンコーディングが.NET Frameworkと異なる
.NET Core および .NET でサポートされているエンコーディング(文字コード)は .NET Framework と比較して少なくなっています。詳細は以下をご確認ください。
[CodePagesEncodingProvider Class (System.Text) | Microsoft Docs]
https://docs.microsoft.com/en-us/dotnet/api/system.text.codepagesencodingprovider
この差異が影響して以下のような問題が発生する場合があります。
-
バーコードを表示できない
Barcodeコントロールを含むレポートを描画するとき、以下の例外が発生します。
No data is available for encoding 932. For information on defining a custom encoding, see the documentation for the Encoding.RegisterProvider method.
-
GDIレンダリングのセクションレポートをPDFに出力できない
CompatibilityModeにGDIを設定したセクションレポートをPDFに出力するとき、以下の例外が発生します。
No data is available for encoding 1252. For information on defining a custom encoding, see the documentation for the Encoding.RegisterProvider method.
-
Shift-JISエンコーディングのCSVファイルを読み込めない
Shift-JISエンコーディングのCSVファイルをレポートのデータソースに設定している場合、文字化けが発生します。
上記のような問題が発生する場合は、レポートを描画する前にエンコーディングの登録処理を実行してください。
◆サンプルコード (C#)
System.Text.Encoding.RegisterProvider(System.Text.CodePagesEncodingProvider.Instance);
書式(Format)の適用結果が.NET Frameworkと異なる場合がある
.NET 5以降のバージョンでは、グローバリゼーション機能でICU (International Components for Unicode) が使用されます。そのため、従来のNLS (National Language Support) を使用している.NET Frameworkとは、書式の適用結果などに差異が生じる場合があります。
また、.NET Core 3.1の場合は、WindowsではNLS、Unix(Linux)ではICUが使用されるため、書式の適用結果が実行環境(OS)に依存します。
たとえば、日付データ(2022/01/01)を表示するTextBoxのFormatプロパティにMMMを設定したとき、それぞれ以下の結果になります。
.NET Framework | .NET Core 3.1 | .NET 5 / 6 | |
Windows | 1 | 1 | 1月 |
Linux | (実行不可) | 1月 | 1月 |
本動作はプラットフォームに依存した制限事項となります。
実際の運用環境にあわせた書式を設定するか、書式を使用せずに独自に文字列を加工する方法などをご検討ください。上記の例の場合、Month関数で月数(0埋めなし)を取得する方法などが有効です。
【参考情報】
.NET グローバリゼーションと ICU