SHOEISHA iD

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

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

現役エンジニア直伝! 「現場」で使えるコンポーネント活用術(SPREAD)

Accessのデータを一覧表示するアプリケーションの作成

SPREAD for .NET 2.5J Windows Forms EditionコンポーネントでAccessデータベースのデータを表示する

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

ソートとオートフィルタの設定

 列データをソートしたり、フィルタを設定したりしてデータ表示を絞り込む機能は、それぞれのプロパティをTrueかFalseに設定するだけで実現できます。

ソートの設定

 2つのCheckBoxを使い、列「メーカー名」と「製品名」のデータを並び替える機能を組み込みます。

 データのソートは、操作対象の列をColumnsオブジェクトで指定し、AllowAutoSortプロパティをTrueに設定します。ソート機能が組み込まれると、列見出しに△マークが付加されます。

 AllowAutoSortプロパティにFalseを指定すると、ソート機能が解除されます。

Visual Basic
Private Sub CheckBox1_CheckedChanged(ByVal sender As System.Object, _
       ByVal e As System.EventArgs) Handles CheckBox1.CheckedChanged
    If Me.CheckBox1.Checked = True Then
        FpSpread1.ActiveSheet.Columns(0).AllowAutoSort = True
    Else
        FpSpread1.ActiveSheet.Columns(0).AllowAutoSort = False
    End If
End Sub

Private Sub CheckBox2_CheckedChanged(ByVal sender As System.Object, _
        ByVal e As System.EventArgs) Handles CheckBox2.CheckedChanged
    If Me.CheckBox2.Checked = True Then
        FpSpread1.ActiveSheet.Columns(1).AllowAutoSort = True
    Else
        FpSpread1.ActiveSheet.Columns(1).AllowAutoSort = False
    End If
End Sub
Visual C#
private void CheckBox1_CheckedChanged(object sender, EventArgs e)
{
    if(CheckBox1.Checked == true){
        fpSpread1.ActiveSheet.Columns[0].AllowAutoSort = true;
    }else{
        fpSpread1.ActiveSheet.Columns[0].AllowAutoSort = false;
    }
}

private void CheckBox2_CheckedChanged(object sender, EventArgs e)
{
    if (CheckBox2.Checked == true)
    {
        fpSpread1.ActiveSheet.Columns[1].AllowAutoSort = true;
    }else{
        fpSpread1.ActiveSheet.Columns[1].AllowAutoSort = false;
    }
}

オートフィルタの設定

 フィルタ機能は、操作対象の列をColumnsオブジェクトで指定し、AllowAutoFilterプロパティをTrueに設定します。フィルタ機能が組み込まれると、列見出しにフィルタ用のアイコンが付加されます。

 AllowAutoFilterプロパティにFalseを指定すると、フィルタ機能が解除されます。

 また、FpSpreadクラスのGetRootWorkbookメソッドを使って、現在アクティブなSpreadViewオブジェクトを取得してSetImageメソッドを使うと、フィルタ実行前後のアイコンを好きなイメージに入れ替えることができます。

Visual Basic
Private Sub CheckBox3_CheckedChanged(ByVal sender As System.Object, _
         ByVal e As System.EventArgs) Handles CheckBox3.CheckedChanged
    If Me.CheckBox3.Checked = True Then
        FpSpread1.ActiveSheet.Columns(0).AllowAutoFilter = True
    Else
        FpSpread1.ActiveSheet.Columns(0).AllowAutoFilter = False
    End If

    '行フィルタリング実施中のアイコンを設定します
    Dim sv As FarPoint.Win.Spread.SpreadView = _
      FpSpread1.GetRootWorkbook()
    sv.SetImage(FarPoint.Win.Spread.SpreadView.FilterActive, _
                Image.FromFile("j:\SearchFolderHS.bmp"))
End Sub
Visual C#
private void CheckBox3_CheckedChanged(object sender, EventArgs e)
{
    if (CheckBox3.Checked == true)
    {
        fpSpread1.ActiveSheet.Columns[0].AllowAutoFilter = true;
    }else{
        fpSpread1.ActiveSheet.Columns[0].AllowAutoFilter = false;
    }
    FarPoint.Win.Spread.SpreadView sv = fpSpread1.GetRootWorkbook();
    sv.SetImage(FarPoint.Win.Spread.SpreadView.FilterActive, 
                Image.FromFile("j:/SearchFolderHS.bmp"));
}

まとめ

 fpSpreadコンポーネントを使うと、ワークシートにソートやフィルタ機能を簡単に組み込むことができます。VS標準のDataGridViewコントロールは、ソート機能は実装されていますがオートフィルタ機能は実装されていません。手軽にフィルタ機能を組み込めるfpSpreadコンポーネントは魅力的なコンポーネントになると思います。

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

  • X ポスト
  • このエントリーをはてなブックマークに追加
現役エンジニア直伝! 「現場」で使えるコンポーネント活用術(SPREAD)連載記事一覧

もっと読む

この記事の著者

瀬戸 遥(セト ハルカ)

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

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

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

この記事をシェア

  • X ポスト
  • このエントリーをはてなブックマークに追加
CodeZine(コードジン)
https://codezine.jp/article/detail/1385 2016/09/02 13:45

おすすめ

アクセスランキング

アクセスランキング

イベント

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

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

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

メールバックナンバー

アクセスランキング

アクセスランキング