FileMakerルーキーズ会#21 フィードバック(ScriptNames関数 /フォント変更時にフィールドの大きさが変わってほしくない/複数のボタンをひとつのスクリプトだけで出来ないか)
◆開催日時:2021/09/12(日) 10:10-12:10
◆参加者:現地1名、オンライン3名。[初参加なし]
◆ルール:可能な限り置いてけぼりにしないこと
【本文の前に次回のお知らせ】
次回のFMルーキーズ会#22は10月第2日曜日、2021年10月10日(日) 10:10-12:10(オープン10:00)を予定しています。connpassのイベントページに追加されたらご参加表明よろしくお願いします↓
connpassイベントページ
https://fm-rookies.connpass.com/event/
FMルーキーズ会の「メンバーになる」にしておくと、新しいイベントが用意できた際に案内メールが届きます♪
☆この記事内容が難しいと感じる方は、逆に言えば100%参加対象です♪
◆フィードバック
【抽選トピック】ScriptNames関数
【トピック1】フォント変更時にフィールドの大きさが変わってほしくない
【トピック2】複数のボタンをひとつのスクリプトだけで出来ないか
【抽選トピック】ScriptNames関数
アイスブレイクの抽選トピックはScriptNames関数でした。(FileMaker関数・スクリプトガイドP.420)
指定したファイルのすべてのスクリプト名の一覧を返してくれます。
ただ正直、普段はあまり使わないですね。参加者は全員使ったことはありませんでした。なにか使うとすれば、ファイル内のスクリプト一覧をドキュメントにまとめたいとか、専門の開発者向けなのかなと思います。
それでもせっかくなので試してみます。いくつかのスクリプトを用意しておいて、カスタムダイアログボックスで表示してみました。
ここで少し実験をして、区切り線はどうなるかをやってみました。
区切り線はハイフンの形で拾ってくれました。ちょっと驚き。
区切り線の前にフォルダに入れたらどうなるかやってみたらスルーされたので、区切り線もスルーだろうと思っていました。面白い発見でした♪
【トピック1】フォント変更時にフィールドの大きさが変わってほしくない
トピック1はUさんに挙げて頂きました。
なかなか説明が難しいところですが、例えばフィールドの高さをきれいに揃えたのに、フォントを変更することで高さが変わってしまって揃わなくなることがありますよね。(画像は極端な例です)
それが何個も何個も発生すると、イチイチ高さを直さないといけないので手間がかかります。何をやってもフィールド枠の高さが変わらないようにできれば嬉しいとのことでした。
もっと分かりやすいのはマージフィールドで、せっかく高さを1行分に調整したのに、文字を追加しようとカーソルを入れたら高さがやたら大きくなってしまいます。※マージフィールドを知らない方はいないか念のため確認しましたが、今回は皆さんご存知でした。
これをご覧になっているあなたは、このようなことありませんか?
残念ながらズバリ解答的な方法はなさそうで、工夫の面でも案は出ませんでした。FileMakerの仕様なため、避けられないことなのかもしれません。(何かご存じの方、次回ぜひご参加頂いてご教示ください!)
僕からひとつ提案として、ボタンバーを使う方法を挙げさせてもらいました。
文字が大きくなっても、ボタンバーの高さは同じままです。
弱点としては、レイアウトモード上では「計算」という表記になってパッと見で何が表示されるのかが分かりづらいところです。「計算」のボタンバーが何十個もあれば、何がなんだか、カオスになるかもしれません。
ボタンバーで話しが膨らみ、アクティブセグメントの設定で興味深いことをAさんに教えて頂きました。
ボタンバーでは、ボタンを押した後に色がついたままになることがあります。これはアクティブな状態を表すのですが、色がつかないようにしたい(上の図では白いボタンのままにしたい)ということがあります。
そんなときは、アクティブセグメントの「指定」で「0」か「False」かを入れておき、スクリプトで「ウインドウ内容の再表示」や「オブジェクトの更新(オブジェクト名の指定要)」をステップに入れれば、常にアクティブを打ち消してくれるようです。
ただiOSでは「"0"」と指定する必要があるという情報がネット上にはあるみたいです。Goのバージョンとか、なにかあるのでしょうかね?僕が試したところではFileMaker Go 19で「0」でも「False」でも出来ました。ううむ。
【トピック2】複数のボタンをひとつのスクリプトだけで出来ないか
写真撮影した画像をオブジェクトフィールドに入れるスクリプトですが、3つとも大体内容は同じスクリプトです。
デバイスから挿入の画像1の部分だけが違うだけなのに、登録ボタンスクリプトを3つ作らなければいけないのか?いや、ひとつのスクリプトで出来るはずだ、というAさんからのトピックでした。
UさんとYさんに先導して頂いている中で、難題が持ち上がりました。
「デバイスから挿入」スクリプトは、フィールドの指定はできますが「計算式による指定」はできないのです。
もし「計算式による指定」ができれば、ボタンの引数にフィールドの名前を指定しておいて、スクリプト側で計算によるフィールドへの画像挿入ができたはずなのです。
もちろん、例えばIF文などによって条件分岐をすることでも実現は出来ます。2つだけやってみました。
ボタンの方で引数(ひきすう)を設定しておき、スクリプト側で「Get ( スクリプト引数 )」によって取得できるのでIF文分岐によって画像1か画像2かを分けられます。
ほかの方法として、一旦グローバルフィールドに画像を入れて、フィールドを計算によって特定させて目的のオブジェクトフィールドにセットする、という方法もありそうです。案を出して頂いたUさんが今度作ってみますとのことで、楽しみにしています^ ^
【次回のお知らせ】
次回のFMルーキーズ会#22は10月第2日曜日、2021年10月10日(日) 10:10-12:10(オープン10:00)を予定しています。connpassのイベントページに追加されたらご参加表明よろしくお願いします↓
connpassイベントページ
https://fm-rookies.connpass.com/event/
FMルーキーズ会の「メンバーになる」にしておくと、新しいイベントが用意できた際に案内メールが届きます♪
☆この記事内容が難しいと感じる方は、逆に言えば100%参加対象です♪
何かご質問等あればJBIながにぃまで^ ^