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

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

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

You are not logged in.

Announcement

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


#1 2020-03-14 21:31:39

ウィン
Member

複数ページに分けたデータ入力

FMA18
FMS17

いつもお世話になっております。取扱データを日報報告書に印刷するためのアプローチ方法が見えず困ってしまいました。

win
画像は手動入力で、新規レコード作成で8件のレコードが生成されるようになっています。これをカルテの詳細情報を基に自動入力したいのです。

印刷するための日報報告書があります。
その報告書には8行までしか入力が出来ません。しかしながら報告件数は数十件あります。

例えば24件各レコードに保管されている詳細情報があるとします。最初のページで8行まで入れ、次のページに移り8行まで入れ、また次のページに移り8行までのデータを合計3ページに表示にするためにはどのような手法でアプローチしたらよろしいですか?

ポータルで1〜8件、9〜16件、17〜24件と表示印刷いたらいいのか、リスト形式で出力したらいいのか、50件ほどの印刷になった場合など考えるとリスト形式がいいのか、リスト形式だったとしても書類の様式があるので様式に合わせるためにはどおしたらいいのかわかりません。

また8件中には病例などの小計も必要になってきます。全レコードから分類カウントをしてしまうとおかしなことになってしまいます。表示されている8件中の中で小計を出さないといけません。

1.詳細情報(カルテ情報)は診療IDやユニークIDでしっかり保存されている。
2.日報報告書1ページを1レコードとし、次のページは2レコードと出来るのが理想。別テーブルで無理ならカルテテーブルオカレンス本体の出力で構いません。
3.リスト形式だったとしても様式に収められるようなら問題はありません。

アプローチ方法のアイデアだけでも構いません。ご教示お願い致します。

Last edited by ウィン (2020-03-14 21:39:18)

Offline

#2 2020-03-14 23:12:43

ウィン
Member

Re: 複数ページに分けたデータ入力

カルテ情報に8レコードずつ同一日報IDを振ること出来ないですかね?
そうすれば日報1レコードにつき8レコードをポータル表示出来ますよね…

カルテ新規レコード作成の時にレコード1から8に日報ID(1)を作り、レコード9から16に日報ID(2)を振る…後は8レコード1セットを繰り返していけば…
そんな間欠的なIDの振り方って出来るのでしょうか?

日報IDとカルテ日報IDが揃わないと成立しませんよね…
計算値自動入力で出来そうな気がする。でも計算方法がわかりません…

Last edited by ウィン (2020-03-14 23:41:20)

Offline

#3 2020-03-14 23:34:37

ウィン
Member

Re: 複数ページに分けたデータ入力

まずカルテレコード1を作ったら同時に日報レコード1を作り、同一日報IDをレコード8まで自動に振り、カルテレコードが9になったら日報レコード2作る…
計算方法とトリガーのタイミングが見えてきません。

お分かりになる方おられませんか?

Offline

#4 2020-03-16 09:21:14

チポ
Member

Re: 複数ページに分けたデータ入力

> カルテ情報に8レコードずつ同一日報IDを振る
1からのシリアル番号を振り、
  Int ( ( シリアル + 7 ) / 8 )
とすれば8レコードずつのシリアル値が得られます。

> カルテレコード1を作ったら同時に日報レコード1を作り、同一日報IDをレコード8まで自動に振り、
> カルテレコードが9になったら日報レコード2作る
> 計算方法とトリガーのタイミング

ボタンでいいのでは。

Offline

#5 2020-03-16 10:12:18

Shin
Member

Re: 複数ページに分けたデータ入力

0からのシリアルすれば、単に8で割て Int() か、または、Mod() だけで処理できますよ。
それをキーにして、リスト型式で集計レイアウトを作れば簡単でしょう。複数ページに渡っても対応できます。

Offline

#6 2020-03-16 17:56:40

ウィン
Member

Re: 複数ページに分けたデータ入力

チポさん Shinさん
お世話になっております。返信ありがとうございます。

Int()を組み込んでカルテ情報に思った通りにIDを振ることができました。
日報レコードを切り替えるたびに入っている内容がしっかりと変えることができました。

日報レコード作成をボタンで良いのではとありますが…
カルテ情報など記入漏れや修正があった時に困るので、カルテ情報の処理は診療し終わったら、ボタンで一括処理させようと思っています。
その際に大量にカルテ情報が作成されます。そのカルテ情報レコードの枚数分だけ必要な日報レコードを自動で作りたいです。
カルテレコード枚数分日報レコードを作成するスクリプトステップはどのようにするのが無難かと思いますか?

Offline

#7 2020-03-16 18:19:55

Shin
Member

Re: 複数ページに分けたデータ入力

カルテレコードをリスト表示させ、通し番号をうちます。それを元に、上の式を使ってページ番号を生成します。
そのページ番号で集計するレイアウトを作り、ページ番号の小計パート(上部)で改ページするように設定すれば、日報というレコードは不要では。

Offline

#8 2020-03-16 19:09:45

ウィン
Member

Re: 複数ページに分けたデータ入力

日報にレコードが不要なのですか!?
カルテレコードをリスト表示させ、通し番号を打つというのはどういうことですか?カルテにある診療IDとは別に何かを作る必要があるのでしょうか?
集計レイアウトと言うのも、しっかり理解できていないのですが、従来のレイアウトと異なるのでしょうか?
小計パートの定義、改ページの設定など、その方法や手順が分かりません。

現状
カルテ入力用テーブル
ルーズリーフカルテのように入力したいのでポータルにてカルテテーブルを操作

カルテテーブル(Shinさんが作ってくれた略称分解ステップが入っているレイアウト)
診療IDフィールド 自動生成
日報IDフィールド 計算 ※ここに診療IDからInt()で割り出した数値を入れています。

カルテ詳細テーブル(カルテの詳細情報(明細))
診療IDフィールド カルテテーブルから自動生成

診療日報テーブル
日報診療IDフィールド 日報レコードと8つのカルテレコード日報IDを一致させる為に作ってあります。

Last edited by ウィン (2020-03-16 19:37:06)

Offline

#9 2020-03-17 08:56:10

Shin
Member

Re: 複数ページに分けたデータ入力

構造だけのサンプルファイルです。日付で抽出して、page でソートします。プレビューで見るといいでしょう
https://www.dropbox.com/s/cpbfcyoxcsrsp … 2.zip?dl=0

Last edited by Shin (2020-03-18 17:33:00)

Offline

#10 2020-03-17 13:56:57

ウィン
Member

Re: 複数ページに分けたデータ入力

いつもお世話になっております。
サンプルありがとうございました。大変勉強になります。

印刷用改ページを作りたくて色々と模索していました。
自身のやりたい事をサンプルに加えておきました。リスト形式では日報の様式に合わせる事が出来なかったのでカルテの情報をポータルで取得して様式に合わせようと思っていました。
http://frds.html.xdomain.jp/fmp/fm-aid10287.fmp12

カルテ情報が8つ出来る度に日報レコードを一つずつ生成出来れば、ほぼほぼ自動化出来ると考えていました。
一応見ていただけませんか?

Offline

#11 2020-03-18 09:01:06

Shin
Member

Re: 複数ページに分けたデータ入力

サンプル更新しています。
https://www.dropbox.com/s/cpbfcyoxcsrsp … 2.zip?dl=0

空行の印刷も必要でしたら、ダミーのレコードを追加するといいです。日毎に印刷するでしょうから、使い回しも可能です。

Last edited by Shin (2020-03-18 17:33:12)

Offline

#12 2020-03-18 10:08:14

ウィン
Member

Re: 複数ページに分けたデータ入力

ありがとうございます!
素晴らしい手法ですね。
シンプルな構造なのにここまで出来るのが凄いと思いました。

難しく考えすぎていたかもしれません。

まだまだ勉強不足でした。本当に感謝申し上げます。

Offline

#13 2020-03-28 21:36:04

ウィン
Member

Re: 複数ページに分けたデータ入力

解決済みではあるのですが、もう一つお聞きしたいことがあります。

通常に入力されたデータを順次ソートされた場合、特に問題なく通し番号で並ぶのですが、AとBで種類分けされたものをソートすると番号が綺麗に並んでくれないのですが、修正する方法はありますでしょうか?

現状の計算フィールド
Char ( Mod ( Count ( 診療日報A::診療ID ) ; 8 ) + Code ( "①" ) )

通常
①A
②A
③B
④A
⑤A
⑥B
⑦A
⑧A

A区分でソートすると①②④⑤⑦⑧とリスト表示され、B区分でソートすると③⑥になります。
どの区分でソートされたとしても①から⑧まで順番に並べることは出来ないでしょうか?

2020-03-28.png

Last edited by ウィン (2020-03-28 22:04:30)

Offline

#14 2020-03-29 08:40:24

Shin
Member

Re: 複数ページに分けたデータ入力

リレーションにソート条件を加えるだけです。

複数日を処理することを前提にしていますが、単日処理のみでしたら、計算のタネを Get ( レコード番号 ) に変えてもいいでしょうね。

Last edited by Shin (2020-03-29 08:42:59)

Offline

#15 2020-03-30 10:52:33

ウィン
Member

Re: 複数ページに分けたデータ入力

こんにちは、いつもお世話になっております。

なるほど納得です。
以前は紙媒体からの手入力の作業が入り、その日のうちに日報が提出が出来ないなどの時間差があったので複数日処理が必要でしたが、今では即日発行が可能になったので単日処理で対応してみたいと思います。

Offline

#16 2020-04-05 17:54:01

ウィン
Member

Re: 複数ページに分けたデータ入力

Char ( Mod ( Get ( レコード番号 ) ; 8 ) + Code ( "①" ) ) でソートをかけると








になってしまいます。何故なんでしょうか・・・?

Offline

#17 2020-04-05 18:25:07

ウィン
Member

Re: 複数ページに分けたデータ入力

DatePage Field(計算)
GetAsNumber ( 診療日時_実データ用 ) + Div ( Get ( レコード番号 )  - 1 ; 8 ) / 10

NoPage Field(計算)
Char ( Mod ( Get ( レコード番号 ) - 1 ; 8 ) + Code ( "①" ) )

レコード番号に-1を加える事によって上手くいきました。
Get(レコード番号)をダイレクトに取得すると1から順に表示されるのですが、スクリプトに追加する場合は+1が加算されているようですね。
原理は良くわかりませんが解決しました。

Offline

#18 2020-04-06 08:47:00

Shin
Member

Re: 複数ページに分けたデータ入力

元のシリアルは、0から始めていますね。これは、Mod() にしたときに、0,1,2....7,0,1,2 にするためです。
1から始まると、1,2,3,...7,0,1,2 となり、8レコード目が0になります。(#16で体験された通り)
同じように動かすためには、計算の種もも0から始まるように変更する必要があります。

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, 9 queries executed - Memory usage: 562.8 KiB (Peak: 583.71 KiB) ]