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

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

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

You are not logged in.

Announcement

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


#1 2013-12-12 15:00:02

doi9003
Guest

クライアントのデスクトップからのインポート

またまた皆様のお知恵を拝借したいと思います。
よろしくお願いいたします。

環境:WINXP fm12ad

ホストマシンに共有をかけているクライアントのデスクトップに、あるテーブルのデータをエクスポートする時のスクリプトですが

変数を設定[$デスクトップパス;値:Get(デスクトップパス)]
変数を設定[$ファイル名;値:$デスクトップパス&”◎◎◎◎◎.xlsx”]
レコードをExcelとして保存[記憶する;ダイアログなし;「$ファイル名」;自動的に開く;対象レコード]

のようなスクリプトで各人のデスクトップに◎◎◎◎◎.xlsxというファイルがエキスポートされるはずです。
OSなどの違いでデスクトップパスはそれぞれのPCで変化しますので変数にしています。

※問題はこの逆の行為(インポート)を行いたいのですが上手く行きません。
スクリプトは

変数を設定[$デスクトップパス;値:Get(デスクトップパス)]
変数を設定[$ファイル名;値:$デスクトップパス&”◎◎◎◎◎.xlsx”]
レコードのインポート[ダイアログなし;ソース:”file:$ファイル名”;ワークシート:””;追加;シフトJIS]

もちろん「◎◎◎◎◎.xlsx」はクライアントPCのデスクトップに直に置いてあります。

この表現はだめな場合だと思います。
何がだめかというとレコードのインポートのステップでデータソースを指定でファイルを選択します。
ダイアログで「file:$ファイル名」と変数を指定するのですが、その下のインポート順の指定で「指定」ボタンを押すと
目的の「◎◎◎◎◎.xlsx」が左側に出て来ません。
よって相手が見えないので正確に項目合わせが出来ないのです。

ここでデータソースを指定するダイアログで「ファイルの追加」をクリックして開発しているマシンのデスクトップにある
「◎◎◎◎◎.xlsx」をマニュアルで指定してみると

file:$ファイル名
file:../../../../◎◎◎◎◎.xlsx

という表現で開発しているマシンのデスクトップのパスを表現しているようです。
この場合は項目あわせのダイアログに「◎◎◎◎◎.xlsx」が左側に出て来て項目を合わせる作業が可能です。

自分がエキスポートしたファイルをインポートする訳なので照合名順で項目合わせをすると完全に一致します。
しかし「file:$ファイル名」で項目が見えない状態でスクリプトを動かしても本当にうまく項目が一致しているの
かどうかは確認出来ません?

この様にクライアントマシンからデータをインポートする場合変数は指定できないのでしょうか?
他に方法はないのでしょうか?

#2 2013-12-12 15:16:18

dup
Guest

Re: クライアントのデスクトップからのインポート

>$ファイル名
スクリプトを実行しないと変数値が入ってませんから、スクリプト作成中は何も指定してないのと同じことになります。

file:$ファイル名
file:../../../../◎◎◎◎◎.xlsx
でいいですが、2行なのがどうしてもいやならグローバル変数にして設定しておくか、項目指定後に下の行を削除するか

#3 2013-12-12 15:51:57

doi9003
Guest

Re: クライアントのデスクトップからのインポート

dupさんのおっしゃる通り、開発環境である自分のPCのデスクトップに置いたファイルを指定したfile:../../../../◎◎◎◎◎.xlsx
状態で照合名順で項目合わせをした後、file:../../../../◎◎◎◎◎.xlsxを削除してホストマシンに対してクライアントとして
インポートをしてみたらばっちり項目は合っていました。
この状態はこのままで維持されるのでしょうか?

#4 2013-12-12 16:53:38

dup
Guest

Re: クライアントのデスクトップからのインポート

照合名順の場合は、

メモ  インポート元のフィールドとインポート先のフィールドが照合名を使用してマップされている場合、フィールド名は、スクリプトステップが実行されるたびに動的に照合されます

なので、うまくいくでしょうけど「維持される」とはちょっと違う感じ。
「項目合わせ」自体が不要ってことですかね。

#5 2013-12-12 17:36:09

doi9003
Guest

Re: クライアントのデスクトップからのインポート

という事は

項目名が変更された場合や順番が変わった場合でもある程度、勝手に対応するということですかね?

#6 2013-12-12 18:12:56

Shin
Member

Re: クライアントのデスクトップからのインポート

インポート順の設定に依るでしょう。
照合名順、という設定でしたら、順番の変更には対応できますが、項目名の変更には対応できません。
最後に使用した、という設定ですと、順番の変更には対応できませんが、項目名の変更には対応できます、というか、同じ順でインポートされます。

安全なのは、照合名でインポート、項目名は変更しないように徹底する、でしょうか。

Last edited by Shin (2013-12-12 18:21:34)

Offline

#7 2013-12-13 10:37:32

doi9003
Guest

Re: クライアントのデスクトップからのインポート

みなさんありがとうございました。
以前からインポート時の項目合わせは特にいらいらしていました。
やっと概要がわかりました。

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

Board footer

Powered by FluxBB
Modified by Visman

[ Generated in 0.006 seconds, 9 queries executed - Memory usage: 561.74 KiB (Peak: 581.52 KiB) ]