技術集

FileMaker開発につまづいたときにはこのページを!
Tipsとは、「豆知識、コツ、小技」のことを意味します。経験豊富なデベロッパーが今までに役立った知識を公開し、みなさまのFileMaker開発に役立てていただきたいです。

新入社員岩崎の「ファイルメーカーTips」!
~「ExecuteSQLで SELECT SUM は必要ない…(かも)」~

どうもどうも〜〜〜!
おはこんばんちは!(おはよう、こんにちは、こんばんは の意です)岩崎です。
すっかり夏ですね…夏バテはいかがですか?大丈夫ですか?
僕は“春夏秋冬バテ”で、常にバテております!しかし、暑さには負けてられません。
がん“バッテ“いきたいと思います(うまい!)

さて、本日はこちらのファイルメーカーTipsです!

「ExecuteSQLで SELECT SUM は必要ない…(かも)」

みんな大好きSQLですね。まずは、ExecuteSQLってなんだよ!?という方のために簡単に概要を…。(にわか知識なので間違っていたら許してください)

データベースで使われる言語に「SQL」というのがありまして、規定の書き方をすればデータを取得できるという優れものです。
これを、Filemakerで使えるようにするのが関数の「ExecuteSQL」なんです。
一番の特徴は「現在居るテーブルに関係なく」データが取得できる点ですね。例えば、「顧客マスタにいるけども、リレーションの繋がっていない伝票テーブルのデータを取る」…という使い方ができます。

さて、“規定の書き方”ですが…
例えば担当者の名前を取得するけど、20歳を超えている人のみを抽出する場合は…

SELECT =>このフィールドのデータが欲しいよ〜
FROM =>このテーブルの中にSELECTで指定したフィールドあるよ〜
WHERE =>こういうデータだけ欲しいよ〜 条件は?にして後で書くよ〜

てなもんです。慣れるとスラスラ書けるので調べてみてください。

さて…本題ですが、SELECT句には“SUM”という言葉をくっつけることができます。くっつけると、値を区切って取ってくるのではなく、合計して取得します。
こんな感じです。

これだと、2019/5/1からの伝票テーブル内の金額を合計できます!しかし…

遅いです…動作が。

そこで、いろいろな方法を試したところ、特定の条件下ですが、かなり速くなる方法があるようです!

(1)合計したい値をSUMではなく“+”区切りで取得します。
(2)それをEvaluateで合計します!

実際に検証してみましょう〜。

条件:3000件のレコードに入った金額を合計するだけ

方法1 「普通にSELECT SUM」

4秒ちょいですね!

方法2「evaluate!」

早あああああ!!!!!!!!!!!!!
ただし、このevaluateの方法は、対象レコードが大量にあると”?”で帰ってくるようです。
と、いうことで如何でしたでしょうか。

これから、「集計が遅くて悩んでいるんだよな〜」という方!
ぜひこの方法でやってみてくださいね〜。…ただし、大量のレコードの場合は…他の方法でお願いします。

以上!岩崎でした!また次回〜〜No life No filemaker ~~~!


修正ログの便利な使い方!〜在庫推移の確認〜

皆さまこんにちは。
今回は、在庫推移を見たいとの要望に対し便利だなと思ったロジックを紹介させて頂きます。

例として、商品マスタテーブル上に商品の実在庫数を保持してその実在庫数の推移を見たいとします。(更新は1日1回)
その場合、実在庫数の推移を見たいとしたらどのようにしたらいいでしょうか。
当初はトランザクションテーブルに毎日レコードを作成してSQL等で表示したい時に計算させようとしておりました。
しかし、なんか無駄な気がして…

グラフを描画する為に必要なデータの配列は下図赤枠内です。
( ex.Google Charts API を使用 )

そんな折ふと思い付いたのが、修正ログの存在。
修正が加わる度にこの形でログ取得してくれたらそのまま使えるでは…?
試しにやってみました。用意したテーブルが以下の商品マスタ。

ポイントは在庫Logフィールド。
計算値自動入力で上図のように設定しました。

Webビューア内に下記ソースコードを設定し、先程の赤枠内に在庫Logフィールドを挿入します。

スクリプトで在庫数を更新後、在庫更新日を入力すると…

以外にもあっさりと表示されました。
応用次第で、修正ログは様々な場面で使えるかと思います。
皆様の開発の一助となれば幸いです。

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


新入社員岩崎の「ファイルメーカーTips」!~「テキストボックスや図形の“塗りつぶし:透明” と “塗りつぶしなし”の使い分け」~

 

どうもどうも〜〜〜〜!!!!

みなさま、初めまして。4月に入社しました新卒・新入社員岩崎と申します。

とは言っても、東洋には一年前からファイルメーカーの開発陣にアルバイトとして参戦させていただいていました。

趣味は、和太鼓と観葉植物の培養です!個性の強い人間ですが、どうぞよろしくお願いします。

 

さて、本記事は一応「ファイルメーカーTips」ということで、ファイルメーカーに関することですが…今回はこちらです!どど〜ん!!!!!

 

「テキストボックスや図形の“塗りつぶし:透明” と “塗りつぶしなし”の使い分け」

 

と、いうわけで、こちらを解説していきます!

まず、そもそも「塗りつぶすのに透明ってどういうこと?」という考えの方もいらっしゃると思いますので、画像を使って解説していきます!

 

こちらが「塗りつぶしなし」

こちらが「塗りつぶし:透明」

どちらも、実際は「見え方」は一緒です。

しかし大きく違うのは…

「扱い方」なんです!!!!!!

そもそも、ファイルメーカーで透明の図形を使うシーンってこういう時が多いのではないですか?

僕(入社当初) 「見積もり編集画面にて、顧客マスタリストをクリックすると選択できるようにしよう。どうやろうかな〜」

上司H         「リスト形式レイアウトにして、フィールドの上に透明な図形を乗っけて、スクリプトを設定すればええんやで」

僕(入社当初) 「(なるほど・・・あれ、でも“塗りつぶし:透明”と、“塗りつぶしなし”があるのか…)」

さて…結論から言いますと…。

「透明な図形の下を編集する機会が多々ある」

=>こちらは “塗りつぶしなし”

 

「透明な図形の下はほぼ触ることはない」

=>こちらは “塗りつぶし:透明”

 

何故なのか!?理由を説明していきます。

 

まず、塗りつぶしなしにすると図形の選択は…

図形を選択しようとするときは、枠線を選ばなければ選択できません。

(オブジェクトパネルから選ぶのが本当は賢いですが…)

 

ですが、塗りつぶし:透明にすると…

なんと、「塗りつぶしがされている」とみなされ、オブジェクトの中身(どこでも)クリックすることで、選択ができます。

選択しやす〜〜〜い!

 …ということでした。いかがでしたでしょうか。

オブジェクトはオブジェクトパネルから選ぶのが一番ですが…

「直感的に操作したいんだ!」という方は是非ここに気をつけてみてください。

 

以上!岩崎でした〜また次回!


FileMaker 繰り返しフィールドってどんなもの? Part1

 

「繰り返しフィールドってなに?」
Part1は、そんな方に向けての内容となります。

1.繰り返しフィールドの定義

「テキスト、数字、日付、時刻、オブジェクト、計算、またはグローバルの各フィールドを繰り返しフィールドに設定すると、1 つのフィールドに複数のデータを保存することができます。」(https://fmhelp.filemaker.com/help/17/fmp/ja/index.html#page/FMP_Help/repeating-fields.html)とFileMakerのヘルプに載っています。

繰り返しフィールドという名前ではありますが、計算フィールドや集計フィールドのようなフィールドのタイプではなく、フィールドオプションの1つとなります。

 

2. 繰り返しフィールドを設定する

[最大繰り返し数:]の数値を変更するし、OKを押して管理データベースを終了します。

たったこれだけで繰り返しフィールドを作成できます。

3. 繰り返しフィールドを表示させる

最初から繰り返しフィールドとして設定した場合は、以下のようにレイアウトに追加されています。

ブラウズモード

レイアウトモード

既存のフィールドを繰り返しフィールドにした場合、

レイアウトには枠1つしか表示されません。

繰り返しフィールドとして表示させるには、インスペクタで設定する必要があります。

次の画像赤枠内にある、[上限値:]を変更することで、表示させることができます。

変更後

上の画像で繰り返しフィールドが縦に表示されました。

表示を縦にするか横にするかは、インスペクタ内にて変えられます。

「繰り返しフィールドってこんなもんか」と知っていただけたなら幸いです。

まだまだ紹介したいことがありますが、今回はここまでとさせていただきます。

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

 


嬉しい仕様変更も!FileMaker 18 リリース

皆さんこんにちは、FM課の日壁です。
さて、年号が変わり新しい時代の幕開けとともに今年もFileMakerのニューリリースの時期がやってまいりました。
今月はFM18のリリースで個人的に嬉しかったことをリレーで書ければなと思います。
第一回は私日壁が嬉しかった事をつぶやきます。
今回のリリースで嬉しかった事・・・
インポートの仕様変更です。

今までのデータインポート画面

今までは、ドラック&ドロップでカラムの指定を行なっていました。
今回のFM18では大幅に仕様が変更になっています。

FileMaker Pro 18 Advancedのデータインポート画面

照合インポートの設定変更箇所

インポートの対象可否

入力値の自動化オプショナル

そして、一番の変更点はカラム合わせ

ドラック&ドロップからクリック式に変更となりました。
何よりも嬉しかったのは、カラムの検索機能が実装された事です。
今まではカラムの合わせの調整に非常に時間がかかってしまいましたが、今回の絞り込みの実装で調整がスムーズに行えるようになったのではないでしょうか?

絞り込みの様子

これまではインポートを使うステップが苦手な方でしたが、これなら調整もしやすく、視覚的に間違えにくそうですね。

ぜひ皆様も新しい機能や関数が入って益々面白くなった最新バージョンを手にとって、触ってみてください。
ではでは、今回はこんな所で・・・
日壁でした。


集計フィールドの意外な落とし穴

 

集計フィールドを設定すると、このようなメッセージが表示されることがあります。

これは、集計対象となるレコードの数などに起因しています。
今回は、この集計メッセージによって困惑した話になります。

とあるユーザから
「表示されない集計フィールドの処理メッセージが表示されるのは何故?」
「時間がかかるので、表示させていないなら、この処理はなくせないのか?」
とご質問を受けました。

該当レイアウトの集計フィールドは、次の場合にオブジェクトを隠す条件を設定しており、集計はされないはずでした。

画像の通り、集計フィールドを隠す条件はしっかりと設定されていました。

MacPCでシステムの調査を行うも、同様の現象が発見できず・・・
WindowsPCでのみ発生している現象だと判明しました。

WindowsPCで何故集計されるのかを確認しました。
確かに集計のメッセージが出てくる。しかしながら、レイアウト上にはやはり表示されない。
集計フィールドをレイアウトから一時的に削除しても集計のメッセージが表示されました。
『何かがおかしい・・・』と思い始めました。
隠す条件に不具合があるのだろうと思っていたのですが、レイアウトにある集計フィールドを消しても現われるメッセージに違和感を感じました。
レコード100件を表示した状態で該当レイアウトへ遷移した時違和感の正体がわかりました。

フィールドの名前が違う!!

処理メッセージにある集計フィールドの名前とレイアウトに設定しているフィールド名が異なっていたのです。
どこかに問題のある集計フィールドが設定されている???
レイアウトに設定されているフィールド全て見直しました。
ですが、レイアウトの中にはそのフィールドは見つかりませんでした。
いったいどこに隠れているというのか・・・

オブジェクトパネルで一つ一つ確認すると、
レイアウト表示範囲外にそれはありました。

これを削除すると、メッセージは表示されなくなりました。

WindowsPCであれば、表示範囲外の集計フィールドも集計処理がかかる
皆様も、このような落とし穴にご注意ください。

ご存知のこととは思いますが、集計フィールドをレイアウトに配置しているだけで表示速度は遅くなります。
速度を重視する場合には、集計フィールドの利用は避けた方がよろしいでしょう。

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


サーバーに上がったファイルのグローバル計算フィールドに関して

 

弊社のFileMakerチームは削除ロジックをいわゆる論理削除で組むことが多いです。

論理削除はレコード自体を直接削除する物理削除ロジックとは違い、直接データを消すことはしません。
各テーブルにハウスキーピングとして削除フラグを用意し、削除されていれば”1”を、削除されていなければ”0”を保存します。

 

各画面の表示の際に削除フラグが1のレコードを除外して表示することで、ユーザから見た時に恰も削除されたかのように見せる削除ロジックです。

今回はそんな論理削除のリレーションシップで戸惑った事案です。
論理削除では常に削除フラグを意識して構成します。
値一覧の作成に関しても削除された項目は表示されないようにしないといけないので動的値一覧を多様します。
動的な値をとるのにリレーションシップ上の親テーブルに常に”0”を保存するフィールドを用意し、それと子テーブルの削除フラグをリレーションさせることで子のテーブル上で削除されていないレコードのみ動的に値一覧を取得します。

 

 

FileMaker上で常に同じ値を持っておいて欲しい場合に良く使う手が計算フィールドをグローバルに格納するというテクニックです。
計算式に”0”を記入することで常に0を保存してくれます。

 

しかし、ローカル環境ではこの手法は特に問題なく動くのですが、サーバーにアップロードしたファイルでこの手法を使うと動いたり動かなかったりするのです。

 

なぜ動いたり動かなかったりがあるのかをよくよく調べてみると、グローバルに設定したタイミングがアップロード前か後かで変化するようでした。
FileMakerあるあるになりますが、アップロード前にグローバル格納しているフィールドに値が入った状態でアップロードするとその値がデフォルトで入ってしまう現象がよく見られます。
その事と関係があるのかはわかりませんが、アップロード前にグローバル設定しているとデフォルトが”0”をキープし、アップロード後に同じように計算式をグローバル格納しても”Null”をデフォルトにしてしまいリレーションが切れてしまうようでした。
対策として、計算フィールドから数字フィールドに切り替えてグローバル格納しログインスクリプト上でフィールド設定させる事で回避させました。

 

ありがちですが、気づくのに少し時間のかかる事案でした。


FileMaker17で戸惑った所

 

今更ながらですが、FileMaker17がリリースされて使用している少しだけ戸惑った所をご紹介し、設定方法をお伝えしたいと思います。

 

①テーブルにフィールドを追加すると画面に追加フィールドが表示される

 

元のレイアウト。

 

 

 

 

 

テーブルにフィールドを追加する。

 

 

 

 

 

レイアウトに追加したフィールドが勝手に作成されてしまう。

 

 

これはFileMakerの環境設定から変更できます。

 

 

 

 

 

 

レイアウトタブの新規フィールドを現レイアウトに加えるのチェックを外すことで変更可能です。

 

 

 

 

 

 

②レイアウトモード上でレイアウトの切り替えボタンがなくなっている

 

今まではレイアウトモードに移行するとレイアウトの左右移動ボタンがありました。

 

 

 

 

 

FM17からデフォルト時、なくなっています。
FM16に慣れていたこともあって無いと些細な作業がスムーズに行かずモヤっとします。

 

 

 

 

 

こちらは、メニューバーの表示からステータスツールバーのカスタマイズから変更可能です。

 

 

 

 

 

 

 

 

 

 

必要な項目をドラッグ&ドロップでカスタマイズできます。

 

 

 

 

 

 

 

 

③インスペクタが固定されている

 

レイアウト作業中では多様するインスペクタですが、FM17からは右端に固定されています。

 

 

 

 

 

 

 

 

 

 

 

 

探さなくて良くなったので個人的にはこちらの方が好きですが、今まで慣れ親しんだポジションに配置したい方もいるかと思います。
そんな方はメニューバーの表示からインスペクタを選択し、新規インスペクタを押下することで今まで通りのインスペクタが表示されます。

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

新規インスペクタは複数配置することができるので役割ごとに一枚づつ配置することもできます。もしかしたら効率も上がるかもしれません。しないですけどね。

 

 

 

 

 

 

 

 

以上、FileMaker17を使用してみて戸惑った所でした。

Tags :


FileMaker WebDirectで開けない!? 要注意なバージョン

 

とある日、FileMaker WebDirectでファイルを開こうとすると・・・

あれ? 真っ白?

 

ログインのためにアカウント・パスワードを入力する画面が出てこない!!

FMServer_Sampleであれば、画面がすぐ表示されるはずなのに、それも真っ白。

FileMaker Serverを再起動させたり、サーバー機の再起動もかけましたが、変化なし・・・

打つ手がなく、FilreMaker社に問い合わせをしました。

 

FileMakerのナレッジベース

・「Java 8 Update 151 への更新の後、WebDirect の描画に失敗する」

・「FileMaker ServerとJava – 概要とトラブルシュート」

上記を教えていただきました。

 

原因は、ズバリJavaでした。

 

 

(Javaは、FileMakerServerで、以下のコンポーネントに使用されているプログラミング言語。

・FileMakerServerのAdministration Console

・Admin Server

・Web 公開エンジン )

FileMaker WebDirectの描画に失敗しているというのが事の真相でした。

Windows版のFileMakerServerに置いて、Javaの更新がされた場合にこのような現象が起こるようです。

 

 

使用していたFileMakerServerのバージョンが16.0.1

推奨されているJavaは「Java 8 Update 121」でした。

サーバー機のJavaは「Java 8 Update 161」、、、描画に失敗するわけです。

原因がはっきりして一安心。

この現象の解消に、2つの選択が迫られました。

1つは、Javaのバージョンを落とす事。

もう1つは、FileMakerのバージョンを上げる事。

 

 

今回は、FileMakerのバージョンを上げる事を選択しました。

幸いにも、「Java 8 Update 161」を推奨しているFileMakerServerのバージョンは、16.0.4でした。

 

FileMakerServerのアップデートで問題が解決しました。

 

 

FMServer_Sampleの画面も表示されるようになりました。

FileMakerServer16からFileMakerServer17へのアップグレードだと時間がかかってしまうので、正直助かりました。

 

FileMakerServerのアップデートにも注意点があります。

デフォルトのCドライブ以外のドライブにFileMakerServerをインストールさせていた場合、PHP接続ができなくなります。

FileMakerServerのアップデートでデフォルトにPHPの設定が書き換わってしまうようです。

PHP カスタム Web 公開を設定している場合は、FileMakerServerのPHPの構文を書き換える等の調整が必要となります。

 

 

FileMakerのバージョンだけでなく、Javaなどの使用している言語のバージョンも確認していく必要があると、身に沁みました。

皆様もお気をつけください。

 

 

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


FileMaker Proのオフライン環境でのインストール方法

 

前回、FileMaker Proのインストール方法をご紹介いたしましたが、
今回はオフラインでのプログラムインストールのお話です。
企業様によっては、セキュリティ上の都合で外部との通信を制限している場合が想定されます。
オフライン環境でプログラムのインストールを行う場合(windows)の手順をご紹介します。

 

Step0.インストーラーのダウンロード
まずは、FileMakerのインストーラーを取得してください。
契約内容・バージョンによってインストーラーの名前は異なります。
例)FileMaker Pro16の無料評価版(2018年4月時点の最新バージョン)
Macの場合
fmp_trial_fm_16.0.4.403.dmg
Windowsの場合
fmp_trial_fm_16.0.4.403_x64.exe
fmp_trial_fm_16.0.4.403_x34.exe

 

Step1.Microsoft .NET Frameworkのオフライン用インストーラーを準備
FileMaker Pro 16からはMicrosoftの.NET Framework Ver4.6以上が必要となります。オフライン用のインストーラーは以下より取得できます。
https://support.microsoft.com/ja-jp/help/3151800/the-net-framework-4-6-2-offline-installer-for-windows

 

Step2.証明書を取得
必須項目である.NET Frameworkをオフラインで取得する場合、信頼されたルートであることを証明しなければなりません。ルート証明書を取得するようにしてください。

 

Step3.証明書のインポート
FileMakerのインストーラー、.NETのインストーラー、ルート証明書が揃った段階で、作業がスタートします。
まずは、ルート証明書をクライアントPCにインストールします。

 

証明書スナップインをコンソールに追加しましょう。
⑴システムメニューの検索より”mmc”と検索し実行するとコンソールが起動します。

 

 

⑵コンソールのファイルメニューより”スナップインの追加と削除”を選択します。

 

⑶利用できるスナップインの項目から”証明書”を選択し、追加します。

 

⑷スナップインに”証明書”が追加されます。

 

続いて、取得した証明書を登録します。
⑸追加された項目から”信頼されたルート証明機関”を右クリックし、表示されたメニューから”すべてのタスク”から”インポート”を選択します。

 

⑹証明書のインポートウィザードが起動され、取得いただいた証明書ファイルを参照し、指定してください。

 

⑺”証明書をすべて次のストアに配置する”にチェックを入れ、インストールしたいカテゴリの証明書ストアを選択し、「次へ」をクリックします。

 

⑻”正しくインポートされました。”と表示されればOKです。

 

 

これで”.NET Framework”のオフラインインストールが可能となります。
ややこしい設定が必要なのはここまでです。
入手していただいた.NETのインストーラーを起動していただき、インストールウィザードの手順に沿ってインストールを行ってください。

 

 

ここまでくるとあとは通常のFileMakerソフトのインストールと同様手順です。FileMakerのインストール手順は以前サイト内で紹介していますので、そちらをチェックしてみてください。

 

最後に
Windows環境のFileMakerはMicrosoft .NET Framework Ver.4.6以上が必須条件です。これが無いとFileMakerが正しく起動しません。
その.NET Framewokをオフラインでインストールする際には、オフライン用インストーラーとルート証明書が必要となります。
どちらもなければ正しくインストールできないので注意する必要があります。
オフライン環境でのインストールは特殊な場合だと思いますが、ごく稀にそのような状況が生まれる場合があります。
少しでもお役になりましたでしょうか?

 

以上、FileMaker Proのオフライン環境でのインストール方法でした。
ご覧いただきありがとうございました。