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

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

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

You are not logged in.

Announcement

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


#1 2014-05-02 18:24:22

まい
Guest

別窓メニューを選択したとき(レイアウトを変えたとき)メニューボタンの色を変えたい

いつもありがとうございます
FMP12 win7です。

前回、商品セット一括反映を教えてくださってありがとうございました。
https://fm-aid.com/bbs2/viewtopic.php?id=1377

今回は、ポータルの中にあるフィールドをボタン設定し、選択をするとフィールドのボタンの色を変えたいのですが
条件付き書式の計算式が上手くいきません。
そのフィールドはボタンなので入力できないようにブラウズモードのチェックを外しています。


そのポータルとは、レイアウトを変えるメニューフィールド(別テーブル)で別窓にしています。
メニューを別窓にしている理由は、一つのレイアウト上の左端に縦長ポータルでメニュー設定しようとも思ったのですが、
リストやシールの印刷、他の印刷レイアウトなどでも、メニューを固定して操作できないので、別窓にしました。
左端に別窓で縦長ポータルにメニューフィールド(右側のレイアウト名)置いて、右側のメインとなる受注や
一覧、請求レイアウトなどは、メニューを選択するとレイアウトが変わるというものです。

また、メイン側のレイアウトが変更された場合、メニュー側のレイアウト名フィールドの色も一緒に変えることは出来ますでしょうか。
説明が下手ですみません。

#2 2014-05-02 18:46:45

Shin
Member

Re: 別窓メニューを選択したとき(レイアウトを変えたとき)メニューボタンの色を変えたい

別ウィンドウでのレイアウトの変更で、ということですよね。
全てのレイアウトに、OnLayputEnter トリガーでグローバル変数の値を変更し、メニュー側のウィンドウを再表示させれば出来そうに思いますが。
ただ、ウィンドウが複数になっていると、ウィンドウの切り替えも検知しないと駄目でしょうね。(かなり面倒)

もう少し運用と合わせて詰めないと無理かも。

Offline

#3 2014-05-02 19:33:13

まい
Guest

Re: 別窓メニューを選択したとき(レイアウトを変えたとき)メニューボタンの色を変えたい

>全てのレイアウトに、OnLayputEnter トリガーでグローバル変数の値を変更し、メニュー側のウィンドウを再表示させれば出来そうに思いますが。

すみません、
私のレベルでは、どういったスクリプトになるのか・・・と、申しますか、
どう順序だてて良いのかが根本的に整理がついていないのかもしれません。


また、
メニューに反映させる検知ではないのですが、レイアウトが重複しないだけの検知スクリプトは作ってみました。



#サイドメニューが無ければ新規で表示
IsEmpty ( FilterValues ( WindowNames ( Get ( ファイル名 ) ) ; "サイドメニュー" ) )
新規ウィンドウ[名前:"サイドメニュー"高さ:●●;横幅:●●:左0;スタイル:ドキュメント]
レイアウト切替[「サイドメニュー」(テーブル名)]
ウィンドウの移動/サイズ変更[現在のウィンドウ;上:0;左:0]
ウィンドウの調整[収まるようにサイズ変更]
End If
#サイドメニューがあればウィンドウの位置を調整
not IsEmpty ( FilterValues ( WindowNames ( Get ( ファイル名 ) ) ; "サイドメニュー" ) )
レイアウト切替[「サイドメニュー」(テーブル名)]
ウィンドウの移動/サイズ変更[現在のウィンドウ;上:0;左:0]
ウィンドウの調整[収まるようにサイズ変更]
End If


にしていまして、右側のメインになるレイアウトは、

#受注レイアウトが無ければ新規で表示
IsEmpty ( FilterValues ( WindowNames ( Get ( ファイル名 ) ) ; "受注" ) )
変数を設定[$width;値:Get(ウィンドウ幅)]
新規ウィンドウ[名前:"受注";スタイル:ドキュメント]
レイアウト切替[「受注」(テーブル名)]
ウィンドウの調整[収まるようにサイズ変更]
ウィンドウの移動/サイズ変更[現在のウィンドウ;高さ:●●;左:$width]
End If

#受注レイアウトがあれば位置を調整
not IsEmpty ( FilterValues ( WindowNames ( Get ( ファイル名 ) ) ; "受注" ) )
ウィンドウの移動 以下省略
ウィンドウの調整 以下省略
End If

にしていまして、メイン側のレイアウトごとに、これを作っています。
一個作れば、複製して、レイアウト名称を変えていますのでなんとか動いていますが
スクリプトが正しいのか、自信がありません。(動いている・・・という感じです)

#4 2014-05-02 19:35:50

まい
Guest

Re: 別窓メニューを選択したとき(レイアウトを変えたとき)メニューボタンの色を変えたい

すみません
スクリプトの中の各 IsEmpty、 not IsEmpty の前にIfが抜けてました。

#5 2014-05-03 11:03:27

まい
Guest

Re: 別窓メニューを選択したとき(レイアウトを変えたとき)メニューボタンの色を変えたい

Shinさん、ご忠告ありがとうございます。

やはり、色とか以前の問題があるようで、Macは分かりませんが、Winですと
個々のスクリプト上では問題なくレイアウトが、ちらつかずに変わるのですが、
別ウィンドウのポータル中のフィールドをボタン化させてナビゲーションをすると、
両方のウィンドウがちらつくというか波打っちゃいます。

スクリプトに問題があるのかもしれませんが、たぶん皆さん別ウィンドウは
避けられているのかと思いますが、こういった問題もあるからなのでしょうか。

#6 2014-05-03 13:37:20

Shin
Member

Re: 別窓メニューを選択したとき(レイアウトを変えたとき)メニューボタンの色を変えたい

こんな風に動けば良いのでは
https://dl.dropboxusercontent.com/u/926 … 82.fp7.zip

上のスクリプトは、随分無駄が多いようです。
ウィンドウが有るか無いかは、ウィンドウへ移動してみて、エラー処理をしたほうが簡単です。ウィンドウが無ければ、新たに作って、その後はウィンドウが見つかった時と同じ処理ですね。
レイアウト毎にスクリプトは、レイアウト名を除いては同じものですよね。それぞれ作るのではなく、共通点を見つけ出して統合して行きましょう。これが上級者への一つのステップです

Offline

#7 2014-05-03 17:37:20

まい
Guest

Re: 別窓メニューを選択したとき(レイアウトを変えたとき)メニューボタンの色を変えたい

Shinさん、お休みのところ、サンプルまで作っていただいて申し訳ありません。
本当に、ありがとうございます。
とっても参考になりました。さすがに私のとは全然違います。ウィンドウもガクガクしないし・・・。

いろいろ考えたのですが、全部別窓で操作するのはやめました。
頭の中が迷子状態で・・・。
リストの一覧や、シール印刷時や、プレビューの時だけ、別窓にしようと思います。
下のファイルはFMP11で作りかけのものですが、別窓にしていないポータルのメニューです。
https://www.dropbox.com/s/15f58exfc5tjive/Nav001.fp7
まずは同じレイアウト上にポータルを置いて、とにかく頭の中を整理しようと思って作っていました。

これと、Shinさんの別窓を検知させるスクリプトを合わせたら、考えていたものが出来ると思いました。
ありがとうございました。

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

Board footer

Powered by FluxBB
Modified by Visman

[ Generated in 0.005 seconds, 7 queries executed - Memory usage: 520.95 KiB (Peak: 525.86 KiB) ]