みんなに優しく、解りやすくをモットーに開設しています。 以下のルールを守りみんなで助け合いましょう。
1.ファイルメーカーで解らない事があればここで質問して下さい。 何方でも、ご質問・ご回答お願いします。 (優しく回答しましょう)
You are not logged in.
Pages: 1
スクリプトでデータをエクスポートする時、ダイアログを表示させ、
保存するファイル名はユーザ入力とし、
ファイルタイプはデフォルトで「コンマ区切り値(.csv)」にしたいのですが、
必ず「タブ区切り値(.tab)」が表示されます。
変更することは可能でしょうか?
Offline
スクリプト:「レコードのエクスポート」で、ダイアログ で「ファイルの種類」を指定する機能はありません。
PowerShell の SendKeys で強引に指定フォルダを表示するサンプルです。※Windows限定
スクリプト:「レコードのエクスポート」の前に
スクリプト:「Event を送信」でPowerShellを実行します。
FileMaker のスクリプト
Event を送信 [「aevt」; 「odoc」; 対象アプリケーションを手前に表示[OFF]
計算
"powershell -WindowStyle Hidden -Command " &
Quote ( "
add-type -AssemblyName System.Windows.Forms;
$wShell=new-object -comobject wscript.shell;
$bool=$wShell.AppActivate('ファイルへのレコードのエクスポート') ;
start-sleep -Milliseconds 500;
if($bool)
{
$wShell.SendKeys('%T') ;
[System.Windows.Forms.SendKeys]::SendWait('コンマ区切り値 (*.csv)');
$wShell.SendKeys('%N') ;
}
")
レコードのエクスポート
Last edited by qb_dp (2019-04-12 15:46:00)
Offline
エクスポートのファイル形式は、
そのファイルで最後にエクスポートした形式がデフォルトとして表示されます。
スクリプトで記憶させることができますが、
それを使えない理由があるのでしょうか?
Offline
ご連絡ありがとうございます。
出力ファイル名をダイアログで任意で入力させる場合、記憶してくれないみたいなのですが...
可能なのでしょうか?
Offline
事前に独自ファイル名を「$変数」出力パスに代えて抽象化、
その$変数を出力パス設定で汎用化したスクリプトで出力すれば、
希望通りでは?
・事前にユーザー独自のファイル名を仮フィールドへ保存、
・そのファイル名で出力ファイルパスを生成し、$変数へ格納、
・出力ファイルパスを$変数で指定するcsv出力設定をスクリプト記憶、
・$変数パスで抽象化された汎用スクリプトでcsvエクスポート。
Offline
ご連絡有難うございます。
この手法の場合、ユーザ側でパスを自由に変更できるのでしょうか?
ユーザインタフェースを考えると「/C:/Users/PC/Desktop/XXXX.csv」といったように
テキストで入力するのではなく、ダイアログで指定出来る方がよいのですが...
可能でしょうか?
Offline
仮フィールドへの個別名入力をダイヤログから入力したいのであれば、
「カスタムダイヤログを表示」ステップを利用すれば良いでしょう。
・カスタムダイヤログを表示[※テーブル::仮フィールドへ個人パス入力]
・変数を設定[※$変数に絶対ファイルパスを計算格納]
・レコードのエクスポート[※記録された共用エクスポート処理を実行]
Last edited by Hiro (2019-04-15 11:00:36)
Offline
Hiro様、ご連絡ありがとうございます。
カスタムダイアログでパスを指定するという事は...
やはり、Filemaker標準のエクスポートダイアログのように
保存先をクリックのみで指定は出来ない...ということですね。
(文字によるパス入力)
理想としていたのは、出力時にエクスポートダイアログが表示され、
ユーザが自由に保存先を指定でき、且つその時、出力ファイルタイプがデフォルトで
「CSV」が選択されている...というイメージだったのですが...。
難しいようですね...。
Offline
あゝ、ユーザの自由入力ではなく、候補ガイドから選択入力という意味でのダイヤログ入力ですか。
それなら、Win環境に限定ですか、
Event送信でexplorer.exeのファイル選択ダイヤログを起動させる
と良いでしょう。
また、選択結果の受け渡しはクリップボード経由が安楽です。
そういった環境とスキルがありますか?
Last edited by Hiro (2019-04-15 15:48:32)
Offline
Hiro様、ご提案ありがとうございます。
Mac/Win混在環境なので...
そうゆう方法があるんですね、勉強になります。
今回は、出力時に手動でファイルタイプを切り替えてもらいます。
いろいろ教えて頂き、ありがとうございました。
Offline
優先度に寄りますが標準機能で実装できなくもないです。
[ディレクトリの取得]スクリプトステップを利用すれば保存先のパスを自由に選択できます。
ファイル名が固定(既存ファイルに上書きしてデータ消失するのは避けたほうが良いでしょう)でよければ
選択したパスに希望する形式で保存できます。例)201904151730.csv など
ファイル名も自由に付けたければ[カスタムダイアログを表示]でファイル名だけ入力させれば
希望のパスに希望のファイル名で拡張子(形式)で保存できます。
(欠点としては同名ファイルが存在するかユーザが視認できませんが......)
希望される結果と実装する手間を考慮して簡便な方法を選ばれると良いでしょう。
指定したパス内にあるファイルをユーザが見られないと気が済まないというならボツ案で......
【必須条件】出力形式は固定
【オプション】
・保存するパス(フォルダ)もファイル名もユーザが自由に付けたい
・OS標準のファイル選択ダイアログ同等の機能が必須
・保存するパス(フォルダ)をユーザが選択できれば良い(ファイル名は自動で付ける)
Offline
Mac/Win混在なら、プラグイン使うとか。
BE_FileSaveDialog – BaseElements Plugin Help Centre
https://baseelementsplugin.zendesk.com/ … SaveDialog
Offline
Mozさん、ご連絡ありがとうございます。
この方法が一番シンプルで、理想に近い形です。
この方向で提案してみます。
ありがとうございました。
Offline
Pages: 1
[ Generated in 0.033 seconds, 10 queries executed - Memory usage: 532.24 KiB (Peak: 553.15 KiB) ]