ホーム ] コンポーネント開発 ] グリッドコントロール ] レギュラープレーヤ ] 数学関数表示コントロール ]

上へ
FreeGridの構成
データソース
セル更新

技術解説

データソース

最終更新日:2007/04/26  全面改訂

●概要

 表示する元となるデータをどのようにFreeGridに引き渡すか。

●方式検討

 二次元配列やデータベースのテーブルやクエリを表示することが多いので、これらが簡便になるようI/Fを考える。また、個別にセルを指定しての入出力があれば完全になる。配列の場合は、バインドモードとコピーモードが考えられる。バインドモードとは、配列をリンクすることになり、FreeGridと配列が同期化される。

 データベースでも本格的にはバインドモードがあればと思うが、これはド素人の範囲では通常不要な高度な機能なので、FreeGridではコピーモードしかない。

●配列

  FreeGrid内部では、配列はObject型しかないので、引き渡す場合も、Object型配列を渡してもらうことにする。但し、個々の中身のデータ型は任意である。

 配列で、

  ArrayA = ArrayB

とすると、ArrayAは、ArrayBそのものを指す。これがバインドモードとなる。FreeGridが、内部でArrayAをアクセスすれば、つまり、ArrayBがアクセスされることになる。FreeGridで、ArrayAを更新すれば、ArrayBが更新される。

  ArrayA = ArrayB.Clone

とすれば、ArrayA ≠ ArrayBとなり、ArrayBのコピーがArrayAとなる。

●データベース

 この場合は、DataSet.Tableまたは、DataRow渡しとなる。いずれの場合も、内部では、それらからレコードセットを取り出して、Object型配列にコピーする。Tableの場合は、行ヘッダ(フィールド名行)は、DataSetから取り出せるので自動設定できる。

 DataRowの場合は、行ヘッダを指定して貰う。Tableでも行ヘッダを指定できるモードを用意し、Tableの中から部分的にフィールドを抽出できるようにすれば便利が良い。

●個別

 この場合は、デフォールトプロパティとして、Item(Col, Row) As Objectを準備し、セルを参照/設定できるようにする。デフォールトなので、使用する場合は、Itemを省略できる。

<Description("指定したセル内容の参照/設定です。")> _
Default Property Item(ByVal ColNo As Integer, ByVal RowNo As Integer) As Object
   Get
      Return DD(ColNo, RowNo)
   End Get
   Set(ByVal Value As Object)
      DD(ColNo, RowNo) = Value
      If m_UpDateEnable Then UpDateEx()
   End Set
End Property