みんなに優しく、解りやすくをモットーに開設しています。 以下のルールを守りみんなで助け合いましょう。
1.ファイルメーカーで解らない事があればここで質問して下さい。 何方でも、ご質問・ご回答お願いします。 (優しく回答しましょう)
You are not logged in.
Pages: 1
お世話になります。
FileMaker Pro 15 Advanced を利用しています。
指定の場所にあるXMLファイルの中身をテキストとしてグローバルフィールドに設定したフィールドにインポートしたいです。
画面上の動きのイメージとしては
1 インポートボタンをクリック
2 ファイル指定画面
3 指定されたxmlファイルの中身を指定されたグローバルフィールドにインポート
上記を実現する方法をご教示いただけると嬉しいです。
よろしくお願いします。
Offline
インポート専用のテーブルに仮インポートして、
それを1フィールドになる様に整形して、
それをインポートしたらいいのでは。
Offline
チポさま
ありがとうございます。
まず、インポートの際に拡張子の.xmlでXMLだと判断されてしまい、通常のテキストとしてのインポートができません。
xsltを使ったインポートは、元となるXMLが複雑すぎたため、現状テストの段階では、テキストエディタでXMLファイルを開き、中身を全選択肢、該当のグローバルフィールドにペースト後、カスタム関数を用いてデータ抽出等の処理をしています。
実運用に入るときは、運用者に「テキストエディタで開いて全選択コピー」という作業をさせるのも難しいかと思っているので、できるだけスクリプトなどを用いて対応していきたいです。
引き続きよろしくお願いします。
Offline
文字コードが「UTF-8」なら、スクリプト:URL から挿入 でフィールドにXMLファイルの内容の取得が出来ます。
但し、Windowsの場合は、ファイルパスに全角が含まれるとややこしいです。
URL から挿入 : http://www.filemaker.com/help/15/fmp/ja … m-url.html
Offline
ごめんなさい、
まったく違うことを考えていました。
よく読まないとダメですね -_-
Offline
qb_dp様
ありがとうございます。
UTF-8でしたのでスクリプトで試してみたのですが、「URLから」とあるだけあって、ローカルのXMLは選択できなさそうです。
チポ様
複雑な要求で申し訳ありません。
相変わらずノーアイデアですので、お力を貸していただけるとありがたいです。
引き続きどうぞよろしくお願い致します。
Offline
qb_dp様に教えたいただいたURLから挿入をもう少し発展させて、URL欄に「"file:/" & Get(デスクトップパス) & "該当.xml"」を設定した変数を入れることで、フィールドにXMLファイルの中身を挿入することができました。しかしながら、ファイル名、ファイルパスが固定されてしまうため、現実的ではありません。
他になにか良い方法があればご教示ください。
よろしくお願いします。
Offline
URLの指定は、計算式で動的に生成・指定できます。
Offline
Hiro様
ありがとうございます。
少し方法を考えてみたのですがやはり躓いてしまいました。
1 オブジェクトフィールドにXMLファイルをドラッグ
2 格納したXMLファイルのURLを取得
3 URLからの挿入
上記流れで行けないかと考えているのですが、2のURLの取得ができません。
どうすればいいでしょうか?
どうぞ宜しくお願いします。
Offline
ドキュメントフォルダーのエイリアスをデスクトップに置いておいて、その中にファイルをドロップしておきます。
Get ( ドキュメントパス一覧 ) でドキュメントフォルダーの中のファイル、フォルダーの一覧がパスで得られますので、そこから選択すれば楽かもしれませんよ。
取り込んだ後に、消しておく作業も簡単にできます。
Last edited by Shin (2017-06-09 17:43:42)
Offline
Shin様
ありがとうございます。
今作っているファイルは、想定されるユーザのためにも、なるべくファイル内だけで完結するように作りたいのです。
ですので、ご提案いただいた方法が良さそうではありますが、最終手段とできたらと考えています。
引き続きよろしくお願いします。
Offline
ドラッグでファイルを挿入した場合は、埋め込みになるので、パスの取得ができません。
以下ファイル選択ダイアログの代替えスクリプト例です。
スクリプト例:
ファイルを挿入 [フィルタ; 参照; 圧縮しない; TEST::obj]
変数を設定 [$filePath; 値:GetValue ( GetAsText ( TEST::obj ) ; 2 )]
変数を設定 [$filePath; 値:Substitute ( $filePath ; ["filewin:" ; "file://"] ; ["filemac:" ; "file://"])]
URL から挿入 [選択; ダイアログなし; TEST::F2; $filePath]
フィールド設定 [TEST::obj; ""]
※ドラッグでファイルを挿入した場合でも、一度テンポラリーフォルダにエクスポートし、そのファイルを「URL から挿入」で読み込むようなスクリプトを組めば、実現可能です。
Offline
qb_dp様
教えていただいた方法でばっちり出来ました!
ただスクリプトのfile:// の部分がスラッシュが多かったので一つ消して正常に動作しました。
とても勉強になりました。
ありがとうございまざいました。
スクリプト例:
ファイルを挿入 [フィルタ; 参照; 圧縮しない; TEST::obj]
変数を設定 [$filePath; 値:GetValue ( GetAsText ( TEST::obj ) ; 2 )]
変数を設定 [$filePath; 値:Substitute ( $filePath ; ["filewin:" ; "file:/"] ; ["filemac:" ; "file:/"])]
URL から挿入 [選択; ダイアログなし; TEST::F2; $filePath]
フィールド設定 [TEST::obj; ""]
Offline
Pages: 1
[ Generated in 0.007 seconds, 9 queries executed - Memory usage: 531.02 KiB (Peak: 551.93 KiB) ]