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

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

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

You are not logged in.

Announcement

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


#1 2016-03-17 15:57:10

清原
Guest

レイアウトを特定する関数はありますか?

ファイルメーカー13を使っていますが、
表示されているレイアウトによってスクリプトステップを分岐させたいと思います。
get(レイアウト名)やレイアウト番号は名称や並び順で変わることがあり不安定なので
get(レコードID)のようなレイアウトごとにユニークな関数ってないのでしょうか?

#2 2016-03-17 16:54:28

Layouter
Guest

Re: レイアウトを特定する関数はありますか?

デザイン関数にレイアウトIDもあるけれど、レイアウト名やレイアウト番号でしか切り替えられないので、意味なさそう?

#3 2016-03-17 17:09:21

チポ
Member

Re: レイアウトを特定する関数はありますか?

取得関数ではレイアウトIDを得られないですね。

アクセス権でレイアウト名とか番号の変更を制限すれば勝手に変更されることは防げますよね。

Offline

#4 2016-03-17 18:16:58

清原
Guest

Re: レイアウトを特定する関数はありますか?

できそうで完璧にはできないのですね・・・
アクセス権での制限での対応は、開発者が変更してしまうのを防げず自分の記憶があてにならないため
それでの対応は難しそうです。
「レイアウト名や順序を変えてはならない」というルールが自分自身ピンとこないので・・・覚えていられる自信がありません(T_T)

#5 2016-03-17 21:53:37

Shin
Member

Re: レイアウトを特定する関数はありますか?

LayoutIDs ( Get ( ファイル名 ) ) と LayoutNames ( Get ( ファイル名 ) ) では、取得できる順がその時点でのレイアウトの順の様です。
同じレイアウト名が無い、という前提で、レイアウトIDで指定して、レイアウト名へ変換して、レイアウト移動、という方法がとれると思います。

例えば、カスタム関数で

LayoutID2Name ( LayoutID ) = 
Let (
[
 IDList = LayoutIDs ( Get ( ファイル名 ) ) ;
 NameList = LayoutNames ( Get ( ファイル名 ) ) ;
 pos = ValueCount ( Left ( IDList ; Position ( ¶ & IDList & ¶ ; ¶ & LayoutID & ¶ ; 1 ; 1 ) ) )
] ;
 GetValue ( NameList ; pos )
)

で良いでしょうが、adv 版で無ければ、同様の式を、レイアウトへ移動 の中に組み込むといいでしょう。

Let (
[
 LayoutID = 1 ; // この数値を、求めたい レイアウトID に設定  
 IDList = LayoutIDs ( Get ( ファイル名 ) ) ;
 NameList = LayoutNames ( Get ( ファイル名 ) ) ;
 pos = ValueCount ( Left ( IDList ; Position ( ¶ & IDList & ¶ ; ¶ & LayoutID & ¶ ; 1 ; 1 ) ) )
] ;
 GetValue ( NameList ; pos )
)

Last edited by Shin (2016-03-17 22:34:09)

Offline

#6 2016-03-18 10:49:32

KS
Guest

Re: レイアウトを特定する関数はありますか?

レイアウトIDなんかで指定しちゃったら、
ファイル破損等で作り変える必要が出てしまった時に死にますよ。
レイアウトIDを任意に割り当てることは出来ませんから。

#7 2016-03-18 11:55:03

チポ
Member

Re: レイアウトを特定する関数はありますか?

各レイアウトのいずれかのオブジェクトに固有のオブジェクト名つけて、
スクリプトステップ
  オブジェクトへ移動
でエラーを返すか否かでそのレイアウトを特定できますね。

オブジェクト名を変えられたらどうするの?
って言われたらどうしようもないですが ;;;

Offline

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

Board footer

Powered by FluxBB
Modified by Visman

[ Generated in 0.005 seconds, 9 queries executed - Memory usage: 508.27 KiB (Peak: 514.91 KiB) ]