新規トピックを開始

テーブル内へ別アプリから値をセットする。

「条件を指定してレコードを取得する」と「レコードをテーブルに書き出す」を使用して

アプリAの「追加画面を表示した時」に別アプリBから取得したレコード分だけアプリAにテーブルが追加され、値がセットされるところまではできました。


さらに、さきほどアプリBからテーブルにセットされた値をキーにして、

別アプリCのレコードを取得して、テーブルの別のフィールドに値をセットすることは「やること」の中でどれを選択すればよいでしょうか?


よろしくおねがいします。

コメント数: 10Sorted by 古い順

タイトルがおかしかったです。

「テーブル内へ、別アプリの値をセットする。」とするべきでした。

このケースですと、アプリAから別アプリCに対してルックアップを使うことで、実現出来そうな印象です。

試してみて頂けますでしょうか。


よろしくお願いいたします。


アプリAでアプリBから取得したレコードをAのテーブルに追加する時にルックアップフィールドには値をセットできないようです。

 

もう少し具体的に説明してみます。

 

アプリA:毎日出勤簿アプリ(一つのレコードで全従業員分の1日分の勤怠記録を登録する)

アプリB:従業員マスタ

アプリC:休暇届記録アプリ(一つのレコードに個別従業員の1日分の休暇届の情報を登録している)

アプリD:個別出勤簿アプリ(一つのレコードに個別従業員の1日分の勤怠記録を登録する。アプリAを保存するとこのアプリに保存される)

 

①アプリA「毎日出勤簿アプリ」に日付をセットすると、アプリB「従業員マスタ」から従業員コードと名前を取得してアプリAのテーブル行に値をセットします。


②次にアプリAにセットした日付とテーブルの従業員コードでアプリC「休暇届記録アプリ」を検索してヒットしたものをアプリAのテーブルにセットします。


③アプリAのテーブルの他の項目を手入力でセットして保存ボタンを押すとこのテーブルの行数分のレコードに分割されてアプリD「個別出勤簿アプリ」に登録される。

 

最終的にアプリD「個別出勤簿アプリ」で集計作業ができると思っているのですが、

②の処理ができません。

 

何か良い方法はありますでしょうか?

よろしくお願い致します。

 


②ですが、現状テーブルに対する一括操作ができませんので、

やるとすると、以下のような方法になります。


  • アプリCには、「日付_従業員コード」のような一意になるキー項目をもたせる(これも登録時にCustomineで作るようにすると簡単です)
  • アプリAのテーブルには、テーブルにデータを入れるときに、「日付_従業員コード」が入るようにして、これをキーにアプリCをルックアップして休暇データを取得する


これお試しください。

よろしくお願いします。

請求書内に、請求する項目 2つの別テーブルがあります。

このテーブルを1つにまとめる事ができますか?

「テーブル行をレコードとして取得する」

「レコードをテーブルに書き出す」(追記モードで)

をそれぞれのテーブルで行って、1つのテーブルに書き込めば可能かと思いますので、

お試しください。




Toshiyuki Konparu様

度々、ありがとうございます。

ご提案いただいた、アプリAのテーブルにルックアップフィールドを設定する方法を試してみました。


①のテーブルに値がセットされる時、ルックアップフィールドに「= $2.日付 & 従業員コード 」がセットされるようにし、その処理後に「ルックアップを更新する」をしました。すると休暇届が提出されていない従業員のルックアップフィールドが「データがありません」となります。この状態だとレコードが保存できないのですが、何か対処方法はあるでしょうか?


「データがありません」のルックアップフィールドを空にすることはできますでしょうか?

少し処理が冗長になるのですが、

ルックアップフィールドに設定する前に

「キーを指定してレコードを取得する」https://docs-customine.gusuku.io/ja/actions/record/get_records_by_key/

「条件を指定してレコードを取得する」https://docs-customine.gusuku.io/ja/actions/record/get_records_by_query/

を利用して、該当のレコードの取得を試みます。


その結果を使って、

「レコード件数が1件以上ならば」https://docs-customine.gusuku.io/ja/conditions/condition_other_if/if_record_count_is_gt_zero/

を条件にして、レコードが存在しているときのみ、ルックアップフィールドに値を入れるという方法はいかがでしょうか?


ありがとうございます。


現在

アクション1 「条件を指定してレコードを取得する」でアプリB:従業員マスタからレコードを取得

アクション2 アプリAの日付が変更されたら「編集中のレコードを退避する」

アクション3「レコードをテーブルに書き出す」の処理で、アクション1,2を利用して

マッピングを「= $2.日付 & 従業員コード 」としてテーブルの中のルックアップフィールドに値をセットしています。


テーブル内のフィールドに値をセットする方法が「レコードをテーブルに書き出す」しか見当たらない気がしていました。


ご提案の「キーを指定してレコードを取得する」「条件を指定してレコードを取得する」「レコード件数が1件以上ならば」はテーブル内の複数行の特定の行へ値をセットしたい場合でも使用可能でしょうか?

確かに、テーブル相手でしたね・・・

そうなるとなかなか厳しいところです。


全く別の方法として、

1つのテーブルに入れるのは諦めて,

アプリAで、アプリCを関連レコードで日付をキーにして表示されるようにして、

同じテーブル上ではないですが、休暇届があるかどうかは見られるようにしておいて、

最終的にアプリDに入れる段階で、休暇の情報も入れるというのはいかがでしょうか?



ログイン コメント投稿のため