SHOEISHA iD

※旧SEメンバーシップ会員の方は、同じ登録情報(メールアドレス&パスワード)でログインいただけます

CodeZine編集部では、現場で活躍するデベロッパーをスターにするためのカンファレンス「Developers Summit」や、エンジニアの生きざまをブーストするためのイベント「Developers Boost」など、さまざまなカンファレンスを企画・運営しています。

ComponentZine(MultiRow)(AD)

「MultiRow for Windows Forms」による、時系列データの表示に適した.NETアプリケーションの作成

PowerTools MultiRow for Windows Forms 8.0J のGcMultiRowコントロールを使ったWindowsフォームアプリケーションの作成

  • このエントリーをはてなブックマークに追加

1レコード複数列表示のデザイン

 GcMultiRowコントロールの特徴の一つに、1レコード複数列表示があります。

 複雑なデータを整理して表示したい時、データを複数の列に分けたい時があります。特に日本の帳票ではこの複数列表示を使っている場合が多いですね。GcMultiRowコントロールの複数列表示は、そのような日本の事情に合わせて、とても簡単に1レコード複数列表示を設定することができます。

 ここでは、テンプレートのレイアウトを変更し、白血球数の隣に赤血球数を表示します。テンプレートで複数列表示にするので、データはこのレイアウト通りにレコード数分繰り返して表示されます。

白血球数の隣に赤血球数を表示したレイアウト
白血球数の隣に赤血球数を表示したレイアウト

 (1)ソリューションエクスプローラで「Template1.cs」をダブルクリックします。テンプレートデザイナが起動し、テンプレートが表示されます。

ソリューションエクスプローラで「Template1.cs」をダブルクリック
ソリューションエクスプローラで「Template1.cs」をダブルクリック

 (2)ルーラーをドラッグし、「230」ピクセルまで広げます。

ルーラーをドラッグ
ルーラーをドラッグ

 (3)上から2行のヘッダセルを幅一杯までドラッグします。

ヘッダセルを幅一杯までドラッグ
ヘッダセルを幅一杯までドラッグ

 (4)ツールボックスからHeaderCellを白血球数の横にドラッグアンドドロップします。 そして、プロパティウィンドウでValueプロパティに「赤血球数」と入力します。

HeaderCellを白血球数の横にドラッグアンドドロップ
HeaderCellを白血球数の横にドラッグアンドドロップ
Valueプロパティに「赤血球数」と入力
Valueプロパティに「赤血球数」と入力

 (5)もともとあったヘッダ「赤血球数」の横にある「NmericUpDownCell」を、今配置したヘッダセルの横にドラッグします。これで、レコードのフィールドデータは連結したまま、表示を2列に変更できました。

「NmericUpDownCell」をヘッダセルの横にドラッグアンドドロップ
「NmericUpDownCell」をヘッダセルの横にドラッグアンドドロップ

 (6)オリジナルのヘッダ「赤血球数」を削除し、その下にある各項目のヘッダセルと数値入力セルを上にずらします。

オリジナルのヘッダ「赤血球数」を削除
オリジナルのヘッダ「赤血球数」を削除
各項目のヘッダセルと数値入力セルを上にずらす
各項目のヘッダセルと数値入力セルを上にずらす

 (7)残りの項目の数値入力セルを幅いっぱいにドラッグしてサイズを合わせます。

残りの項目の数値入力セルを幅いっぱいにドラッグ
残りの項目の数値入力セルを幅いっぱいにドラッグ

 (8)最後に、最下部の枠線をドラッグして最下行を消して出来上がりです。

最下部の枠線をドラッグして
最下部の枠線をドラッグして
最下行を消して出来上がり
最下行を消して出来上がり

 (9)もう一度アプリケーションを実行すると、白血球と赤血球のレコードデータが2列で表示されます。

アプリケーション実行画面
アプリケーション実行画面

 なお、赤血球数のヘッダセルのスタイルを他のヘッダセルに揃えたい場合は、次の手順でスタイルを変更することもできます。

 (1)テンプレートのデザイン画面で赤血球数のHeaderCellをクリックし、選択状態にします。

 (2)プロパティウィンドウでFlatStyleプロパティをFlatにします。

 (3)HeaderCellのStyleプロパティをNamed Styleにします。

 (4)Styleプロパティを展開し、CellStyleNameプロパティの値欄のリストから「HeaderCellStyle1」を選びます。このような操作で、ヘッダセルのスタイルを統一させることができます。

CSV形式のファイルにエクスポートする処理

 最後に、フォームのデザインを整え、グリッドデータをCSV形式のファイルにエクスポートする処理を作成します。

 今回は、データ全てをCSVファイルに保存します。

 この処理はとても簡単で、まずフォームにSaveFileDialogコントロールとButtonコントロールを配置します。そして、ButtonコントロールのClickイベントハンドラで、GcMultiRowコントロールのSaveTextFileメソッドを実行するだけです。

 CSV形式で保存できれば、たとえばMicrosoft Excelなどでデータを見ることができます。

Visual Basic
Private Sub Button1_Click(sender As System.Object, e As System.EventArgs) Handles Button1.Click
    Dim fname As String = ""
    SaveFileDialog1.Filter = "CSV File|*.csv"

    If (SaveFileDialog1.ShowDialog()) = Windows.Forms.DialogResult.OK Then
        fname = SaveFileDialog1.FileName
        GcMultiRow1.SaveTextFile(fname)
    End If
End Sub
C#
private void button1_Click(object sender, EventArgs e)
{
    String fname = "";

    saveFileDialog1.Filter = "CSV File|*.csv";
    if(saveFileDialog1.ShowDialog() == System.Windows.Forms.DialogResult.OK)
    {
        fname = saveFileDialog1.FileName;
        gcMultiRow1.SaveTextFile(fname);
    }
}
アプリケーション完成画面
アプリケーション完成画面
保存されたCSV形式のデータをExcelで開く
保存されたCSV形式のデータをExcelで開く

まとめ

 GcMultiRowコントロールは、複雑な形式の日本の帳票を作成するアプリケーションにぴったりのコントロールです。今回は取り上げませんでしたが、セルの入力規則や装飾機能、スタイル設定にマージやセル幅の自動調節機能など、帳票をデザインするのに必要な、かつプログラマの労力を補助してくれる多くの優秀な機能を持っています。

 そのような中、限られた誌面の中でデータ連結とレコードの水平展開機能、CSVファイルへのエクスポート機能を取り上げて紹介しました。特に時系列データの表示については水平方向にデータを並べたほうがよりわかりやすいデータ表現になりますから、GcMultiRowコントロールの列方向へのデータ展開機能はとても適した機能といえます。また、アプリケーションの作成でも紹介したように、水平方向へのデータ展開がウィザードなどを使って簡単に実装できる点も、開発サイドの負担軽減につながると言えるでしょう。

 もし帳票作成アプリケーションの設計にお悩みでしたら、GcMultiRowコントロールをアプリケーションに加えてみてはいかがでしょうか。

この記事は参考になりましたか?

  • このエントリーをはてなブックマークに追加
ComponentZine(MultiRow)連載記事一覧

もっと読む

この記事の著者

瀬戸 遥(セト ハルカ)

8ビットコンピュータの時代からBASICを使い、C言語を独習で学びWindows 3.1のフリーソフトを作成、NiftyServeのフォーラムなどで配布。Excel VBAとVisual Basic関連の解説書を中心に現在まで40冊以上の書籍を出版。近著に、「ExcelユーザーのためのAccess再...

※プロフィールは、執筆時点、または直近の記事の寄稿時点での内容です

【AD】本記事の内容は記事掲載開始時点のものです 企画・制作 株式会社翔泳社

この記事は参考になりましたか?

この記事をシェア

  • このエントリーをはてなブックマークに追加
CodeZine(コードジン)
https://codezine.jp/article/detail/9049 2015/11/16 16:37

おすすめ

アクセスランキング

アクセスランキング

イベント

CodeZine編集部では、現場で活躍するデベロッパーをスターにするためのカンファレンス「Developers Summit」や、エンジニアの生きざまをブーストするためのイベント「Developers Boost」など、さまざまなカンファレンスを企画・運営しています。

新規会員登録無料のご案内

  • ・全ての過去記事が閲覧できます
  • ・会員限定メルマガを受信できます

メールバックナンバー

アクセスランキング

アクセスランキング