SHOEISHA iD

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

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

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

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

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

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

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プロパティによって参照されるフィールドの値です。

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

次のページ
テスト

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

  • このエントリーをはてなブックマークに追加
Delphi for PHPでコンポーネントを作成する連載記事一覧
この記事の著者

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が、...

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

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

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

この記事をシェア

  • このエントリーをはてなブックマークに追加
CodeZine(コードジン)
https://codezine.jp/article/detail/2531 2008/08/20 13:35

おすすめ

アクセスランキング

アクセスランキング

イベント

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

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

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

メールバックナンバー

アクセスランキング

アクセスランキング