みんなに優しく、解りやすくをモットーに開設しています。 以下のルールを守りみんなで助け合いましょう。
1.ファイルメーカーで解らない事があればここで質問して下さい。 何方でも、ご質問・ご回答お願いします。 (優しく回答しましょう)
You are not logged in.
Pages: 1
FMP18
いつもいつも大変お世話になっております
今回も宜しくお願い致します
FMP18のスターターソリューション内にあるカスタムApp『タスク』について2点、ご相談させてください
※カスタムAppのDLリンクを貼っておきます
https://fmgo.jp/detail.php?recid=538&ca … phone=&pc=
①スクリプトの『関連レコードを追加』に対象レコードの絞り込みを行いたい
スクリプトステップは下記の通りです
#このスクリプトは担当者を追加するために『タスク詳細』レイアウトの[+]ボタンから実行されます。
エラー処理[オン]
ユーザによる強制終了を許可[オフ]
#次のステップで現在のレコードの主キーを確実に取得するためにレコードを確定します。
レコード/検索条件確定[ダイアログあり:オフ]
変数を設定[$$parentPrimaryKey;値:タスク::主キー]
#現在の関連する主キーを取得します。関連する主キーの数を取得します。
変数を設定[$relatedKeys;値:List(担当者::主キー)]
変数を設定[$numberOfRelateRecords ; 値:ValueCount( $relatedKeys )]
#ユーザが担当者を選択できるように「担当者選択」レイアウトを表示します。
新規ウインドウ[スタイル:カード;使用するレイアウト:「担当者選択」(担当者);高さ584;横幅:668]
#検索を実行して親レコードにすでに関連つけられている人物を除外します。
If[$numberOfRelateRecords>0]
検索モードに切り替え[一時停止:オフ]
変数を設定[$loopCount;値:1]
Loop
フィールド設定[担当者::主キー;GetValue ( $relatedKeys ; $loopCount ) ]
Exit Loop If[$loopCount = $numberOfRelateRecords ]
変数を設定[ $loopCount ; 値: $loopCount + 1 ]
新規レコード/検索条件
End Loop
検索実行[]
対象外のみを表示
End If
こちらのスクリプト結果後に自身で新たに作成したフィールドAの値で絞り込みを行いたいです。
②
元々のカスタムAppのレイアウトの管理にて「担当者選択」レイアウトのスクリプトトリガに『OnLayoutEnter』で「名前でソート」を仕掛けておりますがポータル「担当者ポータル」に2つ以上のレコードがあると(2つ目以降)スクリプトでのソートはかかっておりません(手動ではソート可)
どのように変更をかければ良いでしょうか?
お忙しい中、恐れ入りますがご教授頂けると幸いです
どうぞ宜しくお願い致します。
Offline
基本的に、スクリプトは手動で行うことを、その手順を覚えさせて実行するためのものです。その基本に従い、手動の手順を組み込めばいいです。
最終回等をもらって、それを適応するだけでは、次に何かする時に何の役にも立ちません。基礎を勉強されるのが早道では。
https://solutions.filemaker.com/made-fo … ?offset=70
の FileMaker Master Book シリーズはClaris 社公式の学習資料です。無料で手に入りますので、読んで見られてはいかがでしょう。
ヒントは、それぞれ、検索条件の変更で検索モードに入ったところを編集、ポータルフィルターを使っているかリレーション条件で絞っているのでそれを変更、です。
Last edited by Shin (2019-10-28 08:51:54)
Offline
Shin様
いつもご相談にのって頂きありがとうございます!
Master Bookはひととおり確認しており、
初期スクリプトステップの『検索実行[]』後や『対象外のみを表示』後に
検索モードに切り替え[一時停止:オフ]
フィールド設定[タスク::フィールドA;担当者::フィールドA]
対象レコードの絞り込み[]
の3ステップをいれてみましたがうまくいかずご相談させて頂きました。。
リレーションやポータルフィルタにも特に細工はないので八方塞がりになっております。
恐れ入りますがもう少し詳細を教えていただけますでしょうか?
※併せて②のソートがトリガでかからない件もお願い致します
どうぞ宜しくお願い致します
Offline
#1に貼り付けられたスクリプトは「担当者選択」レイアウトで担当者テーブルのレコードを検索しています。
追加されたスクリプト
検索モードに切り替え[一時停止:オフ]
フィールド設定[タスク::フィールドA;担当者::フィールドA]
対象レコードの絞り込み[]
の2行目の意味/目的がよくわかりません。
担当者を絞り込むのなら「タスク::フィールドA」と「担当者::フィールドA」は逆が正しい?
デバッガでステップ実行してみて、各ステップで何が起こっているか確認されてみては?
あるいはエラー処理をオフにして、どんなエラーが発生しているかを知り手がかりにするとか。
そうやって元々のスクリプトの動きをよく理解してからでないと、カスタマイズも難航しますね。
ソートの件ですが…
1)レイアウト切り替え
2)イニシャルでソート
3)登録済みの担当者を除外して再表示
という処理の流れなので、後半のIf文の中が実行されると、ソートは解除されてしまっているようで。
したがって、スクリプトの最後にもう一度、イニシャルでソートすれば良いのでは?
Last edited by koeda (2019-10-29 16:41:47)
Offline
koeda様
お返事ありがとうございます!!
的確なご指摘とても勉強になります!!
時間はかかりそうですがしっかりと自身で理解しながらやってみます
取り急ぎ、お礼まで。
誠にありがとうございます!!
Offline
Pages: 1
[ Generated in 0.006 seconds, 9 queries executed - Memory usage: 517.88 KiB (Peak: 522.78 KiB) ]