FileMakerルーキーズ勉強会#25 フィードバック <「今月」「月末」「年度」など色々な検索|Let関数を紐解いてみる|バーコードを読み込んで商品名を表示したい>
◆開催日時:2022/01/09(日) 10:10-12:10
◆参加者:現地1名+オンライン5名。[初参加 なし]
◆ルール:可能な限り置いてけぼりにしないこと
【本文の前に次回のお知らせ】
次回のFileMakerルーキーズ勉強会は2022年2月の第2日曜日、2月13日(日) 10:10-12:10(オープン10:00)を予定しています。connpassのイベントページに追加されたらご参加表明よろしくお願いします↓
connpassイベントページ ※登録も参加も無料です
https://fm-rookies.connpass.com/event/
「メンバーになる」にしておくと、新しいイベントが用意できた際に案内メールが届きます♪
☆この記事内容が難しいと感じる方は、逆に言えば100%参加対象です♪
◆フィードバック
☆【抽選トピック】「今月」「月末」「年度」など色々な検索
☆【トピック1】Let関数を紐解いてみる
☆【トピック2】バーコードを読み込んで商品名を表示したい
---------------------------------------------------------------
☆【抽選トピック】「今月」「月末」「年度」など色々な検索
---------------------------------------------------------------
アイスブレイクの抽選トピックは、MasterBook関数・スクリプト編(P850 )の「「今月」「月末」「年度」を検索する」というページが当りました。
今月を検索するのは「2022/1/*」のように日付の箇所をアスタリスクにすれば良く、これはイメージしやすいです。
問題は「直近2週間~」のデータを検索するときで、MasterBookのほうでは「Let関数」を使ったスクリプト設定が載っていました。
勉強会の参加者6名のうちLet関数をよく使うのは2名、知っているがあまり使わない人が2名、そんな関数知らないよという人が2名でした。
MasterBookという公式のテキストで、Let関数を知っている前提の例を使うのはどうなのだろう?という疑問が個人的にはありました。せめてLet関数を使わない方法も例2として載せてほしかったなあと思います。
MasterBookの例では、検索条件の指定方法として次のように書かれています。
Let ( [
本日 = Get ( 日付 ) ;
二週間前の日付 = 本日 - 14
] ;
"≧" & 二週間前の日付
)
これをシンプルに、
"≧" & Get ( 日付 ) - 14
という式にしても同じ結果になります。
MasterBookの編纂事情が色々あったのかもしれませんが、もう少し初心者も意識して貰えたら良かったなと思いました。
(案の定、Let関数を知らない参加者は、今回のような解説がなければチンプンカンプンだったろうと仰っていました。)
ただ、今回良かったなと思うのは、Date関数のことを触れられたことかもしれません。次のP851にある「本年度」を検索するところで、次のようなDate関数の記述が見られます。
Date ( 本年度開始月 ; 0 ; Year ( 本日 ) + 1 )
(*P851のLet関数の真ん中くらいにある)
Date ( 月 ; 日 ; 年 ) の "日" に当たる箇所が「 0 」ゼロになっています。これは「月末」を算出する方法です。
例えば Date ( 4 ; 0 ; 2022 ) だとすると、"日" の部分が 1 - 1 = 0 ということと同じ意味で、2022/04/01 から1を引いた 2022/03/31 が算出されます。
ちょっと分かりづらいこともあり、僕はよく次のように使ったりします
Date ( 本年度開始月 ; 1 ; Year ( 本日 ) + 1 ) - 1
"日" のところはゼロではなく「 1 」にして、最後にマイナス1する方法です。これだと◯月1日からマイナス1すると前月の月末を出る、というほうがイメージしやすかったりします(個人的な主観)。
どちらを使うにしても、Date関数で月末を出すのは便利なのでオススメです^ ^ (2月末や30日、31日なども自動で出せるので)
-----------------------------------------------
☆【トピック1】Let関数を紐解いてみる
-----------------------------------------------
今回、勉強会トピックが参加者から挙がらなかったので、抽選トピックで出てきたLet関数をやってみることになりました。
最初はとっつきにくいですが、分かってしまえば便利に使えます。何より、MasterBookで使われているので、多少なりとも知っておいて損はありません。
Let関数はYさんに先導してもらいながらやってみました。
関数一覧の中からLet関数を選ぶと、最初の状態はこんな感じです。
Let ( {[} 変数1 = 式1 {; 変数2 = 式2...]} ; 計算 )
これを元に、すごくシンプルな計算式を作ってみます。
Let ( [ a = 1 ; b = 2 ] ; a + b )
「a = 1 , b = 2 ということにしておいて、そして、a + b を計算する」
こんなふうに考えたとYさんは仰っていました。なるほどー!
Let関数のとっつきにくいのは変数にもあります。
この変数「a」とか「b」が人によっては分かりづらいかもしれません。そういった場合には中学高校でやった「x」と「y」を使ってみるのも手です。
Let ( [ x = 1 ; y = 2 ] ; x + y )
数式っぽく、なんだか懐かしささえ覚えます。
あとはMasterBookのように改行を入れると見やすくもなります。
Let ( [
x = 1 ;
y = 2
] ;
x + y
)
更には、変数であることが分かるように記号を使ったり、結果が最後にくるようにしてみたりして、自分でしっくりくる方法を見出すのが良いと思います。
Let ( [
#x = 1 ;
#y = 2 ;
#結果 = #x + #y
] ;
#結果
)
※ # は人によって ~ や @ を使ったりします。MasterBookでは記号を使わないようです。
いずれも、Let関数はルーキーズにとっては割と難関だと思います^_^;
-----------------------------------------------------------------------
☆【トピック2】バーコードを読み込んで商品名を表示したい
-----------------------------------------------------------------------
iPhoneやiPadでは、FileMaker Goを使ってバーコードを読み込むことが出来ます。それを使って、バーコードをスキャンしたら商品名や金額などを表示したい、というトピックをAさんに挙げて頂きました。
想定しているのは、Amazonとか楽天に出回っているような製品です。手元にあるバーコードを読み込んで、そのまま商品名や金額を確認できれば素敵です。どういう方法があるか皆んなで考えてみました。
FileMaker界で有名な会社のジェネコムさんが提供してくださっているバーコード検索のサンプルファイルが良いのではないか!?という話しが出ました。
おおーこれは使えそうだ、となりましたが、課題もあります。商品名などは自分でレコードに追加登録しておく必要があります。商品の数が多い場合や未登録の商品がある場合などには難しくなります。
一番良いのは、ネット上のAmazonや楽天から情報をAPIで取得することではないか?という話しも出ました。しかし、Mさんの情報によると各社で色々制約などもあるようで、それも難しそうでした。
ブラウザに出すのはどうだろう?という話しも出ました。
決まった形式のURLであれば、「URL を開く」スクリプトで、バーコード番号付きのURLにより表示させることができます。
今回楽天サイトでやってみると、なかなか良い感じです。取りあえず商品名を確認するだけなら、これは充分使えそうな手です。
少しステップアップして、FileMaker内のWebビューアに出す方法もやってみました。「URL を挿入」ステップを使います。
「ターゲット」にはグローバルフィールドを指定しました(g_test)。「URLを指定」には先ほどと同じ計算式を指定します。
Webビューアを用意して、「Webアドレス」にグローバルフィールドの g_test を指定してレイアウトを保存しておき、スクリプトを実行します。
おおっ!
Webビューアにページが表示されました。商品数が多いとWebビューア表示が重くはなりますが、一応FileMaker内で商品名と金額がおおよそは確認できます。
用途によっては、APIのような技術を使わなくてもWebページを開くだけで事足りる場合もあります。FileMakerはこんな工夫も出来てしまうので面白いですね^ ^
FileMakerルーキーズ勉強会は、人が集まれば開催し、集まらなければ開催しない、ゆるい朝活勉強会です。
2022年もゆるく継続して開催いたしますので、初めての方もお久しぶりの方もお気軽にご参加ください^ ^
【次回のお知らせ】
次回のFMルーキーズ会は「FileMakerルーキーズ勉強会」という名前で年明け2022年1月の第2日曜日、1月9日(日) 10:10-12:10(オープン10:00)を予定しています。connpassのイベントページに追加されたらご参加表明よろしくお願いします↓
connpassイベントページ ※登録も参加も無料です
https://fm-rookies.connpass.com/event/
「メンバーになる」にしておくと、新しいイベントが用意できた際に案内メールが届きます♪
☆この記事内容が難しいと感じる方は、逆に言えば100%参加対象です♪