SHOEISHA iD

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

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

CurlデベロッパーセンターPick Up(AD)

Curl Apps Galleryで注目を集める「見積デモ」を紐解く
~RecordGridとRecordSet~

第1回

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

データの集計

 また、RecordSetを利用することでデータの集計を容易に行えます。RecordSetはデータを管理するためのクラスですが、このクラスを使用する大きな利点として「配列のようなイテレーションが可能」「データの変更をイベントで通知できる」という特徴が挙げられます。

 これらの特徴を利用することによって、「RecordGridでデータが操作されたときに自動で合計金額を更新する」といった機能が実装できるようになります。下記のサンプルコードは、RecordSetにイベントを組み込むことで、売上合計(Subtotal)の合計値を自動で更新する処理を組み込んでいます。サンプルコードのコメントを記述している箇所がそれに該当します。

{let summary:int = 0}

{let people:RecordSet =
    {RecordSet
        (省略),
        ||RecordsChangedでレコード更新のイベントを捕捉します。
        {on RecordsChanged do
            set summary = 0
            ||for文でRecordSetの内容を参照します。
            {for record:Record in people do
                {if record.state != RecordState.deleted 
                 then
                    set summary = summary + (record["Subtotal"] asa int)
                }
            }
            
            {popup-message summary}
        }
    }
}
||データを表示するRecordGridを定義します。
{let rg:RecordGrid = 
    {RecordGrid
        height = 3cm, width = 10cm, record-source = people
    }
}

{value rg}

 このサンプルを実行してデータを更新すると、次のように合計額がポップアップ表示されます。

まとめ

 見積デモはこのようなRecordGridとRecordSetの機能を利用してGUIの実装が行われています。

 次回は見積デモのドラッグ&ドロップの機能について見ていきたいと思います。

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

  • このエントリーをはてなブックマークに追加
CurlデベロッパーセンターPick Up連載記事一覧

もっと読む

この記事の著者

株式会社カール 宮崎 直人(カブシキガイシャカールミヤザキナオト)

リッチクライアント言語『Curl』の普及に努め、自社主催のセミナーの講師や導入コンサルタントなどを担当。現在はマーケティングにも携わり、HPの更新やコンテンツの拡充なども行っている。

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

【AD】本記事の内容は記事掲載開始時点のものです 企画・制作 株式会社翔泳社

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

この記事をシェア

  • このエントリーをはてなブックマークに追加
CodeZine(コードジン)
https://codezine.jp/article/detail/3623 2009/03/24 10:30

おすすめ

アクセスランキング

アクセスランキング

イベント

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

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

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

メールバックナンバー

アクセスランキング

アクセスランキング