Q98:任意で列を複数追加する方法
Q98-1:
共通する管理番号のデータに対して(関連ファイルのエクセル参照ください)、別の表の任意の行データを最後尾に貼りつけたいのですが、ご指導宜しくお願い致します。
関連ファイル:データ1に対して 任意の列のデータ2を追加したい.xlsx
A98-1:
1)テーブルデータ1,2とも、MZPlatfrom上にある場合
まず列を予め必要数、テーブルデータ1に追加しておきます。
テーブルデータ1の「管理番号」列のセルデータを取り出し、テーブルデータ2の「管理番号」列と照し合わせます。
該当するデータがあったら、その一致する行のセルの値を取り出し、テーブルデータ1のセルに設定するようにします。
方法は幾つか考えられますが、「テーブルデータ1の「管理番号」列のセルデータの取り出し」は[繰り返し制御(FOR)]で上から順番に、「テーブルデータ2の「管理番号」列とのデータの照合」は、[リスト格納変数]のメソッド「indexOf」を使うと判り易いのではないかと思います。
「indexOf」を使ったアプリケーションは¥AP_DATA\Tutorial\バーコード入力.mzaxがありますので、テキストと併せてご覧下さい。
「indexOf」ではなく、テーブルデータ2もFor文で探しても問題はありません。
2)テーブルデータ1,2とも、MySQL上にある場合
管理番号が一意でしたら、簡単なSQL文で結合することができます。
例えば、サンプルのProductionのデータベースには、projectとtaskのテーブルがあります。
「select project.*,task.process from project,task where project.id=task.id」
とするとprojectのテーブルにtaskの「process」列が付いたテーブルが表示されます。
Q98-2:
複数列追加するのにリスト格納変数を使うことにしました。列名の設定は先日教えていただきましたが、列名を取り出すことはできるのでしょうか?
A98-2:
列名は[テーブル]のメソッド「getColumnName(int)」で列番号を指定して取り出すことができます。また、「getColumnNameList」でも全列名をリスト形式で取り出すことができます。
追加予定の列数が2列程でしたら「getColumnName(int)」で取り出し、それを「取得方法:メソッド処理結果」等で利用する方が簡単かと思います。