ボタン(レイアウト)とスクリプトの関係

FileMaker では、[スクリプト管理](ちょっと前までは「ScriptMaker」でした)でスクリプトを作り、ボタンに割り上げる時にはレイアウト上で[ボタン設定]から、あらかじめ作成したスクリプトを指定する。

その手順で開発が進んでいる時は別に問題ないのですが、レイアウト単位で機能を移植している時などは、[ボタン設定]のダイアログから直接スクリプトを編集する画面に移動したくなります。

市場にある GUI 開発環境のほとんどでは、ウィンドウの中にオブジェクトを配置して、それをダブルクリックすると、そのオブジェクトに関係する処理を記述できるような動作をするので、FileMaker で毎度ダイアログを閉じて、また[スクリプト管理]ウィンドウを開いて、スクリプト編集画面を開いて、と操作を行なうと、面倒さを感じます。

回避策としては、スクリプトデバッガをオンにして、デバッガ内の[スクリプトを編集]ボタンをクリックして、実行中のスクリプト編集画面にはいけるのですが、この方法もレイアウトモードの状態で操作を続けることはできないのが弱点です。

使いやすさや生産性を一番の売りにする FileMaker だからこそ、こういった点の改善が望まれるところです。着実に進化を続けている FileMaker ですが、前の複数のスクリプトやフィールドを同時に移動できない点など、地味な部分では進化から取り残されている点もあります。

...あらためて、いままでの投稿を読んだら、足りないことへの不満ばかりのようですが、愛すればこその厳しい指摘のつもりです。マーケティング的な目玉も必要でしょうが、こうした利便性の改善を忘れずにガンバってほしいものです。

複数のフィールド、スクリプト、スクリプトステップを一緒にドラッグできない件

FileMaker は、新機能を追加する時にユーザーの使い勝手を重視していることはよく分かるのですが、実は、ひどく使い勝手が悪いまま昔から放置されている機能もあります。

その代表格は、複数のフィールド、スクリプトスクリプトステップなどをそれぞれの編集画面のリストでまとめて移動できない点。ユーザは、ひとつひとつ丁寧にドラッグしては、目的の場所にドロップ、これを項目の数だけ繰り返す必要があります。

非常にオブジェクトの数が多いデータベースだと、かなりの距離のスクロールをまたいで、この操作を繰り返すことになるので、疲れが溜まってきている時にはストレスメーター上がりっ放しです。特に、インポートのフィールド照合順をいじっている時は、移動元と移動先のフィールド位置が入れ替わるため、作業の手順を間違えるとダイアログの上に下にと移動しっぱなしになるわけです。

この問題はずっと昔のバージョンから変わっていない点ですが、無意味な繰り返し操作を強いる作りというのは、機能として良くありません。作業の生産性が下がることはもちろん、バグを発生させる原因にもなります。

とかく、営業的には見栄えのする新機能を追加したいという要請は分かるのですが、既存の機能の改善、不具合の修正をきちんとするかどうかは、製品の信頼性にもかかわるので、是非ともガンバっていただきたい点です。

FileMaker の集計のナゾ

FileMaker の集計はちょっと変わっている。集計フィールドというものを作るだけでなく、集計の基準となるフィールドを指定した集計用のレイアウトパートを作って、そこに乗せて、さらに、ソートをして、やっと集計値にお会いすることができる。

10より前のバージョンだと、これにさらにプレビューモードに切り替えるという操作が必要だったが、10 ではダイナミックレポートという機能によって、そこまではする必要がなくなった。有り難いが、これって、実は10年(?)以上前のクラリスワークスのデータベースで実現されていたことなのですね。

それを新バージョンの目玉機能のように取り上げるのは何だかなとはおもいつつ、でも、良くなったことは素直に喜びましょう。何事も、良い面を見ることが大事。実際、良いところが多いからこそ、長年の付き合いになっているのだし。

でも、相変わらず、ナゾの部分もある。集計関連だと、ダイナミックレポートに対応したのでブラウズモードで表示することができる。その時の対象レコードが100件だったとして、集計パートだけのレイアウトだと集計結果は10件ということが起こりえる。例えば、対象の商品が100件、カテゴリごとの売上集計金額の単位だと10件という感じです。

この時、FileMaker のステータスツールバーには、対象レコードが100件の表示。しかし、小計パート上の集計結果の繰り返し行は10件。ちょっと違和感を感じるわけです。

ちなみに、この時、レコード移動するスクリプトを走らせると、レイアウトには見えてない各レコードのボディを移動しているような動作になる。目の前に見えている集計結果ごとの値をどこかに転記しようとしても、レコード移動だけでは対応できない。

SQL の集計関数を使った SELECT のように素直に1レコードごとの結果が返ってくれば良いのになと思いつつ、回避策を講じるのでした。

「グリッド」機能、ほしいですねー

FileMaker では、あるテーブル、レコードを見ている時、リレーションが成立する関連レコードを見るための「ポータル」という機能はある。扱いが簡単で便利でもあるのだが、問題は「リレーションが成立する」という関係でしか使えないこと。

リレーションとは関係なく、検索結果を一時的に表示する「グリッド」エリアのような機能があると助かるのになーと思うことが度々。

FileMaker は、とかく、値をフィールドにいれないと使えない機能、リレーションを設定しないと使えない機能が多くて、動的にぱっと結果を得られれば済むこと、あるエリアにレコードリストを表示できれば済むことでも、いちいち「定義」しなくてはならないことが多い。

これって、手間の面でも面倒なのですが、より大きな問題としてはデータを保存するためのデータベース構造に、画面や機能を実現するためだけの設定が入り交じって、システム全体の構造が複雑怪奇になりやすいこと。

米国でも、非常にトリッキーな方法で何かを実現することを自慢げにデモしたり、それを Tips 集のように製品にして売っているところまでありますが、処理速度やネットワーク利用、それとデータベースをシンプルに保つという点などでは問題のあるテクニックも多いようです。

データベース開発は、手品自慢のコンテストではないので、情報に振り回れずに、「基本に忠実」が大切です。実際には、いろいろな要件を満たしながら、基本やシンプルさを維持するのは簡単ではないですけどね。

と話は脱線しましたが、要は面倒なことにならないように、「グリッド機能を付けてね」ということでした(笑)。

スクリプトトリガだけでなく、レコード処理トリガがほしい

FileMaker Pro 10 でできるようになったスクリプトトリガ。とても、便利です。

入力支援やエラーのチェックなど、今までは何らかのタイミングでスクリプトを走らせるか、フィールド定義のオプションでしかコントロールできなかったのが、オブジェクトやレイアウトに関連するイベントで実行できるようになったのが、とても助かっている。

スクリプトトリガの特徴は、オブジェクトやレイアウトにくっついているものであって、テーブルやレコードについているものではないという点。

なので、MySQL や PostgereSQL といった RDBMS のように、レコードの追加、更新、削除といったタイミングに設定することができないのが残念なところ。

レコード追加時の関連処理、インポートデータのチェックや整形、削除時の後処理などなど、オブジェクトやレイアウトの付属品では対応できない処理も多数あるので、今後の改善を期待したい。

でも、FileMaker にとって、スクリプトトリガの追加はパンドラの箱を開けたようなものですね。このレベルまで一気に理解できる初心者はあまりいないでしょうから、いつまでも「誰にでも使いやすい」とは言いにくいですよね。

ユーザーの要望は理不尽なもの。より多くの機能を、より使いやすく提供してほしいという要望に終わりはないですから、ファイルメーカー様には是非頑張っていただきたいものです。

データベースデザインレポート、もちっと軽快になりませんか?

旧バージョンで開発したシステムの移行作業中。多年にわたって、追加、変更を繰り返したものなので、内部的に複雑になっていて、ロジック確認のためデータベースデザインレポートを出力中。。。。

と、出力を待って、はや20分。一部、リンク切れのファイルを探しにいっているための処理とは分かるが、それにしてもダイアログ上のプログレスバーがいっこうに進まないのは、何としたものか。

内部を解析している時間もかなりかかっているようだが、DDRXSLT で解析する段階も相当に時間がかかるようですね。FileMakerのデータベースデザインレポートでは。

あと、HTML 形式のレポートでは、フィールドやテーブルオカレンスなどにはリンクが付くのですが、スクリプトステップの欄内では、スクリプト実行で他のスクリプトが指定されていても、指定先のスクリプトにはリンクが付かないのですね。

「このスクリプトで使用されるスクリプト」欄にいけば、リンクもあるのですが、多数あると該当のものを目で見て確認しないといけないので、スクリプト行に直接リンクを付けてほしいですね。しかも、ものによって、リンクがないし。なんでかな?参照先が切れていた(苦笑)。

などと、ぶちぶち言っていたら、終わりました。出力。さて、作業再開。

値一覧の使い勝手にひとこと

FileMaker の値一覧を定義する場合、大きくは下記の3つの選択肢がある。

  1. 固定のテキストのリスト
  2. フィールド値
  3. リレーション越しの関連レコードのフィールド値

でも、固定のテキスト以外は、基本的にフィールドに収めたデータを対象にしているもので、処理の途中で何らかの動的な値を選択肢として選ばせたい時もいちいちフィールドに格納しないと、値一覧としては使えない。ちょっと面倒。

こうした時にファイルパスのように改行区切りのデータを変数に入れておけば、それを使えるようにしてくれると、とても便利。変数の値の順に表示さえしてくれれば、その時のニーズに合わせてソートした値を渡してハッピー!になれるはずなので、是非お願いします。

あと、主に旧バージョンからの移行やシステム再構築の場合ですが、他のファイルから値一覧を移植するのは、すごく大変。値一覧のインポートやコピー&ペーストはサポートしてほしいものです。FileMaker オブジェクトで移植が面倒なものはまだいくつも残っているので、是非ご検討ください(ファイルメーカー社様)。