||参照する元のデータを取得します。 {let people:RecordSet = {RecordSet {RecordFields {RecordField “id”,domain = int},||データを一意にするIDを付加します。 {RecordField “First”, domain = String}, {RecordField “Last”, domain = String}, {RecordField “Age”, domain = int} }, {RecordData id = 1,First = “John”, Last = “Smith”, Age = 25}, {RecordData id = 2,First = “Jane”, Last = “Smith”, Age = 29}, {RecordData id = 3,First = “Jane”, Last = “Jones”, Age = 28} } }
||値を入力する枠を作成します。 {let list:RecordSet = {RecordSet {RecordFields {RecordField “id”,domain = int} }, {RecordData}, {RecordData}, {RecordData} } }
{bold 元のデータ}
{RecordGrid record-source = people, height = 3cm }
{bold format-spec利用後}
{value {RecordGrid record-source = list, height = 3cm, automatic-columns? = false, {RecordGridColumn “id”}, {RecordGridColumn “id”, ||cells-take-focus?を指定して ||直接編集できないようにします。 cells-take-focus? = false, ||format-specを利用して表示するデータを取得します。 format-spec = {proc {val:any}:String || let r:#Record = {people.select-one filter = {RecordData id = val} } {return {if-non-null r then ||peopleにデータが存在した場合はデータを表示します。 {String r[“First”] , ” ” , r[“Last”]} else ||存在しなかった場合は空の文字列を返します。 “” } } } } } }
|