Q20:Lesson11 取得方法にイベント内包を選択し、メソッド/値の項目でイベント内包データを選択するわけですが、とりあえずテーブルから接続されているガントチャートにおいてはイベント対象データでは更新後のテーブルデータが3つもあります。今回はどのイベントでも良いので定常起動のようですが違いは何でしょうか?、他。
Q20-1:
現在Lesson11のガントチャートに取り掛かっています。ほとんど以前やったグラフのチュートリアルと同じなのですが、今の段階で改めて見てみると、イベント内包っていったい・・・といった感じです。
取得方法にイベント内包を選択し、メソッド/値の項目でイベント内包データを選択するわけですが、とりあえずテーブルから接続されているガントチャートにおいてはイベント対象データでは更新後のテーブルデータが3つもあります。今回はどのイベントでも良いので定常起動のようですが違いは何でしょうか?<質問@>単に番号が余っているから同じにしてあるだけなのでしょうか・・・。
それと今回はイベント対象データを選択していますが、更新データではなぜダメなのでしょうか?<質問A>
セルが更新された時にそれを内包してガントチャートに設定しても良さそうに思えます。
更新後のセルの値と更新後のテーブルデータって違うものなのでしょうか・・・。
とりあえず更新データに変更して実行してみると、「メソッド引数の型と取得メソッドの戻り値が異なります」と言われてしまいます。今回の接続先のガントチャートコンポーネントには引数とかメソッド戻り値とか存在しないように思えるのですが、どういうことでしょうか?<質問B>
A20-1:
回答1:> 取得方法にイベント内包を選択し、メソッド/値の項目でイベント内包データを選択するわけですが、とりあえずテーブルから接続されているガントチャートにおいてはイベント対象データでは更新後のテーブルデータが3つもあります。今回はどのイベントでも良いので定常起動のようですが違いは何でしょうか?<質問@>
> 単に番号が余ってるから同じにしてあるだけなのでしょうか・・・
。
「更新後のテーブルデータ」という意味において、それらの間に違いはありません。コンポーネントが発生するイベントにつきましては、
・各コンポーネントのイベントの種類と発生するタイミングは決まっていること
・各イベントは、発生するタイミングによってイベント番号が決まっていること
・イベントには、イベント番号以外にもデータを含んでいるものがあること(この含まれているデータを内包データと言います。内包データもイベント番号と同様、コンポーネントの仕様によって決まっているものであり、ユーザーがプログラム上で付与するものではありません。)
はすでにご理解いただいていることと存じます。テーブルコンポーネントからは、セルが更新されたときに番号0、一行が更新されたときに番号1、一列が更新されたときに番号2のデータ更新イベントが発生するようになっています。そして、いずれの場合も、イベント対象データは、更新された後のテーブルデータであるというだけのことです。
イベント番号が処理の分岐のために使われるということは、Lesson.10のジャグリング複合コンポーネントでの説明でご理解いただいていることと存じます。
テーブルコンポーネントの場合、テーブルがどのように更新されたかによって発生するイベント番号が異なります。その際の処理に用いる可能性が高いと考えられるデータとして、イベント対象データには、更新後のテーブルデータを持たせてあります。
イベント番号が0、1、2以外の場合のイベント対象データにも、「追加後のテーブルデータ」および「削除後のテーブルデータ」と表現は異なりますが、「テーブルに何らかの変更が加えられた後のテーブルデータ」という意味において、すべて同様のテーブル全体のデータが収められています。
> それと今回はイベント対象データを選択していますが、更新データではなぜダメなのでしょうか?<質問A>
> セルが更新された時にそれを内包してガントチャートに設定しても良さそうに思えます。
内包データについて誤解されているようです。すでに上でも述べましたが、イベント内包データはイベント番号と同様、コンポーネントの仕様によって決まっているもので、ユーザーが付与したり割り当てたりするものではありません。イベント接続先のメソッドを起動するときに、その引数として必要に応じて利用するものです。
> 更新後のセルの値と更新後のテーブルデータって違うものなのでしょうか・・・。
違います。「更新後のセルの値」は1つのセルの値ですが、テーブルデータはテーブル全体のデータです。
> とりあえず更新データに変更して実行してみると、「メソッド引数の型と取得メソッドの戻り値が異なります」と言われてしまいます。
更新データはセルの値(例えば"2009/05/18 12:00:00"などの個別の日付データ)ですが、ガントチャートのメソッド「ガントチャートのデータを設定する(PFObjectTable)」に与えなければならないデータはテーブル全体のデータですので、エラーになります。
> 今回の接続先のガントチャートコンポーネントには引数とかメソッド戻り値とか存在しないように思えるのですが、どういうことでしょうか?<質問B>
引数は存在します。メソッドは「ガントチャートのデータを設定する(PFObjectTable)」で、引数はこのPFObjectTable(テーブルデータ)です。
引数がメソッドを実行するときに与えるデータであることは、アプリケーション開発チュートリアル(応用編)■13の質問5でご説明した通りです。ガントチャートのメソッド「ガントチャートのデータを設定する(PFObjectTable)」の場合、グラフのデータとなるテーブルデータを与えることが必要で、これが引数です。MZ
Platformの場合、指定しなければならない引数の一覧は起動メソッド情報ダイアログに表示されます。このメソッドの場合、
取得方法: イベント内包
メソッド/値: イベント対象データ
と示されているものが引数です。
Lesson.10では、引数を「メソッド戻り値」や「メソッド処理結果」で指定していましたが、ここではイベントに含まれている内包データを利用しているということです。