やりたいこと
データテーブルに他のデータテーブルのデータを追加する
以下にDataTable型の変数dt従業員とdt海外従業員があるとします。
【dt従業員】
【dt海外従業員】
ForEachRowでdt海外従業員を1行ずつ読み込んで、性別が男だったら
dt従業員にデータを追加するという処理を行いたいと思います。
条件にあった行だけを追加するので、MergeDataTableアクティビティは使用できません。
また、以前紹介したAddDataRowアクティビティも今回のようなケースでは使用することができません。
InvokeMethodアクティビティを使用する
今回の処理ではInvokeMethodアクティビティを使用します。
やりたいことがアクティビティを使ってできない時などに、メソッドを呼び出すことができます。
実際にどんなことができるのかやってみましょう。
今回はInvokeMethodアクティビティを使ってImportRowメソッドを呼び出したいと思います。
処理手順
①ForEachRowアクティビティをセットして、dt海外従業員を1行ずつ繰り返す
②Ifアクティビティをセットして条件にrow海外従業員("性別").ToString = "男"を代入
③②の結果がTrueの場合にInvokeMethodアクティビティを配置
①~③の手順のフローは以下の通りです。
InvokeMethodアクティビティのプロパティを確認しましょう。
ターゲットオブジェクトにはデータ追加先であるdt従業員を入力します。
メソッド名にはImportRowと入力しましょう。
パラメーターには方向・型・値を入力する必要があります。
方向は入力を設定します。
型とはrow海外従業員の型のことなのでDataRow型を設定します。
値はForEachRowで設定しているrow海外従業員を入力します。
処理手順は以上となります。
ForEachRowを抜けた後で再度dt従業員の書き込みをしてみると、、
結果↓
このように性別が男のデータを追加することができます(^^)/
ひとこと
InvokeMethodアクティビティは他にも様々なメソッドを使うことができます!
うまく使うことができれば開発の幅がぐっと広がりそうです。
今後、別のメソッドも紹介していきたいと思います!
また、おすすめのメソッドがあれば教えていただけると嬉しいです!(^^)!