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 ) ;
不确定您的问题的“行动”部分究竟需要什么。也许你能澄清一下吗?