JSL:選択した行のIDを取得してテキストファイルにエクスポートする方法<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />こんにちは、
小さなテキストファイルを作成するスクリプトをプログラムしたいです。このファイルは、実際にはFileMakerが保存済みレコードのセットを開くために使用するスナップショットリンクです。これはXMLファイルですが、FileMakerによって認識されるファイル拡張子( ".fmpsl")が付いています。
スナップショットリンクはとてもシンプルなファイルです。最初のテキスト文字列は固定され、その後にデータベースのIDリスト(JMPテーブルの列に格納されています)と最初のテキスト文字列からなる3番目の部分が続きます。
<?Xml version = "1.0" encoding = "UTF-8"?>
fmnet:/99.129.6.76/my_database.fmp12 <行の種類= "nativeIDList" rowCount = "2" baseTableId = "142"> <![CDATA [!
5935
6597
]]>
<表示タイプ= "フォーム">
この例のID(唯一の可変部分)は5935と6597です。
また、作成したスナップショットリンクファイルを開くことによってもアクションが実行されるようにします。だから私はJMPで簡単なクリックで私のデータベース関連レコードにアクセスすることができました。
このプロジェクトはJSLで達成できますか?解決策はクロスプラットフォームでもMacでも実行できます。
私はJSLが初めてです。
ご協力ありがとうございました。
CB
再:JSL:どのように私は選択された行のIDを取得し、テキストファイルにそれらをエクスポートすることができますかこんにちは、
私は別の質問があります。JMPのテーブル行番号(«fileRows»)の代わりに、私の外部データベースID(私のJMPテーブルの列に格納されている)のリストを持つことができますか?あなたの投稿に関連するコードは次のとおりです。
fileRows = 「」 ;
にとって ( r = 1 、 r <= 今 ( rs ) 、 r ++、
fileRows = fileRows || チャー ( rs [ r ]) || "\!n" ;
) ;
どうもありがとう!
クロード
再:JSL:どのように私は選択された行のIDを取得し、テキストファイルにそれらをエクスポートすることができますか助けて幸せ、クロード。あなたがあなたのために働いた解決策を見つけられてうれしいです。
再:JSL:どのように私は選択された行のIDを取得し、テキストファイルにそれらをエクスポートすることができますかそうですね。JMPがアプリケーションと対話する必要がないのと同じような状況として、Excelを使用していました。作成したファイルをデフォルトのアプリケーションで開くようにオペレーティングシステムに指示するだけです。
とにかく、私は今朝実行可能な解決策を見つけました。私はフォルダを監視して中にあるファイルを開くMacOSスクリプト(実際にはAutomatorアクション)を書きました。遅れがあります(0.5 - 2秒)、それは働きます。
締めくくりになりましたが、どうもありがとうございました。それは私を大いに助けます!
CB
再:JSL:どのように私は選択された行のIDを取得し、テキストファイルにそれらをエクスポートすることができますかあなたがFileMakerについて言及しているスレッドの冒頭で、FileMakerについて言及しました。 http://www.filemaker.co.jp ) しかしすぐ上で、あなたはExcelに言及します。それは私が確信している実行可能なアプローチの詳細に違いを生むでしょう。
ドキュメントに「RunProgram()」と記載されているように、「stdinとstdoutを使用して外部プログラムを制御する」。データを含むxmlファイルを書き出したら、jslはFileMakerまたはExcelにこのデータを消費するように指示する2番目のファイルも書き出す必要があり、この2番目のファイルは 'Run Program()'を介して呼び出されることになります。ただし、FileMakerとExcelのどちらが必要かに応じて、もっと良い方法があるかもしれません。
再:JSL:どのように私は選択された行のIDを取得し、テキストファイルにそれらをエクスポートすることができますかイアンありがとう。
私はなんとかスクリプトを修正しました。ファイルが作成され、動作します。
しかし、私はまだテキストを開くようにオペレーティングシステムに指示する方法を理解していませんファイル 。私は索引と手助けのスクリプトを注意深く調べました。私はこれら4つの例を実行してきましたが、どれも私のニーズに合っていないようです。
私が以前に書いたように、私の状況はこのようなものです:
JMPテーブルからの抜粋をファイルにエクスポートし、オペレーティングシステムにこのファイルを開くように指示するスクリプトを作成します(JMPではなくExcelによって)。
CB
再:JSL:どのように私は選択された行のIDを取得し、テキストファイルにそれらをエクスポートすることができますかScripting Indexの「RunProgram()」で私が挙げた参照には4つの例があります。コードを調べてそれぞれを実行すると、より良い図を作成できます。「トピックヘルプ」ボタンもあります。
セルの値ではなく、セルの値を取得するには、'Column(dt、myCol)[myRow]という構文を使用できます。選択した行の高さを書き出すには、次のものが必要です。
チャー ( カラム ( dt 、 "高さ" )[ rs [ r ]])
の代わりに:
チャー ( rs [ r ])
再:JSL:どのように私は選択された行のIDを取得し、テキストファイルにそれらをエクスポートすることができますかさらに2つの質問:
1 - その«プログラムの実行»コマンドは、実行可能ファイル(Windowsの場合は.exe、Mac OSの場合は.app)でのみ機能しますか。JMPデータをExcelファイルにエクスポートした後、JSLスクリプトはOSにそのファイルを自動的に開くように指示することができます(Excelだけではありません)。たぶん2番目のパラメータが必要ですか?
2-あなたのスクリプトの中央のセクションはファイルに選択された行番号を書きます。選択した行の通常のデータ列の内容(データベースの内部ID)を含むリストを作成する方法を教えてください。
ご覧のとおり、私のJSLの理解は非常に基本的です(そして私の英語も)。
再度、感謝します!
CB
再:JSL:どのように私は選択された行のIDを取得し、テキストファイルにそれらをエクスポートすることができますかOK。そのため、(Run> Help> Scripting Indexで)RunProgram()コマンドをチェックしてください。
再:JSL:どのように私は選択された行のIDを取得し、テキストファイルにそれらをエクスポートすることができますかありがとうイアン。
これは非常に良い出発点です。
アクションは単純です:OSにそのスナップショットを開くように伝えます(«.fmpsl») FileMaker ファイル。
クロード
再:JSL:どのように私は選択された行のIDを取得し、テキストファイルにそれらをエクスポートすることができますかこのようなもの、おそらく?
NamesDefaultToHere ( 1 ) ;
//選択した行を含むテーブルの例
dt = 開いた ( "$ SAMPLE_DATA / Big Class.jmp" ) ;
dt << selectRandomly ( 0.5 ) ;
rs = dt << getSelectedRows ;
// .fmpslファイルの内容を定義します
fileHeader =
"<?Xml version = \!" 1.0 \!"encoding = \!" UTF-8 \!"?>
fmnet:/99.129.6.76/my_database.fmp12 <行タイプ= \!"nativeIDList \!" rowCount = \!"2 \!" baseTableId = \!"142 \!"> <![CDATA [!\!n " ;
fileRows = 「」 ;
にとって ( r = 1 、 r <= 今 ( rs ) 、 r ++、
fileRows = fileRows || チャー ( rs [ r ]) || "\!n" ;
) ;
fileFooter =
"]]>
<レイアウトID = \!" 48 \!"> <ビュータイプ= \!"フォーム\!"> <モード値= \!" browseMode \!"> "
; //ファイルを書き込む
SaveTextFile ( "$ DESKTOP / myFile.fmpsl" 、 fileHeader || fileRows || fileFooter ) ;
質問の「行動」の部分に必要なものが正確にはわからない。おそらくあなたは明確にすることができますか?