今回紹介するコンポーネント
本記事では以下のコンポーネントを紹介します。
MultiRow for Windows Forms
MultiRowは、複雑な構造の表が作成できるコンポーネントです。日本の入力フォームに見られがちな、1レコード複数行などの表示形式にも対応しています。日本語入力に強いInputMan相当のセルを備えている点もポイントです。
CalendarGrid for Windows Forms
CalendarGridは、和暦などの日本の仕様に対応したカレンダーを作成できるコンポーネントです。MultiRow同様にInputMan相当のセルを備えています。
JPAddress for .NET
JPAddressは、日本の住所入力支援機能を提供するコンポーネントです。郵便番号からの住所入力や、住所からの郵便番号検索など高速な住所情報の入力を可能にします。
ActiveReports for .NET
ActiveReportsは、帳票出力の機能を提供するコンポーネントです。アプリケーションに複雑な帳票機能を追加することができます。
対象読者
Visual Studioを利用してアプリケーションを作成した経験がある、またはC#、Visual Basicなどの.NET系言語での開発経験がある方。
必要な環境
MultiRow、CalendarGrid、JPAddressを利用するには以下の環境が必要となります。
- Visual Studio 2010/2012/2013/2015 日本語版
- .NET Framework 3.5 SP1/3.5 Client Profile/4/4 Client Profile/4.5/4.5.1/4.5.2/4.6/4.6.1/4.6.2
ActiveReportsを利用するには以下の環境が必要となります。
- Visual Studio 2010/2012/2013/2015 日本語版
- .NET Framework 3.5 SP1/3.5 Client Profile/4.5.2/4.6/4.6.1/4.6.2
本記事はVisual Studio Enterprise 2015、.NET Framework 4.6環境で画像キャプチャーの取得、動作検証を行っております。
コンポーネントのインストール
各種コンポーネントのインストール方法については以下の記事を参照ください。
MultiRow for Windows Forms
CalendarGrid for Windows Forms
JPAddress for .NET
ActiveReports for .NET
ActiveReports for .NETのインストールについては、これまでの記事で紹介していなかったので、ここに掲載します。
ActiveReports for .NETの導入について、トライアル版を例に紹介します。
作業途中のライセンス入力で正式版のライセンスを入れるか、トライアル版用として提供されたライセンスキーを入力するかの違いを除けば同じ方法で導入できます。
トライアル版の申し込み
ActiveReports for .NET 11.0Jのページを開きます。
「トライアル版」のボタンをクリックすると「トライアル版申込フォーム」が表示されるので、フォームに必要な情報を記入し、申し込みを完了します。
トライアル版情報の受信
申し込みが完了するとまもなく、申込時に申請したメールアドレスにトライアル版のダウンロードURLと、トライアル用のプロダクトキーが記されたメールが届きます。
メールに記されたURLからトライアル版のファイルをダウンロードしてください。
トライアル版のインストール
ダウンロードしたトライアル版を解凍し、インストーラーを起動します(本記事執筆時点のインストーラーのファイル名は「ActiveReportsNET11_11.0.9393.1.exe」です)。
「使用許諾契約書に同意する」にチェックを入れると、「インストール」ボタンが有効になるので、クリックします。
インストールが完了すると、下記画像の画面になりますので、初めてのインストール時は「ライセンス認証マネージャーを起動する」にチェックを入れて「閉じる」ボタンをクリックします。
ライセンス認証を行う
PowerToolsライセンス認証マネージャーが起動するので、ActiveReports for .NET 11.0Jの欄の「認証手続き」をクリックします。
メールで送られてきたプロダクトキーを入力して「認証」ボタンをクリックします。
「認証処理が完了しました。」と表示されれば認証作業は終了です。
コントロールの追加
利用したいコントロールがツールボックスに表示されていない場合の追加方法を紹介します。
今回のように別途インストールした製品のコントロールは紹介するような追加作業が必要な場合があります。
Visual Studioの上部メニューから「ツール」→「ツールボックスアイテムの選択」をクリックします。
「.NET Framework コンポーネント」タブを選択し、必要なコントロールにチェックを入れ、右下の「OK」ボタンをクリックすることでツールボックスにコントロールが追加されます。
今回はViewerコントロールにチェックを入れて追加します。
MultiRow for Windows Forms
柔軟なカスタマイズに対応したセル編集
MultiRowは日本の表によくある1レコード複数行のデータ表示をエクセルライクな編集操作で実現できます。
表示するデータは垂直方向だけでなく、水平方向への表示にも対応しています。
これらはコードを記述せずに、Visual Studioのデザイナー画面から編集可能です。
InputManやPlusPakの機能を利用できるセル
更にMultiRowの各セルには、標準のコントロールや別製品のInputManやPlusPakの機能を持ったセルを追加料金なしに利用できます。
GcDateTimeCellに和暦を表示する
GcDateTimeCellの表示形式を、和暦に変更する方法を紹介します。
和暦に変更する方法は公式の以下のURLに記載されているため、ここでは引用と補足を行います。
- 参考:「キーワードによる書式設定」(製品ヘルプ)
GcMultiRowのテンプレートにGcDateTimeCellを利用しているものとします。
テンプレートを編集する
GcMultiRowのテンプレートを変更した場合、Template1.csという名前のTemplateクラスを拡張したクラスが作成され、ソリューションエクスプローラーに追加されています。
拡張されたクラスを確認するとGcDateTimeCell型の変数が存在しています。
private GrapeCity.Win.MultiRow.TextBoxCell textBoxCell40; private GrapeCity.Win.MultiRow.RowHeaderCell rowHeaderCell1; private GrapeCity.Win.MultiRow.TextBoxCell textBoxCell39; private GrapeCity.Win.MultiRow.InputMan.GcDateTimeCell gcDateTimeCell1;
Template1クラスのコンストラクタに以下の記述を追加します。
public Template1() { InitializeComponent(); // フィールドをクリアします。 gcDateTimeCell1.Fields.Clear(); gcDateTimeCell1.DisplayFields.Clear(); // キーワードから書式を設定します。 gcDateTimeCell1.Fields.AddRange("yyyy年 MM月 dd日 HH時 mm分 ss秒"); gcDateTimeCell1.DisplayFields.AddRange("ggg ee年 MM月 dd日 HH時 mm分 ss秒"); }
プログラムを実行するとGcDateTimeCellの値を変更した際に和暦が表示されます。
新しい元号への対応方法について
2019年元日から新しい元号への変更が予定されています。グレープシティ製品での新しい元号への対応方法については、下記のナレッジベースをご参照ください(一部報道によるものであり、記事執筆時点での政府の正式発表はありません)。
CalendarGrid for Windows Forms
CalendarGridはグリッド上に日付を表示する機能を備えたコンポーネントです。
そのコンポーネント名から、カレンダー機能が欲しい場合に利用するコンポーネントと思われがちですが、柔軟なグリッド編集機能はMultiRowのような複雑な表示が可能です。もちろん、カレンダーとしても利用できます。
六曜、和風月名などの日本独自の表現に対応
六曜の表示
六曜の表示は、CalendarGridのデザイナーからDataFormatの項目を{Rokuyou}にすることで表示できます。CalendarGridのデフォルトテンプレートにも六曜表示のセルがありますので、そちらを利用しても構いません。
和風月名の表示
和風月名の表示方法はCalendarGridの公式ドキュメントに記載してありますので、導入方法を簡単に解説します。詳しくは以下のURLを参考にしてください。
- 参考:「和風月名」(製品ヘルプ)
イベントの設定
Form1のLoadイベントハンドラーを用意します。ここでは「Form1_Load」という名前にします。
続いて画面に配置したGcCalendarGridコントロールのFirstDateInViewChangedイベントハンドラーを設定します。FirstDateInViewChangedはFirstDateInViewプロパティが変更された際に呼び出されるイベントハンドラーです。
コードの修正
続いてForm1.csを以下のように修正します。これは上記URLに掲載されているコードです。
public partial class Form1 : Form { public Form1() { InitializeComponent(); } private void Form1_Load(object sender, EventArgs e) { int month = gcCalendarGrid1.FirstDateInView.Month - 1; UpdateJapaneseMonthName(month); gcCalendarGrid1.FirstDateInViewChanged += gcCalendarGrid1_FirstDateInViewChanged; } private void gcCalendarGrid1_FirstDateInViewChanged(object sender, EventArgs e) { var gcCalendarGrid = sender as GcCalendarGrid; int month = gcCalendarGrid.FirstDateInView.Month - 1; UpdateJapaneseMonthName(month); } private void UpdateJapaneseMonthName(int month) { var japaneseMonthNames = "睦月,如月,弥生,卯月,皐月,水無月,文月,葉月,長月,神無月,霜月,師走".Split(','); var japaneseMonthNamesReading = "むつき,きさらぎ,やよい,うづき,さつき,みなづき/みなつき,ふみづき/ふづき,はづき/はつき,ながつき/ながづき,かんなづき,しもつき,しわす".Split(','); CalendarTitleCaption titleCaption = gcCalendarGrid1.TitleHeader.Children["calendarTitleCaption1"] as CalendarTitleCaption; titleCaption.Text = string.Format("{0} ({1})", japaneseMonthNames[month], japaneseMonthNamesReading[month]); } }
プログラムを実行すると下画像のように月の項目が弥生などの和風月名に変更されます。
JPAddress for .NET
JPAddressはコンポーネント名の通り、日本の住所入力に特化したコンポーネントです。
JPAddressは郵便番号や住所検索の機能を提供するライブラリであり、入力フォームで利用するためにはInputManやMultiRowと組み合わせて利用します。MultiRowに組み合わせるというのは、MultiRowのGcPostalCellなどのInputMan互換のセルで利用できることを意味します。
JPAddressとInputManの連携については以下の記事を参考いただくとして、ここではJPAddressで実現できる機能の一覧を紹介します。
- 参考:「JPAddressを用いて、さらに優れた住所入力フォームを作成しよう」(CodeZine)
検索機能
- 郵便番号から住所情報を検索
- 大口事業所個別番号から住所情報を検索
- 住所から郵便番号を取得
- 大口事業所名から郵便番号を検索
- 大口事業所名の仮名情報から郵便番号を検索
- 全国地方公共団体コードから都道府県名や市区町村名を検索
- 市外局番から住所検索を検索
- 住所からカスタマバーコードへの変換
辞書ファイル
- 郵便番号検索用辞書(KEN_ALL.dat)
- 大口事業所個別番号用辞書(JIGYOUSHO.dat)
- 市外局番辞書(shigai_list.dat)
注
製品に含まれる辞書ファイルは製品の発売時点のものです。辞書更新サービスを契約すると最新の辞書データを利用できます。
ActiveReports for .NET
ActiveReportsは帳票の出力をサポートするコンポーネントです。
帳票といっても業務の手続きに関する書面から、注文書や経理の書類など、アプリケーションによって出力するものはさまざまです。そのため、開発する側もそれにあわせて帳票を作成する必要があり、どうしても流用が難しい部分でもあります。ActiveReportsを利用すれば、積み重ねてきたノウハウや機能を利用して帳票作成の工数を削減することが可能になります。
3種類のレイアウト方法
ActiveReportsは複数の方式で帳票の見た目を定義することができます。この仕様はさまざまな帳票の要望に応えるために生まれたものです。
セクションレポート
リスト系のデータソースを元に、大量のデータを一覧表示するような帳票に適したレイアウト方式です。データ量により表示するページなどが異なるため、ページ数などは可変になります。
ページレポート
1ページに表示するデータを明確に定義する方法です。そのため紙の帳票を見た目通り移植するような場合に、レイアウト通りの表示ができるため適している方法です。日本の紙ベースの帳票をデジタル化する場合に一番適した方式です。
RDLレポート
複数のデータソースを用いて、自由にレイアウトできる方式です。レポート系で複数のデータソースを組み合わせて帳票を作成したい場合などに適しているでしょう。
日本仕様への対応
ActiveReportsを用いた帳票は、縦書きや禁則処理などの柔軟な日本語表示に対応しています。
また、Excelからのインポートをサポートしているため、これまで業務で利用していたExcelベースの帳票を容易にインポートすることができます。
作成したデータの出力形式もPDF、Excel、TIFFなどさまざまな形式に対応しています。
まとめ
いくつかの拡張の実例を交えながら、グレープシティ社のコンポーネントの日本独自の仕様に強い点を紹介してきました。
拡張の例からもわかるように、これらコンポーネントは標準の機能に加え、柔軟な拡張性を備えている点もポイントの1つです。
日本で、日本語を使用し、日本の文化を踏まえた使いやすいアプリケーションを作成する一助になれば幸いです。