Q7:オブジェクトキューについて
A7:
購買管理チュートリアル中のオブジェクトキューについて回答いたします。
> 質問1-1)なぜ注文番号とその他のラベルとで扱いがちがうのでしょうか?
> 質問1-2)キューにはどのような順番でデータがはいっているのでしょうか?
[サブルーチン(ID:20-33 帳票用ラベル設定)]の接続をご覧ください。まず[テーブル]から一行分のデータをリスト形式で取得しています。
リスト内の要素には[テーブル]の列で考えると左から「0,1,2…」とインデックス番号が付いています。
このリストデータを[オブジェクトキュー]に設定した訳ですが、「メソッド:オブジェクトの取得()」を実行すると、いわゆる「先入れ先出し法」でデータは取得され、取得された要素は[オブジェクトキュー]内からなくなり、インデックス番号も振り直されます。
つまり、「メソッド:オブジェクトの取得()」を実行すると[テーブル]の左端の列にあたるデータが最初に、次にまた2番目の列にあったデータが、と次々に取出され、最後には[オブジェクトキュー]内の要素はなくなります。
テーブルの左端列「注文番号」のデータは、まずラベルに設定しますが、2番目の列の「注文日」のデータはここでは要りません。「注文番号」設定の次に「注文日」のデータを取出し、そのまま利用しないで、次の「発注部門コード」データの取出し・ラベル設定の処理に進んでいるとお考え下さい。
> 質問1-3)順番が分かれば、その番号等を指定して直接、値を取得することは出来るのでしょうか?
「メソッド:オブジェクトをキューから削除せずに取得(int)」で取得することができます。また、[リスト格納変数]「メソッド:要素を位置指定で取得する(int)」でも同様なことができます。
> 質問1-4)そもそもキューとは配列のようなものだと考えてよいのでしょうか?
上記で書いたような「先入れ先出し」で要素を取出せるという特徴を持つ配列と考えて頂いて結構です。