Windows上で実行するアプリを開発する場合、今は Visual Studio 2022を使い .Net Core系統(.NET 7.0)のプロジェクトで実装することになりますが、.Net Core系統のプロジェクトでは ActiveReportsのレポートデザイナは使えない為、レポートデザイナ用に .Net Framework系統のプロジェクトを別途設ける必要があります。その際の手順をまとめました。
ソースコードは GitHub で公開しています。
GitHub で公開しているソースコードを実行するには、ローカルに GrapeCity ActiveReports for .NET 16.0J がインストールされている必要があります。
Visual Studio プロジェクト作成
レポートデザイナ編集用に .Net Framework系統のプロジェクトを作成
セクションレポートのデザイン変更のみ行うプロジェクト。
.Net Coreアプリとしてはリリース対象外のプロジェクト。
「ActiveReports 16.0J のセクションレポートアプリケーション」を選択。
プロジェクト作成後の状態。
リリース用に .Net Core系統のプロジェクトを作成
セクションレポートアプリケーションのリリース用プロジェクト。
.Net Core 系統から今回は「Windowsフォームアプリ」を選択。
プロジェクト作成後の状態。
ActiveReports Nugetパッケージをインストール
.Net Core系統のプロジェクトにセクションレポートを追加し、ActiveReports に関連する Nugetパッケージをインストールします。
ActiveReportsの Nugetパッケージをインストールするためだけに追加した SectionReport1.csは不要なので削除します。
SectionReport1.cs削除後の状態。
警告
ActiveReportsは .Net Core系統のプロジェクトに完全な互換性は無いため、NU1701警告が出力されますが問題無く実行できるので無視して構いません。
1 2 3 4 |
警告 NU1701 パッケージ 'GrapeCity.ActiveReports.Serializer.VS2022.ja 16.1.0' はプロジェクトのターゲット フレームワーク 'net7.0-windows7.0' ではなく '.NETFramework,Version=v4.6.1, .NETFramework,Version=v4.6.2, .NETFramework,Version=v4.7, .NETFramework,Version=v4.7.1, .NETFramework,Version=v4.7.2, .NETFramework,Version=v4.8, .NETFramework,Version=v4.8.1' を使用して復元されました。このパッケージは、使用しているプロジェクトとの完全な互換性がない可能性があります。 WinFormsApp1 警告 NU1701 パッケージ 'Microsoft.VisualStudio.DpiAwareness 6.1.28916' はプロジェクトのターゲット フレームワーク 'net7.0-windows7.0' ではなく '.NETFramework,Version=v4.6.1, .NETFramework,Version=v4.6.2, .NETFramework,Version=v4.7, .NETFramework,Version=v4.7.1, .NETFramework,Version=v4.7.2, .NETFramework,Version=v4.8, .NETFramework,Version=v4.8.1' を使用して復元されました。このパッケージは、使用しているプロジェクトとの完全な互換性がない可能性があります。 WinFormsApp1 |
セクションレポート作成
セクションレポートを編集
「ActiveReports 16.0J のセクションレポートアプリケーション」はデフォルトでセクションレポートファイルが1つ(SectionReport1.cs)作成されているので、今回はそれを利用。
ツールボックスの「ActiveReports 16 セクション > TextBox」をデザイナへドラッグし、セクションレポートにTextBox欄を1つ追加。
TextBox欄に任意の値を設定するコードを追加。
1 2 3 |
textBox1.Text = "test1"; |
レポートデザイナ編集用プロジェクトをデバッグ実行した場合
レポートデザイナ編集用プロジェクトをデバッグ実行することで、任意の値がTextBox欄に表示されていることを確認できる。
.Net Core系統のプロジェクにセクションレポートを追加
レポートデザイナ編集用プロジェクト側で作成したセクションレポートを、.Net Core系統のプロジェクト側へリンクで追加する。
リンクとして追加することで、セクションレポートの実体が複数のプロジェクトに分かれることはなく、レポートデザイナ編集用プロジェクト側で編集した内容を、.Net Core系統のプロジェクト側へ即反映することができる。
「リンクとして追加」を行った後の状態。
.Net Core系統のプロジェクト側でセクションレポートを開いた場合
.Net Core系統のプロジェクト側でセクションレポートを開いてもレポートデザイナは表示されず、コードビハインドのソースコードが表示されます。
.Net Core系統のプロジェクにレポートビューアーを作成
.Net Core系統のプロジェクト側でWindowsフォームを開き、ツールバーの「ActiveReports 16 > GrapeCity.ActiveReports.Viewer.Win.Viewer」をWindowsフォームへドラッグし貼り付けます。
Windowsフォームに追加したViewerへ、セクションレポートの実装を読込む処理を追加。
1 2 3 |
viewer1.LoadDocument(new SectionReport1()); |
.Net Core系統のプロジェクトをデバッグ実行した場合
レポートデザイナ編集用プロジェクトと同様に、セクションレポートを.Net Core系統のプロジェクトでもデバッグ実行できます。
こちらをリリース用プロジェクトとして使用します。
関連記事
GrapeCity ActiveReports for .NET 16.0J のセクションレポート(SectionReport) 開発手順 v1
GrapeCity ActiveReports for .NET 16.0J のセクションレポート(SectionReport) 開発手順 v2
GrapeCity ActiveReports for .NET 16.0J のセクションレポート(SectionReport) 開発手順 v3
GrapeCity ActiveReports for .NET 16.0J のセクションレポート(SectionReport) 開発手順 v4
GrapeCity ActiveReports for .NET 16.0J のセクションレポート(SectionReport) 開発手順 v5
GrapeCity ActiveReport よく使う機能
GrapeCity.ActiveReports.SectionReportの CanGrow/CanShrinkプロパティを使う場合
ActiveReports開発でデザイナが「値を Null にすることはできません。パラメーター名:instance」エラーになる場合
コメント