Filemaker_Tech
Filemaker_Tech
話題 08 FMを超えてデータを受け取る方法
Filemaker 以外のソフトから データを受けとる方法のことです。
OSのコピペ機能を使って手動で, もちろん実現可能ですが, FilemakerのScriptの基本stepでは外部FileをコピーしてFMに貼り付ける, という記述はできません。単に表示するだけなら, “話題09”を参照してください。
1. 画像, PDF, ムービー, 音楽データの場合
a.データタイプごとに専用stepを使う
i.画像の場合....ピクチャを挿入(v6以前)
ii.PDFの場合..... *PDFを挿入(v12以降)
iii.音楽, ムービーの場合.... オーディオ/ビデオを挿入(v12以降), *Quicktimeを挿入(v6以前)
* Quicktimeとオーディオ/ビデオ, ともに同じタイプのオブジェクトを対象としているようで, その違いがよく分かりませんが, Quicktimeはインタラクティブ(下記に説明)に設定したFieldには挿入できないようです。あるいはWindowsではAppleのQuicktimeソフトがinstallされていないと挿入できない, また, ファイルはインポートされず、ハードディスク上のそのファイルへの参照のみが行われる, ということです。v12から実装されたオーディオ/ビデオの挿入のほうが制限が少ない,ということでしょうか。また, “PDFを挿入”stepでmp3の音楽Fileを指定してもなぜか取り込めます。
上記のstepでパスを指定すれば, オブジェクトFieldに各タイプのFileが取り込めます。 v12以降はFileの場所(パス)の表現に変数が使えるようになりました。変数を使うと外部FileのパスをScriptで書き換えかえられます。変数でFileの名前をScriptで変えると (パスの中で), 異なるFileを自動で取り込むことができます。sample fileでご紹介します。
パスの記載方法は相対パス, 絶対パスの2通りがあります。(最初の文字はピクチャ, PDFは “image”, ムービー, Quicktimeでは “movie”,) v12からは変数使用可能
i. 相対パス(FMのFileの階層を起点として記述)
例えば...image:GetFile/2014-0003.pdf
ii. 絶対パス(ボリューム名から記述, 最初の部分はOSXでは imagemac:/,Windowsでは imagewin:/)
imagemac:/108OS/Users/ABC/Documents/Filemaker/FMsample09/GetFile/2014-0003.pdf
*そのstepの前に”フィールドへ移動[ ]”stepを入れておくと,より確実です。
さらにv12以降は, ムービー, 音楽, PDFはFilemakerのなかで専用ソフトで表示できるようになりました。インスペクタの”データ”で”インタラクティブコンテンツ”をcheckします。PDFはAcrobatで表示されますし, 音楽データの場合, レコードページを開くと同時に音楽が始まります。
b. “ファイルを挿入”, “URLから挿入” step を使う
この方法は データタイプに依存せず, 取り込む方法です。”ファイルを挿入”stepは v6以前から使えましたが, ただ, “取り込む”というだけで, v11まではアイコンだけで内容は表示されませんでした。v12からは内容(Picture, PDF, 音楽)が表示されるようになりました(インタラクティブに設定しておくと確実のようです)。“URLから挿入”stepは絶対パスでタイプを問わず, Fileが取り込めます。さらにインターネットのURLを指定すれば, そのFileを取り込めます。
i. “ファイルを挿入” stepでのパスの記述は 上記の場合と同じ
ii. “URLから挿入” stepでは絶対パスを記載, 計算式可能
"file://108OS/Users/ABC/Documents/Filemaker/FMsample09/GetFile/2014-0003.pdf"
2. テキストデータの場合
メモとして渡された, テキストをレコードとして取り込むという場面があるかもしれません。それをScriptでやるとすれば, 上記の”URLから挿入”stepが使えますが, 全角文字は文字化けしてしまいます。
作成するソフトにもよるのでしょうが, Shift-JISなど日本語規格に変換すれば使えるでしょうし, 半角は問題なさそうです。
もうひとつ,“レコードのインポート” stepが文字化けもなく, 使えます。これは”レコードとして取り込む”という意味で前述の”Fieldに挿入”と少し趣きが違います。この “レコードのインポート” stepでは 外部ソフトのデータFileの名称, その保存形式を約束ごととして前もってFMと一致させるように決めておかねばなりません。例えば コンマ区切り形式で書いて, TEST_MEMO.text という名前にする。さらにFM側のScriptで取り込んだデータの各項目をどのFieldに割り当てるか, 新規レコードとするかなども決めておきます。このstepは逆に画像などのObjectの取り込みには使えません。
3. AppleScript VBScript を用いる方法
MacOSX環境でしたら, “AppleScriptを実行”, Windows環境でしたら “Eventを送信” stepで VBS, WSHなどが使えると思います。また外部関数を用いることもできるでしょう。
Sample (FMsample08)
画像, PDF, 音楽 とテキストを取り込むsample Fileを作りました(v12のみ)。外部Fileの場所(パス)に変数を使うとScriptで異なるFileを取り込むことができます。 外部Folerは “GetFile”です。その場所を動かすと,”URLから挿入”以外のボタンは相対パスを使っているので機能しなくなります。
画像 Fileは (TEST_Fig1.jpg, TEST_Fig2.jpg, TEST_Fig3.jpg)です。PDF, mp3 Fileもあります。
外部Text File (TEST-MEMO.txt ) の内容は2件(改行区切り), “レコードのインポート”で取り込みます。
050,加藤商店,097,中国のウナギ,中華社,5600,50,2015/01/20
060,清山商店,098,韓国のサザエ,ソンジュ社,2000,120,2015/01/21
各項目をコンマで区切ってあります。(TEST_MEMO.txt を開いて内容を変えてみてください。)
カルテの手書き絵
手書きで略図を書いてカルテに貼り付けることはあります。実際, 絵が描いてあると, 一瞬で内容が把握できるので すごく有用です。Filemakerにはお絵かき機能はないので, 外部のソフトで作成しなければなりません。Filemakerの電子カルテを15年くらい使っていますが, MacのOSの変遷とともにいろいろ変わりました。トラブルもありました。OS9のころは”Color it”というソフトを愛用していました。これが, ほどよいソフトで気に入っていたのですが, Intel CPUのOSXになってからは使えなくなってしまいました(OS10.6まで)。
いまはApp Storeから購入した安い”Paintbrush”を使っています。これが”Color it”に似て, ほどよいお絵かきソフトです。(いま, App Storeで確認したら, “Paintbrush”はなくなっていますね。”My Paintbrush”:300円 というレイヤー機能搭載のソフトがあるから,これにupgradeされたのでしょうか....? )
Paintbrushの画像データをScriptで受け取る方法は単純です。
1.Paintbrushで 絵を描いたら, 最初に “Save as” で 特定の場所(Desktop)に 特定の名前(abc.gif)で保存します。2回目からは, Paintbrush側で “command キー + S” で上書き保存します。
2.Filemaker側で ボタン(以下script) をクリックで OK
--------------------------------------------------------------------------------
フィールドへ移動 [ N_DOCTOR::N100手書き図1 ] <----- 必要
ピクチャを挿入 [ 「imagemac:/OSX500/Users/TBCL/Desktop/abc.gif」 ]
----------------------------------------------------------------------------------