SHOEISHA iD

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

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

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

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

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

 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オブジェクトを持つため、意図せずメモリを大量消費し、処理速度に影響を及ぼすということになりかねません。大量の「行」データではなく、大量の「列」データをもつ画面を作成する場合は慎重になる必要があります

次のページ
セルのカスタマイズでここまでできる !

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

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

もっと読む

この記事の著者

住商情報システム株式会社(スミショウジョウホウシステムカブシキガイシャ)

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

小段 政樹(コダン マサキ)

2003年、住商情報システム株式会社に入社後Curlビジネスに携わり、多数の基幹系業務システムの開発・設計を担当、その後、Curlサポートセンターでのサポート業務に従事。現在は、Curlプロダクトの開発・メンテナンスを行っている。

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

カール ウィリアム スターン(カール ウィリアム スターン)

アメリカ生まれ、マサチューセッツ工科大学卒。1998年から超並列計算機、ウェブアプリケーション、ウェブ検索システム、個人認証システム開発に携わり2000年よりCurlCorpolation(現Curl,inc.)にてCurlのGUI開発担当となる。現在、住商情報システム株式会社に勤務、CurlのGU...

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

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

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

この記事をシェア

  • このエントリーをはてなブックマークに追加
CodeZine(コードジン)
https://codezine.jp/article/detail/6113 2011/08/22 14:00

おすすめ

アクセスランキング

アクセスランキング

イベント

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

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

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

メールバックナンバー

アクセスランキング

アクセスランキング