初心者のFileMaker pro Q&A (旧掲示板)

みんなに優しく、解りやすくをモットーに開設しています。 以下のルールを守りみんなで助け合いましょう。

1.ファイルメーカーで解らない事があればここで質問して下さい。 何方でも、ご質問・ご回答お願いします。 (優しく回答しましょう)

You are not logged in.

Announcement

新しい掲示板は、こちら:https://fm-aid.com/forum/t/filemaker


#1 2022-10-08 13:44:56

あきとん
Guest

計算によるレイアウト名

お疲れ様です。

FM19 WIN10

レイアウト切り替えのスクリプトに計算によるレイアウト名というのがありますが、使い方がわかりません。
変数を計算のところで入力しているのでしょうか。

#2 2022-10-08 14:18:14

Shin
Member

Re: 計算によるレイアウト名

例えば、ヘルプに
If [PatternCount (Get (アプリケーションバージョン); "iPad")]
    レイアウト切り替え [「iPad の顧客」]
Else If [PatternCount (Get (アプリケーションバージョン); "Pro")]
    レイアウト切り替え [「顧客」]
Else
    レイアウト切り替え [「iPhone の顧客」]
End If
という例がありますが、それを計算によるレイアウト名で書き換えると、
Case (
    PatternCount (Get (アプリケーションバージョン); "iPad") ; "iPad の顧客" ;
    PatternCount (Get (アプリケーションバージョン); "Pro") ; "顧客" ;
    "iPhone の顧客"
)
という計算式を設定します。ただし、レイアウト名を変更すると、この中のテキストを書き換える必要があり、注意が必要です。

Offline

#3 2022-10-08 14:36:47

あきとん
Guest

Re: 計算によるレイアウト名

Shin様

ありがとうございます。
ただ単にレイアウト指定で選択するのと同じに感じるのですがメリット何かあるのですか??

#4 2022-10-08 15:32:02

Shin
Member

Re: 計算によるレイアウト名

上の式をちょっと書き換えると、
Let (
[
    aver = GetValue ( Substitute ( Get (アプリケーションバージョン) ; " " ; ¶ ) ; 1 ) ;
    rank = Choose ( 顧客ランク ; "初来店" ; "" ; "常連" ; "優良" )
] ;
    aver & "の" & rank & "顧客"
)
とすれば、"Proの優良顧客";"Goの顧客";"G0_iPadの初来店顧客"のように、1ステップで動的にレイアウトを指定することができます。If で分岐させて作ると20行を越えますね。
このように、プラットフォームごとにレイアウトを複数設定してあるような場合、各レイアウトで共通の動きを作っているとレイアウトごとにスクリプトの内容を変化させる必要がありますが、これを使うと共通のスクリプトで十分です。("の顧客"を書き換えると別のレイアウト組み合わせでも動きます)
この切り替えをマスターテーブルで管理することもできるようになりますので、応用は広いです。

同様の機能が、名前でフィールドを設定、や、スクリプト実行で名前で設定するなどです。
それらは、大きな規模のソリューションになるほど応用ができてくると思います。

Offline

#5 2022-10-08 15:51:30

あきとん
Guest

Re: 計算によるレイアウト名

なるほど…
マスタ関連等でレイアウトの数が多くなった時にでも使ってみようと思います。
ありがとうございました。

Registered users online in this topic: 0, guests: 1
[Bot] ClaudeBot

Board footer

Powered by FluxBB
Modified by Visman

[ Generated in 0.006 seconds, 7 queries executed - Memory usage: 553.71 KiB (Peak: 581.6 KiB) ]