UTable .NET Framework用 表入力コンポーネント
ドキュメント

列と行の操作

全てのフィールドは、グリッドと呼ばれる格子状の枠の上に配置されます。 以下の図をご覧下さい。

赤線で示したのがグリッドです。 グリッドの垂直の区切りを行(ROW)、水平の区切りを列(COL)と呼びます。 この例では、テーブルには9つの列があり、 ひとつのレコードは3つの行から成り立っています。 そして、明細番号や備考欄のフィールドは3つの行にまたがっており、 受注日や納期のフィールドは2つの列にまたがっています。

このドキュメントで列と書いた場合は、グリッドの列を意味します。 フィールドを意味するのではないことに注意してください。 同様に行も、グリッドの行を意味します。 レコードを意味するのではありません。

行と列のアーキテクチャ

行と列は共に、UTable.CGridクラスのオブジェクトとして表現されています。

列オブジェクトは、テーブル全体で共有されます。 テーブルのColsというプロパティで、列への参照を得ることができます。

  Table.Cols(0) '0番目の列を得る

行オブジェクトは、レコード毎に保持されます。 レコードのRowsというプロパティで、行への参照を得ることができます。

  Table.Content.Records(0).Rows(0) '0レコード目の0番目の行を得る

列も行も、フィールドが作成される時に、 指定されたリージョンが必要とするだけ自動的に生成されます。 プログラマが行や列の生成について気を配る必要は通常ありません。

なお、レコードプロバイダはRowsプロパティに行の雛形を保持しています。 レコードが生成される時に、このRowsのクローンが作成されてレコードに設定されます。

行と列のプロパティ

UTable.CGridは以下のプロパティを持っています。

プロパティ説明
Size この行または列のサイズを設定・取得します
SizeMax この行または列のサイズの最大値を設定・取得します
この値が0の場合、最大値は無限になります
デフォルトは0です
SizeMin この行または列のサイズの最小値を設定・取得します
デフォルトは0です
UserResizable 列にのみ設定することができます
この列をユーザがドラッグでサイズ変更可能かを設定・取得します
この値がDEFAULTのとき、サイズ変更可能かはテーブルのSettings.UserColResizableの値によって決定されます
UserAdjustable 列にのみ設定することができます
この列をユーザがダブルクリックでアジャスト可能かを設定・取得します
ただし、この列のUserResizableが有効でなければこのプロパティを設定しても有効にはなりません
この値がDEFAULTのとき、アジャスト可能かはテーブルのSettings.UserColAdjustableの値によって決定されます
Visible この列または行の表示・非表示を設定・取得します

列幅・行高さのデフォルト値

DefaultGridSizeのプロパティで、列幅と行高さのデフォルト値を設定できます。

    Table.DefaultGridSize.Col = 200 '列幅のデフォルト値
    Table.DefaultGridSize.Row = 50  '行高さのデフォルト値

このプロパティは列や行が作成されるより前に設定する必要があります。

列と行の取得方法

コンテント、レコード、フィールドには、 列や行のオブジェクトを取得するための便利なメソッドが用意されています。

メソッド説明
Content.Col(key) Contentが持つレコードプロバイダに含まれる、
keyに対応したフィールドディスクリプタの右端の列を返します
Record.Col(key) Recordに含まれるkeyに対応したフィールドの右端の列を返します
Record.Row(key) Recordに含まれるkeyに対応したフィールドの下端の行を返します
Field.LeftCol() Fieldの左端の列を返します
Field.RightCol() Fieldの右端の列を返します
Field.BottomRow() Fieldの上端の行を返します
Field.BottomRow() Fieldの下端の行を返します

列と行からフィールドを取得

レコードのFindFieldメソッドを用いると、 列と行の位置から対応するフィールドを取得することができます。

  field = Record.FindField(row, col)

複数の行または列のサイズを一括設定

以下のように書くことで、複数の行または列のサイズを一度に設定できます。

  Table.Cols.SetSize(100, 200, 300) '列:0のサイズは100、列:1は200、列:2は300
  Record.Rows.SetSize(20, 30)       '行:0のサイズは20、行:1は30

アジャスト

AdjustSizeメソッドを呼ぶと、列幅をデータ内容に応じて調整(アジャスト)することができます。

    Table.AdjustSize(col) '指定された列をアジャスト
    Table.AdjustSize()    '全ての列をアジャスト

自動拡張

AutoExtendのプロパティを設定することで、 データが入力されたときに列幅または行高さが足りなかった場合、 自動的に拡張するようにできます。

    Table.AutoExtend.Col = True '列幅の自動拡張を有効にする
    Table.AutoExtend.Row = True '行高さの自動拡張を有効にする

次へ    ドキュメントのトップ / ホーム


Copyright (c) 2009, SystemBase Co.,Ltd.
All rights reserved.