みんなに優しく、解りやすくをモットーに開設しています。 以下のルールを守りみんなで助け合いましょう。
1.ファイルメーカーで解らない事があればここで質問して下さい。 何方でも、ご質問・ご回答お願いします。 (優しく回答しましょう)
You are not logged in.
いつもお世話になっております。
スクリプトステップに開いた任意の別のファイルメーカーデータのファイルパスを取得しようとするのですがうまく行きません
ご教示いただければ幸いです。
自分の書いているスクリプトステップ
ファイルを開く() ←任意で選んでもらう
変数を設定[$ファイルパス ; 値 get(ファイルパス)]
これだと最初に開いていたファイルのファイルパスを取得してきます。
簡単なことだと思うのですが、教えてください。よろしくお願いいたします。
Offline
Get ( ファイルパス )
は現在のファイルのパスを返します。
質問の例では、
スクリプトを実行しているファイルのパスを返しますね。
開いたファイルのスクリプトでファイルパスを得て、
それを現在のファイルに渡せばいいでしょう。
異なるファイル間で変数は使えませんから、
スクリプト引数で渡せばいいですね。
Offline
ありがとうございます。
少し理解できました。
もう少し教えてください。
一連のスクリプトスッテプでファイルパス取得後、最終的にそのファイルパスを得た任意のファイルを閉じる(アクティブなファイルはそのまま)まで行きたいのですが、どういうふうに書けばいいのでしょうか?
よろしくお願いいたします。
Offline
スクリプトステップ
ファイルを閉じる
で指定したファイルを閉じることができます。
しかし、ファイル名を動的に指定することはできないようですね。
全体の流れが分からないのですが、
開いたファイルのスクリプトを現在のファイルから実行できるのでしょうか?
できるなら、そちらのファイルのスクリプトで閉じることはできますよね。
Offline
FMファイル以外のパスを取得するのと同じ方法(オブジェクトフィールドに挿入させてそれを元に取得)しかなさそうな気がしますが。
開くファイルにあらかじめスクリプトを作っておくなら、「スクリプト実行(外部)」で取得すればいいんですが、「任意」ってことはそうでもなさそうですし...
どっちにしても、パスが分かったとしても先に開いて実行しているスクリプトから「任意の別のFMファイル」に対して何かすることはできないです。アクセス権があればデザイン関数でフィールド名の取得などはできるかな...
WindowNamesの結果を開く前後で比較すれば、開いたファイルのウィンドウ名はわかりますね...
結局そのファイルで何をしたいんでしょうか。インポートするにしても任意のファイルではインポート順など全部手動で設定しないといけないのだし。
ありがとうございます。
himadaneeさんのおっしゃる通りにレコードのインポートを行いたいのですが、
現在オフラインでファイルメーカーgoを使い、同じカスタムアプリを使用している2名の職員のデータを、一つのカスタムアプリにまとめるインポートする際に、レイアウトごとに毎回ファイルを指定するのが面倒とユーザーから言われて、ファイルパスで選択する手間を省けないかなと考えておりました。
一回一回指定すればいいのですが、スクリプトの書き方の問題か、もう少しうまくいかないかなと模索中でした。
ありがとうございます。オブジェクトフィールドに挿入を使ったことがなかったので試してみます。
Offline
FMGo から、メインへ繋いでメイン側のファイルを開き、データをインポートさせる、という方法がいいのでは。
ファイルとインポートの順番を端末ごとにスクリプトに保存しておけば、それを呼び出せばいいです。ファイル名とフィールド定義が同じクローンファイルでしたら、共通のスクリプトでいけるはずです。
メインファイルが FMS で共有されている運用でしたら、ごく簡単ですよ。
Last edited by Shin (2022-04-04 16:58:36)
Offline
Shin様皆様
ありがとうございます。
これまでオフライン野外で電波のない状況での利用がおおいため、FMSやクラウドを検討していませんでした。今後勉強して導入を目指してみます。
Offline
[ Generated in 0.004 seconds, 9 queries executed - Memory usage: 516.32 KiB (Peak: 520.86 KiB) ]