如何将文本框中输入的值存储为 JSL 中的对象?好吧,我被难住了,终于接受了这样一个事实:我对 JSL 了解不够,无法独自完成这项工作。我对 JSL 还不太熟悉,但我想为与我一起工作的人简化事情。我编写了一个接近我想要的脚本,但我就是搞不清楚如何让我的行选择函数使用手动输入到文本编辑框中的信息。
目标是让用户点击“日记”按钮,弹出一个窗口,其中有一个文本框,用户可以在其中输入信息。然后,他们就可以点击编辑字段正下方的按钮框,该按钮框将运行脚本来选择包含他们输入的文本字符串的行。我已经粘贴了目前的内容,但我知道第 6 行和第 9 行之间存在脱节。我本打算将文本编辑框输入指定为对象,但我认为我搞砸了。我就是搞不清楚如何将输入到文本编辑框中的信息放入行选择部分。非常感谢您的帮助!
Lot Identifier = New Window("Assay Identifier by Lot Tested",<BR />Border Box( top( 10 ), bottom( 10 ), Left( 120 ), Right( 120 ), <BR />vlistbox(<BR />H Center Box(Text Box("Input Lot ID")),<BR />Spacer Box(size(1,10)),<BR />H list box( text box("Lot: "), ID=Text Edit Box()),<BR />H Center Box(<BR />Button Box("Select Rows with Lot Number", Current Data Table() << Row Selection(<BR />Select where( Contains( :assay, ID ) ),<BR />Match case( 0 ),<BR />Dialog( Edit( Contains( Source Column( :assay ) ) ), Keep dialog open( 0 ) )<BR />)))<BR />)<BR />)<BR />)视窗回复:如何将文本框中输入的值存储为 JSL 中的对象?不知道为什么它会这样格式化 JSL,但是这里只是直接复制/粘贴:
批次标识符 = 新窗口(“按批次测试的分析标识符”,
边框(顶部( 10 ),底部( 10 ),左侧( 120 ),右侧( 120 ),
列表框(
H 中心框(文本框(“输入批次 ID”)),
垫片盒(尺寸(1,10)),
H 列表框(文本框(“Lot:”),ID=文本编辑框()),
H中心盒(
按钮框(“选择带有批号的行”,当前数据表()<<行选择(
选择其中(包含(:assay, ID )),
匹配大小写( 0 ),
对话框(编辑(包含(源列(:assay))),保持对话框打开(0))
)))
)
)
)
回复:如何将文本框中输入的值存储为 JSL 中的对象?有多种方法可以实现这一点。以下是其中一种:
New Window( "Example: Text Edit Box",
Outline Box( "Enter a string", H List Box( Text Box( "String:" ), value = Text Edit Box( "" ) ) ),
);
txtValue = value << Get Text();
print(txtValue);
如果您想捕获数字而不是文本,请使用数字编辑框()。
回复:如何将文本框中输入的值存储为 JSL 中的对象?由于某种原因,这对我来说不起作用。我希望在文本框中输入的任何内容都成为 Row Selection() 函数中使用的术语。不过,我还是非常感谢这些信息。很可能只是我没有正确实施它。我将公式重新排列为以下内容:
Assay Identifier = New Window( "Assay Identifier by Lot",
Border Box( top( 10 ), bottom( 10 ), Left( 120 ), Right( 120 ),
V List Box(
H Center Box( Text Box( "Input Lot ID" ) ),
Spacer Box( size( 1, 10 ) ),
H List Box( Text Box( "Lot: " ), Lot = Text Edit Box() ),
H Center Box( Button Box( "Select Assays By Lot", Lot ID = Lot << get text() ) )
)
)
);
Current Data Table() << Row Selection(
Select where(
Contains( :assay, Print( Lot ID ) ),
Dialog( Edit( Contains( Source Column( :assay ) ) ), Keep dialog open( 0 ) )
)
);
回复:如何将文本框中输入的值存储为 JSL 中的对象?要输入 JSL 代码,编辑器中有此按钮:

要编辑帖子,请使用帖子右侧的三角形,然后单击“编辑回复”:

回复:如何将文本框中输入的值存储为 JSL 中的对象?是的,我在第一篇帖子中就是这样输入的。但当我点击“发布”时,一切都变得一团糟。我今天早些时候弄清楚了编辑功能,但认为不值得担心
回复:如何将文本框中输入的值存储为 JSL 中的对象?根据您的输入, @mzwald ,我能够让它部分工作,所以再次感谢。下面的脚本是我得到的,它只需要我有两个按钮而不是一个(这有点不幸)。第一个按钮将文本分配给一个对象,然后第二个按钮执行脚本,该脚本将识别包含文本的行(存储为对象)。如果我能弄清楚如何为一个按钮分配两个功能,我会很高兴,但至少我现在有一个可行的东西。
Assay Identifier = New Window( "Assay Identifier by Lot",
Border Box( top( 10 ), bottom( 10 ), Left( 120 ), Right( 120 ),
V List Box(
H Center Box( Text Box( "Input Lot ID" ) ),
Spacer Box( size( 1, 10 ) ),
H List Box( Text Box( "Lot: " ), Lot = Text Edit Box() ),
H Center Box( Button Box( "Set", Lot ID = Lot << get text() ) ),
H Center Box(
Button Box( "Select", Current Data Table() << Row Selection( Select where( Contains( :assay, Lot ID ) ) ) )
)
)
)
);
回复:如何将文本框中输入的值存储为 JSL 中的对象?您可以将所有内容添加到按钮框内的同一脚本中。只需记住将它们“粘合”在一起即可;
Names Default To Here(1);
dt = Open("$SAMPLE_DATA/Big Class.jmp");
Assay Identifier = New Window("Assay Identifier by Lot",
Border Box(top(10), bottom(10), Left(120), Right(120),
V List Box(align("Center"),
Text Box("Input Lot ID", << Set Font Size(16)),
Spacer Box(size(1, 10)),
H List Box(
Text Box("Lot: "),
Lot = Text Edit Box("", << Set Width(200), << Set N Lines(5))
),
Button Box("Select",
Lot ID = lowercase(lot << get text);
If(!Is Missing(Lot ID),
Current Data Table() << Row Selection(Select where(Contains(lowercase(:name), Lot ID)))
)
)
)
)
);
JMP 帮助页面确实有一些关于 JSL 的优秀文档。例如按钮框
在你习惯使用脚本索引(来自 JMP 的帮助菜单)之后,它会变得非常有用(你可能会发现这很有用,来自 Jarmo 的办公桌:使用脚本索引作为你的 JMP® 搜索,以实现更高效的脚本索引使用)

回复:如何将文本框中输入的值存储为 JSL 中的对象?谢谢。我上周曾尝试过让胶水功能工作,但由于某种原因一定是脑子不正常了。现在一切都好了
。感谢所有帮助我实现这一目标的人!