你好,
我基本上是在尝试访问在函数中创建的变量。 我试图在函数外部打印该变量,但不断出现名称未解析/已删除引用“胶水”错误。 我基本上有一个按钮函数,它创建一个新窗口并将 lf 的值存储在该函数和窗口创建中。 我希望能够打印 lf 的值,但我不知道如何打印。 任何建议,将不胜感激。 另一个问题是,当我在 OKscript1 函数内打印 lf 时,它不会打印到日志中。 这是因为 OKscript1 不是函数而是 Expr 吗? 另外,当我选择文件后第一次运行该程序时,我收到名称未解析的错误。 但是,当我再次运行它并选择不同的文件并查看日志时,我在退出之前选择的上一个文件会出现在日志中。 有什么想法吗? 我认为这可能是我忽略的一件非常简单的事情,或者与我的范围界定有关?
mainWindow = New Window("Instruction Tagger",
ob = Outline Box("Instruction Tagger",
Border Box(Left(3), top(2),
V List Box(
H List Box(
Panel Box("Please choose one of the following options:", <<MARKUP> 1), Throw ("Error: Please only select one measurement file. Alternitavely, go back and select 'Tag Multiple Files'. "));
if(Try(N Items(lf) < 1), Throw ("Error: Please select one measurement file.Alternitavely, go back and select 'Tag Multiple Files'."));
);
print(lf);
print(lf); </MARKUP>
你好@cwillden ,
非常感谢你的帮助。 我应该有一个标签来使我的文本加粗,这就是我使用标记的原因,但我意识到我把它们去掉了。 为了保持一致性,我将投掷和文本框更改为标题。 再次感谢您的解释。
你好@贾兹,
我修补了这个脚本上的缩进,因为它很难理解。我还删除了 <
这里有几个问题:当您运行脚本时,它将在用户对对话框进行任何操作之前运行底部的“print(lf)”行。当您要求 JMP 打印它时,“lf”甚至还不存在。您必须将其放在 OKScript1 表达式中,以便仅当用户按“确定”时才运行该代码行。
在从 ListF 获取项目之前,您也无法关闭窗口,因为 ListF 将不再存在。您确实注释掉了该行代码,所以我不确定这是否导致您的“已删除对象引用”错误。
下面的脚本似乎有效。我没有收到任何错误,并且 print(lf) 正在工作。它显示了我在日志列表中选择的文件。
mainWindow = New Window("Instruction Tagger",
ob = Outline Box("Instruction Tagger",
Border Box(Left(3), top(2),
V List Box(
H List Box(
Panel Box("Please choose one of the following options:",
Button Box("Tag a Single File", singleFileButton1("Tag Instructions to Data") ),
Button Box( "Tag Multiple Files", singleFileButton1("Tag Instructions to Data") ),
Text Box("Note: a button to tag the data will appear automatically after you have selected the measurement & PFD files. ")
)
)
)
)
)
);
singleFileButton1 = Function({x},
mainWindow << Close Window;
choosingFilesWindow = New Window(x,
ob = Outline Box("Select Your Files: ",
Border Box (Left(3), top(2)),
vDisplay = V List Box(
H List Box(
Panel Box("Please select one of the options below to choose your measurement & PFD file: ",
Button Box("Select Measurement File", selectMeasurementFileButton("Select Measurement File")),
Button Box("Select PFD File", selectPFDFileButton("Select PFD File")),
Lineup Box (N Col(2), Spacing(3)),
Panel Box("Files Added",
CB = Check Box({"Measurement file added", "PFD file added"},<<SET> 1), Throw ("Error: Please only select one measurement file. Alternitavely, go back and select 'Tag Multiple Files'. "));
if(Try(N Items(lf) < 1), Throw ("Error: Please select one measurement file.Alternitavely, go back and select 'Tag Multiple Files'."));
);</SET>我建议更改最后的“成功”if 语句。我不相信 CB << Set(1,0) 会被评估,因为您已经使用 Throw() 来停止进一步处理。考虑在该框中将 Throw() 替换为 Caption()。这也使得“成功”消息看起来不像 Throw() 那样是错误。