セルのカスタマイズでここまでできる !
RecordGridCellは、RecordSetのデータを表示するために使用するということは前ページで述べましたが、セルをカスタマイズすることでより効果的なデータの見せ方が可能になります。
例えば、以下のようにカスタマイズされたRecordGridCellを使用すると、IDが3の倍数のデータに対してより一層強調して表示できます。
{define-class public MyStandardStringCell
{inherits StandardStringCell}
{constructor public {default ...}
{construct-super ...}
}
||refresh-dataメソッドはRecordGridCellが表示すべきデータを
||切り替えるメソッド
||スクロール等表示すべきデータが変わった場合に呼ばれる
{method public {refresh-data}:void
{super.refresh-data}
let (data:String, valid?:bool) = {self.get-formatted-data}
{if valid? and data != "" and
self.record["ID"] mod 3 == 0 and ||ここでIDが3の倍数のデータを抽出
not self.selected? ||行が選択されている場合は何もしない
then
set self.background = "navy"
set self.color = "white"
set self.font-size = 14pt
else
{if not self.selected? then
{unset self.background}
{unset self.color}
{unset self.font-size}
}
}
}
}
また、このセルをRecordGridに適用するには、以下のように記載します。
{RecordGrid
record-source = people,
height = 7cm,
||cell-specで適用するRecordGridCellを指定する
{RecordGridColumn width = 1.3cm, "ID", cell-spec = MyStandardStringCell},
{RecordGridColumn width = 3cm, "First", cell-spec = MyStandardStringCell},
{RecordGridColumn width = 3cm, "Last", cell-spec = MyStandardStringCell}
}
これを実行すると、次の図のようになります。
このように、特定の値を持った行やセルに対して色の変更、文字サイズの変更などによって強調表示を行うことで、例えばエラー行などに注目を集めるようなビジュアルにできます。
もちろん、表示を変更するだけでなく、このセルの中にコマンドボタンやテキストフィールドなどのコントロール部品を埋め込むことも可能となります。コントロール部品を埋め込むことで、コマンドボタンであればユーザーに対して、この行に関する何らかのアクションが発生するというイメージを明確に与え、また、テキストフィールドであれば、行データに関して入力できるというイメージを明確にできます。
次のイメージは、リンクに見えるコマンドボタンを埋め込むことで、タイトルをクリックすると詳細が表示されるという印象をユーザーに与えています。
Curl Apps Galleryより、上記サンプルのダウンロードが可能となっているので、ぜひ試してみてください。


