.Net Framework系統のプロジェクトで作成したActiveReportsのセクションレポートを、.Net Core系統のプロジェクトで使用する前回作成したサンプルに、.Net Core側のWindowsフォーム画面から入力した値を、セクションレポートへ表示するように改良しました。
ソースコードは GitHub で公開しています。
レポートデザイナ編集用 .Net Framework系統のプロジェクト
ソースコード変更内容を解説。
SectionReportApplication1/DataModel1.cs
・セクションレポートのTextboxに動的な値を表示するにあたり、処理を簡素化するために DataModel1データクラスを追加。
1 2 3 4 5 6 7 8 9 |
namespace SectionReportApplication1 { public class DataModel1 { public string Text1 { get; set; } } } |
SectionReportApplication1/Form1.cs
・不要な usingを削除。
・セクションレポートのTextboxに動的な値を表示するようにしたので、Windowsフォームから DataModel1データクラスをセクションレポートへ渡すように変更。
1 2 3 4 5 6 7 8 |
var DataModel1 = new DataModel1 { Text1 = "test" }; viewer1.LoadDocument(new SectionReport1(DataModel1)); |
SectionReportApplication1/SectionReport1.cs
セクションレポートのTextBoxに表示する値を固定文字列から、コンストラクタのパラメータから受け取った DataModel1データクラスの Text1メンバ変数へ変更。
1 2 3 4 5 6 7 8 9 10 11 12 |
public SectionReport1(DataModel1 dataModel1) { // // デザイナー サポートに必要なメソッドです。このメソッドの内容を // InitializeComponent(); textBox1.Text = dataModel1.Text1; } |
SectionReportApplication1/SectionReportApplication1.csproj
・.Net Frameworkのバージョンを、v4.7.2から最新のv4.8へアップ。
・DataModel1データクラスのソースファイルは、「レポートデザイナ編集用 .Net Framework系統のプロジェクト」側で新規作成。
※DataModel1データクラスは「レポートデザイナ編集用 .Net Framework系統のプロジェクト」と「リリース用 .Net Core系統のプロジェクト」とで、同じソースファイルを使います。
1 2 3 4 5 6 7 |
<TargetFrameworkVersion>v4.8</TargetFrameworkVersion> <Compile Include="DataModel1.cs" /> <DesignTime>True</DesignTime> |
リリース用 .Net Core系統のプロジェクト
ソースコード変更内容を解説。
/WinFormsApp1/Form2.cs Form2.Designer.cs Form2.resx
・入力画面を新規作成。
・「button1」ボタンをクリックすると、入力された値が表示されるレポートビューア画面を起動する。
・入力された値は DataModel1データクラスに保持し、DataModel1データクラスをレポートビューア画面へ渡している。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 |
using SectionReportApplication1; namespace WinFormsApp1 { public partial class Form2 : Form { public Form2() { InitializeComponent(); } private void button1_Click(object sender, EventArgs e) { var dataModel1 = new DataModel1 { Text1 = textBox1.Text }; var form1 = new Form1(dataModel1); form1.ShowDialog(); } } } |
/WinFormsApp1/Form1.cs
・レポートビューア画面では、コンストラクタのパラメータから受け取った DataModel1データクラスを、セクションレポートへ渡すように変更。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 |
private DataModel1 _DataModel1; public Form1(DataModel1 dataModel1) { _DataModel1 = dataModel1; InitializeComponent(); } private void Form1_Load(object sender, EventArgs e) { viewer1.LoadDocument(new SectionReport1(_DataModel1)); } |
/WinFormsApp1/Program.cs
・入力画面からレポートビューア画面を呼び出す流れに変えたので、アプリケーション起動時に表示する画面は、レポートビューア画面から入力画面へ変更。
1 2 3 |
Application.Run(new Form2()); |
/WinFormsApp1/WinFormsApp1.csproj
・「レポートデザイナ編集用 .Net Framework系統のプロジェクト」側で作成した DataModel1データクラスを、「リリース用 .Net Core系統のプロジェクト」側ではリンクとして追加し参照として組み込んでいる。
1 2 3 |
<Compile Include="..\SectionReportApplication1\DataModel1.cs" Link="DataModel1.cs" /> |
関連記事
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」エラーになる場合
コメント