CodeZine(コードジン)

特集ページ一覧

Delphi for PHP でコンポーネントを作成する(その2)

Delphi for PHPのビジュアル開発で利用できるコンポーネントを自作

  • ブックマーク
  • LINEで送る
  • このエントリーをはてなブックマークに追加
2008/05/23 16:45

目次

Datasourceのデータを使用する

必要なコーディング

 アタッチされたDatasetに格納されている情報を利用しますが、基本的に以下を行う必要があります。

  • 情報が有効かどうか、プロパティをチェックする
  • データセットを繰り返し処理する
  • チャートに表示されるデータ配列を構築する

 このコードを、前回の記事のdumpContents()メソッドの先頭付近で、データの代入の直後に追加します。すると、以下のようになります。

function dumpContents()
{
  //Get the data to use
  $data = $this->_data;

  //If datasource is correctly assigned, we will use that data
  //instead the Data property
  //On design time, we don't have access to datasource objects, 
  //so nothing to do
  if(($this->ControlState & csDesigning) != csDesigning)
  {
    //First, check if there is some value on the column properties
    if(($this->_labelscolumn != '') && ($this->_valuescolumn != ''))
    {
      //If there is a valid dataset attached
      if(($this->_datasource != null)
          && ($this->_datasource->Dataset != null))
      {
        $ds = $this->_datasource->Dataset;
        //If dataset is active
        if($ds->Active)
        {
          $data=array();

          //Iterate
          $ds->first();
          while(!$ds->EOF)
          {
            //Add the item to the array
            $data[$ds->fieldget($this->_labelscolumn)]
              =$ds->fieldget($this->_valuescolumn);
            $ds->next();
          }
        }
      }
    }
  }
}

作成したコードの解説

 コードを見てみましょう。まず、IDEの中か否かをチェックする必要があります。IDEの中では現在のコンポーネント以外のオブジェクトは利用できません。Datasourceへの参照がないので行うことは何もありませんが、実行時にはカラムプロパティに何らかの値があるかチェックする必要があります。最後に、Datasourceがアタッチされていて、そのDatasourceにDatasetがアタッチされていることを確認します。

 これらすべての条件が揃えば、Datasetをオープンして作業を行えます。そして、データセットを繰り返し処理します。基本的なメソッドはfirst()とnext()で、データセットが最後の行に来た時にEOFがtrueを返します。

 この処理の中における重要な行は、以下の行です。

$data[$ds->fieldget($this->_labelscolumn)]
  =$ds->fieldget($this->_valuescolumn);

 この行では、$data配列に新たな要素を追加しています。そのキーは、LabelsColumnプロパティによって参照されるフィールドの値で、その要素の値は、ValuesColumnプロパティによって参照されるフィールドの値です。

 完成です! データベースからの情報をチャートに収集するのに、もう何もすることはありません。


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

著者プロフィール

  • EDN編集部(イーディーエヌ編集部)

    エンバカデロ・デベロッパーネットワーク(EDN)は、ソフトウェア開発者とデータベース技術者のための技術情報サイトです。Delphi、C++Builderをはじめとする開発ツールやER/Studioなどのデータベースツールに関連する技術記事、ビデオなどを提供しています。EDN編集部は、EDN記事と連携...

  • José León Serna(José León Serna)

    Delphi for WIndowsの最初のバージョンから、メインの開発ツールとして採用し、1998年より開発ツールビジネスに関わってきて、現在は、Delphi for PHPのプリンシパル・アーキテクチャを務めています。PHPを使いはじめたのは、バージョン4からで、Delphi for PHPが、...

バックナンバー

連載:Delphi for PHPでコンポーネントを作成する
All contents copyright © 2005-2020 Shoeisha Co., Ltd. All rights reserved. ver.1.5