.NET帳票コンポーネント「ActiveReports for .NET(アクティブレポート)」の最新バージョン「16.0J」では、セクションレポートで「PDFフォーム」を作成することができる InputFieldText、InputFieldCheckBoxコントロールが追加されました 。
「PDFフォーム」はこれまでページ/RDLレポートのInputFieldコントロールを使用することで作成可能でしたが、今回セクションレポートでも作成できるようになりました。
今回の記事では、セクションレポートに新たに追加されたコントロールを使用し「PDFフォーム」を作成する方法について解説していきます。
※ InputFieldTextコントロール、InputFieldCheckBoxコントロール、InputFieldコントロールはProfessionalエディション限定の機能です。
目次
開発環境
今回使用する開発環境は以下の通りです。
- OS:Windows 11(22H2)
- IDE:Visual Studio 2022(Version 17.5.3)
- フレームワーク: .NET Framework 4.8.1
ActiveReportsは「16.0J SP1(v16.1.0.0)」を使用します。こちらもあらかじめ製品版、またはトライアル版をインストールしてください。トライアル版は無料で以下より入手可能です。
Windows Formsプロジェクトの作成
まずはVisual Studioを開きWindows Formsのプロジェクトを作成します。ActiveReportsが提供するプロジェクトテンプレートを使用すると、Viewerコントロールを組み込んだフォームと、レポートファイルが最初から追加された状態から開発を開始できるので、今回はそちらを使用します。「ActiveReports 16.0J セクションレポート アプリケーション」のプロジェクトテンプレートを選択します。
プロジェクト名等を入力して進むと、セクションレポートのレポートファイルや、ビューワが配置されたフォームなどがすでに追加された状態のプロジェクトが作成されます。
PDFフォームをセクションレポートで作成
セクションレポートで「PDFフォーム」を作成する為には、以下の2種類のInputFieldコントロールを使用します。今回は、以下の2種類のコントロールを使用しアンケート形式のレポートを作成したいと思います。
コントロール種類 | 使用用途 |
---|---|
InputFieldText | PDF上でテキストを入力する為のコントロール |
InputFieldCheckBox | PDF上でチェックボックスをチェックする為のコントロール |
上記の他に、InputFieldコントロールを使用可能とするために以下のように「CompatibilityMode」プロパティを「CrossPlatform」に変更する必要があります。
レポートデザイン
ソリューションエクスプローラーから「SectionReport1.cs」を右クリック⇒「デザイナーの表示」でデザイナを開き、以下のようにデザインを行います。
「detail」セクション内に設問となる「TextBox」、設問の回答選択を行う為の「InputFieldCheckBox」、選択肢に「その他」を選ばれた場合の回答入力欄として「InputFieldText」を配置します。
実行
デザインが終わり次第ビルド後デバック実行します。レポートプレビューが表示されます。
この画面ではPDF出力機能がありませんので、画面上にボタンを追加し機能を実装していきます。
フォームの変更
ソリューションエクスプローラーから「Form1.cs」を選択し、「Viewer」コントロールの配置を変更のうえ、ツールボックスより「Button」コントロールを追加します。
設定するプロパティ値は以下の通りです。
コントロール名 | プロパティ | 設定値 |
---|---|---|
viewer1 | Dock | None |
Anchor | Top, Bottom, Left, Right | |
Size | 1073, 506 | |
Location | 0, 45 | |
button1 | Text | PDF出力 |
PDF出力機能の実装
PDF出力機能を実装する為、「button1」コントロールをダブルクリックしイベント内に処理を実装していきます。
プロジェクトのコンテキストメニューから「NuGet パッケージの管理」を選択し、NuGetパッケージマネージャを開きます。「参照」タブを使って「GrapeCity.ActiveReports.Export.Pdf.ja」を検索のうえ「16.1.0」をインストールします。
※ 「GrapeCity.ActiveReports.Export.Pdf.ja」をNuGetから最新版を取得した場合、インストールしているActiveReportsとバージョンが合わなくなる場合があるため、今回は使用するバージョンに合わせ「16.1.0」をインストールします。
ソリューションエクスプローラより「Form1.cs」を選択し「コードの表示」を押し「button1」コントロールのクリックイベントを実装します。
private void button1_Click(object sender, EventArgs e)
{
//出力ファイルの初期値
var fileName = Path.GetFileNameWithoutExtension("SectionInputField");
//出力先フォルダダイアログ
var saveFileDialog = new SaveFileDialog()
{
FileName = fileName,
Filter = "files | *.pdf"
};
if (saveFileDialog.ShowDialog() != DialogResult.OK)
{
return;
}
//ボタンを使用不可に
button1.Enabled = false;
//PDFエクスポートオブジェクト作成
GrapeCity.ActiveReports.Export.Pdf.Section.PdfExport pdfExport = new GrapeCity.ActiveReports.Export.Pdf.Section.PdfExport();
//Fileストリーム作成
using (var stream = new FileStream(Path.Combine(saveFileDialog.FileName), FileMode.Create))
//PDFエクスポート実行(viewer1.Document内容を出力します)
pdfExport.Export(viewer1.Document, stream);
//ボタンを使用可能に
button1.Enabled = true;
}
PDF出力
コードを実装したら、デバック実行し[PDF出力]ボタンを押しPDF出力を行います。
出力したPDFを確認すると「InputFieldCheckBox」「InputFieldText」を配置した部分が入力可能となっています。
※ 作成したPDFはこちら
今回のレポートではチェックボックスのマークを「Check、Circle、Star」と設定しましたが、他のマークも設定することが可能です。
また、その他にも「InputFieldText」「InputFieldCheckBox」コントロールでは以下のような設定を行うことが可能です。
コントロール | プロパティ | 設定可能値 |
---|---|---|
InputFieldCheckBox | CheckStyle | チェックマークの種類を設定します。 Check、Circle、Cross、Diamond、Square、Star |
Checked | Trueにすると、デフォルトで、チェックした状態でPDFを表示します。 | |
CheckSize | チェックマークの大きさを設定します(例:8) | |
InputFieldText | MaxLength | 入力できる文字数を設定します(例:100) |
MultiLine | Trueにすると、複数行の入力ができます | |
Password | Trueにすると、入力した文字が、アスタリスク(* )で表示されます | |
SpellCheck | Trueにすると、スペルチェックします | |
共通 | Required | Trueにすると、入力必須になります(赤枠で表示します) |
PDFフォームをページレポートで作成する場合
ここまでに解説したセクションレポートに加え、ページ/RDLレポートでも「PDFフォーム」を作成することが可能です。
使用するコントロールは「InputField」となります。以下のように「InputField」コントロールの「InputType」プロパティを「CheckBox」や「Text」に切り替えることで、チェックボックスとテキストボックスを配置することが可能となります。
※ 作成したPDFはこちら
機能の活用シーン
この機能の活用シーンとしては、PDFを使用した取引先との連絡などが考えられます。
次の画像は発注書・発注請書などを想定したPDFです。
「InputFieldText」コントロールを使用した連絡欄を設けて、PDFに直接連絡事項を記入するという例となります。
※ 作成したPDFはこちら
さいごに
以上がセクションレポートで「PDFフォーム」を作成する基本的な方法でした。ActiveReports for .NET 16.0Jにはこの他にも多数の新機能が追加されていますので、是非詳細をWebサイトでご確認ください
製品の機能を手軽に体験できるデモアプリケーションやトライアル版も公開しておりますので、こちらもご確認ください。
また、ご導入前の製品に関するご相談、ご導入後の各種サービスに関するご質問など、お気軽にお問合せください。