みんなに優しく、解りやすくをモットーに開設しています。 以下のルールを守りみんなで助け合いましょう。
1.ファイルメーカーで解らない事があればここで質問して下さい。 何方でも、ご質問・ご回答お願いします。 (優しく回答しましょう)
You are not logged in.
Pages: 1
動的値一覧にスクリプト名を反映させたいと考えています。
自動的に現在のスクリプトを入手して動的値一覧に反映させる方法
自動的に現在のスクリプトの内、「対象」と書いてあるスクリプト名だけを値一覧に反映させる方法
について考えています。
ご存知でしたらお教えください。
環境:WIN10
FMP14 advance
Offline
状況がよくわかりませんが
スクリプトでGet(スクリプト名)を参照するフィールドに入れる。
でいいのでは。
早速のご回答をいただきましてありがとうございます。
私の質問に問題がありました、すみません。
現在のスクリプトを入手と書いてしまったので誤解させてしまいました。
やってみたいことは、制作したスクリプトの名前を値一覧に反映させることです。
出来れば特定のスクリプト名(例えばスクリプト名の先頭が「対象」と書いてあるスクリプト名だけを値一覧に表示させたいです。
それからどうしたいかというと、値一覧で選んだスクリプトをOnObjectModifyで実行させたいと考えています。
あらかじめ、対象のスクリプトを値一覧「カスタム値」に記載して選ばせようかと思いましたが、スクリプト名がそのまま値一覧になった方が、スムースに開発ができると思ったからです。
そんな訳で、
自動的にスクリプトの名称が動的値一覧に反映させる方法
自動的にスクリプトの名称の内、「対象」と書いてあるスクリプト名だけを値一覧に反映させる方法
について考えています。
ご存知でしたらお教えください。
Last edited by MaYa (2017-02-19 23:42:46)
Offline
個人的に興味ある。
ポータルフィルターの出番でしょうか?
古参の方達違いますでしょうか。
出来ない事は無いと思いますが、苦労の割にどれ程の効用があるか甚だ疑問です。
「対象」を含むスクリプト名を命名したときだけメニュー表示すれば済むことでは?
【質問の問題点】
・スクリプト一覧は ScriptNames で取得可能ですが、動的更新するためには結果は非保存が必須。
・非保存データによる「値一覧」は無効です。(かなりトリッキーな手法で無理無理実装する手法が有る事はアル。)
・「スクリプト名から実行」する機能がサポートされていない。(生成URLから目的スクリプトを間接的実行する位しかない。)
Offline
多くのスクリプトがある状況で,その数を絞り込みたい,という事でしょうか。
値一覧に見えたとしても,トリガーでスクリプトを指定する時には値一覧は使えませんので,意味が無いかも。スクリプトを指定するときの右上の検索窓にキーワードを入れれば,絞り込みはできます。
Offline
「対象」のものだけスクリプトメニューに表示させればいいような気がしますが。
起動の度に,ScriptNames でスクリプト一覧を取込んでおいて,それ用のテーブルに展開させておき,それを値一覧に取込めばいいかも。
でも、それを実行するスクリプトは,条件分岐とスクリプト実行の固まりになり,こちらは自動更新はできないので,メンテナンスがとても大変かも。
Offline
どうしても実現したい場合の「動的値一覧」実装具体策
●スクリプト一覧を動的に取得する方法
・計算式(結果は非保存指定): ScriptNames(Get(ファイル名))
●”対象”を含む名称だけのスクリプト一覧を動的にフィールド取得する方法
・計算フィールドの式(結果は非保存指定):
Let([
$lst=ScriptNames(Get(ファイル名));
#lst=Substitute($lst; ["対象";""]);
#lst=FilterValues($lst;#lst);
#fnc="Substitute($lst; [\"" & Substitute(#lst; [¶;"\";\"\"];[\""]) & "\";\"\"])"
];
Evaluate(#fnc)
)
●上記「非保存」計算フィールドから「動的値一覧」を作るご法度な方法。
・デカルト積[X]自己リレーションを用意。
・その関連フィールドとして上記「非保存」計算フィールドを指定して「動的値一覧」を設定。
・設定中に「無効」の警告が出ても構わず進めれば設定でき、ちゃんと機能します。
Last edited by Hiro (2017-02-21 01:00:32)
Offline
みなさん、レスを付けていただいてありがとうございます。
少しづつ理解をしているところです。
Hiroさんの実装具体策の意味を研究中です。
終わりましたら報告します。
まずは皆さんにお礼まで。
※$は変数ですけれど、#はなんでしたっけ コメントの#では無いですし・・・
接頭語で調べても出てこなかったので、教えていただけると助かります。
Offline
Let関数は#だろうが何もなしだろうが変数になるみたいです。
#の意味を書かずに書いてる人はどうかとも思いますね。
#は$と同意語ですわな。
> ※$は変数ですけれど、#はなんでしたっけ コメントの#では無いですし・・・
> 接頭語で調べても出てこなかったので、教えていただけると助かります。
>> #は$と同意語ですわな。
全く同意語ではありません。
●$はテーブル内全域で有効なローカル変数です。
●非$(無印or私的印#など)もローカル変数ですが式内でのみ有効です。
・非$は無印でも良いですが、私は視認性が悪いので目印に#マークを冠しています。
(私的#は機能上の意味はなく、単に変数名の識別上の利便性の為個人的に付加したマーカです。)
●テーブル全域有効の「$変数」は、思わぬ所で意図せぬ影響を及ぼす危険性があるため、自己完結する式内では極力「無$」変数を使いましょう。
※例示式内の2つの変数の使い分けを確認ください。
#fnc="Substitute($lst; [\"" & Substitute(#lst; [¶;"\";\"\"];[\""]) & "\";\"\"])"
この事例での判別基準は、式として直接評価かテキストとして間接評価かの意図の違いです。
Last edited by Hiro (2017-02-21 01:01:43)
Offline
「機能上の意味はなく」が重要で、$を含め多くの記号は意味を持ってしまうが、#は単に名前の一部として使える、ということ。
お礼が遅くなりました。
$と#についてわかりました。
仕事で遅くなるので、もう少し全体を理解するのに時間がかかります。
いつも丁寧な説明をありがとうございます。
Offline
Pages: 1
[ Generated in 0.018 seconds, 9 queries executed - Memory usage: 545.7 KiB (Peak: 566.23 KiB) ]