FileMakerPro Kyushu Users Meeting

九州の FileMaker Pro ユーザグループ「ファイルメーカー Pro 九州ユーザーズミーティング」
<< August 2017 | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 >>
 
Google
次回の勉強会予定
  • 日程:2017 年 6 月 10 日 (土)
  • ※ 3 / 6 / 9 / 12 月の第 2 土曜開催
  • 会場:BIZCOLI
  • 参加:受付フォーム
Google グループ
RECENT COMMENT
  • FM Talkers Oct. 2014 - FileMaker 勉強会 -
    松本 (10/11)
  • 告知:FM Talkers October. 2012 - ワークショップ「メルマガ配信ソリューション」とグラフ入門
    長崎の坂井 (10/10)
  • 開催レポート:FM Talkers June. 2012 - 新バージョン FileMaker 12 の機能をみんなで掘り下げよう!
    仕事メモ@うずらの卵 (06/30)
  • FM Talkers Apr. 2011 - 検索について - レポート
    山本 (05/01)
  • FM Talkers Oct. 2010 - たまには復習でもしませんか? -
    山下好徳 (09/29)
  • FM Talkers Aug. 2010 - みんなで触ろう FileMaker Go! -
    ちぢいわ (08/27)
  • FileMaker 講習会 & FM Talkers Apr. 2010 〜 自分のソリューションを参加者に添削してもらおう!〜 開催のお知らせ
    キュウラギ (04/26)
  • FileMaker 講習会 & FM Talkers Apr. 2010 〜 自分のソリューションを参加者に添削してもらおう!〜 開催のお知らせ
    中島 (04/26)
  • FileMaker 講習会 & FM Talkers Apr. 2010 〜 自分のソリューションを参加者に添削してもらおう!〜 開催のお知らせ
    キュウラギ (04/20)
  • FileMaker 講習会 & FM Talkers Apr. 2010 〜 自分のソリューションを参加者に添削してもらおう!〜 開催のお知らせ
    CLA (04/20)
 

開催レポート:FM Talkers June. 2012 - 新バージョン FileMaker 12 の機能をみんなで掘り下げよう!

2012 年 6 月 14 日 (土)に開催したFM-Kyuhsuの勉強会『FM Talkers June. 2012 - 新バージョン FileMaker 12 の機能をみんなで掘り下げよう!』の、開催レポートをお届けいたします。

開催要項

時間
18:00 〜 21:00
参加者
20 名
参加費
500 円
場所
ふくふくプラザ (福岡市市民福祉プラザ) 502 研修室
福岡県福岡市中央区荒戸3丁目3番39号

『FileMaker Go できること・できないこと』

Ver.12で無料になったFileMaker Go。そもそもどういったアプリなのかという基本のおさらいから、FileMakerを離れて開発環境として見た場合などについての、FM-Kyushu 本田によるプレゼン。

プレゼンの全文と補足を掲載します。

おさらい:FileMaker Goとは

iOSで動くFileMaker

現時点で有力な競合製品は無い

FileMaker Proのサブセット

Proから構造変更とファイルホストの機能を除いたもの

他のFileMaker製品とファイルは共通

Pro, Serverと同一のファイルがそのまま使える

ver.12以降は利用が無料

iOS端末利用者なら追加コスト無しに誰もが使える

Goの価値

FileMakerソリューションをiOSに持ち込む

既存システムの強化

容易なモビリティの追加を可能にする

  • 実際の保管場所にいながら在庫を管理
  • 客先で中古車の修理履歴を検索
iOS端末の新しい利用方法

手元のiOS端末にデータベースを

  • 美容院で撮りためた写真をそのままカタログとして提供
  • デジタル教科書で授業を行った後に授業評価を入力

iOS向けの開発環境

iOSの開発は大多数の利用者にとってハードルが高い

ノンプログラミングな環境はほとんど無い

Goは自分でアプリ的なものが作れる

制限は色々あるが、Goで間に合う用途もたくさんある筈(結局は、FileMaker Proと同じ立ち位置に?)

FileMakerがDBであることは置いといて、単なるアプリ開発環境として見ても、ノンプログラミングは魅力

できること・できないこと FileMaker Proと比較

FileMaker Proとの比較

構造変更

テーブルやフィールド、レイアウトなどの設計変更ができない。

ファイルのホスト

Goがファイル共有の親にはなれない。

前項と合わせて、ランタイムと同じだと思えば良い。

処理性能

将来はともかく、現時点ではiOS端末上のGoは、MacやWindows上のProに比べ、様々な処理性能で劣る。

スクリプトステップや関数

ProにあるOSに依存するものは、Goでは使えない。

Goのデバイス依存なLocation()などはProで使えない。

UIの挙動

同じUI要素は、ほぼ同じ役割を果たすが、挙動が異なる。

最初はひどい状態だったが、iOSへの最適化が進み、
ポータルなど徐々に良くなっている。

オブジェクトフィールド

Goの方が、デバイスと密接な分、写真や音声の取り込みがシームレス。

プラグイン

GoではProのようにプラグインが使えない。

FileMakerを超えた要求は、他の方法で対処が必要。

ウインドウ

GoではiOSアプリ風に、常に1つのウインドウが全画面を占有する。複数ウインドウを並べるような設計はできない。

その他

ファイルの修復や、アクセス権設定、インポートなどなど、その他にも小さな差異は多い。FileMakerのナレッジベースを参照。

FileMakerとしてのGo まとめ

GoはiOSで動くランタイム環境
でもProで作ったものは大体思った通りに動いてくれる
UIや計算負荷はデバイスの特性に合わせて設計を
重要なのはモビリティの活かし方

できること・できないこと iOSアプリとの比較

iOSアプリとの比較 - メリット

開発が容易
  • コンパイルなし
  • プログラミングなし(計算式程度)
  • 素早い実機テスト
  • 日本語検索が簡単に実現
Appleの手順を要求されない
  • 検閲なし
  • 審査待ちなし
  • 有料の開発者登録なし
  • DMAなし

iOSアプリとの比較 - デメリット

FileMakerの限界
  • インタラクティブ性が低い
  • デバイス機能が一部しか使えない
  • バイナリがほぼ操作できない
  • 限られたWebアクセスしかできない
  • プログラミング言語が使えない
  • 速度が遅い … 他多数
Appleのインフラが活用できない
  • AppStoreなどの流通手段がない
  • DMAがない

iOSアプリ開発環境としてのGo まとめ

プログラミングができなくても自分用の道具を自作できる
できることはFileMakerの範囲内
制作物を流通させるのは大変(従来のフリーソフト同等)
自社用のツールなど、これで十分なアプリも沢山あるのでは?

・見積ツール ・チェックリスト ・独自形式の記録 等々

実践例 「仕事メモ」さん

既存のFileMakerソリューションからの延長ではなく、はじめからiOSの開発環境としてGoを使っている捉えた実践例をご紹介します。

こちらの方は、多分酪農関係のシステムを取り扱っているようで、酪農家向けのiOS端末で動くシステムの開発環境として、FileMaker Goを試行しています。現時点では繁殖管理用ソリューションと、Yes/Noクイズ式のナレッジツールを制作しています。

特に「Yes/Noクイズ式のナレッジツール」は、データベースアプリケーションとしてのFileMakerありきではなく、iOS端末を活用するツールという視点で作られています。しかも、FileMakerを使い始めて日が浅くとも、充分実用的なツールになっています。

私自身はiOSアプリの開発も行いますが、ちまちまと試行錯誤していきたい自分個人用の単語帳や、表には出せないデータ込みの仕組み(色んな原価を持たせた計算ツールとか、特定の顧客に合わせた業務用のものなど)を持ち歩きたい場合には、まずはGoで作ってみるのは良い流れだと感じています。

Goの拡張方法

GoでできることはFileMakerのそれに制限される。

大半はその範囲内で事足りたとしても、一部分だけでも、それ以上の事ができれば、用途はぐっと広がるかも。

→ Proでのプラグインのように、Goだけではできないことを、補う形で実現する方法を把握しておく。

URLスキームで拡張

iOSが提供する複数アプリの連携手段
  • 拡張したい機能は、iOS上の別アプリに実装
  • 別アプリの呼び出しは「fmp7script://」といったアプリ側の用意する識別子をプロトコル様に呼び出す
  • データの受け渡しはURLの引数かクリップボード
  • 目的の機能を持ったアプリがあればなんでもできるが、結局別アプリが必要
使用例

この方法の最大の問題は、iOSでの複数アプリの連携が非常にもたつく点です。連続してスキャンしたいバーコードリーダーや、大小様々な計算をさせたいといった目的では、切り替えの遅さに辟易します。しかし、Factoryさんのマーカーツールの様に、ある程度大きな作業を切り替えて行うのであれば、そう気になりません。むしろ、ネイティブアプリでしかできない事も多々あるので、規模や難易度の大きな用途に向いています。

「URLから挿入」スクリプトステップ

Ver.12から加わった新しいスクリプトステップ
  • 任意のURLの結果を、フィールドに直接取得する
  • 従来のWebビューアを使用した方法に比べてスマート
  • オブジェクトフィールドに直接ファイルの取得も可能
  • 自前でWeb上なりにリソース設置が必要
  • HTTP GETしか使えない
  • httpsは指定可能だが、証明書を検証しない
活用案
  • 重たい演算をWeb側で処理
  • Webから直接ファイルを取得
  • GET限定ならTwitter等々の各種APIをシンプルに使える

この方法は、単純なリソースの取得だけでなく、GETで呼べるAPIの活用をシンプルにしてくれます。YahooデベロッパーネットワークTwitterのAPIでGETのものなど、使えるシーンは色々あります。しかし、取得したデータの活用にはFileMakerでは面倒が多く、次に紹介するdataスキームを使った方法でパースした方が便利です。またPOSTやPUTが必要な場合や、OAuthなど何らかのトークンを必要とするケースでも、dataスキームでformを組み立ててPOSTといった工夫が必要になります。

Webビューア + dataスキーム + JavaScript 01

Webビューア内でJavaScriptを使って演算
  • Ver.11以前でも使える
  • dataスキームで動的にHTML+JavaScriptを組み立てる
  • FileMakerにJavaScriptの機能を追加するイメージ
  • 正規表現やHTTP POST(form経由で)なども使える
  • ある程度のバイナリ処理も可能(画像等)
  • 制限はあるがJavaScriptは今後強化される(と思う)
  • WindowsではWebビューアがJavaScriptの演算結果を取得させないので、この方法は使えない(Macでは??)

Webビューア + dataスキーム + JavaScript 02

値の受け渡し方
  1. 組み立てるdataスキーム用のコードにデータを埋め込む
  2. JavaScript側であれこれ処理する
  3. バイナリなら、base64でテキスト化
  4. 処理結果を任意のDOMオブジェクト等に書き込む
  5. FileMaker側でGetLayoutObjectAttribute()を使ってDOMオブジェクトから切り出す
  6. 画像等のバイナリなら、Webビューアで表示させる

Webビューア + dataスキーム + JavaScript 03

メリット
  • fp7やfmp12ファイル単体で完結する
  • JavaScriptは手軽に試せる
  • 既存のJavaScript資産が流用できる
デメリット
  • 演算結果をファイルとして取得できない(画像等)
  • Webビューアがやや不安定
  • 既存のJavaScript資産が流用できる

ここで、Webビューア + dataスキームを使った拡張方法の例として、簡単なお絵かきツールのデモを行いました。お絵かき機能の部分は非常にシンプルな作りで、とにかくcanvasへの描画をiOSで動くようにして、結果をbase64で任意のDOMに書き出す、というだけのものです。

こいつのファイルは乱暴な部分が大きすぎるので、ここではリンクしません。いずれは簡単な手順で誰でもそこそこのペイント機能をGoに追加できるよう公開したいと思います。

なお、イベント前には見落としてましたが、実は株式会社スプラッシュさんが、ほぼ同じ方法で実装されている風なペイントソリューション『FMCanvas』を販売していました。

他にも、FileMaker社のGo用プロモーションサイトにあるサンプルファイルの一覧には、同様の方法で実現された、ブラウザのメリットを生かしたソリューションが色々登録されています(株式会社寿商会が積極的に活用されているみたい)。

拡張方法の価値

拡張方法は一長一短で色々ありますが、Goの可能性上重要なのは、これらの方法がデベロッパの小道具に終わらず、FileMakerのエンドユーザーの手にきちんと収まることだと思います。プラグインの様に、中身の作りを知らなくても、そこそこ容易に組み込む事が可能になれば、Goでツールを作ってみる需要を潰さずに済むんじゃないでしょうか。

そういう意味では、Goスタンドアロンで済むWebビューア + dataスキーム + JavaScript等の方法が最も有望でしょうか。エンドユーザーが所定の手順でソースをコピーするだけで、Goを拡張できる可能性があります。

まとめ

FileMakerとiOS端末があるなら、Goでツールを作ってみると面白い。FileMakerだけではできないことも、拡張方法がわかっていれば、案外すんなり実現できるかもしれない。

既存のFileMakerソリューションとは切り離して、iOS端末のモビリティを自社内や顧客や自分個人に活用できるシーンが無いか検討してみれば、色々と考えられると思います。そんな時、要求がFileMaker Goで応えられる範囲内ならば、これほど手軽な開発環境は他にありません。

『FM-Kyushuワークショップ みんなでVer.12をさわってみよう』

今回、FM-Kyushuでは初めて、ワークショップスタイルでの勉強会を実施。ワークショップは、次のような大まかなルールだけ決めて、手探りの実践でした。

  • 少人数のグループに分かれ、同じテーマでソリューションを作る
  • 作成するのは、事前に用意したマスタデータを使った「見積書」
  • リレーションを使う
  • テーマを使う
  • その他Ver.12の新機能を使ってみよう
  • 制作時間は30分
  • 制作後は各グループが自分のソリューションを紹介

結果

30分という短時間もあってか、出来上がったものは予想以上に似ていました。

 
実際の.fmp12ファイルは下記からダウンロードできます。

見ためはやや違っても、リレーションシップの構造はほぼ同じ、機能も基本的に同じでした。マスタテーブルが用意されていたこと、見積書という揺れにくい題材、30分という時間もあってでしょうか。しかしスタッフが勝手に予想していた以上に、どのグループもしっかり見積書に必要な要件を考え、短時間で形にしていました。

発表も、滞りなく各グループの意図が伝えられ、ジョークがあったり、本当はもっとこうしたかったという声が出たり、良い雰囲気でした。

惜しいのは、本来発表を紹介と展望の2巡するはずが、進行の仕切りが悪く、ちょっと本題から離れた質問に時間をとってしまった点です。質問が出て様々な意見が飛び交うのは良い事ですが、参加者によってはついていきにくい場合もあるので、もっと上手に進行するよう考えていく必要を感じました。

各グループの発表中には、以下のような質問がありました。

ポータル内レコードの削除について

どうやって削除するのですか?

  • スクリプトステップで行えます(実演)。

その際に削除確認ダイアログが必要では?

  • そのオプションもあります。

その削除確認ダイアログはあったほうが良い?

  • データの削除になりますのであった方が良いと思われます。

テーマ機能とレイアウトスタイルについて

テーマ設定時にレイアウトスタイルは初期化されますか?

  • されます。

マウスオーバーなどの設定も?

  • されてしまいます。

見積書のデータモデリングについて

集計を実装する際にルックアップとリレーションの二つの方式が考えられますがどちらが正解ですか?

  • 過去のデータを固定する場合はルックアップを使います。
  • 今回のお題は見積書となっていますのでルックアップの方がより適していると考えられます。

つまり常にルックアップすれば良いのですか?

  • 用途に応じた選択が必要です。
  • リレーションによる集計とすれば、後日のデータ修正にも自動対応できる場合があります。
  • (補足)今回の例であれば日々の売り上げをリレーションで動的生成し、月集計はルックアップで固定化など複合的に利用するケースも考えられます。
  • データを固定する方法のひとつにスクリプトを使って検索〜集計する方法もあります。

ワークショップを実践してみて

FM-Kyushuはじめてのワークショップスタイルということで、色々と拙さや戸惑いがありましたが、得るものもたくさんありました。

難しいと考えていたグループ分けは、座っていたテーブルの列単位で別れるだけで、自然と上手く行きました。各グループに、見積書に必要なモデルをしっかり把握している方がいたのは大きかったです。手探りの初回で、形にならなかったグループが出なかったのは大きな成果で、実務で日々活用されている参加者の雰囲気も感じ取れました。

今回は課題の設定もあって、違いが出にくい結果になりました。今後はもっと驚く実装の出てくるような課題を考え、ワークショップを続けようと思います。

アンケートについて

今回はアンケート用紙を用意し忘れてしまったため、実施できず申し訳ありません。次回は内容を少し見なおして、実施いたします。

次回のFM-Kyushu勉強会について

次回の勉強会は2012年8月4日を予定しています。

内容はまだ確定していませんが、勉強会だからこそ可能な企画を検討中です。決まり次第、このブログやメーリングリストでお知らせします。

FM Talkers Apr. 2012 - 条件付き書式と変数を使いこなそう!(+ ver.12オーバービュー)- 開催レポート

開催から1ヶ月以上経ってしまいましたが、2012 年 4 月 14 日 (土)に開催したFM-Kyuhsuの勉強会『FM Talkers Apr. 2012 - 条件付き書式と変数を使いこなそう!(+ ver.12レビュー)』の、開催レポートをお届けいたします。

開催要項

時間
18:00 〜 21:00
参加者
25 名
参加費
500 円
場所
ふくふくプラザ (福岡市市民福祉プラザ) 503 研修室
福岡県福岡市中央区荒戸3丁目3番39号

直前でFileMaker Pro 12シリーズの発売開始となったため、本来のテーマはやや縮小し、ver.12のオーバービューを追加した今回。いつもより多くの方にご参加いただけたのは、ver.12への関心の高さからでしょうか。

『変数を使いこなそう 基礎編』 - 変数の基本とスクリプトでの利用 -

プレゼンテーション中の様子の写真

メインテーマ1本目は、FM-Kyushuの本田による、変数の基本を紹介するプレゼン。プレゼン資料の準備不足でほとんどアドリブとなってしまい、まとまりが無く申し訳ありませんでした。

内容は以下のような構成でした。

変数とは

「データを一時的に入れておける名前の付いた入れ物」

何に使う?

複数回使うデータを入れる

一つのスクリプトの中で複数使う値を、一旦変数に入れてから使う。そうしておくと、無駄な計算が減り、スクリプトの修正も容易になる。

取り敢えず覚えておきたいデータを入れる

ループの回数や、長くややこしい計算を分割する場合など、一時的な値の置き場が欲しいことはままある。

グローバル格納の代わり(※$$グローバル変数を使う)

レコードを超えて1つの値を保持しておくグローバル格納は、便利な反面、テーブル定義が必要。変数はその代わりも出来る(完全ではない)。

変数の使い方

スクリプトで変数を使うのは、非常に簡単。

  • 変数の作成:「変数を設定」スクリプトステップで名前と値を指定
  • 変数の更新:「変数を設定」スクリプトステップで名前と値を指定
  • 変数の使用:計算式に変数名を書くだけ

どんな使い方も、基本的にこの3つから組み立てられる。

変数の種類

変数には名前が必要。スクリプトで使う変数にはこの名前に規則があり、「$」または「$$」が必ず先頭に付く。

「$」と「$$」によって、変数はその有効範囲と寿命が変わる。

先頭記号 呼び名 有効範囲(スコープ) 寿命
$ ローカル変数 その変数を作成したスクリプト内 作成時点からスクリプト終了まで
$$ グローバル変数 その変数を作成したファイル内 作成時点からファイルを完全に閉じるまで

ローカル変数は作成したスクリプト内でのみ有効なため、他のスクリプトと競合しない分安全な反面、複数のスクリプトで連動して値をやり取りするのは不便。値のやり取りは、グローバル格納フィールドやスクリプト引数、そしてグローバル変数などを使う必要がある。

グローバル変数は、従来のグローバル格納と同じ感覚で使えるが、複数ファイル間でのやり取りには、やはり不便がある。こちらもファイルをまたいだ値のやり取りには、グローバル格納フィールドやスクリプト引数を使う。

変数の名前の管理

変数には名前が必要だが、フィールドの様に一覧する方法が用意されていない。

スクリプト変数は、それを使うスクリプトの先頭にコメントで名前と用途を残すなど、工夫が必要。

グローバル変数は、ver.11以上なら、マージ変数機能を使って、一覧するレイアウトを作ると良い。

変数でしか出来ないこと ファイルパスの生成

エクスポートやPDF保存時などに指定するファイルパスの指定は、動的に行いたい場合、必ず変数を使う必要がある。

通常固定のパスを書き込んで指定するダイアログ上で、固定のパスの代わりに、「"file:" & Get(日付) & ".pdf"」などいう値を設定しておいた変数を指定すると、動的なファイル名で保存が可能。

まとめ

今回は触れませんでしたが、計算式中でLet()を通じて使う変数は、もっと面白い特徴があり強力です(代償に、把握すべき変数の種類が4種類に増えます…)。また、同じく触れられなかった話題として、グローバル変数とグローバル格納フィールドの違いも、バージョンによって異なり、使い分けも注意が必要です。

今後のFM-Kyushuの勉強会でも、引き続きこのような変数の解説をしていきたいと思います。

条件付き書式の基礎

Excelに同等の機能がありますので利用されている方も多いかと思いますが、似た機能をFileMakerで利用出来ます。

ひとことで言うと?

レイアウトオブジェクトについて、
真と評価された式に事前に決めた書式を適用する機能です。

条件付き書式を定義できるレイアウトオブジェクトは?

  • フィールド各種
  • ボタンコントロール, タブコントロール, 
グラフ(チャート), Webビューア
  • テキストブロック(文字をタイピングするアレ)

条件付き書式を「なぜか」定義できない「冷遇された」レイアウトオブジェクトは?

  • ポータル
  • 線ツール, 長方形ツール, 角丸長方形, 楕円ツール など

この辺り、使えても良さそうな気がします。

主な特徴は?

ユーザー側から見た場合

  • 文字書式の設定が出来る
  • オブジェクト背景色の設定が出来る
  • 複数の条件を設定できる
  • 初心者でも短時間で習得できる

ファイルメーカー社側の想定

  • 文字書式の設定が出来る
  • オブジェクト背景色の設定が出来る
  • 複数の条件を設定できる
  • 初心者でも短時間で習得できる

共に「初心者でも短時間で習得出来る」点は共通していますが、何ができるかについては差があるように感じます。

ユーザーとしては計算式やスクリプトで操作出来ないオブジェクトの背景色に条件付き書式を適用したい場合が多いと思われますが、ファイルメーカー社としてはあくまでも「文字書式の設定が出来る」あたりで実装が停止しているようです。

条件付き書式の仕様

  • (索引の無い)非保存計算に基づく条件付き書式は正常に動作しない(えー!!)
  • スクリプトで変更された文字書式に条件付き書式を
定義しようとしても無視される
    ※ 事前にTextColorRemove関数で文字書式(スタイル)を取り除いておくこと

もっと簡単に言えないの←

  • 対象:主にテキスト操作
  • 優先:計算式>スクリプト>条件付き書式>フォーカス>マウスオーバー(要確認!今後修正される可能性があります!)

条件付き書式に対する私見

  • FileMaker 12 シリーズでフィールド塗りつぶしや、
線の書式が拡張されたため、今後拡張される。はず?
  • 背景色はオブジェクトに属し、文字色の設定はフィールド内データに対する修飾として区別したいのかも?
    (条件付き書式はデータに対する修飾扱い)


FileMaker 12 オーバービュー - 変更点の概要と対応について -

飛び入りテーマですが、最も関心の高かったver.12のレビュー。今回はFM-Kyushuの本田による、重要な変更点の紹介と、簡単な移行についての紹介となりました。

まず、プレゼンテーションを全文掲載します。

なにが変わったのか

新しいファイルフォーマット

.fp7 から .fmp12 へ
  • ver.7〜11まで続いた .fp7 形式は終了
  • 新しいフォーマットは 「.fmp12」 となる
.fp7 ファイルは変換が必要
  • ver.12の変換機能を使う
  • 変換の影響確認にはテストが必要
.fp5 ファイルは変換に非対応
  • 一旦 .fp7 形式に変換する必要がある
  • よほど単純なファイル以外作り直した方が良い

新しいレイアウトエンジン

内部ではCSSを採用(恐らくWebKitベース)
  • 内部的なものでユーザーがCSSを目にするわけではない
  • 色々なレイアウト関連の新機能の基盤となっている
表現力の強化
  • 最近のRIA風のモダンな表現が可能になった
  • 角丸やグラデーション、背景画像など外観の指定が可能に
操作に応じたスタイリング
  • ホバー時やフォーカス時などの外観を個別に指定可能
  • より親切で安全なソリューションに繋がる

「テーマ」機能

テーマの概要
  • レイアウトのスタイルを一括変更
  • レイアウトオブジェクトの種類ごとにスタイルが用意されている
  • 製品に40種類が付属(内5種類はGoに最適化)
テーマの自作
  • 内部はほぼCSSなので自作可能
  • 独自の拡張要素の特定と理解は必要
  • 「○○病院」や「自社-入力用」といったテーマを作って一貫したUIを提供可能
  • 但し編集機能は用意されていないので、CSSを直接編集

レイアウト編集機能の強化

ガイド(ダイナミック・ガイドライン)とグリッド、ステンシル
  • 整ったレイアウトが手軽に作れる
  • iPhoneやiPadなど特定のデバイス向けレイアウトが簡単に
オブジェクトの選択やサイズ変更
  • 数値指定で複数オブジェクトの一括サイズ変更が可能に
  • 塗りが無くても選択可能に
単位「px」が廃止され「pt」に変更
  • レイアウトのサイズ指定などでは原則 pt が標準
  • ウインドウサイズなどは従来通り px で指定

オブジェクトフィールド(コンテナ)の強化

対象ファイルの外部保存に対応
  • オブジェクトの内容を .fmp12 に含まないため、安定性と可搬性が向上
  • 「参照のみ」とは異なり、データは指定したパスにコピーされる
  • 暗号化して格納する「セキュア格納」にも対応
  • オープン格納の場合、同名のファイルは自動的にリネーム
UI・UXの向上
  • ファイルをドラッグアンドドロップで格納
  • 動画やPDFなどのファイルを閲覧できるようになったが、
    実行環境のブラウザの設定に依存するため汎用性に欠ける

Goの無料化と強化

ver.12以降のGoは無料で配布
  • iOSに於ける新たな開発プラットフォームとして
    Goを定着させたいという判断から?
  • 製品名は『FileMaker Go 12』
  • ver.11以前のファイルには非対応
  • 1円でもかかるのと、無料とでは導入の気安さが全く違う
iOSとの連携が向上
  • Location()で位置情報を取得
  • オブジェクトフィールドにカメラから直接写真や動画を
  • マルチタスク対応が少しマシに

その他の変更点

古い機能の廃止
  • 後述
Advanced
  • 特になし
  • テーマエディタぐらい付けてほしい
インスタントWeb公開
  • レイアウトエンジンの刷新で、より再現性が良くなった(はず)
その他も細かな変更点多数
  • 「モーダルウインドウが手軽に実現」とか
    有用なものが多いのでぜひチェックを

バグ

すでにバグが色々…
  • Goのバグ情報が多い
旧来のバグは結構残ってる
  • 多量のフォントがあるWindowsで印刷時間が異常に長い
  • 日本語フォントなのにレンダリングがベースライン基準 等々
バグ情報の確認方法

ver.12への移行

移行すべき?

メリットが大きそうな人
  • レイアウトの外観や挙動に凝りたい
  • UIのビジュアルデザインが苦手
  • ver.6までのシステムが現役
  • ファイル管理に使いたい
  • iPhone・iPadを業務に活かしたいけどアプリは自作できない

移行方法

ver.7 〜 11(fp7)の変換
  • 古いバージョンであるほど、うまく変換できない部分が出てきうる
  • 変換に問題が無いか確認する、テストの計画を立てよう
  • 小規模ならチェックリストで済むかも
  • 大規模なら『BaseElements(2012年4月14日時点では、12に非対応)』など、
    別途ツールの使用も検討した方が良い
〜 ver.6(fp5)の変換
  • 直接変換はできないので、一旦.fp7に変換する必要がある
  • 余程単純な構造でないかぎり問題が大量にでるので、
    潔く12で再構築するのがおすすめ

変換時に注意すべき要素

廃止された要素
  • レイアウトオブジェクトの塗りのパターン
  • OLE(Windowsのみ)
  • XSLT公開
レイアウト全般

今回最大の変更点はレイアウトなので、全てのレイアウトでズレや不正な表示が無いか、確認する。

描画速度

全体的に遅くなっている筈なので、使い物にならなくなっている箇所が無いか確認する。

プレゼン内容は以上です。以降は、当日触れた内容も含んだ補足です。

レイアウトエンジンについて

12の変更点として重要なのは、やはりレイアウトエンジンが新しくなった事です。これによって制作効率は向上し、より質の高いレイアウトの実現につながります。また、今後のバージョンで追加されるであろうレイアウト関連の機能への布石ともなっている筈です。

但しこの変更は、新たなバグや互換性の問題にもつながっています。実際、すでにナレッジベースでは幾つも問題が報告されています(ポータルオブジェクトをあるレイアウトから別のレイアウトにコピーすると、想定外の結果になる, 条件付き書式を設定したレイアウトオブジェクトが期待通りにリフレッシュされない, レイアウトに挿入した画像の角丸の半径の設定が期待通りに動作しない, ポータルオブジェクトをあるレイアウトから別のレイアウトにコピーすると、想定外の結果になる 等々)。

このようなバグや互換性の問題は、大きな変更時には付き物ですが、変換後のテストを慎重に行うといった事しかほとんど対応手段がありません。なるだけ早いアップデータの公開を期待しています。

手軽にレイアウトのビジュアルを変更できるテーマ機能は、レイアウトエンジン変更の最大の効果です。しかし、せっかくのテーマを編集するツールが提供されていないのは、もったいないです。自社用のテーマが手軽に作れてこそ、テーマ機能は本領を発揮できるのではないでしょうか。この点はFM-Kyushuのメンバーでも、何かツールを作れないかと検討しています。

オブジェクトフィールドの強化

外部保存に対応した事によって、従来は対応しにくかった大規模なファイルのデータベースでも、FileMakerが選択肢に入れられるようになりました。しかしこちらも、この強化に起因するバグ(外部保存されたオブジェクトフィールドのデータが、FileMaker Server にアップロードされない。)が確認されています。

Goの無料化

マーケティング上のインパクトが最も大きかったのは、この話題でしょうか。従来2~4,000円程度はしていたFileMaker Goが、完全に無料化される事で、iOSの開発プラットフォームとして名乗りを上げよう、という意図がありそうです。

この方向性が定着するかは、FileMaker社がどれだけGoを快適な環境に改善していけるかにかかっていそうです。少なくとも、現在の12用Goは、従来のものと大きな差が見られません。よりiOSネイティブの使い勝手に近づけること、ロケーションやイメージング以外のデバイスとの連携を強化すること、そして何より、レスポンスを上げること。こういった努力が続けば、本格的にiOSアプリの開発環境として認知されていくのではないでしょうか。

12と今後の勉強会

今回、参加者の中で12を実際に試している方は0でした。受託開発ではなく、インハウスツールの構築手段としてFileMakerを利用されている方が多いため、当然だと思います。

勉強会は次回6月に予定していますので、その頃には、実際に移行した方や、計画を立てている方の参加がありそうです。移行の中で出てきた疑問や実例を元に、FM-Kyushuで応えていけたらと思います。

質問タイム

プレゼンテーション中の様子の写真

アンケートでのリクエストなどから、FM-Kyushuでは今後、質問時間を長く取ろうと考えています。その始めとして、今回は最後の45分程度を質問タイムに充てました。

下記のように、面白い質問も出たのですが、スムーズとはいえず、もっと進行の工夫が必要だと感じました。

データベースの構造と繰り返しフィールドについて

Q. 表計算ソフトで言うところの行列変換を、繰り返しフィールドで行うには?

  • A. 現状はフィールドを毎月増やす必要がある。
  • A. 今後は毎月レコードが増えるような構造とし、帳票作成時に繰り返しフィールドに値を入れると良いのでは?

Q. それは大掛かりな変更が必要と言うことですか?

  • A. 大掛かりな変更になります。次回にでも実際のソリューションを確認させてください。
  • Q. 話は変わるが、繰り返しフィールドは今後のファイルメーカーでもサポートされ続けるのか?

    • A. オブジェクトコンテナとしての利用はありではないか?

    カレントレコードのビジュアル表現

    Q. レコード選択時に背景色を変化させたり強調用のマークをつける方法はないか?

    • A. レコードの移動をトリガで拾って(OnRecordLoad)、Get(レコード番号)を使ってそのレコードを特定する番号をグローバル変数等に取得。後は、背景色を条件付き書式で表現したり、オブジェクトを結果として返す計算フィールドで、$$カレントレコード番号 = Get(レコード番号) などとして表現する。

    アンケートの集計結果

    FM-Kyushuではよりニーズにあった勉強会を行うために、前々回より勉強会参加者の方にアンケートを行っています。

    今回のアンケートは以下のような結果となりました。

    あなたは開発者ですか? それとも、開発は行わない利用者ですか?

    開発者 8 / 16
    利用者 7 / 16

    現在お使いのFileMaker製品

    Pro 6 以下 2 / 16
    Pro 7 〜 9 1 / 16
    Pro 10 4 / 16
    Pro 11 10 / 16
    Pro 12 Advanced 1 / 16
    Advanced(Developer) 4 / 16
    Server 1 / 16
    Go iPhone 1 / 16
    Go iPad 2 / 16

    勉強会の評価と今後の要望

    アンケートでは、自分にとって勉強会の難易度もお訊きしています。今回は多くの方が「ちょうど良かった」、数名の方が「難しかった」との回答でした。また幸いなことに、「簡単すぎた」と感じた方はいらっしゃいませんでした。次回以降の勉強会でも、今回のような難易度の内容を、より分かりやすくお届けしたいと思います。


    次回以降のテーマの要望には、やはりGoを挙げられる方が複数いらっしゃいました。他に、リレーションや計算式の基礎的なもの、チャートやエクスポート、SQLなどの実務的なものもありました。

    勉強会には医療、教育、物販、印刷など様々な分野の方が参加しているため、求められる内容も様々です。全ての方のご要望に応えるのは難しいですが、基礎と実践をバランスよく扱いつつ、勉強会だからこそ出来る交流やデモも試みていきたいと思います。

    次回のFM-Kyushu勉強会について

    次回の勉強会は2012年6月9日を予定しています。内容はまだ確定していませんが、勉強会だからこそ可能な企画を検討中です。決まり次第、このブログやメーリングリストでお知らせします。

    FM Talkers Apr. 2011 - 検索について - レポート
    2011 年 2 月 26 日 (土) 、福岡市のふくふくプラザにおいて、FM Talkers Apr. 2011 - 検索について - が開催されました。 

    検索の基礎として検索演算子をはじめスクリプトによる自動化のデモを行いました。
    その上でリレーションによるインクリメンタルサーチの紹介を行いました。(FM Talkers Jun. 2009 - スクリプトトリガを使い倒す - で紹介したものを再紹介)


    最後に Medical Macintosh山本先生より医療現場に置ける FileMaker 活用事例に関するプレゼンテーション(FileMaker Go活用によるスタンアローンコンプレックスなソリューション。災害時電子カルテのと二次元バーコードの活用)に加え、索引の最適化(チューニング)についての説明をいただきました。

    オーカワの理解としては、福岡県の郵便番号テーブルにおいて、様々な検索を行う場合、全てに含まれるであろう '福岡県' 'ふくおかけん' という文字列についての索引は不要と言う考え方です。この最適化を行う事で、数百万レコードなど大量のレコードの検索時においても適切な速度を維持出来るとの事です。

    山本先生のお話をオーカワなりに実装してみましたので、ぜひサンプルファイルをご確認ください。
    オーカワの理解は合っていますでしょうか?<山本先生


    追記
    山本先生よりコメントをいただきましたので追記いたします。
    ありがとうございました m(_ _)m
    福岡県を対象とする住所検索で、最初から福岡県を対象にしない場合はsubstitute(検索文字;"福岡県";"")としてから検索します。この検索文字を検索するフィールドも別に牽引設定をしてsubstitute(住所;”福岡県";"")という計算フィールドにします。

    これの応用として完璧な検索をもとめず、曖昧な検索をするためにあえて、「丁目」であるとか「町」という文字を削除した前処理を行い、索引を前もって作成するなどの工夫もありえます。正規表現とはひと味違った独自の検索が可能です。

    FileMakerの場合、索引作成に癖があり初期状態ではフィールド全部に索引設定がされていまいます。レコードが固定であれば問題ありませんが、レコードが増加する場合、索引の更新にマシンパワーが必要で、レコード追加や更新の速度が落ちる場合があります。数百万、あるいは数千万レコードのハンドリングを行う場合は、索引設定の最適化が求められます。
    FM Talkers Feb. 2011 - 関数を使ってみよう - レポート
    2011 年 2 月 26 日 (土) 、福岡市のふくふくプラザにおいて、本年最初の FM Talkers Feb. 2011 - 関数を使ってみよう - が開催されました。 

    オーカワによる関数基礎講座は、FileMaker では複合代入演算子が使えないなど、基本的な事から Evaluate, Self 関数の実装例紹介を行いました。
    FileMaker中央値 (Median) を取得する場合は ValueListItems 関数を利用すると重複値による問題が考えられますので、可能であれば List 関数を使いましょう。
    FM8 以下など List 関数が存在しない場合においてはスクリプトでの実装が無難です。 
    オーカワ作のしょうもないデモと併せてご覧ください。

    土田さんによる、ほげふがなローカルソリューションの紹介は、いろいろな意味で大いに盛り上がりました!
    詳しく書けない事が残念で仕方がありませんが、ポイントは HTML ソースから Position 関数による値の取得と言うことになります。


    最後は本田さんによる「込み入った計算式作成の補助ツール」の紹介です。
    こちらについては 本田さんのblog (FileMakerを考える) で公開されていますので併せてご確認ください。

    その他、Evaluate 関数による再帰呼び出しについての考察を行いました。
    ・非常にややこしく難しいが
    ・関数だけでループ処理が行える
    ・動作も早く
    ・カスタム関数として利用もできる
    ・しかし、非常にデバッグしずらい
    ・関数型言語としての可能性は未知数かも?

    目的:
    0+1+2+3+.....+97+98+99+100
    上の計算を行う場合に再帰呼び出しを利用した計算式で実現します。 

    実装手法:
    変数「$文字タイプの数式」の定義中に Evaluate 関数を利用して、変数「$文字タイプの数式」の評価を繰り返します。

    実装例:
    Let
        [ 
            /* 変数の初期化を行います */
            $数字タイプのカウンタ = 0 ; 
            $数字タイプの結果 = 0 ; 
            /* 文字タイプの数式を定義します */
            $文字タイプの数式 = " 
                Case
                    /* カウンタ判定を行います */
                    $数字タイプのカウンタ < 100 ; 
                    Let
                        [ 
                            /* カウンタのカウントアップを行います */
                            $数字タイプのカウンタ = $数字タイプのカウンタ + 1 ; 
                            /* 結果を更新します */
                            $数字タイプの結果 = $数字タイプの結果 + $数字タイプのカウンタ
                        ] ; 
                        /* カウンタ判定が偽 (False) となるまで自分自身を呼び出します (再帰呼び出し) */
                        Evaluate ( $文字タイプの数式 )
                    ) ; 
                    /* 結果を出力します */
                    $数字タイプの結果
                )
            " 
        ] ; 
        /* 上で定義された文字タイプの数式を評価します */
        Evaluate ( $文字タイプの数式 )
    )





    次回は 2011.04.23(Sat) に「こんどは検索です(仮)」の内容で FM-Talkers を行いたいと思います。
    そこで、皆様には GoogleGroups 「FM-Kyushu」で実装方法がわからない検索や、こんな検索は出来ないの?と言った事例を挙げていただければと思います。
    が、次期 FileMaker 等の発表があればそちらに流れる可能性もあります。
    またこんなこと出来ちゃったもんね〜等のお話もお待ちしておりますw

    日程:2011 年 4 月 23 日 (土)
    時間:18 〜 21 時
    場所:ふくふくプラザ 503 会議室

    テーマ:こんどは検索です(仮)

    FM Talkers Dec. 2010 レポート
     2010 年 12 月 4 日 (土)、福岡市のふくふくプラザにおいて、FM Talkers Dec. 2010 - 帳票は得意ですか? - が開催されました。

    豊原さんによる、死亡届〜クリティカルパスは、普段触れることのない、電子カルテについて学ぶことの出来る貴重な機会となりました。
    岡部さんによる、マニアックに作りこまれた受講生管理システムは、ベースが FileMaker 6 からの移行に関する貴重な事例となりました。
    千々岩さんによる、生徒さんへの年賀状を、いかに個別カスタマイズを施しつつ省力化する手法については斬新な部分も多く、仕事で携わる方にとっても新しい発見があったと思います。

    本田さんのプレゼンにつきましては、本田さんのblog (FileMakerを考える) で公開されています。
    ・02_単一レコードで動的値一覧の補足
    ・03_標準機能でガントチャート
    ・05_FileMakerでリバーシ


    ご興味のある方はご確認&コメントをぜひ!

    オーカワ作のしょうもないデモも公開させていただきます。
    Q. Excel と FileMaker で、帳票を作った場合、何が異なりますか?
     A. FileMakerは(正しい構造かどうかはともかく)出力画面においてもデータをテーブルに書き込むことが出来ます。
    Q. プリンタが異なると印刷がずれてしまいます。
     A. スライド印刷機能で余白を調整できます。



    次回は 2011.02.26(Sat) に「関数を使いこなそう(仮)」の内容で FM-Talkers を行いたいと思います。
    そこで、皆様には GoogleGroups 「FM-Kyushu」で使いこなしたい関数を挙げていただければと思います。
    またこんなこと出来ちゃったもんね〜等のお話もお待ちしておりますw

    日程:2011 年 2 月 26 日 (土)
    時間:18 〜 21 時
    場所:ふくふくプラザ 402 会議室


    今年も残すところあとわずかです。
    来年も優しい笑顔をお目にかかるのを楽しみにしております。
    どうぞよろしくお願いいたします m(_ _)m

    FileMaker 講習会 & FM Talkers Aug. 2010 レポート
    みんなで触ろう FileMaker Go!

    2010 年 8 月 21 日 (土)、福岡市のふくふくプラザにおいて、FM Talkers Aug. 2010 みんなで触ろう FileMaker Go! が開催されました。
    FileMaker 講習会 & FM Talkers Apr. 2010 レポート
    FileMaker 講習会

    2010 年 4 月 24 日 (土)、福岡市のふくふくプラザにおいて、FileMaker 講習会と、FM Talkers Apr. 2010 自分のソリューションを参加者に添削してもらおう!が開催されました。
    FM Talkers Dec. 2009「FileMaker と CakePHP でつくる簡単 Web アプリケーション」勉強会レポート
    CakePHP

    2009 年 12 月 18 日 (金)、福岡市の AIP cafe において、FM-Kyushu の勉強会「FileMaker と CakePHP でつくる簡単 Web アプリケーション」が開催されました。
    FM Talkers Oct. 2009「FileMaker 基礎講習」勉強会レポート
    基礎講習

    2009 年 10 月 9 日 (金)、福岡市の AIP cafe において、FM-Kyushu の勉強会「FileMaker 基礎講習」が開催されました。

    FileMaker のフィールドや、レコードなどの基本的なことを Excel と比較して再確認したあと、参加者の方が「桐」で作成されたシステムを披露してくださって、FileMaker で作り直す場合にはどうしたらいいかなど、参加者全員でワイワイ協力しながら盛り上がりました。

    途中で東京からの飛び入り参加もあって、さらに盛り上がった勉強会となりました。

    管理工学研究所「桐」
    ■ 関連ブログ:神楽坂で働く IT 社長の不定期ブログ
    FM Talkers Aug. 2009「FileMaker で作ろう分離モデルの請求書」勉強会レポート
    分離モデルの請求書

    2009 年 8 月 22 日 (土)、福岡市の AIP cafe において、FM-Kyushu の勉強会「FileMaker で作ろう分離モデルの請求書」が開催されました。