Shoeisha Technology Media

CodeZine(コードジン)

特集ページ一覧

全機能を使い倒せ!大量データもグラフィカルに表示するCurlコントロール「RecordGrid」マニア

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

 CurlのGUIコントロールの1つである「RecordGrid」。この記事では、業務アプリケーションには欠かせないこのコントロールを使って、よりグラフィカルで、洗練された機能を実現するコツを紹介します。

目次

はじめに

 RecordGridはCurlのGUIコントロールの1つであり、その操作性の高さ、機能の充実さから数多くの業務アプリケーションで使用されています。

 本稿では、既に数多く使用されているRecordGridの基本機能ではなく、知られざるRecordGridの設計思想よりパフォーマンスの高い利用方法など、さらなるディープな部分について解説します。また、RecordGridの機能を強化する今後の展開についても話していきたいと思います。

RecordGridを使って実装した表計算アプリ
RecordGridを使って実装した表計算アプリ
※注意

 基本機能については、CurlヘルプドキュメントのCurl開発者ガイドより、[データの管理と表示]-[データレコードとグリッド]を参照ください。

RecordGridの深イイ話

大量データでも素早く表示 ! RecordGridCellの概念

 RecordGridは、データの集まりであるRecordSetオブジェクトを使用しています。RecordSetオブジェクトはRecordを複数持つような形で、業務によっては数千から数万という大量のデータを保持することがあります。

 これらのデータを実際に表示しているのはRecordGridCellオブジェクトです。全ての行列のセルオブジェクトを生成しているのではなく、RecordGrid上に表示されている箇所のみのRecordGridCellオブジェクトが生成されています。

 次の図は、10,000件のデータをRecordGridで表示したものです。

10,000件のデータをRecordGridで表示
10,000件のデータをRecordGridで表示

 表示のために使用しているRecordGridCellは、IDが0~12の行×3列分だけです。つまり、どれだけ大量のデータを扱っても、ユーザーが一度に見る行列はせいぜい数十行×数十列となり、それ以外はスクロールして見るということになります。このように、表示されている箇所のみRecordGridCellオブジェクトを作成することはメモリの節約、処理速度の向上につながります

 ただし、横スクロールが存在するような列データが大量にある場合は注意が必要です。RecordGridは見えるところだけRecordGridCellを保持するというのが基本なのですが、見えていない列であっても表示されている行に関してはRecordGridCellオブジェクトを保持しています。

大量の列データ(ここでは日付)を持つサンプル
大量の列データ(ここでは日付)を持つサンプル

 上図のように、100行であっても横に日付列を持つような横に長いデータの場合、見えていない列であったとしてもRecordGridCellオブジェクトを持つため、意図せずメモリを大量消費し、処理速度に影響を及ぼすということになりかねません。大量の「行」データではなく、大量の「列」データをもつ画面を作成する場合は慎重になる必要があります


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

著者プロフィール

バックナンバー

連載:CurlデベロッパーセンターPick Up

もっと読む

All contents copyright © 2005-2019 Shoeisha Co., Ltd. All rights reserved. ver.1.5