Q1-1:「アプリケーション開発チュートリアル」応用編Lesson. 6 Step. 4完成図から選別することとして、1.竹園1丁目、2.男、3.年齢は20代の条件を満たす氏名を瞬時にして、別途に表に表わすにはどうすればよいでしょうか。
A1-1:
お問い合わせの件に近いものが、「複合コンポーネントチュートリアル」に記載されております。このチュートリアルは、複合コンポーネントの使い方を主に説明しておりますが、Step. 2からのコンポーネントの接続がお問い合わせの件の参考になると思います。
「複合コンポーネントチュートリアル」はドキュメントインデックスから、ご参照いただけます。
Q1-2:
現在、複合コンポーネントチュートリアルVer.1.3をしています。
1、P4の下から8行目 getColumList(int) ですが、これは日本語の表示ではどれを選択するのですか?
2、P5の上から4行目ですが、ここのメソッド/値を選択するとメソッド処理結果選択の空白の小ウインドウが出ます。これはどうすればよいでしょうか。
A1-2:
> 1、P4の下から8行目 getColumList(int) ですが、これは日本語の表示ではどれを選択するのですか?
MZPlatformでは全てのメソッドに日本語名が付けられているわけではありません。
日本語名が付いていないメソッドを選択する方法ですが
1)起動メソッドを設定する画面を出す。
2)中央上部のメソッド選択窓の右側、「全メソッド対象」の四角の中にチェックマークを入れる。
3)日本語名が付いていないメソッドも全部現れるので、その中から 「getColumnList(int)」を選んでください。
>2、P5の上から4行目ですが、ここの メソッド/値を選択すると メソッド処理結果選択 の空白の小ウインドウ> が出ます。これはどうすればよいでしょうか。
「取得方法:メソッド戻り値
取得先コンポーネント:基本統計処理(数値)(ID:4-3)
取得メソッド:平均値を取得する」
でしょうか。
この時、正しい取得先コンポーネントが選択されていないと、メソッド/値の欄を選択しても何も表示されないことがあります。もう一度取得先コンポーネントが正しく設定されているかご確認ください。
Q1-3:
1、複合コンポーネントチュートリアルのP15の下から11行目の末尾(ID:4−4)と、ありますが(ID:4−7)が正しいのではありませんか。
2、同書のP17の図6でテキストフィールドに28という数字がありますが、これは何の数字でしょうか?。「全体」では少ないし、「指定」「平均」でもありません。どれをクリックしても数字が変わらないのもおかしく思いますが。
3、同書、P4の下から5行目 値3、P5の下から10行目 値ー1、又、時々 値1とか値0とかありますがこれはどんな意味が有るのですか。
A1-3:
> 1、複合コンポーネントチュートリアルのP15の下から11行目の末尾(ID:4−4)と、ありますが(ID:4−7)が正しいのではありませんか。
ご指摘の通りです。次回のバージョンアップの際に改訂いたします。
有難うございます。これからもお気付きの点がありましたら、ご連絡頂ければ助かります。
> 2、同書のP17の図6でテキストフィールドに28という数字がありますが、これは何の数字でしょうか?。「全体」では少ないし、「指定」「平均」でもありません。どれをクリックしても数字が変わらないのもおかしく思いますが?
このチュートリアルでは「平均年齢以上の人の住所録」と「指定した年齢以上の人の住所録」を住所録の表中に表示するようにしています。
@「平均年齢以上」ボタンを押すと平均年齢以上の人のみ抽出され、表が変更されます。
A「指定年齢以上」ボタンを押すと指定した年齢以上の人が抽出されます。「28」という数字は指定の年齢です。もちろん入力して他の数字に変えることも可能です。
どちらもボタンを押す毎に表中に「平均/指定年齢以上」の人しか残りませんので、ご確認ください。
(例えば平均年齢以上ボタンを押し続けると、最後には 30歳の人のみの住所録となります)
最初に用意されていた住所録を表示したい時は「全体」ボタンを押してください。
複合コンポーネントチュートリアルのサンプルは\MZPlatform\1.3 \AP_DATA\Tutoriaフォルダの中に「複合コンポーネント-1.apl」「複合コンポーネント-1.apl」として収められていますので、宜しければご参照ください。
> 3、同書、P4の下から5行目 値3、P5の下から10行目 値ー1、又、時々 値1とか値0とかありますがこれはどんな意味が有るのですか。
C「P4の下から5行目 値3」
接続先コンポーネント:テーブル格納変数の
起動メソッド:getColumnList(int)
取得方法:固定値
メソッド/値:3
起動メソッドgetColumnList(int)は「指定した列のデータを取得する」メソッドです。そして、値の部分で左から何列目であるかを指定します。
住所録は「氏名、住所、性別、年齢」の4列です。
列を指定する値は「0」から始まり「0,1,2,3…」となっているので年齢の列の値は「3」です。
ここでは後で平均年齢を計算するため、初めに年齢の列のデータだけ取得しています。
DP5の下から10行目 値ー1、
接続先コンポーネント:繰り返し制御(FOR)
起動メソッド:繰り返し処理を実行する(int, Boolean, int, Boolean ,int)
取得方法:メソッド戻り値
「-1」ですが、これは「繰り返し制御(FOR)コンポーネント」の起動メソッドの引数です。ここでは表が何行あるかテーブル格納変数から行数を取得して、「-1」増加させ(=つまり「1」ずつ減らしていく)、「0」になるまで処理を行うために「繰り返し制御(FOR)コンポーネント」を使っています。
例えば表のデータが30行あったら「1」ずつ減らして数え、同じ処理を30回繰り返します。
ここでは平均年齢を計算する処理を繰り返しています。
Q1-4:
複合コンポーネントチュートリアルのP2にある図のデータはエクセルで作成した図だと思いますが、このデータが保管されている
1、フォルダ名は何と言いますか。
2、どこにありますか?
3、この形式でデータを増やす事は可能ですか。
A1-4:
この住所録はチュートリアル応用編Lesson6「テーブルを使ってみよう」でご紹介した「住所録(lesson6)コンポーネント」のデータです。
この住所録データはエクセル形式ではありません。
また、コンポーネントの形でサンプルデータとしてご提供しているので、このままでデータを増やすことはできません。
エクセル形式のデータを取得する方法は、「エクセル連携導入チュートリアル」でご紹介している通りです。
([スタートメニュー]→[プログラム]→[MZ Platform 1.3]→[ドキュメント]→[チュートリアル]→「エクセル連携導入チュートリアル」)
Q1-5:
1、フォルダTutoirial の中にある 複合コンポーネント-2。aplを実行します。表示される住所録は28以上の例です。
@これを28以下の表示。
A同、20から28までの人の表示。
B「茨城県つくば市梅園1丁目」住所ばかりの表示。
C上記A、Bに該当する者の表示。
方法を教えて下さい。
A1-5:
> @これを28以下の表示。
これはプログラム中の「比較演算(≧)コンポーネント」(チュートリアル中ではID:4-4)を「比較演算(≦)コンポーネント」で置き換えることで可能です。
>A同、20から28までの人の表示。
こちらも「比較演算(≧)コンポーネント」と「比較演算(≦)コンポーネント」を組合わせる事によって出来るようになります。
> B「茨城県つくば市梅園1丁目」住所ばかりの表示。
> C上記A、Bに該当する者の表示。
B番、C番のご質問ですが、文字列格納変数などを使って処理できないこともないですが、大変複雑になり過ぎるため、データベースアクセス.aplをご参考にSQL文で取り出すのが一番の近道かと存じます。
●サンプルファイル名:データベースアクセス1〜6.apl(\MZPlatform\1.3\AP_DATA\Tutorialフォルダ内6段階のチュートリアルaplを収録)
参照文書名:データベースアクセスチュートリアル.pdf
([スタートメニュー]→[プログラム]→[MZ Platform 1.3]→[ドキュメント]→[チュートリアル]→)
備考:「Q&A1-1」は、「アプリケーション開発チュートリアル(応用編)」の「Q&A1」にも掲載。