FileMaker Pro 2024(v21)がv21.1.1にアップデートしました。
macOS 12.xのサポートが打ち切られ、macOS 13以降が対象となっています。
FileMaker Pro v21.1.1のAppleScript用語辞書に、とくに変更は加えられていません。
日本国内においても、Claris FileMaker 2023および前バージョンのClaris FileMaker v19.xからのアップデータがリリースされました。「2023」と銘打っているからには、翌年には「2024」が出てくることが期待されるわけで……販売戦略的なものがいろいろ変更されることがうかがわれます。
商標その他で記述すべき名称は変わっていますが、macOS上でのプロセス名としては「FileMaker Pro」であることに変更はありません。Clarisの(技術サポート系の)Web上の表記は「FileMaker Pro 20.1」となっているようです。
なお、macOS上でのバンドルIDは「com.filemaker.client.pro12」のままで変更されていません。
アプリケーションのアイコンは変更されています。
まだ確認中ではありますが、AppleScript用語辞書も前バージョンから変更なく、書籍のアップデートもとくに行わなくてもよさそうな雰囲気であります(アイコンと画面スナップショットの都合で差し替えるか別の本にする必要があるかもしれません)。
「Claris FileMaker 2023」が製品シリーズを包括する名称で、macOS上で動作するクライアントソフトウェアについては「Claris FileMaker Pro 2023」であると認識しています。
Claris FileMaker Pro 2023がサポートするOSは、macOS 12と13。Windows 10(22H2、64bitのみ)、Windows 11(22H2、64bitのみ)。
FileMaker GoはiOS 16/iPadOS 16が動作するデバイスが稼働対象です。
FM-1グランプリ運営委員会(iC株式会社、合同会社イボルブ、株式会社未来Switch)が今年(2022年)に開催した、FileMaker Proの「笑えるソリューション」のコンテスト「バカスタムApp選手権」において、Piyomaru Softwareが応募した「FM-Clock」が入選を果たしました。
# あくまで入賞であって、優勝とか準優勝とかいうどえらいものではありません
「笑える作品」という、割ととらえどころのないテーマではありましたが、36ページにもわたる企画・仕様書を作成し、綿密な設計をおこなったうえで応募したことが入選につながったのではないでしょうか。協力してくれたすべての人々に感謝を!
既存のAppleScript対応アプリケーションから、Cocoa Scriptingの現在のパワーを利用できるようにした「PowerPack」シリーズ。
第1弾は日本国内外で多くのユーザーに支持されている「CotEditor」用PowerPack。
第2弾がさまざまなプラットフォームへの広がりを見せつつmacOSのコア機能であるAppleScriptへの対応も行っているデータベース製品「FileMaker Pro」用のPowerPack。「FileMaker PowerPack」は、このFileMaker Proの上で動くCocoa AppleScriptサンプル集です。
サンプル集としてAppleScriptが掲載されているだけなく、FileMaker Pro上でそのまま実行でき、サンプルデータをもとに実行して、その結果をFileMaker Pro上に返してきます。
一般的なAppleScriptランタイム環境と異なるFileMaker Pro上のランタイム環境においても動作するようFileMaker Pro向けのチューニングを行ってあります。
「FileMaker PowerPack」は、日本国内のFileMaker系最難関コンテスト「FM-1グランプリ」への応募作品でもあり、業務効率化部門準賞 入賞作品でもあります。
日頃、AppleScriptになじみのない開発者にもこのPowerPackを試し、実際に実行し、そして書き換えて自分のシステムで使うための使い方を詳細に解説する電子書籍「FileMaker PowerPack」活用ガイドを刊行いたしました。
PDF 317ページ、FileMaker PowerPackの最新版 v2.1を同梱。
さらに、期間限定おまけコンテンツ「FM-1 GP戦記」(PDF 43ページ)を添付。前代未聞の難関コンテストを勝ち残るためにチーム内で行われた詳細な議論。試作品を没にしてたどりついた、コンテスト攻略の秘策とは?! いまだからこそ明かされる、真剣かつ呑気なやりとりに全米が泣いた、総ページ数350ページを超える1作です。
FileMaker Proの「すごいデータベース」のコンテストであるFM-1グランプリにおいて、Piyomaru Softwareの応募作品「FileMaker PowerPack」が、予選を通過し、決勝において仕事効率化部門の部門準賞を獲得いたしました。
FileMaker PowerPackは、CotEditor PowerPackと同様、Cocoa ScriptingのパワーをFileMaker Proユーザーに体感していただく技術的なデモンストレーションであり、かつ日常的にデータベース用のデータ作成などの作業に従事する人たちが便利と感じる(のではないか)という内容のScriptを収録したScriptサンプルデータベースに仕上がっています。
データベース上にサンプルデータを入れ、その場で実行して結果を確認できるようになっています。
内容はあっさり読めるように書いてあるものが多いので、入門用に見えてしまうかもしれませんが……実際にAppleScriptを「書ける」人間が読むと顔をひきつらせるような内容のものが多々入っています。作った本人としては「これを見て書けるようになるとは思わない」というレベル設定です。超絶レベルではないものの、アクロバティックなものが多いので。
技術的にも度肝を抜くような内容であり、178本のScriptを収録してはいるものの、本作品はあくまでFileMaker Pro上で動作するAppleScriptのコードなわけで、「ド派手で巨大で存在感はあるものの、さすがに大賞はとらないだろう」という味付け。本作品のレビュー記事は、文字数からBlog側で単純計算した読了所要時間が23分という大作です(通常の8倍のボリウム)。
それでも、FM-1グランプリの運営方針である「きちんと内容をチェックする詳細なレビュー」が行われおり、日本国内のFileMaker Proコミュニティのレベルを内外に示したという意味において、よそで真似できない「まっとうな」骨太のコンテストであったことを痛感。運営に携わられたお3方、関連スポンサー企業の方々に敬意を表します。
というわけで、このFileMaker PowerPackの書き換え方法や利用方法などを解説した「FileMaker PowerPack活用ガイド」を近日発刊予定です。技術的なレベルを下げて解説し、久しぶりにAppleScriptにさわるという方向けにレベル設定しています。完全理解というレベルでなくても、必要な書き換えはできるだろうという内容を目指しています。
そして、自分で作った作品の作者自身の解説のはずなのに、自分で書いていてとても大変です。「誰だ、こんなもの作ったのは?」という悪態をついてしまうほどですが、それは自分のことなので自業自得というところです。
FileMaker Proの作品コンテスト「FM-1グランプリ」の第2回予選を通過した「FileMaker PowerPack」を、内容拡充し第3回予選に再応募しました。
CotEditorのPowerPackにつづく、FileMaker ProのPowerPack。178本のAppleScriptを収録した、FileMaker Proに組み込んで動かすと便利そうなものを収録したサンプル集です。
Cocoa Scriptingのデモンストレーションを行うフリー配布ソリューションです。
FileMaker ProとAppleScriptなので、相性抜群! 楽勝で作れるに違いない!
……そんなことを考えていた時期が自分にもありました。
しかし、割と前代未聞のトラブルに遭遇。苦労話にはことかかないありさまです。だいたい、内容がなかなか決まらずに企画段階でかなり困っていました。
ここでは、お気楽そうに見える見た目とはまったく異なる技術的な内容について記すこととします。
FileMaker ProのAppleScriptランタイム環境は独特のもので、ランタイム名を取得しても「FileMaker Pro」と独自の名前が返ってきます。Vanilla AppleScriptについては環境の違いにともなう「差異」は感じないところですが、Cocoa Scriptingを行うと「まったくの別物」であることを痛感できます。
FileMaker Pro内蔵のスクリプトステップ「AppleScriptを実行」は、実行したAppleScriptが生成したオブジェクトがメモリ上に常駐したりしません。実行後、即座にメモリ上からパージされるようです。ARC的な「使わなくなって時間がたったから自動で消しとくね!」という挙動とはまるっきり違います。
このことで、OS側から各種Notificationを受信するようなもの(USBメモリがマウントされたらAppleScriptを実行させるなど)は、瞬時にクラッシュ。NSTimerでタイマーを生成してタイマ割り込み処理を行おうとするとクラッシュ!
さらに、標準的なランタイム環境(スクリプトエディタ、Script Menu)で実行したときには発生しないトラブルが山のように発生します。
とくに、CoreImageの機能を呼び出して画像処理を行おうとした場合には、明示的にメインスレッドでの処理を指定する必要があり、これに気づくまではまったく画像フィルタ処理ができない始末。FileMaker PowerPackでは無駄にCoreImageのフィルタ呼び出しプログラムばかり60本ぐらい突っ込んでありますが、このCoreImageの処理で問題のある挙動を示すものがないか全数チェックしたという次第です。
Cocoa Scriptingについては、おそらくメーカー側でもノーチェックの部分なので、調べられる機会に調べておいたほうが得策です。
今回のFileMaker PowerPackでいろいろ余計なノウハウがたまりましたが、osascriptなどのランタイム環境と比べてもずいぶん風変わりなCocoa Scripting環境であることを意識しておく必要があることでしょう。
FileMaker PowerPackには目下178のScriptを入れてあり、FileMaker Pro DB上のサンプルデータをもとにデータ処理を行い、結果がある場合にはDB上に結果を描き戻すようになっています。
今回、さまざまなテストを重ね、「極力FileMaker Pro内蔵のAppleScript実行環境を利用しない」ことが問題解決の近道であることを痛感しました。できるだけ、FileMaker Proの外部に補助アプレットを用意して、そちらでCocoa Scriptingの処理を行うべきです。まして、タイマー処理やNotificationの受信処理などはFileMaker Pro内では行えないため、FM内では最低限の処理にとどめ、処理本体を外部に出すべきでしょう。
macOS 12で行われたFramework再編の影響も受けました。PDFKitの機能を利用する場合、macOS 11までであれば、
use framework "QuartzCore"
と記述していましたが、macOS 12では、
use framework "PDFKit"
と記述する必要があります。
macOS 11までのOSと、macOS 12以降のOSにそれぞれ対応するライブラリを書いて、実行時のOSバージョンを検出して呼び出しを切り替える処理をスクリプトエディタ上で動作確認してあったのですが、これをそのままFileMaker Proのランタイムに持っていくとコンパイル(構文確認)をパスしません。
仕方なく、macOS 11までのScriptと、macOS 12以降のScriptで別々のものに分ける必要がありました。
さまざまなランタイム環境で動作する必要のある、Piyomaru Softwareによる世界最小の簡易形態素解析エンジン「easyJParse」を、このFileMaker PowerPackに組み込んでいます。
このeasyJParseは初出時には80行程度、現在でも100行そこそこという超小型の形態素解析プログラムであり、自然言語(主に日本語)によるコマンドを分解するために開発したものです(飛行機の中でも動かすべく、REST APIで外部のサービスを呼び出したりはしていません)。
当初、easyJParseがFileMaker Proランタイム上で動かず、けっこう焦りましたが……いつもの「ソート方向指定」の「ascending」とか「descending」などのキーワードがFMの予約語と衝突していただけでした。
このeasyJParseが動くことで、FileMaker Pro上でTanzaku的な自然言語によるコマンド指定ソリューションが動きまくるはずですが、32KBまでのScriptしかホスティングできないという制限が地道に大変そうであります。
ウチの検証環境(Intel+M1 Mac mini)でテストした範囲では問題ないことを確認していましたが、どうもM1 MacBook+Retina Display環境では検証できないので、その環境ではいろいろ問題に遭遇していたようです。問題の洗い出しを行えたことは前向きにとらえるべきですが、その環境がないので事前にチェックすることは不可能です。
# M1のRetina Display+MacBook環境が手元にないのでコンテストに応募したわけで…
肝心の総合結果発表は11月27日。大賞を取ることは難しそうですが、予選を通過したため何かいただけそうです。噂によればFileMaker選手権2021も近い日程で結果が発表されるとかしないとか。こちらにも応募はしているため、せめて参加賞ぐらいはいただきたいものです(モバイルバッテリーだったか)。
FileMaker PowerPackについては、その内容を解説し、書き換えるためのガイドを行う書籍を近日発行予定です。さらに、Cocoa Scripting的な立ち入った解説を行うものも計画しています。
これらの付録に、「FM-1グランプリ戦記」をつける予定です。
FileMaker ProのAppleScriptからの操作を詳細に解説した電子書籍「FileMaker Pro Scripting Book with AppleScript」(日本語版)をアップデートしました。
macOS 12に合わせた内容のアップデート、v1.2までに説明されていなかった内容の補完、および別冊付録リファレンスをまとめています。
すでに購入された方は、購入ページからの再ダウンロードで入手可能です。
→ FileMaker Pro Scripting Book with AppleScript オンラインブックストア(BOOTH)
FileMaker Proのカスタムアプリケーション(データベース)のコンテスト「FM-1グランプリ」で、応募作品「FileMaker PowerPack」が第2回予選を通過しました(全3回の予選の2回目)。
内容は、FileMaker Proを制御するCocoa Scriptのサンプル集です。ちょうど、CotEditor用に出しているPowerPackのFileMaker Pro版といった位置付けで、厳選したCocoa Scriptを掲載しています。
他の開発者の方が使って便利と感じる「ベネフィット」だけの存在として企画し、「コピペで即戦力的に使えるAppleScriptのコード集。その場でテスト実行できる」という、ベネフィットだけで実体がほとんどないという不思議な異次元作品になりました。
実体がないといっても、FileMaker Proでできることが飛躍的に広がる……といいますか、各種掲示板などで「これができない」「これに困っている」という話が出ていたものを丹念に調査し、そうしたものを中心に(すべてではない)収録。とくに、HTMLのタグ除去処理とテキストからの絵文字除去処理!!!
さすがに強豪ぞろいで大賞は取れないと思うのですが、予選通過できて一安心です。一晩で作ったので、ちょっと問題点がいろいろありましたが、修正可能な範囲だったのでセーフ! セーフでしょう。
応募時の内容は、テキスト処理系と画像処理系を中心にまとめました。PDF処理系と画像フィルタ系も試していたのですが、FileMaker Proに組み込む書き方で難儀してこの第1回応募作品には間に合っていません。
# 画像のフィルタ処理を行うためにCIFilterを呼び出していたのですが、結局明示的にメインスレッド実行する必要がありました。FileMaker ProのAppleScriptランタイム環境の挙動が他の環境と違いすぎて、けっこう手を焼きます
応募作品の内容を審査していただいたところ、いろいろ細かい問題点は見つかりました。
・Retina環境で動かすと画像処理系で問題の出るScriptがある(顔認識+マスク処理)、、、これは、他の画像処理(重ね合わせとか)ではRetina対応できているので、こいつだけ間に合っていなかったっぽいです。FileMaker Pro上では単なるテキストとしてScriptを書く必要があり、バンドル内にライブラリを格納するとかインストールした外部ライブラリを呼び出せないといった「AppleScriptランタイム環境としては過酷」なFileMaker Proランタイムの制限が厳しいところです
・データベースが複数オープンされていると正しく「最前面のデータベース」を検出できない、、、、database 1で最前面のデータベースを指定してしまったので、その点を修正。審査Blogには「M1対応していない」と書かれていますが、開発自体をM1 Mac miniで行なっているので、複数データベースをオープンしている状況に対処できていなかっただけでしょう(アプリケーションを終了してデータベース1つだけの状態になったので動作)
ルール上、3回目の最終選考に修正したものを出せることになっているので、FileMaker ProでPhotoshopばりの画像フィルタ処理を行いまくるScriptを追加して出せるといいのではないかと(ただ、CIFilterを使うことになるので、AppleScriptからパラメータを指定できるものが少ない)。
ほかにも有効と思われるのは2点間の距離計算であるとか、多次元配列処理、与えられたデータの順列組み合わせ計算(Permutation)、あたりでしょうか。地味なところで、各種日付表記フォーマットでの文字列化。タグクラウド処理あたりはやりたいところです。データベースに入っているデータをもとに、タグクラウドを生成して表示するといったところで。感覚的にデータ内容の傾向をつかみやすいので。
「空前絶後 あなたの知らないヤバイAppleScriptの世界」のiOS版、FileMaker Goを使って読む電子ブックの販売を開始しました。1,000円です。
→ 販売ページ
なんでこれを作ろうと思ったか?
PDF版をiOS上で読んでいただくことも可能ですが、画面の縦横比とかなんとか。とにかくPDF版の読書体験がよくありません。
そして、AppleのiBooks Storeに本を出すのに、ISBNだ何だといろいろうるさく、これに付き合っていられません。
そのため、いろいろ検討したうえでFileMaker Goに白羽の矢を立て、このアプリケーションを読書用のプラットフォームとして活用するために実験を繰り返していました。
小さな画面で文字を読むのは、ガラケーの時代から大変なことですが、スマホで読んでも大変なことに変わりはありません。
レイアウトに一緒に画像を入れるのも大変なので、基本的に文字コンテンツだけです。一応、なんとかすれば画像表示用レイアウトも混在させて、画像を見ていただくことは可能です。
これまで、PDF版(フル・レイアウト)のオマケとか、サブセットとして出すとか(AppleScriptポケットリファレンス)、そういう試みはしてきましたが、.fmp12単体で売ってみるというのははじめてのことです。iPhoneだけで暮らしたことが皆無なので、まだちょっと見落としていることがあるかもしれませんが、失敗も含めて貴重な経験になることでしょう。
FileMaker Goのデータベースアプリケーションとしての出来については、いまひとつ評価が定まっていないというか、バージョンごとに少しずつ問題があるという見立てになっています。期待をしすぎてはダメというところなんでしょう。
ですが、単にレイアウト切り替えをするとか、フィールドに入れた文字を読むというだけであれば問題が出るとも思えません。
いえ、正直なところiPad mini+FileMaker Go 18(前バージョン)で読んでいたときに、突如としてフィールドが真っ白になってレコード表示がうまく動かなくなったということはありました。
それでも、iPhone+FileMaker Go 19であれば、とくに問題らしい問題に遭遇したことはありません。RAMが少ないと環境だと問題があるのかもしれません。
とりあえず、「何かあったとき」のために……筆者に文句を送信できるよう、電子ブックに感想送信フォームをつけておきました。
個人的には、.fmp12形式のままBOOTH上で販売したいのですが、その点について提案したもののお返事をいただいていません。
電子ブック「FileMaker Pro Scripting Book with AppleScript」の購入者様向けに追加ダウンロードコンテンツをご用意しました。
先日のFileMaker作品コンテスト「FileMaker選手権2020」に3作品応募した過程を記録した「FileMaker選手権2020戦記」です(PDF形式、83ページ)。
レギュレーションを検討してどのような作品を作ろうかと検討した過程や、チーム内で議論された内容、初期仕様やその後の仕様の変化、チーム内で記録された開発日誌、結果公開後の各方面からのコメントに筆者の総括コメントなど、生々しすぎて結果発表後すぐには公開できなかったほどです。
「FileMaker Pro Scripting Book with AppleScript」を購入された方は、購入コンテンツのダウンロードページからダウンロードしてください。未購入の方は、同書籍をお買い上げいただくとオマケとしてダウンロードできます。単体での販売は行っておりません(さすがに、優勝していないのでそういう価値はないでしょう)。
Just we released English edition of ebook “FileMaker Pro Scripting Book with AppleScript”.
–> Online Store
–> Product Support page
Somebody asked me “Is there English version?” on twitter. I started translation project at that word.
At that point, I thought the translation project wouldn’t be too much hassle.But…it was wrong for me. It took more effort to translate it than write original Japanese version.
Japanese is a strange language. The subject can be omitted.Writing Japanese sentences makes a lot of effort to create a “good atmosphere” rather than facts.
It was very hard work. I added about 20 pages to explain the current status and history of AppleScript itself.
I hope this book will reach a large number of users.
AppleScriptからFileMaker Proをコントロールするやり方を基礎から実戦レベルまで紹介する電子ブック「FileMaker Pro Scripting Book with AppleScript」を発売いたしました。定価は3,000円です。
→ 販売ページ
これまでに、「AppleScriptえほんシリーズ」を3冊出しています。Scriptについて理解していなくても、本のとおりに操作して入力すればGUIアプリケーションを動かせることから、余力があればもっと充実させたいコンテンツではあります。
▲コンテスト応募作品「Word Color Palette」。いつものthree.js回転UIなど、AppleScriptでおなじみのInterfaceをFileMaker Pro上に移植。シソーラス辞書検索やSVGサンプルデータへの自動配色などにAppleScriptを利用(iOSやWindows上では機能ダウンした処理を実行)
FileMaker Proはさすがに機能が多く、この「えほんシリーズ」フォーマットの計画もあったのですが、内容に無理を感じていました。同様にSafari本についても検討したものの「途中から急に技術レベルが上がって、入門者向けにはならない」(do javascriptコマンドが出てくるあたり)ということで塩漬け状態。そのジレンマを打開するための新たなシリーズが「徹底解説シリーズ」です。
「画面図多め+文章少なめ」の「えほんシリーズ」のフォーマットを踏襲しつつ、「えほんシリーズ」の特徴である難易度設定の厳重な管理により、急激に難易度が上がったり、そもそも記事の難しさがどの程度なのかわからないといったことのないように配慮しています。「初級」「中級」「上級」の3レベル分けを行っています。
「えほんシリーズ」ではページ数を少なめ(64ページ以下)に抑えていましたが、「徹底解説シリーズ」では分量を抑えるよりも対象のテーマを説明し切ることに重点を置き、対象レベルを若干上げています。分冊構成にすることも検討したのですが「では、検索をしたかったら下巻も買ってね」というのはさすがにご無体なので、1冊にまとめて139ページとなっています。
とくに、対象がFileMaker Proということで、同アプリケーションのエキスパートである新居雅行氏から監修していただき、内容の充実も図っています。
▲掲載デモScript。FileMaker Proのスキーマ定義を自動で行うAppleScript。リストで与えたフィールド名を自動作成。ちょっと手直しすればNumbersの表計算データからフィールド名を外部供給することも容易
これまで、プログラムリストをPDF本文にURLリンクで埋め込むという手法を用いていましたが、macOS 10.15以降のPDFViewにおいてどうもこのURL埋め込み式のPDFをApple側がセキュリティホール源と捉えており、とくに説明なしに機能をダウンさせています。このあたりの話は「専用のビューワーアプリケーションを作る」「リストを掲載しているBlogのページにURLリンクで飛ばす」などの対処が検討されてきましたが、どれもすべてを解決できるわけではありません。
そこで、おおもとの方式に差し戻してAppleScript書類のアーカイブを添付することにしました。AppleScript書類と、他のOS環境でも内容をオープンできるようRTF形式のファイルも添付しています。
また、最近の電子書籍購入者の方にはご案内していますが、「Piyomaru Script Assistant」のバージョン2を添付。Cocoaの機能呼び出しを意識した内容に再編し、macOS 10.13以降のOS環境をターゲットとしています。スクリプトエディタのコンテクストメニューからAppleScriptの主要構文を選択入力できるこのツールは、作った本人でもインストールしていないと作業性が大幅に低下してしまうほどの必携ツールです。
完成度については、さすがに屈強の筆者であり開発者であり編集者である自分が朝から晩まで作り込んだうえに、新居さんに監修していただいた(ダメ出しされまくった)だけあって、「手元に1冊置いておきたい出来」にはなっていると自負しています。
FileMaker Proのテキストフィールドにスタイル付きテキストを代入するAppleScriptです。
FileMaker Proには、v4の頃からかわらないとてもユニークな特徴があります。それは、テキストフィールドに書式つきテキストを突っ込めることです。こんなことができるデータベースは他に類を見ません。
# 書式付きテキストのほかに書式を持たないシャドーフィールドでも持たせているんじゃないかと推測
スタイル付きテキストについては、ワープロなどのソフトウェアを併用して作成する方法もありますが、AppleScriptだけで作成できれば、FileMaker Proのスクリプトステップ内に突っ込むことができて便利です。
ただし、当のAppleScript自体のスタイル付きテキストの作成能力に関しては昔から残念なレベルでした(Classic MacOS時代にはOSAXで作れたような気も)。風向きが変わってきたのは、macOS 10.10でCocoa呼び出しがすべてのランタイム環境で使えるようになったあたりです。当然、FileMaker Proのスクリプトステップ内でも呼べるようになっていました。
残念なことにmacOS 10.10登場当時、FileMaker Proが32ビットアプリケーションだったため、FileMaker Proのスクリプトステップ「AppleScriptを実行」の中で呼び出せるFrameworkも32ビットに限られていました。Cocoa Frameworkの多くは32bitアプリケーションからも呼び出せるようになっていましたが、そうでないものも多々ありました。
FileMaker Pro v12で64ビット化され、中に記述したAppleScriptからも64bit Frameworkを呼べるようになりました。
本Scriptはあくまでも実験的なものですが、AppleScriptからCocoaの機能を呼び出して自由にスタイル付きテキストを作成し、それをクリップボード経由でFileMaker Pro側に受け渡します。FileMaker Pro側では指定のフィールドに対してクリップボードの内容を「貼り付け」コマンドで代入します。
▲指定フォント、指定サイズ、指定テキストでスタイル付きテキストを生成してフィールドに代入
▲FileMaker Pro側にクリップボードから内容を受け取ってフィールドに入れるFileMaker Script
代入先のフィールド名については、FileMaker Proのスクリプト呼び出しをAppleScriptの「do script」コマンド経由で行う場合には、パラメータの指定ができないため、一切指定できません。
……ただし、AppleScriptからURL Event経由でもFileMaker Pro側のスクリプト実行ができ、その場合にはパラメータの受け渡しができます。そのため、URL Event経由で呼び出せば「クリップボードに入っているスタイル付きテキストの受け渡し先フィールド名」を随時指定することも可能です。
# FileMaker Proのdo scriptコマンドに素直にパラメータを受け渡す機能を付けてほしい
そろそろFileMaker Proのお試し版の期限が切れるので、FileMaker Pro関連のScriptingのまとまった情報について本Blog上への投稿は行えません。まとまった情報については、電子ブック新刊「FileMaker Pro Scripting Book」(予定)をお買い求めください。
AppleScript名:テキストフィールドにスタイル付きテキスト.scpt |
— Created 2020-12-29 by Takaaki Naganoya — 2020 Piyomaru Software use AppleScript version "2.4" use scripting additions use framework "Foundation" use framework "AppKit" set attrStr to makeRTFfromParameters("ぴよまるソフトウェアだよーーん", 3.0, 72) of me (my restoreClipboard:{attrStr}) tell application "FileMaker Pro" tell database 1 do script "getAttrFromClipboard" –クリップボードの内容をtextFieldにペーストする end tell end tell –書式つきテキストを組み立てる on makeRTFfromParameters(aStr as string, outlineNum as real, aFontSize as real) –フォント set aVal1 to current application’s NSFont’s fontWithName:"HiraKakuStdN-W8" |size|:aFontSize set aKey1 to (current application’s NSFontAttributeName) –色 set aVal2 to current application’s NSColor’s blackColor() set aKey2 to (current application’s NSForegroundColorAttributeName) –カーニング set aVal3 to -2.0 set akey3 to (current application’s NSKernAttributeName) –アンダーライン set aVal4 to 0 set akey4 to (current application’s NSUnderlineStyleAttributeName) –リガチャ set aVal5 to 2 –全てのリガチャを有効にする set akey5 to (current application’s NSLigatureAttributeName) –枠線(アウトライン) set aVal6 to outlineNum set akey6 to (current application’s NSStrokeWidthAttributeName) set keyList to {aKey1, aKey2, akey3, akey4, akey5, akey6} set valList to {aVal1, aVal2, aVal3, aVal4, aVal5, aVal6} set attrsDictionary to current application’s NSMutableDictionary’s dictionaryWithObjects:valList forKeys:keyList set attrStr to current application’s NSMutableAttributedString’s alloc()’s initWithString:aStr attributes:attrsDictionary return attrStr end makeRTFfromParameters –クリップボードに内容を設定する on restoreClipboard:theArray — get pasteboard set thePasteboard to current application’s NSPasteboard’s generalPasteboard() — clear it, then write new contents thePasteboard’s clearContents() thePasteboard’s writeObjects:theArray end restoreClipboard: |