JSL:如何獲取所選行的ID並將其導出到文本文件中<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />你好,
我想編寫一個腳本來創建一個小文本文件。此文件實際上是FileMaker用於打開一組已保存記錄的快照鏈接。這是一個XML文件,但文件擴展名由FileMaker(“。fmpsl”)識別:
快照鏈接是非常簡單的文件。第一個文本字符串是固定的,後面是數據庫的ID列表(存儲在JMP表的列中),第三個部分由修復文本字符串組成,作為第一個:
<?Xml版本=“1.0”編碼=“UTF-8”?>
fmnet:/99.129.6.76/my_database.fmp12 <![CDATA [!
5935
6597
]]>
此示例中的ID(唯一可變部分)是5935和6597。
我還希望我的操作觸發打開創建的Snapshot Link文件。所以我可以在JMP中使用簡單的clic訪問我的數據庫相關記錄。
這個項目是否可以通過JSL實現?該解決方案可以是跨平台的,也可以僅在Mac上運行。
我是JSL的新手。
謝謝您的幫助。
CB
Re:JSL:如何獲取所選行的ID並將其導出到文本文件中你好,
我有另一個問題。我可以列出我的外部數據庫ID(存儲在我的JMP表的列中)而不是JMP的表行號(«fileRows»)嗎?您帖子中的相關代碼是:
fileRows = “” ;
對於 ( [R = 1 , [R <= NRow ( RS ) , [R ++,
fileRows = fileRows || 燒焦 ( RS [ [R ]) || “\ N!” ;
) ;
非常感謝!
克勞德
Re:JSL:如何獲取所選行的ID並將其導出到文本文件中克勞德,很樂意提供幫助。很高興您找到了適合您的解決方案。
Re:JSL:如何獲取所選行的ID並將其導出到文本文件中好。我給Excel提供了類似的情況,JMP不需要與應用程序交互。只是告訴操作系統使用默認應用程序打開創建的文件。
無論如何,我今天早上找到了一個可行的解決方案。我寫了一個MacOS腳本(事實上,它是一個Automator動作),它監視文件夾並打開裡面出現的任何文件。有一個延遲(0,5 - 2秒),但它的工作原理。
最後,讓我再次熱烈地感謝你的幫助。這對我有很大幫助!!
CB
Re:JSL:如何獲取所選行的ID並將其導出到文本文件中在線程的頂部你提到FileMaker,雖然我從來沒有使用它,但我認為是: http://www.filemaker.com )。但在上面,你提到了Excel。它確實會對可行方法的細節產生影響。
正如文檔所述'RunProgram()'使用stdin和stdout'控制'外部程序'。我假設,在寫出包含數據的xml文件後,jsl還需要寫出第二個文件,告訴FileMaker或Excel使用這些數據,第二個文件將通過'Run Program()'調用。但它可能也值得一提(取決於它是否需要FileMaker或Excel),可能會有更好的方法。
Re:JSL:如何獲取所選行的ID並將其導出到文本文件中謝謝伊恩。
我設法調整腳本。文件已創建且有效!
但我仍然不明白如何告訴操作系統打開文本文件 。我仔細研究了索引的腳本和幫助。我一直在運行這4個例子,但似乎沒有一個符合我的需要。
正如我之前寫的,我的情況是這樣的:
創建一個腳本,該腳本將在文件中導出JMP表中的摘錄,並告訴操作系統打開此文件(通過Excel,而不是JMP)。
CB
Re:JSL:如何獲取所選行的ID並將其導出到文本文件中我在腳本索引中為“RunProgram()”提供的引用有四個示例,如果您檢查代碼並運行每個代碼,您應該建立一個更好的圖片。還有一個“主題幫助”按鈕。
要獲取單元格的值,而不是它所駐留的行,可以使用語法'Column(dt,myCol)[myRow]。因此,如果您想要在所選行中寫出高度,則需要:
燒焦 ( 柱 ( DT , “高度” ) RS [ [R ]])
代替:
燒焦 ( RS [ [R ])
Re:JSL:如何獲取所選行的ID並將其導出到文本文件中還有2個問題:
1-“運行程序”命令是僅使用可執行文件(Windows上的.exe或Mac OS上的.app)嗎?將JMP數據導出到Excel文件後,JSL腳本如何告訴操作系統自動打開該文件(不僅僅是Excel)?也許需要第二個參數?
2-腳本的中間部分將選定的行號寫入文件。如何編寫包含所選行的普通數據列(我的數據庫內部ID)內容的列表?
正如您所看到的,我對JSL的理解非常基礎(我的英語也是如此)。
再次感謝!
CB
Re:JSL:如何獲取所選行的ID並將其導出到文本文件中好。因此,請查看'RunProgram()'命令(通過'Help> Scripting Index')。
Re:JSL:如何獲取所選行的ID並將其導出到文本文件中非常感謝伊恩。
這是一個非常好的起點!
操作很簡單:告訴操作系統打開該快照(«.fmpsl») 的FileMaker 文件。
克勞德
Re:JSL:如何獲取所選行的ID並將其導出到文本文件中也許是這樣的事情?
NamesDefaultToHere ( 1 ) ;
//包含所選行的示例表
DT = 打開 ( “$ SAMPLE_DATA / Big Class.jmp” ) ;
DT << selectRandomly ( 0.5 ) ;
RS = DT << getSelectedRows ;
//定義.fmpsl文件的conmtents
FileHeader裡 =
“<?Xml version = \!”1.0 \!“encoding = \!”“UTF-8 \!”?>
fmnet:/99.129.6.76/my_database.fmp12 <![CDATA [!\!n“ ;
fileRows = “” ;
對於 ( [R = 1 , [R <= NRow ( RS ) , [R ++,
fileRows = fileRows || 燒焦 ( RS [ [R ]) || “\ N!” ;
) ;
fileFooter =
“]]> “ ;
//寫文件
SaveTextFile ( “$ DESKTOP / myFile.fmpsl” , FileHeader裡 || fileRows || fileFooter ) ;
不確定您的問題的“行動”部分究竟需要什麼。也許你能澄清一下嗎?