話題 08  ソフトを超えてデータを受け取る方法 

Filemaker 以外のソフトから データを受けとる方法のことです。

OSのコピペ機能を使って手動で, もちろん実現可能ですが, FilemakerのScriptの基本stepでは外部FileをコピーしてFMに貼り付ける, という記述はできません。単に表示するだけなら, “話題09”を参照してください。


  1. 1. 画像, PDF, ムービー, 音楽データの場合

  2. a.データタイプごとに専用stepを使う

  3. i.画像の場合....ピクチャを挿入(v6以前)

  4. ii.PDFの場合..... *PDFを挿入(v12以降)

  5. iii.音楽, ムービーの場合.... オーディオ/ビデオを挿入(v12以降), *Quicktimeを挿入(v6以前)

  6. * 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で表示されますし, 音楽データの場合, レコードページを開くと同時に音楽が始まります。




  1. 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"


  1. 2.  テキストデータの場合

メモとして渡された, テキストをレコードとして取り込むという場面があるかもしれません。それをScriptでやるとすれば, 上記の”URLから挿入”stepが使えますが, 全角文字は文字化けしてしまいます。


作成するソフトにもよるのでしょうが, Shift-JISなど日本語規格に変換すれば使えるでしょうし, 半角は問題なさそうです。

もうひとつ,“レコードのインポート” stepが文字化けもなく, 使えます。これは”レコードとして取り込む”という意味で前述の”Fieldに挿入”と少し趣きが違います。この “レコードのインポート” stepでは 外部ソフトのデータFileの名称, その保存形式を約束ごととして前もってFMと一致させるように決めておかねばなりません。例えば コンマ区切り形式で書いて, TEST_MEMO.text という名前にする。さらにFM側のScriptで取り込んだデータの各項目をどのFieldに割り当てるか, 新規レコードとするかなども決めておきます。このstepは逆に画像などのObjectの取り込みには使えません。


  1. 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. 1.Paintbrushで 絵を描いたら, 最初に “Save as” で 特定の場所(Desktop)に 特定の名前(abc.gif)で保存します。2回目からは, Paintbrush側で “command キー + S” で上書き保存します。

  2. 2.Filemaker側で ボタン(以下script) をクリックで OK

--------------------------------------------------------------------------------

フィールドへ移動 [ N_DOCTOR::N100手書き図1 ]      <----- 必要

ピクチャを挿入 [ 「imagemac:/OSX500/Users/TBCL/Desktop/abc.gif」 ]    

----------------------------------------------------------------------------------

 
実例 File のdownload (.fmp12)Tech_08_files/FMsample08.zip