FileMakerでフォルダーの作成 ~Windows編~

FileMakerでフォルダーの作成 ~Windows編~

 

FileMakerでPDFやCSVを作成した時、後から整理するのが面倒になります。
特にレコードが複数ある場合は、出力されるファイルも複数になるので、より管理が困難になると思われます。

事前にフォルダーを作成する方法はないか・・・

そんな方法がありました!!

今回は、その方法のwindows版を紹介させていただきます。
フォルダーを作成するのに使うのは

[Eventを送信]です。

このスクリプトの説明にはこのように記されています。
「Windows では、別のアプリケーションで処理を実行します。
macOS では、別のアプリケーションに Apple events を送信します。」
大まかに言うと、やって欲しいことの記述(命令文)はFileMakerで設定し、命令実行はFileMaker以外のアプリケーションで行うというものです。
windows版のフォルダー作成においては、コマンドプロンプトを利用します。

では、[Eventを送信]スクリプトステップに命令文を書いてみましょう。
[Eventを送信]の歯車マークを押すと

[Eventを送信]のオプションウインドウが表示されます。
ラジオボタンの計算を選びます。
選ぶと同時に計算式の指定ウインドウが表示されます。

ここに以下のようにコマンドを記入します。
“cmd /c md フォルダパス”

 

例文) “cmd /c md C:\Users\Administrator\Desktop\test”

“cmd /c md D:\test”

上記の文を””で囲うのを忘れないようにしてください。

オプションの「対象アプリケーションを手前に表示(B)」は、チェックを外さなくても構いません。
しかしながら、コマンドプロンプトが万が一にも画面に出てきて欲しくない場合は、チェックを外しておきましょう。

OKを押して、スクリプトを保存すれば
フォルダ作成のスクリプトが完成です!

 

ここからは、上記のコマンドを汎用的にするための注意事項です。

1.取得関数のフォルダーパスを利用する場合
“cmd /c md フォルダパス”
この記述を汎用的にする場合に引っかかりそうな部分です。
よく使われる取得関数
Get ( デスクトップパス )

Get ( ドキュメントパス )
上記をデータビューアでどんな結果を返しているか見てみると・・・
/C:/Users/Administrator/Desktop/
/C:/Users/Administrator/Documents/
上記のようになっています。
このままコマンドに組み込むと
“cmd /c md /C:/Users/Administrator/Documents/”
これでは、コマンドが実行されません!

①余分なものを取り除きます。
Replace ( Get ( ドキュメントパス ) ; 1 ; 1 ; “” )


C:/Users/Administrator/Documents/

②/(スラッシュ)を\(バックスラッシュ)に置き換えます。
Substitute ( Replace ( Get ( ドキュメントパス ) ; 1 ; 1 ; “” ) ; “/” ; “\” )

C:\Users\Administrator\Documents\

・・・となるのが理想ですが、計算式で/(スラッシュ)を\(バックスラッシュ)に置き換えるには、

\(バックスラッシュ)が算術演算子のため大変面倒です。

そこであらかじめグローバルフィールドまたはフィールドに\(バックスラッシュ)を入力しておき、計算に利用します。
Substitute ( Replace ( Get ( ドキュメントパス ) ; 1 ; 1 ; “” ) ; “/” ; フィールド名 )

C:\Users\Administrator\Documents\
③作成したいフォルダー名を付け加えて

Substitute ( Replace ( Get ( ドキュメントパス ) ; 1 ; 1 ; “” ) ; “/” ; フィールド名 ) & “test”


C:\Users\Administrator\Documents\test

これで、コマンドに組み込んでも問題なくなります。

2.コマンド文のミス
初歩的なミスですが、よくあります。

基礎文を参考に汎用文を作ってみてください。
基礎文
“cmd /c md” & Substitute ( Replace ( Get ( ドキュメントパス ) ; 1 ; 1 ; “” ) ; “/” ; フィールド名 ) & “test”

3.[Eventを送信]の設定が違う
作成手順で追求していなかったので、こちらに書かせていただきます。

 

[Eventを送信]のオプションウインドウ内の送信(N)をファイルを印刷にしていた場合
コマンドプロンプトが開きませんので、フォルダーは作成されません。

これにて、FileMakerでフォルダーの作成 ~Windows編~は終了となります。
PDFやCSVを作成する前に組み込んでみてはいかがでしょうか?

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

皆様の開発の一助となれば幸いです。