初心者のFileMaker pro Q&A (旧掲示板)

みんなに優しく、解りやすくをモットーに開設しています。 以下のルールを守りみんなで助け合いましょう。

1.ファイルメーカーで解らない事があればここで質問して下さい。 何方でも、ご質問・ご回答お願いします。 (優しく回答しましょう)

You are not logged in.

Announcement

新しい掲示板は、こちら:https://fm-aid.com/forum/t/filemaker


#1 2018-05-26 22:06:04

top
Member

テーブル間のレコードコピーに関するスクリプトに関して

Fmpro12を使っています。

今、翌日のリハビリの予定表を作成したく、作成を試みています。

以下の2つのテーブルを作ってやってみています。

予定テーブル
キー日付
時間
担当者(20繰り返しフィールドでヘッダに配置)
業務1
業務2
業務3
・・・
・・

業務20


担当者予定テーブル
キー日付
時間
担当者(20繰り返しフィールドでヘッダに配置)
業務1
業務2
業務3
・・・
・・

業務20


両テーブルともに表形式で表示しています。

両方とも、レイアウト上では、レコードを21まで作成し、
時間フィールドに以下を表示しています。
8:40
9:00
9:20
・・・
・・

16:20
16:40
まで表示しています。


やりたいのは、担当者予定テーブルで、
業務フィールドに表示した各担当者に行で割り当てたに表示されたレコードを
予定テーブルの同じ位置のレコードにテキストをコピーしたいです。



担当者予定テーブルは
業務1=担当者1
業務2=担当者2
・・

というように列で担当者の予定を入れてもらっています。

その1日の予定をそのまま、
毎日組む、予定テーブルにそのままスクリプトボタン1つでコピーして反映させたいのです。


色々、試しているのですが、以下のようなスクリプトを行うと、
予定テーブルのレコードに「?」と表示されてしまいます。


レコード1に移動
フィールド設定[ターゲットフィールド:予定テーブル::業務1][計算結果:GetNthRecord(担当者予定テーブル::業務1 ; 1)]
フィールド設定[ターゲットフィールド:予定テーブル::業務2][計算結果:GetNthRecord(担当者予定テーブル::業務2 ; 1)]
フィールド設定[ターゲットフィールド:予定テーブル::業務3][計算結果:GetNthRecord(担当者予定テーブル::業務3 ; 1)]
以下同じようにターゲットフィールド:予定テーブル::業務20まで続く

レコード2に移動
フィールド設定[ターゲットフィールド:予定テーブル::業務1][計算結果:GetNthRecord(担当者予定テーブル::業務1 ;2)]
フィールド設定[ターゲットフィールド:予定テーブル::業務2][計算結果:GetNthRecord(担当者予定テーブル::業務2 ; 2)]
フィールド設定[ターゲットフィールド:予定テーブル::業務3][計算結果:GetNthRecord(担当者予定テーブル::業務2 ; 3)]

これをレコード21まで同じようにステップします。


これを行うと、なぜかコピー先の予定テーブルのレコード上は、?と表示されます。
リレーションの貼り方が違うためか、よく分かりません。

今、リレーションはキー日付で組んであり、テーブル先のレコード作成も許可しています。

計算結果をLookup(GetNthRecord(担当者予定テーブル::業務2 ; 3))にしたりしてみましたが、ダメです。


これらの計算結果のターゲットフィールドを同じテーブルの担当者予定テーブルのフィールドにすると、テキストはコピーされて反映されます。


乱文で申し訳ありませんが、どうすれば表示されますか?
教えてください。

Offline

#2 2018-05-27 08:53:55

Shin
Member

Re: テーブル間のレコードコピーに関するスクリプトに関して

まず、基本構造から変えましょう。
1予定で1レコードのテーブルに変更します。そこに、日付、時間。担当者、業務 が入ります。
これを一覧で表示するためには、クロス集計を行います。
クロス集計は、検索してみると、たくさん出てきますよ。

Offline

#3 2018-05-27 12:40:46

Hiro
Member

Re: テーブル間のレコードコピーに関するスクリプトに関して

さらに、クロス集計表(=担当別時間割表)画面から直接予定記入できるようにすると、
レコード数の多大な今回事案では極めて実用的かと!

「逆引き・クロス集計法」の類似過去ログ・参考作例は、→ #7897『スケジュール』

Last edited by Hiro (2018-05-27 13:00:53)

Offline

#4 2018-05-27 16:22:27

Shin
Member

Re: テーブル間のレコードコピーに関するスクリプトに関して

ごくシンプルなサンプル
https://www.dropbox.com/s/weo45so09uk95 … 2.zip?dl=0

少し追加すると、担当者別の一覧表も作れます。

Last edited by Shin (2018-05-28 11:25:54)

Offline

#5 2018-05-27 20:45:30

top
Member

Re: テーブル間のレコードコピーに関するスクリプトに関して

Shin様、ありがとうございます。

Shin様につっくていただいたサンプルが今作ってるものに近いです。
本当にありがとうございます。

やりたいのは、予定一覧レイアウトで、明日の入院患者のリハビリ予定を作ります。

1日1患者、午前と午後のリハビリをします。
予定表では
①まず担当者ごとに予定表レイアウトに患者を振り分けます。(この時点では全担当者の枠に患者がいます)
②翌日の予定組で休みのスタッフが必ずいるので、予定表レイアウト上で、休みのスタッフの枠から
ドラッグ&ドロップで翌日出勤スタッフの枠に患者を移動させます。
③ ①を実施するために、今回相談した、「担当別患者表」から患者予定をそのまま予定表テーブルにコピーしたかったのです。

この担当別患者表では、スタッフ毎に、「この患者は10時枠、この患者は11時枠・・・」といったように
毎日行う時間はある程度決まっています。

先ほど②のところで、その日の入浴や検査などの関係で時間をずらすこともありますが。

色々、書いて試しまいましたが、担当別患者表レイアウトも予定表レイアウトと同じようなレイアウトで
作れるといいなと思っていました。

そうすれば、毎日あらかじめ決められた担当別患者表レイアウトでの患者のスケジュールを
そのまま予定表レイアウトにコピーをして、翌日休みのスタッフの担当患者を
出勤している担当者にドラッグ&ドロップで移動させるだけになるので。

Offline

#6 2018-05-27 22:37:56

Shin
Member

Re: テーブル間のレコードコピーに関するスクリプトに関して

予定表テーブルとは、どのようなものですか。
おそらく、サンプルのレコードから形式の変更で作り出せるものだと思いますので、新たにテーブルを作る必要は無いと思います。

サンプルで使っているテクニックは、すべて理解されていますか。非常に簡単に見えると思いますが、応用するには相当の理解が必要です。
別の方法として、ルックアップでクロス集計する方法がありますので、そちらも参考にして見られてもいいでしょう。(ひょっとしたら、これそのものが貴方のいう予定表テーブルかも)

ドラッグ&ドロップで移動させるテクニックは、ライジングサンさんのサイトからサンプルを起こされると参考になるかと思います。肝心なところを理解されれば、動きはそんなに難しいことではないですが、それをここへ適応させるには、相当の技量が必要と思われます。

Offline

#7 2018-05-28 02:05:58

top
Member

Re: テーブル間のレコードコピーに関するスクリプトに関して

Shin様、ありがとうございます。

Shin wrote:

予定表テーブルとは、どのようなものですか。

すいませんでした。
予定表テーブルとは、すでに既出しているサンプル内の予定一覧のことです。


もう1点伺えますか?

・予定一覧
・担当別患者表

この2つのレイアウトはほぼ同じとして、
予定一覧は、g_日付を選択することでレコードが切り替わりますよね。

担当別患者表は、g_日付とは連動せず、
スタッフが各々で入れたい任意の時間に患者の名前、予定を格納しておくレイアウトです。

例)スタッフA
9:00 鈴木
10:00 佐藤
11:00 相川
13:30 飯田
14:30 結城
15:30 品川

これがスタッフの数だけあり、自分で「この患者は、この時間に入れてほしい」というレイアウトです。
予定一覧のレイアウト内で、g_日付を変更するか、あるいは任意のボタンを選択することで、
担当別患者表のレコードデータを予定一覧にそのままコピー(ルックアップ?)したいのです。

毎日、翌日の予定を組むときに、
①予定一覧で翌日の日付を選択
②レコードが白紙に切り替わる
③担当別患者表のレコードデータを予定一覧にコピー
④手動で翌日出勤しているスタッフに患者を振り分ける


わたしのイメージはこんな感じです。

おそらくShin様は、わたしのイメージを理解して説明してくれてるのだと思います。
わたしの理解不足ですいません。

Offline

#8 2018-05-28 10:02:41

Shin
Member

Re: テーブル間のレコードコピーに関するスクリプトに関して

単に、そのレコードをインポートして、日付を設定すればいいです。
https://www.dropbox.com/s/weo45so09uk95 … 2.zip?dl=0

Last edited by Shin (2018-05-28 11:25:36)

Offline

#9 2018-05-28 11:42:26

top
Member

Re: テーブル間のレコードコピーに関するスクリプトに関して

Shin様、ありがとうございました。
少しずつ分かってきました。


もう1点聞きたいのですが、予定テーブルのs_業務_フィールドはどうやって作りますか?
集計フィールドですが、サンプルのように定義できないでいます。

教えて頂けますでしょうか?

Offline

#10 2018-05-28 14:01:31

Shin
Member

Re: テーブル間のレコードコピーに関するスクリプトに関して

あぁ、FM12 でしたか。一覧集計がまだ無いですね。

そこを、患者ID の数字で管理されてはいかがですか。
または、ルックアップ関数を使った集計に変更するか、です。

Offline

#11 2018-05-28 18:20:25

top
Member

Re: テーブル間のレコードコピーに関するスクリプトに関して

Shin wrote:

そこを、患者ID の数字で管理されてはいかがですか。
または、ルックアップ関数を使った集計に変更するか、です。

すいません。
1つ1つ勉強していますが、理解できないので教えてくれますでしょうか?

あと、色々質問ばかりで申し訳ないのですが、予定一覧画面で直接レコードに入力しても、
テキストが残らずに消えてしまうのはなぜでしょうか?

Offline

#12 2018-05-28 18:37:10

Shin
Member

Re: テーブル間のレコードコピーに関するスクリプトに関して

患者ID の数字で管理するとは、数字でしたら FM12でも集計できますので、ID 番号を入力しておく、という事です。
ルックアップ関数を使った集計とは、別に集計用のテーブルを用意して、繰り返しフィールドを用意します。そこに関数を使ってルックアップさせる方法です。ちょっとクセがあります。

> 予定一覧画面で直接レコードに入力しても、テキストが残らずに消えてしまうのはなぜでしょうか?
私のサンプルで?それとも作られたもので?
サンプルでのスクリプトトリガーでの動きをよく確認してください。adv 版をお持ちでしたら、デバッガーを動かすとよくわかります。

FM17も出た事ですし、バージョンアップ考えられたらいかがですか。

Offline

#13 2018-05-28 22:35:01

top
Member

Re: テーブル間のレコードコピーに関するスクリプトに関して

Shin wrote:

> 予定一覧画面で直接レコードに入力しても、テキストが残らずに消えてしまうのはなぜでしょうか?
私のサンプルで?それとも作られたもので?

今日、職場のFmpro12でShin様に作って頂いたサンプルを何回もダウンロードしなおしてみましたが、
やはり予定一覧画面でレコードを入力しようとしてもレコードが入力できない現象がありました。

ただ、自宅に帰ってきて無料評価版のFMpro17ADを使ってみると、
予定一覧レイアウトに問題なくレコード入力ができます。

よく分かりませんが。。

しっかりサンプルファイルも1度展開してから開きました。


FMproのアップグレードは、できれば行いたいですが、
病院がそこに投資できるかは疑問です。
アドバイスを頂きありがとうございます。

FMpro12でこの運用ができるように頑張ってみます。

頑張って教えていただいたことを1つ1つ勉強してみます。

Shin wrote:

患者ID の数字で管理するとは、数字でしたら FM12でも集計できますので、ID 番号を入力しておく、という事です。
ルックアップ関数を使った集計とは、別に集計用のテーブルを用意して、繰り返しフィールドを用意します。そこに関数を使ってルックアップさせる方法です。ちょっとクセがあります。

厚かましいお願いなのですが、ここがやはり理解できないので、
サンプルファイルなどに反映させていただくことは可能でしょうか?

教えていただいて、これ以降は自分で頑張ってみます。
よろしくおねがいいたします。

Offline

#14 2018-05-29 15:20:19

Shin
Member

Re: テーブル間のレコードコピーに関するスクリプトに関して

FM12は一覧集計の機能が無いので、動きませんね。FM13 以降が必要です。

ルックアップでの表示のサンプルです。FM10以降の対応になります。
https://www.dropbox.com/s/tbfdudns4wm6t … 7.zip?dl=0

Last edited by Shin (2018-05-29 17:07:07)

Offline

#15 2018-05-29 22:52:32

top
Member

Re: テーブル間のレコードコピーに関するスクリプトに関して

Shin様、ご丁寧にありがとうございます。
まだまだわからないことはありますが、ここからしっかり勉強させてもらいます。

ありがとうございました。

Offline

#16 2018-06-08 03:29:32

Shin
Member

Re: テーブル間のレコードコピーに関するスクリプトに関して

ドラッグ&ドロップで変更できるようにしました。
https://www.dropbox.com/s/tbfdudns4wm6t … 7.zip?dl=0

option を押したままの D&D で、複製されます。複製先に何か入っていた場合は、上書きされます。

Last edited by Shin (2018-06-08 08:55:44)

Offline

Registered users online in this topic: 0, guests: 1
[Bot] ClaudeBot

Board footer

Powered by FluxBB
Modified by Visman

[ Generated in 0.006 seconds, 7 queries executed - Memory usage: 576.34 KiB (Peak: 597.24 KiB) ]