いつも分かりやすい回答を頂きまして、ありがとうございます。
現在、診療に出かけたのちに患者さんに渡す診療日毎の報告書を作成するアプリを作成しているのですが、日々作成されていく報告書をまとめて印刷にかけたいのですが、方法はございますでしょうか?
1) 日々の診療時に報告書を作成(報告書には診療日を入れる項目あり)
2) 月の締め時に当月分(もしくは翌月の頭に前月1ヶ月分)のみを抽出し、一気に印刷にかける
3) 患者さんには紙ベースは翌月にお渡しし、それまでは可能であればWeb上で本人の分だけ閲覧できるようにしたい(もしくはデータは作成毎にメールで送付)
*報告書はworkflowにてwordにデータ挿入後にPDF化する
お忙しいところ恐縮ですが、よろしくお願い致します。
まず、それぞれの報告書にアクションを設け、入力されたデータをWORKFLOWでPDFに変換し、PDFのデータをクラウドに保存する、必要に応じ指定の相手(例えば報告書内で患者名を記載する部分があるでしょうから、患者の詳細を保存するマスタテーブルをLookupし、患者名を選択。同時に当該患者さんのメールアドレスをLookUpします。)のメールアドレスに送付するアクションです。
WorkflowではEmailを送付すると同時にPDFデータをCloudに保存させるOptionや、Workflow自体にSave Fileというものがありますので、このファイルはWorkflowが呼び出される毎に常にCloudに保存されます。
同時に報告書のテーブルにVirtual Columnを設け、このCloudに保存されたPDFへのリンク(URL)を動的に作成します。このURLをクリックすれば、BROWSERで保存されているPDFが表示される仕組みです。
それぞれの報告書への入力・記載が完了した時点で、アクション経由このWORKFLOWを走らせれば、データがPDF化されたファイルが常にCLOUD上に保存されます。また、それらのファイルへのURLも報告書の各ROWに表示されることになります。
一度、PDFが生成されれば、後は、再度WORKFLOWを走らせてPDFを新規に作成、もしくは既に生成・保存されているPDFにURL経由、アクセス可能となります。
後は、月毎にどのように報告書を集計・まとめるか?ですが、簡単な方法としては、年・月のVALUEのマスタテーブルを用意。カラム一つだけのテーブルです。ここには例えば01/2020, 02/2020,03/2020といった具合にカレンダー的に年/月のValueを事前にデータとして準備、保存したテーブルです。
報告書には報告書の日付を入力する項目があるはずです。ここはDATEの値ですので、別途カラムを準備し、この報告書の日付をREFERし、動的に上記の年・月マスターのデータとリンクづけるために動的に年・月のデータを報告書日付から生成させます。
Text([報告書日付],"MM/YYYY") といった関数で、日付を指定のフォーマットに変換。
このカラムはREFタイプとして設定し、上記のカレンダマスタとリンクづけします。
これによりカレンダーのテーブルからVIEWを作成するとその年月に生成された報告書が子テーブル、INLINE VIEWとして表示されます。
それぞれの年・月にすべての報告書を束ねてくれるわけです。
例えば09/2020を選べば、今月生成された報告書がすべてリストアップされます。例えば10件分の報告書がINLINEVIEWとして表示。REFの設定により親子関係が設定されるためです。
カレンダーのテーブルにアクションを設置。子テーブル化された報告書のテーブルに設置したアクション、PDFをSAVEするアクションを対象の子テーブルの行すべてに一度にアプライすることで、そのボタン操作一つで、関係する報告書が再度、あらたにPDF化。既に生成されているPDFがあるのであれば、うわだたきされて、最新のデータをベースにPDFが生成されるわけです。
ちょっと複雑な処理となってしまいますが、十分に実現可能です。