Q12:Lesson9の内容について。@テーブルに都道府県情報を設定し、人口の列をリスト形式で取得しています。この時、テーブルコンポーネントの中は最初全データがあるはずですが、指定列を取得すると人口の列しかテーブル内部にはないという理解で良いでしょうか?A度数分布集計絡みの流れの詳しい説明をお願いします。
Q12-1:
テーブルに都道府県情報を設定し、人口の列をリスト形式で取得しています。この時、テーブルコンポーネントの中は最初全データがあるはずですが、指定列を取得すると人口の列しかテーブル内部にはないという理解で良いでしょうか?<質問@>
その後、区間幅を100万で設定し、メソッド処理結果である指定列のデータを集計対象データとして設定しています。(メソッド戻り値で実施した方が個人的には分かり易かったです。メソッド処理結果は、最初区間幅を100万ずつに設定したものに対しての戻り値って何だ?とか思っていましたが、デバッガでメソッド処理結果を追跡したところ、テーブルコンポーネントで指定列を取得したものがメソッド処理結果であることを理解し、ようやく納得できました。)
そこでデバッガで追跡をしていたところ、下側の度数分布集計に進み、指定列の列データをリスト形式で取得したあとにヒストグラムの処理をし、そして最後にまた度数分布集計に戻っています。この部分が何故か良く分かりませんでした。度数分布集計絡みの流れの詳しい説明をお願いします。<質問A>
A12-1:
> まず、テーブルに都道府県情報を設定し、人口の列をリスト形式で取得しています。この時、テーブルコンポーネントの中は最初全データがあるはずですが、指定列を取得すると人口の列しかテーブル内部にはないという理解で良いでしょうか?<質問@>
いいえ。テーブルには全データ、すなわち、都道府県の列と人口の列があります。「指定列の列データをリスト形式で取得する(int)」メソッドを実行して列データを取得しても、元のテーブルデータが変更されることはありません。
> その後、区間幅を100万で設定し、メソッド処理結果である指定列のデータを集計対象データとして設定しています。(メソッド戻り値で実施した方が個人的には分かり易かったです。メソッド処理結果は、最初区間幅を100万ずつに設定したものに対しての戻り値って何だ?とか思ってましたが、デバッグでメソッド処理結果を追跡したところ、テーブルコンポーネントで指定列を取得したものがメソッド処理結果であることを理解し、ようやく納得できました。) >
> そこでデバッガで追跡をしていたところ、下側の度数分布集計に進み、指定列の列データをリスト形式で取得したあとにヒストグラムの処理をしそして最後にまた度数分布集計に戻っています。この部分が何故か良く分かりませんでした。度数分布集計絡みの流れの詳しい説明をお願いします。<質問A>
度数分布集計(数値)コンポーネントは、「集計対象データを設定する(PFObjectList)」メソッドを実行するとデータ設定イベントを発生します。したがって、この部分の処理の流れは以下のようになります。
(1) 度数分布集計(数値)コンポーネントの「集計対象データを設定する(PFObjectList)」を起動。
(2) 度数分布集計(数値)コンポーネントからデータ設定イベントが発生。
(3) 発生したデータ設定イベントに接続されたヒストグラムコンポーネントの「テーブルデータを設定する(PFObjectTable)」が起動。
(4) データ設定イベントに接続された処理が完了したあと、元の箇所(度数分布集計(数値)コンポーネント)へ戻る。
Q12-2:
>いいえ。テーブルには全データ、すなわち、都道府県の列と人口の列があります。「指定列の列データをリスト形式で取得する(int)」メソッドを実行して列データを取得しても、元のテーブルデータが変更されることはありません。
とのことですが、では指定列の取得したデータはどこに含まれているのでしょうか?
コンポーネント接続図の見方の基本は左→右だと思っていたので取得したリストをテーブルに再設定していると思っていました。
A12-2:
「指定列の列データをリスト形式で取得する(int)」で取得した列データのリストは、メソッド処理結果として、その2つ下にある度数分布集計(数値)コンポーネントの「集計対象データを設定する(PFObjectList)」の引数に使われています。
メソッド処理結果として利用されるデータは、個々のコンポーネントが保持しているわけではなく、MZ Platformの基幹機能が管理・保持を行っています。すなわち、これらのデータはアプリケーションビルダーの画面上からは見えないところに入っており、メソッド処理結果として利用されるときにそこから引き出されるということです。