※超初級者や初級の方は、「FileMaker はこんなことも出来るんだな」と思って頂ければ幸いです。
次のような内容が書かれています。
- 「00」秒が格納されず表示されないケース
- 「00」が表示されていないと悲しいことも稀にある
- 2文字だけ追加して「00」を表示させる
- まとめ
本記事は、FileMakerの制作に役に立つというよりは「隠しワザ発見」的な内容です。
こういったこともFileMakerの楽しみの一つということをお伝えできればと思います^ ^
「00」秒が格納されず表示されないケース
時刻フィールドやタイムスタンプフィールドをよく見ると、「あれ?」ということがあります。
ちょうど「00」秒の場合、「00」が格納されてくれません。
データは違いますが、次のような一覧で見ると「00」秒が格納されていないことがよくわかります。
「00」が表示されていないと悲しいことも稀にある
だからといって、不都合なことは99.9%ないのですが、すごく稀な使い方をしたいときに「00」が表示されていないと悲しいことがあります。
例えば「時刻のコロンを取って「143300」という数字列を取得したいことがある場合、00秒が出ていないことで「1433」と取得されてしまいます。
●計算例:
Substitute ( TBL::時刻フィールド ; ":" )
もちろんSeconds関数を使うことで「00」を取得することはできます。が、HourやMinuteを使い、さらにゼロ埋めをしないと「5秒」など一桁の時は「143305」ではなく「14335」となってしまいます。
●計算例:
Right ( "0" & Hour ( TBL::時刻フィールド ; 2 )
& Right ( "0" & Minute ( TBL::時刻フィールド ; 2 )
& Right ( "0" & Seconds ( TBL::時刻フィールド ; 2 )
確実に6桁の結果を得たいときはよく使います。
ただ、なんだか記述が面倒くさいなあ、とか、計算が長いなあ、と思ってしまうことがあります。
2文字だけ追加して「00」を表示させる
ではたった2文字だけ追加して「00」秒を表示してみましょう。
その2文字とは「+0」です。
●計算例:
Substitute ( TBL::時刻フィールド + 0 ; ":" ; "" )
時刻フィールドの後ろに「+0」を加えただけです。
※「+と0の間にスペースが入っているから3文字じゃないか」というご指摘は華麗にスルーさせて頂きます!
ではカスタムダイアログを使って「00」が表示されることを見てみましょう。
ちょうど00秒の「15:40」というフィールド内容をカスタムダイアログで表示してみます。
「:00」が表示されています。
試しに、「+0」を取ってみましょう。当然、「:00」は表示されません。
「+0」を後ろに加えるだけで、「00」秒が表示されてくれるなんて面白いですよね!
ちなみに、なぜそうなるかは僕には分かりません!(笑)
+0が付くことでFileMakerが「つい」計算しようとした結果かもしれず、なんだか人間でいうと「有名人とすれ違って、つい見てしまう」のと似ている気がします(笑)
ちなみにのちなみに、時間(Hour)は一桁のときがあるのでSubstituteで6桁を取得する場合にはゼロ埋めをする必要がありそうです。
●計算例:
Right ( "0" & Substitute ( TBL::時刻フィールド + 0 ; ":" ; "" ) ; 6 )
または
Substitute ( Right ( "0" & TBL::時刻フィールド + 0 ; 8 ) ; ":" ; "" )
かえって分かりづらい計算になるかもしれません。であればSeconds関数などを使った方法のほうが良いでしょうし、まあ計算例はあくまで例ということで。
まとめ
今回は「隠しワザ発見!」のような感じで、今すぐFileMaker制作に役に立つような内容ではありません。
ただ、FileMakerにはこういった「隠しワザ」的な発見をしたり、いろいろ工夫できる楽しさがあります。
「あれ?こうすればうまく作れるんじゃないか?」という発想を引き起こしてくれ、実際にやってみると本当にうまくいったりします。
自分の考えたことが具現化できるFileMakerは、もはや「ものづくり」というジャンルなのかもしれません^ ^
今日も良い一日を♪
Blogger Comment
Facebook Comment