CodeZine(コードジン)

特集ページ一覧

データベースのデータを小計つきで表示する.NETアプリケーションを作る

「PowerTools ComponentOne Studio 2012J」のC1FlexGridコントロールを使った.NETアプリケーションの作成

  • ブックマーク
  • LINEで送る
  • このエントリーをはてなブックマークに追加
2012/11/15 14:00
目次

ノードの部分展開

 アウトラインツリー表示を設定した場合、デフォルトではプログラム実行時はすべてのツリーが展開した状態で表示されます。

デフォルトではすべてのツリーが展開した状態で表示される
デフォルトではすべてのツリーが展開した状態で表示される

 これを指定した階層レベル以下を折りたたみ、それより上位のレベルを展開するように設定することも可能です。これは、GridTreeクラスのShowメソッドを使用します。メソッドの引数には表示するレベルを数値で指定し、これより下位のLevelのノードは折りたたまれ、上位のレベルのノードは展開されます。

 次のコードは、最初のツリーレベルだけを展開し、2番目以下のレベルは折りたたむように指定しています。

Visual Basic
C1FlexGrid1.Tree.Show(1)
C#
c1FlexGrid1.Tree.Show(1);
最初のツリーレベルだけを展開
最初のツリーレベルだけを展開

列幅の自動調整

 デフォルトでは、列幅はグリッドのデザイン時のサイズのままになっていますから、データのサイズに関係なく表示されてしまいます。これだとデータの表示が途中で途切れたり、スクロールしないと表示されない状態になってしまいます。データを見るたびに、ユーザーが列幅を調整したりスクロールしたりと面倒です。

デフォルトでは列幅はデータに関係なく設定されてしまう
デフォルトでは列幅はデータに関係なく設定されてしまう
ツリーを展開しても列幅はそのまま
ツリーを展開しても列幅はそのまま

 小計やツリーの展開・縮小などを行った際に、列幅をセル内容に合わせて自動調節するように設定しておくと、表が見やすくなります。

 この処理を行うには、1つはC1FlexGridコントロールのAutoResizeプロパティをTrueにセットします。これで、列幅の自動調節が可能になります。

Visual Basic
C1FlexGrid1.AutoResize = True
C#
c1FlexGrid1.AutoResize = true;

 データベースからデータを読み込む前にこのプロパティをTrueにしておくと、グリッドの列幅は読み込んだデータに合わせて調節されます。

 ただし、これはデータを読み込んだ時にだけ実行されますので、小計やアウトラインツリーを展開・縮小した時にも列幅の自動調節を行うには、AutoSizeColsメソッドを実行します。このメソッドを実行するとその時点ですべての列幅を自動調節してくれます。

Visual Basic
C1FlexGrid1.AutoSizeCols()
C#
c1FlexGrid1.AutoSizeCols();

 アウトラインツリーを展開・縮小すると、C1FlexGridコントロールにはAfterCollapseイベントが発生しますので、このイベントハンドラを使うとツリーの展開・縮小のタイミングに合わせて、列幅を自動調節することができます。

Visual Basic
Private Sub C1FlexGrid1_AfterCollapse(sender As System.Object, e As C1.Win.C1FlexGrid.RowColEventArgs) Handles C1FlexGrid1.AfterCollapse
    'ツリーの展開・縮小のたびに列幅の自動調整を行う
    C1FlexGrid1.AutoSizeCols()
End Sub
C#
private void c1FlexGrid1_AfterCollapse(object sender, RowColEventArgs e)
{
    //ツリーの展開・縮小のたびに列幅の自動調整を行う
    c1FlexGrid1.AutoSizeCols();
}

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

著者プロフィール

  • 瀬戸 遥(セト ハルカ)

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

バックナンバー

連載:ComponentZine(ComponentOne Studio)

もっと読む

All contents copyright © 2005-2020 Shoeisha Co., Ltd. All rights reserved. ver.1.5